792 Commits

Author SHA1 Message Date
Thomas Boyer-Chammard
f3b191beff
Address student review of Device Driver docs (#4509)
* First pass at addressing student review

* nits and pieces
2025-12-05 14:12:11 -08:00
Thomas Boyer-Chammard
59e1baa9d8
Add website navigability updates (#4504)
* Add minor website navigability updates

* Add navigation hint to User manual landing page

* add an arrow

* spelling
2025-12-05 14:08:24 -08:00
kevin-f-ortega
43de02bafd
Update docs for AssertHook (#4505) 2025-12-04 10:53:07 -08:00
Thomas Boyer-Chammard
6d756f7431
Specify dictionary types as required by GDS (#4442)
* Specify dictionary types as required by GDS

* Update requirements.txt for fprime-tools

* Update documentation referencing type
2025-11-19 12:13:28 -08:00
djbyrne17
402c0317b6
Update obsolete link in docs (#4423)
* Update obsolete link and screenshots

* Revert image updates

---------

Co-authored-by: djbyrne <djbyrne@jpl.nasa.gov>
Co-authored-by: chammard <thomas.boyer.chammard@jpl.nasa.gov>
2025-11-17 10:40:58 -08:00
Thomas Boyer-Chammard
ba5988bfcd
Add How-To Implement a Bus Driver guide (device driver 2 of 2) (#4398)
* initial changes

* v0.1

* More improvements

* fix spelling
2025-11-06 16:29:40 -08:00
Thomas Boyer-Chammard
d669ea2c5a
Replace FpConfig.h header with FPP model elements (#4393)
* Update FpConfig.h

* Update AcConstants.fpp

* Update FPrimeBasicTypes.hpp

* Update BasicTypes.h

* Update FpySequencer.hpp

* Update FpConfig.h

* Update FPrimeBasicTypes.hpp

* Update BasicTypes.h

* Update BasicTypes.h

* Update BasicTypes.h

* Update BasicTypes.h

* Update BasicTypes.h

* Update BasicTypes.h

* Update BasicTypes.h

* Update FPrimeBasicTypes.hpp

* Update FPrimeBasicTypes.hpp

* Update FpConfig.h

* Update AcConstants.fpp

* Revert casts

* Add static_cast in asserts, reorganize files per feature

* Fix static_assert after merging devel

* Add assert to static cast

* clean up comments and TODOs

* formatting

* Fix formatting

* Fix RHEL8 error

* Other UT cast fix

* cast one side only

* fix spelling and move assert count to FpConstants

* Reorder and comments

* rob test

* re-add double cast

* Revert testing static_cast

* Update docs

* use SIZE_OF variables instead of hardcoding value

* Update FpConfig in CMake tests

---------

Co-authored-by: ekswang <eric.k.wang@jpl.nasa.gov>
2025-11-06 16:29:15 -08:00
Vince Woo
48e4720419
Created new SerialBufferBase as a parent of SerializeBufferBase (now renamed LinearBufferBase). (#4288)
* Created new SerialBufferBase as a parent of SerializeBufferBase. Renaming interface functions to be less confusing.

* Deprecating copyRawOffset. No direct use-cases in F' core.

* Make SerialBufferBase a true pure virtual interface.

* Changing Serializable to work with SerialBufferBase parent interface.

* Changing copyRaw and copyRawOffset to work with SerialBufferBase

* Updating documentation for SerialBufferBase usage

* Adding some documentation. Adding missing ASSERT in copyRaw. Fixing some bugs that new ASSERT uncovered.

* Renaming SerializeBufferBase to LinearBufferBase. Add a using declaration to maintain backwards compatability. Properly mark LinearBufferBase functions as override.

* Filling in the rest of the docstrings for the classes in Serializable

* Removing redundant virtual keyword on override function

* Applying clang formatting

* Incorporating PR comments

* Fix compile issues

* Bump version to alpha

* Format

* v

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
2025-11-06 16:23:20 -08:00
Thomas Boyer-Chammard
d6f43b02ff
Add How-To implement a Device Manager (device driver 1 of 2) (#4378)
* Add guide for developing device drivers in F Prime

* Add develop-device-driver.md

* Update device driver docs

* small fixes

* Polish things up

* more polishing

* spelling and link fixes

* Address review comments
2025-11-03 11:41:06 -08:00
Thomas Boyer-Chammard
1ff13ac93f
Address student feedback for How-To Framing protocol (#4314)
* Address student review feedback for How-To Framing protocol

* last couple nits

* fix spelling

* ugh

* add review comments
2025-10-16 15:51:00 -07:00
Will MacCormack
9a7123c190
Little Endian Serialization (#4294)
* Passing the Default BIG Arg to Serialize Functions

* Fails on Ac Files

* Compiles w/ little endian autocode

* Unit Tests Pass

* Little Endian deserializeTo & Unit Test Little Endian SerDes

* Add little-endian SerDes examples to docs

* Add & Respect Endianness for Array Lengths & Remove unneeded Fw:: Prefix

* Switch to enum class Endianness

* Fixes for enum class Endianness

* Run code formatter

* Bump fpp to v3.1.0a4

* Update Fw/Time/Time.hpp

* Update Fw/Time/Time.hpp

---------

Co-authored-by: Rob Bocchino <bocchino@jpl.nasa.gov>
Co-authored-by: M Starch <LeStarch@googlemail.com>
2025-10-13 14:15:06 -07:00
Angelina-2007
e34c019c3b
Fix typos in cross-compiling docs (#4280) 2025-10-09 10:38:41 -07:00
Thomas Boyer-Chammard
0e40726440
Add nomenclature document (#4200)
* Add nomenclature document

* whitespaces

* whitespaces

* fix spelling

* Update nomenclature with software slug representation

Added software slug representation for F Prime.

* sp

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
2025-09-29 13:48:44 -07:00
Pavly Gerges (pavl_g)
6433f694c7
RateGroup Docs Enhancements (#4196)
* Update rate-group.md

* Update expect.txt

* Added a word to the dictionary.
2025-09-26 15:01:57 -07:00
M Starch
8b1d627139
Add improvements to ComQueue (#4190)
* Move dequeued ComBuffer to persistent memory

* Add ordering notes to com interface docs

* Add buffer ownership tracking

* Assert dequeue status for serialized buffer

Added status check for dequeue operation to ensure successful serialization.

* Fix static_assert -> static_cast

* Fix format
2025-09-25 15:05:08 -07:00
Rob Royce
241e74ea1d
Fix grammatical error in F' introduction (#4174) 2025-09-21 13:12:20 -07:00
kevin-f-ortega
38f0c1f3b2
Update supported platforms document (#4152)
* moving feather m4 to the supported target table

* udpated dates
2025-09-15 16:36:05 -07:00
Thomas Boyer-Chammard
6190d9610b
Update custom framing How-To guide (#4144) 2025-09-12 11:52:41 -07:00
Thomas Boyer-Chammard
054c51ad3e
Revise install instructions with latest project structure (#4139) 2025-09-11 14:51:08 -07:00
M Starch
82fff1abc8
Revise Communication Adapter Interface documentation (#4133)
Updated reference to the Communication Adapter Interface in the documentation to reflect changes in the interface file names and added usage instructions.
2025-09-09 21:36:26 -07:00
M Starch
aabfa56193
Add FPP state machine How-To (#4096)
* Add FPP state machine How-To

* Fix state definitions in state diagram for newlines

* sp

Clarified wording regarding state transitions in the documentation.

* Missing `.`

Co-authored-by: Rob Bocchino <bocchino@icloud.com>

* Review updates

* Update links in define-state-machines.md

* sp

---------

Co-authored-by: Rob Bocchino <bocchino@icloud.com>
2025-09-09 12:31:21 -07:00
M Starch
4c0092751c
Feedback updates on common port patters, health, and worker (#4115)
* Feedback updates on common port patters, health, and worker

* Fix typos and improve clarity in documentation

* Fix typo in health-checking documentation - pt 2

Corrected a typo in the description of Svc.Health regarding configurable timeouts.

* Fix typo in manager-worker documentation - pt 3

* Fix formatting in health-checking documentation
2025-09-08 18:09:23 -07:00
M Starch
9cb948ed5d
Revise subtopology development documentation (#4119)
* Revise subtopology development documentation

* Document subtopology configuration process

Added detailed instructions for configuring subtopologies, including module setup and CMake integration.

* Enhance documentation on subtopology structure

Added recommendations for including documentation and optional files in subtopology.

* fix spelling

* fix spelling v2 final

---------

Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>
2025-09-08 10:41:06 -07:00
M Starch
bce0b5de79
Incorporate student feedback for ground derived channels (#4117) 2025-09-04 13:27:51 -07:00
M Starch
b90345e9df
Add test driven development how-to (#4090)
* Add test driven development how-to

* sp; review
2025-08-29 10:28:55 -07:00
M Starch
976ad2b28e
Fix #3397 (#4086) 2025-08-27 18:11:14 -07:00
Thomas Boyer-Chammard
373f81d0f3
Add subtopology documentation (#4072)
* Add subtopology guide

* fix typo and how-to

* Add reference link
2025-08-27 12:13:51 -07:00
M Starch
475f323525
Add ground derived channels how-to guide (#4074)
* Initial derived channel work

* Write ground-derived channels

* Update plugin handler

* Updating publishChannel case

Updated method name to follow naming conventions.

* Fix method name to use snake_case in documentation
2025-08-26 14:41:55 -07:00
kevin-f-ortega
94f67e4e21
Update supported platforms (#4071)
* improved step to contribute back

* added delivery date for targeted platforms

* added tbd since we are not sure at the moment

* fixed column data

* updating list of supported targets. This reflects how F Prime runs on these hardware with zephyr.

* alphabetized list and added link for freertos

* fix spelling

* rename Apple M* to Apple Silicon

---------

Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>
2025-08-25 17:32:20 -07:00
M Starch
21faffa6f8
CMake documentation refactor (#3981)
* CMake documentation refactor

* sp

* Update cmake-implementations.md
2025-08-05 16:52:14 -07:00
Amber Borjigin
e7840dee81
Update cross-compilation.md (#3979) 2025-08-04 15:41:32 -07:00
Justine West
67be6defa0
Update data types doc (#3957)
* Update data types docs

* Move alias type to its own section
2025-07-31 15:52:15 -07:00
Vince Woo
379d3059d9
Renaming serialize/deserialize methods to serializeTo/serializeFrom and deserializeTo/deserializeFrom (#3880)
* Deprecating serialize/deserialize methods for clearer serializeTo/serializeFrom and deserializeTo/deserializeFrom methods to indicate direction.

* Cleaned up some GCC directives that was used for an experimenting. Fixed some bugs in Serializable.

* Un-deprecating serialize/deserialize methods to decouple the required FPP changes

* Further modenized more child classes. Added some backwards compatibility fall-back logic to aid in FPP decoupling.

* Fixing clang formatting violation

* Removing redundant virtual keyword since the functions are already overrides

* Incorporating PR comments

* Fixing clang format issue

* Incorporating PR comments

* Updating documentation for new serialize/deserialize methods
2025-07-24 15:32:03 -07:00
Mishaal
65355c5d29
Remove PRIVATE PROTECTED and STATIC access overrides (#3821)
* Remove PRIVATE PROTECTED and STATIC access overrides

* Bump up requirements version

---------

Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>
2025-07-23 10:58:58 -07:00
Thomas Boyer-Chammard
7ec2bb9a76
Rename ActiveLogger to EventManager (#3920)
* Rename ActiveLogger to EventManager

* Spelling and link fixes

* Formatting and CMake API

* Remove UT_AUTO_HELPERS
2025-07-23 10:41:24 -07:00
M Starch
cca4e1261c
Remove RPI project in lieu of the LED workshop (#3908) 2025-07-22 15:31:22 -07:00
Mishaal
ef5f255628
Update F' Time handling with FPP struct and clean up TIME flags, and remove Time Context comparison (#3844)
* Update F' Time handling with FPP struct and clean up TIME flags

* Update documentation to indicate required time base options

* Remove time context comparison from Time compare method and FpySequencer

* UT updates

* Remove time add/sub context assertions, upload context compare logic and UTs, and doc updates

* Update Fw::Time SDD serializables section

* Markdown format fix

* Markdown format fix

* Markdown format fix

* Markdown format fix

* Bump FPP to v3.0.0a14

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
2025-07-21 16:13:33 -07:00
Vince Woo
c6a2cca280
Adding FW_CASSERT_1 macro for C (#3896)
* Adding FW_CASSERT_1 macro for C

* Splitting assert failure case into separate test. Adding TestAssetHook to properly test assertion failures.

* Fixed TestAssertHook implementation
2025-07-21 10:25:45 -07:00
kevin-f-ortega
6cd812658b
Update supported platforms (#3881)
* improved step to contribute back

* added delivery date for targeted platforms

* added tbd since we are not sure at the moment

* fixed column data
2025-07-18 09:31:08 -07:00
kevin-f-ortega
2690e31bff
Clean up supported platforms documentation (#3873) 2025-07-10 19:34:32 -07:00
Justine West
6349bf85c2
Add newline before table (#3858) 2025-07-08 10:51:43 -07:00
Vince Woo
5d8aaa4689
Deprecated 'bool noLength' versions of serialize and deserialize. (#3819)
* Deprecated 'bool noLength' versions of serialize and deserialize.

* Reverting some superfluous whitespace changes.

* Reinstation implementation of deprecated functions

* Fixing weird whitespacing

* Whitespace still didn't look right
2025-06-30 14:23:18 -07:00
Tyler Russin
189e2a883f
Update hello world link (#3823) 2025-06-30 10:23:28 -07:00
Thomas Boyer-Chammard
628672a42f
Update CMake Library integration guide based on student review (#3804) 2025-06-26 13:21:02 -07:00
M Starch
292476b0c0
Purge PlatformIntType and PlatformUIntType (#3719)
* Purging PlatformIntType and PlatformUIntType

* CI fixes

* Fixing review requirements

* Fix CI error

* Fix CI cmake test regression

* Fix RHEL8 regression
2025-06-16 17:44:24 -07:00
Justine West
98a51bc8b0
Add constants to dictionary spec (#3692)
* Add constants to dictionary spec

* Update enum section to use enum value

* Update dictionary content section to include array of constants.

* Remove kind field from constant

* Add note on how integer constants are output to the dictionary

* Add table of required defs with names, kinds, locations, and purpose
2025-06-16 16:31:46 -07:00
kevin-f-ortega
7f73f012e2
Update supported platforms (#3710)
* updated supported platforms docs

* Fixed Tip box

* clear up doc

* fixed spelling

* Added nice title so the website can pick that up

* correcting step

* updated per pr reviews

* being more consistent with the word deployment. these sentences should actually use reference project instead of reference deployment -- as discussed with the fprime core team
2025-06-16 16:29:08 -07:00
M Starch
bcd4641c91
Scrub XML references from docs (#3718)
* Scrubbing XML

* sp
2025-06-11 14:14:02 -07:00
Thomas Boyer-Chammard
728a022e9c
Add support for CCSDS TC/TM and SpacePacket protocols (#3684)
* 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>
2025-06-11 11:04:38 -07:00
Vince Woo
426ba86977
Adding note about explicitly identifying ports that need priority in SDD (#3697)
* Adding note about explicitly identifying ports that need priority in SDD

* Corrected type: FDD -> FPP
2025-06-05 12:38:34 -07:00