Git Product home page Git Product logo

cfs's Introduction

Build Status LGTM Alerts LGTM Grade LGTM Grade

Core Flight System - BUNDLE

This repository is a bundle of submodules that make up the Core Flight System (cFS) framework. Note the "lab" apps are intended as examples only, and enable this bundle to build, execute, receive commands, and send telemetry. This is not a flight distribution, which is typically made up of the cFE, OSAL, PSP, and a selection of flight apps that coorespond to specific mission requirements.

This bundle has not been fully verified as an operational system, and is provided as a starting point vs an end product. Testing of this bundle consists of building, executing, sending setup commands and verifying receipt of telemetry. Unit testing is also run, but extensive analysis is not performed. All verification and validation per mission requirements is the responsibility of the mission (although attempts are made in the cFS Framework to provide a testing framework to facilitate the process).

The cFS Framework is a core subset of cFS. There are additional OSALs, PSPs, and tools as listed below available from a variety of sources.

Release Notes

cFS 6.7.0 Suite: NOT FULLY RELEASED

  • cFE 6.7.0 is released under the Apache 2.0 license, see LICENSE.
    • The license covers cFE, PSP, framework apps, and framework tools as marked
  • OSAL 5.0.0 is pending release
  • Release documentation pending

cFS 6.6.0a Suite: OFFICIAL RELEASE:

Other elements listed below are released under a varitey of licenses as detailed in their respective repositories.

Known issues

Historical version description documents contain references to internal repositories and sourceforge, which is no longer in use. Not all markdown documents have been updated for GitHub.

See related repositories for current open issues.

Major future work

  • Certification framework with automated build verification tests of framework requirements
    • Executable on real/emulated/simulated/ or dockerized targets
    • Add PSP coverage testing framework
    • Add PSP and cFE functional testing framework for APIs
    • Scrub OSAL coverage and functional tests
  • Open source automated build verification execution framework for emulated targets (likely docker based)
  • Provide capability for mission customization of core services
  • Deployment quality of life improvements (configuration, transition to CMake source selection vs compiler directives)
  • Update OS support (VxWorks 7, RTEMS 5)
  • Time services refactor
  • Documentation (updated tracability, APIs/ICDs, general update)
  • Symmetric multi-processing APIs
  • Electronic Data Sheet integration option and improvements to packet layouts for portability/consistancy
  • Toolchain updates

Getting Help

For best results, submit issues:questions or issues:help wanted requests to this repo.

Official cFS page: http://cfs.gsfc.nasa.gov

Community email list subscription request: https://lists.nasa.gov/mailman/listinfo/cfs-community

Setup

To setup the cFS BUNDLE directly from the latest set of interoperable repositories:

git clone https://github.com/nasa/cFS.git
cd cFS
git submodule init
git submodule update

Copy in the default makefile and definitions:

cp cfe/cmake/Makefile.sample Makefile
cp -r cfe/cmake/sample_defs sample_defs

Build and Run

The cFS Framework including sample applications will build and run on the pc-linux platform support package (should run on most Linux distributions), via the steps described in https://github.com/nasa/cFE/tree/master/cmake/README.md. Quick-start is below:

To prep, compile, and run on the host (from cFS directory above) as a normal user (best effort message queue depth and task priorities):

make SIMULATION=native prep
make
make install
cd build/exe/cpu1/
./core-cpu1

Should see startup messages, and CFE_ES_Main entering OPERATIONAL state. Note the code must be executed from the build/exe/cpu1 directory to find the startup script and shared objects.

Note: The steps above are for a debug, permissive mode build and includes deprecated elements. For a release build, recommendation is make BUILDTYPE=release OMIT_DEPRECATED=true prep. Unit tests can be added with ENABLE_UNIT_TESTS=true, run with make test, and coverage reported with make lcov.

Send commands, receive telemetry

The cFS-GroundSystem tool can be used to send commands and receive telemetry (see https://github.com/nasa/cFS-GroundSystem/tree/master/Guide-GroundSystem.txt, the Guide-GroundSystem.txt). Note it depends on PyQt4 and PyZMQ:

  1. Install PyQt4 and PyZMQ on your system

  2. Compile cmdUtil and start the ground system executable

    cd tools/cFS-GroundSystem/Subsystems/cmdUtil
    make
    cd ../..
    python3 GroundSystem.py
    
  3. Select "Start Command System"

  4. Select "Enable Tlm"

  5. Enter IP address of system executing cFS, 127.0.0.1 if running locally

Should see telemetry, can send noops and see command counters increment

Compatible list of cFS apps

The following applications have been tested against this release:

  • TBD

Other cFS related elements/tools/apps/distributions

The following list is user submitted, and not CCB controlled. They are released by various orgainizations, under various licenses.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.