mirror of
https://github.com/nasa/fprime.git
synced 2025-12-10 00:44:37 -06:00
* First pass at Svc + TcpClient implementation * Tmp work * Revert FileUplink changes * Add copy (with allocation/deallocation) to FprimeRouter to simplify buffer management * Update FprimeRouter UTs * Update FprimeDeframer UTs * Update FrameAccumulator UTs * Update ComStub UTs * Update missing Drv and UTs * Update ComInterface to use ComDataWithContext on output * Update Ref/RPI topology * Fix spelling * Fix test typo * Update Udp component and UTs * Rename data ports and standardize "Return" naming pattern * Fix variable name * Adapt UTs * Update Communication Adapter Interface docs * Full SDD updates * Spelling & nits and details * Put formatting back to original * Added SpacePacket, TC and TM framers/deframers + Ref topology. Working with GDS wohooo * TODOs and code cleanup * Add APID enum to ComCfg.fpp and route based on received APID * Increment counts per frame/apid * Remove duplicate files * Document and implement services/functions provided by the TCDeframer * Add events, todos and notes * fill TM frame with idle packet * Add ApidMapper component and map APID - FwPacketDescriptor * Refactor to new CMake API * Update Types and Add TCDeframer tests * Update type usage namespacing * Finish TCDeframer UTs * Add TMFramer tests and refine VcId handling * Tests and code cleanup * Define ComPacketType in FPP * Map FW_PACKET_FILE to downlink specific APID * Remove sequence number check * Add packet loss notification to space packet * Tests WIP * WIP * Use SpacePacket header type in TMFramer idle packet * SpacePacketDeframer tests and untracked APID detection * Add APID (=PacketDescriptor) extraction to FprimeDeframer * Use ApidManager on uplink to validate seq count (is central authority for APID - SeqCount) * Code cleanup * Much cleaner ApidManager as a service, not in the middle of framing * Even better ApidManager * Add SpacePacketFramer UTs * Set up rule based testing for ApidManager * Code cleanup and fix TMFramer UT * First pass at SDDs and stuff * SDD fixes * ApidManager Rule-based testing * Improve TMFramer code coverage, docs and comments * Types cleanup * Add CRC check to CcsdsTCFrameDetector * Add unit tests for CcsdsTCFrameDetector * Fix Ref topology * Fix old PacketType usage * Fix ComQueue UTs * Fix CI warnings * Add test for CRC corruption in frame detector * Spelling * Remove ApidDemo component from topology * Fix more static analysis * Clean up ApidManager tests and fix static analysis warnings * Fix UTs on RHEL8 * Fix SDD links * Fix more static analysis on UTs * More spelling fixes * Improve SDDs and comments * Update metadata check-spelling run (pull_request_target) for ccsds-protocols Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com> on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev> * More SDD updates * Attempt UT fixes * First pass of review comments * Fix length token is minus 1 inconsistency * Review recs: static assert frame size, docs, TM buffer asserts * Add fprime-gds.yml to Ref for GDS with framing selection * Update requirements.txt for GDS 4.0.0a3 (CCSDS protocols) * Update UTs to reflect last update * Drop Python 3.8 support * Update FprimeRouter UTs for new APID routing * Fix spelling and RHEL8 cast warnings * Fix spelling again... * Deserialize APID in FprimeDeframer only if it is valid * Fix googletest warning?? * static casting that u8 yall * Use width FPP constants * Add SDD links * Switch TMFramer/TCDeframer capitalization to TmFramer/TcDeframer * Use git mv to rename files and directory * oops forgot rename a test file * review changes: add annotations on all FPP ports --------- Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com> Co-authored-by: Thomas Boyer-Chammard <thomas-bc@users.noreply.github.com>
69 lines
3.1 KiB
Markdown
69 lines
3.1 KiB
Markdown
<h2 align="center">A Flight-Proven, Multi-Platform, Open-Source Flight Software Framework</h2>
|
||
<p align="center"><br/>
|
||
<img width="200em" src="docs/img/fprime-logo.svg"><br/>
|
||
</p>
|
||
|
||
#
|
||
F´ (F Prime) is a component-driven framework that enables rapid development and deployment of spaceflight and other embedded software applications. Originally developed at the [Jet Propulsion Laboratory](https://www.jpl.nasa.gov/), F´ has been successfully deployed on [several space applications](https://fprime.jpl.nasa.gov/overview/projects/). It is tailored but not limited to small-scale spaceflight systems such as CubeSats, SmallSats, and instruments.
|
||
|
||
**Please Visit the F´ Website:** [https://fprime.jpl.nasa.gov](https://fprime.jpl.nasa.gov/) for more information.
|
||
|
||
|
||
## What does F´ provide
|
||
|
||
- An architecture that decomposes flight software into discrete components with well-defined interfaces
|
||
- A C++ framework that provides core capabilities such as message queues and threads
|
||
- Modeling tools for specifying components and connections and automatically generating code
|
||
- A growing collection of ready-to-use components
|
||
- Testing tools for testing flight software at the unit and integration levels.
|
||
|
||
Learn more about [F´ key features](https://fprime.jpl.nasa.gov/overview).
|
||
|
||
|
||
## System Requirements
|
||
|
||
1. Linux, Windows with WSL, or macOS operating system
|
||
2. [git](https://git-scm.com/)
|
||
3. [Clang](https://clang.llvm.org/) or [GNU C and C++ compilers](https://gcc.gnu.org/) (e.g. gcc and g++)
|
||
4. [Python 3.9+](https://www.python.org/downloads/), [virtual environments](https://docs.python.org/3/library/venv.html), and [PIP](https://pypi.org/project/pip/)
|
||
|
||
|
||
## Getting Started
|
||
|
||
To get started with F´, install the F´ bootstrapping tool with:
|
||
```
|
||
pip install fprime-bootstrap
|
||
```
|
||
|
||
Then, create a new project with:
|
||
```
|
||
fprime-bootstrap project
|
||
```
|
||
|
||
See the [HelloWorld Tutorial](https://fprime.jpl.nasa.gov/latest/tutorials-hello-world/docs/hello-world/) to guide you through all the steps of developing an F´ project.
|
||
|
||
New users are encouraged to read through the [User Manual](https://fprime.jpl.nasa.gov/latest/docs/user-manual/) and explore the [other tutorials](https://fprime.jpl.nasa.gov/latest/docs/tutorials/).
|
||
|
||
|
||
## Getting Help
|
||
|
||
### Discussions
|
||
To ask questions, discuss improvements, and ask for help please use the project's [GitHub Discussions](https://github.com/nasa/fprime/discussions).
|
||
### Bug reports
|
||
To report bugs and issues, [open an issue here](https://github.com/nasa/fprime/issues).
|
||
### Community
|
||
The [F´ Community](https://github.com/fprime-community) GitHub Organization contains third party contributions, more documentation of flight software development, and additional resources.
|
||
|
||
|
||
## Resources
|
||
- [User Manual](https://fprime.jpl.nasa.gov/latest/docs/user-manual/)
|
||
- [Tutorials](https://fprime.jpl.nasa.gov/latest/docs/tutorials/)
|
||
- [Discussions](https://github.com/nasa/fprime/discussions)
|
||
- [Submit an Issue](https://github.com/nasa/fprime/issues)
|
||
- [F´ Community](https://github.com/fprime-community)
|
||
|
||
|
||
## Release Notes
|
||
|
||
The version history and artifacts associated with the project can be found at [Releases](https://github.com/nasa/fprime/releases).
|