356 Commits

Author SHA1 Message Date
mshahabn
e0afd3c3fb
Add missing implementation of GenericHub (#4420)
* Revise GenericHub model

* Revise GenericHub model

* Revise GenericHub model

* Update spelling

* Revise annotations

* Revise annotations for GenericHub model

* Revise annotations in GenericHub model

* Revise GenericHub model

* Revise GenericHub model

* Revise GenericHub model

* Revise GenericHub

* Revise GenericHub

* Revise GenericHub model

* Revise GenericHub model

* Revise GenericHub config

* Revise GenericHub model

* Revise GenericHub model

* Clean up naming in GenericHub implementation

* Revise GenericHub port names

* Revise annotations in GenericHub model

* Revise annotations in GenericHub model

* Revise annotations in GenericHub model

* Add ByteStreamDriverClient

* Revise ByteStreamDriverClient

* Revise ByteStreamDriverClient

* Revise driver interfaces

* Add PassiveByteStreamDriverClientSendAsync interface

* Add PassiveAsyncByteStreamDriverClient interface

* Add PassiveBufferDriver

* Revise PassiveByteStreamDriverClient interfaces

* Revise PassiveBufferDriver

* Revise Drv interfaces

* Revise PassiveBufferDriver

* Add PassiveBufferDriverClient

* Revise GenericHub model

Use interfaces from Drv

* Revise annotations in GenericHub model

* Revise FPP models

Point FPP to a non-released version with a bug fix

* Add ByteStreamBufferAdapter

* Revise ByteStreamBufferAdapter model

* Revise ByteStreamBufferAdapter

* Revise ByteStreamBufferAdapter

* Add AsyncByteStreamBufferAdapter

* Revise AsyncByteStreamBufferAdapter

* Revsie AsyncByteStreamBufferAdapter

* Revise AsyncByteStreamBufferAdapter

* Revise annotations in FPP model

* Revise ByteStreamBufferAdapter

* Bump fpp version

* Revise GenericHub model

* Revise GenericHub interface

* Revise GenericHub interface

* Fix typo in FPP annotations

* Revise Generic Hub model

* Fix spelling and formatting

* Review recommendations

---------

Co-authored-by: Rob Bocchino <bocchino@jpl.nasa.gov>
Co-authored-by: thomas-bc <thomas.boyerchammard@gmail.com>
2025-12-02 17:56:34 -08:00
Will MacCormack
b9a7059667
Set the Name of Fprime Tasks on Linux (#4428)
* Set the Name of Fprime Tasks on Linux

* prefix thread name w/ process name

* Revert "prefix thread name w/ process name"

This reverts commit 5867602f135c69022469c985b6de13458686e6a2.

* Add `setname` to spelling expected list

* Format My Changes

* Add in opt-out configuration

* Enable POSIX_THREADS_ENABLE_NAMES and fix ut

* Remove warning when flag set off

* UT thread names

* Add tmate session setup to build workflow

* Disable thread names on Ip UTs

* Use random thread ids in UTs

* Fix race condition

* Fix improper string set

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
Co-authored-by: Michael D Starch <Michael.D.Starch@jpl.nasa.gov>
2025-12-01 10:15:35 -08:00
M Starch
8cbba542fc
Make fpp-to-json opt-in by default (#4449) 2025-11-19 12:02:15 -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
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
M Starch
c51921aca3
Add more error checking to Fpy arithmetic directives (#4331)
* Add more error checking to arithmetic directives

* sp

* Inadvertant double literal fix

* Add missing std::
2025-10-30 10:43:08 -07:00
Thomas Boyer-Chammard
fdc582bc56
Update CI for top-level namespace structure (#4353)
* Update CI for top-level namespace structure

* update deployment expect file

* Fix other led-blinker workflows

* Fix dictionary name

* formatting to trigger CI

* Update MathTutorial CI build location

* add fprime location
2025-10-29 11:07:36 -07: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
Cel Skeggs
9c11872889
Mark SwAssert declarations as noinline (#4304)
* Mark SwAssert declarations as noinline

Without this change, a compiler using LTO may inline the zeros that are
inserted as additional parameters for the call to defaultSwAssert. This
increases code size to optimize for the off-nominal condition where an
assertion is tripped.

In my testing, this single change reduces my largest deployment's
code size by 11%.

* Add 'noinline' to dictionary

* Update Fw/Types/Assert.hpp

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

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
Co-authored-by: Rob Bocchino <bocchino@icloud.com>
2025-10-14 12:55:33 -07:00
Rob Bocchino
e9d7f3ab66
Data structure library, phase 2 (#4062)
* Revise RedBlackTree impl docs

* Revise RedBlackTree impl docs

* Revise RedBlackTree impl docs

* Revise RedBlackTree impl docs

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl docs

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Fix typo

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl docs

* Revise RedBlackTree impl docs

* Revise RedBlackTree impl

* Revise RedBlackTreeImpl docs

* Revise Fw/DataStructures

Reformat code

* Revise Fw/DataStructures

Fix compile errors on Linux

* Revise Fw/DataStructures

Fix compile errors on Linux

* Revise Fw/DataStructures

Fix compile errors on Linux

* Revise Fw/DataStructures

Fix compile errors on Linux

* Fix comments

* Revise Fw/DataStructures

Fix compile errors on Linux

* Revise ArrayMap docs

* Remove helper scripts

* Revise tests for Fw/DataStructures

* Fix spelling

* Fix Markdown link

* Fix uninitialized variable in test

* Fix uninitialized variable in test

* Fix "spelling"

Why is the spelling check enforcing arbitrary rules of style?

* Fix comments

* Revise RedBlackTree impl docs

* Start adding RedBlackTree impl

* Revise tests for ArraySetOrMapImpl

* Revise RedBlackTree impl

* Revise comment

* Revise comment

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise ArraySetOrMap impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Add RedBlackTree impl tester

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Fix comments

* Revise RedBlackTree impl

* Fix comments

* Revise comments

* Revise comments

* Revise comments

* Revise statement order for clarity

* Revise unit tests for RedBlackTree impl

* Revise RedBlackTree impl tests

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Add build and clean scripts

Working around regressions in the F Prime build system

* Revise build

Fix warnings

* Revise RedBlackTree impl and tests

* Revise tests for RedBlackTree impl

* Revise RedBlackTree impl and tests

* Revise RedBlackTree tests

Remove debug print statements

* Revise RedBlackTree impl tester

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise build script

* Revise RedBlackTree tests

* Revise RedBlackTree tests

* Revise RedBlackTree tests

* Revise RedBlackTree tests

* Revise RedBlackTree tests

* Revise RedBlackTree impl tests

* Revise RedBlackTree impl tests

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl tests

* Revise RedBlackTree impl tests

* Revise RedBlackTree impl tests

* Revise RedBlackTree impl tests

* Revise RedBlackTree impl tests

* Revise RedBlackTree impl tests

* Revise RedBlackTree impl test

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise comment

* Revise RedBlackTree impl and tests

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl

* Revise RedBlackTree impl tests

* Revise RedBlackTree impl tests

* Revise RedBlackTree impl

* Revise RedBlackTree impl tests

* Revise formatting

* Format code

* Revise docs

* Revise docs for Fw/DataStructures

* Revise Array and ExternalArray

Add static assertions

* Revise FifoQueue and Stack

Add static assertions

* Revise ArraySet and ArrayMap

Add static assertions

* Revise docs for ExternalRedBlackTreeMap

* Revise docs for ExternalRedBlackTreeSet

* Revise docs for RedBlackTreeMap

* Revise docs for RedBlackTreeSet

* Revise ExternalRedBlackTreeMap tests

* Refactor ExternalStackTester

* Revise ArrayMap tests

* Add RedBlackTreeMap

* Revise RedBlackTreeMap tests

* Revise RedBlackTreeMap

* Add ExternalRedBlackTreeSet

* Add missing file

* Revise SetConstIterator

* Revise ExternalRedBlackTreeSet tests

* Revise ExternalRedBlackTreeSet tests

* Revise ExternalRedBlackTreeSet tests

* Revise ExternalRedBlackTreeSet tests

* Revise ExternalRedBlackTreeSet tests

* Revise ExternalRedBlackTree tests

* Revise ExternalArraySet tests

* Revise ExternalArraySet tests

* Add RedBlackTreeSet

* Revise RedBlackTreeSet tests

* Refactor ArraySetTest

* Revise RedBlackTreeSetOrMapImpl docs

* Revise array initialization

* Revise comments

* Revise Array initialization

* Revise Array design and implementation

* Revert changes to Fw/DataStructures

* Revise Array

* Revise Array

* Revise Array

* Fix formatting

* Add SizedContainer base class

* Revise StackBase

Make it inherit from SizedContainer
Revise stack tests

* Revise MapBase

Make it inherit from SizedContainer
Revise tests

* Revise SetBase

Make it inherit from SizedContainer
Revise tests

* Revise DataStructures design

Add SizedContainer

* Revise SDD for DataStructures

* Revise DataStructures design

* Revise DataStructures design

* Revise DataStructures design

* Revise DataStructures design

* Fix spelling

* Revise zero-arg constructor for Array

* Revise Array interface

Make it consistent with the arrays generated by FPP

* Fix to assertion

* Format code

* Fix spelling

* Fix spelling

* Add -Wno-comment to suppress warnings for now

* Revise comments

* Revise diagrams

* Fix comment warnings on gcc

* Eliminate tabs

* Remove utility scripts

* Revise placement of break statements

* Rename function

getParentDirection --> getDirectionFromParent

* Add comment

* Add svg diagram

* Add svg diagram

* Add svg files

* Revise diagram

* Replace png with svg

* Replace png with svg

* Replace png with svg

* Revise comment

* Revise SDD for red-black tree

* Revise SDD for red-black tree
2025-10-06 13:26:23 -07:00
M Starch
20477ad9c8
Make GenericHub EXCLUDE_FROM_ALL (#4178)
* Make GenericHub EXCLUDE_FROM_ALL

* Add a build stage for Svc_GenericHub

CppCheck requires every target to be built.

* sp

---------

Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>
2025-10-06 10:48:05 -07:00
Thomas Boyer-Chammard
1786ffee01
Update CI to use latest macOS intel runners (#4251) 2025-10-02 13:27:47 -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
73ab9621e4
Ci zephyr (#4141)
* Add reusable action and workflow for CI and set up

* Add branch for testing

* Call correct workflow

* Remove superfluous input (tmp)

* Switch to fprime-actions

* Add with

* Actions typo

* Add plugin package installation

* Add build stage

* Fix container

* Remove container

* Trial of West

* Add custom setup

* Add push event

* Fix event data mining for push

* Fix push payload usage

* Fix branch detection

* Fix bash-foo

* Fix resuable project CI

* Add custom runner set up

* Typo

* Add intgration step

* Fix archive download

* Debug commands

* Download after setup

* Fix download path

* adding workflow for pico2 zephyr

* updated reusable workflow to clean up when done, otherwise garbase is left and it causes issues with subsequent runs

* fixing formatting because it matters

* Remove erroneous clean-up

* sp

* Add make space step

* Fix review requests

---------

Co-authored-by: Kevin F. Ortega <kevin.f.ortega@jpl.nasa.gov>
2025-09-25 13:29:58 -07:00
Thomas Boyer-Chammard
ba65039fff
Finish code formatting (#4134) 2025-09-10 15:02:07 -07:00
Shaokai (Jerry) Lin
c8e2d44877
Add ActivePhaser to Svc (#3974)
* Initial open source review of active phaser

* Start working on ActivePhaser's FPP model

* Add ActivePhaser implementation

* Start working on unit tests

* Fill in test logic

* Add comments

* Guard against writing outside of container

* Add comment

* Update comments

* Fix comment on overflow

* Comment on the use of actual_start and others

* Add comments and max connection count

* Add comments

* Phaser updates

* Add telemetry channels

* Update comments, fix FPP, update API calls in tester

* Apply formatter

* Minor comment change

* Fix spelling

* First draft of SDD

* Revert "Add telemetry channels"

This reverts commit 1690e51e125477d032e07fa8cd3882d6db2b8b3b.

* PRIVATE -> private

* Add friend class declaration for ActivePhaserTester

* Fix FIXMEs where possible

* Formatting

* Fix minor UT issues

* Remove (void)

---------

Co-authored-by: ZIIIKT <shaokail@jpl.nasa.gov>
Co-authored-by: M Starch <LeStarch@googlemail.com>
Co-authored-by: Michael D Starch <Michael.D.Starch@jpl.nasa.gov>
2025-09-10 09:39:39 -07:00
Isaac Garibay
fff0e0bf77
Add file size and subdirectory support to FileManager directory listing feature (#4041)
* Enhancement: Added file size and subdirectory support to FileManager directory listing feature

* Refactor to directory listing feature using rategroup 2 component

* Spelling fixes to expect.txt, config feilds for schedin call, fixes on comments/types

* Fix for spellcheck

* Replace fixed size with FileNameStringSize for commands

* Fix minor nits

* Formatting

* Remove fileManager instance, use FileHandling.fileManager

* Fix review feedback

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
2025-09-09 14:46:07 -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
976ad2b28e
Fix #3397 (#4086) 2025-08-27 18:11:14 -07:00
M Starch
42c665f080
Update project structure in cookiecutters CI (#3991)
* Update project structure

* Fix sourcing path

* fix paths

---------

Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>
2025-08-27 15:42:51 -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
Zimri Leisher
f4439a8cc9
FpySequencer arithmetic (#4025)
* Some work towards stack based arch

* Bring fp/int conv up to date

* Get compiling with stack based arch

* Start trying to fix UTs

* Start adding store/load dirs

* Add push val dir

* UTs are running

* UTs passing

* Make exit stack based

* Fix more uts

* Fix final UTs

* sp

* Fix overflow potential err

* Fix another overflow

* same error fix

* Format

* Also add to format checker

* Add math directives

* Add integer extension and truncation

* Also check correct size on stack

* Fix comment

* Push cmd response to stack

* Cast cmd response code to i32

* Add stack cmd, memcmp, discard dirs

* Fix some bugs with stack cmd

* Fix lil bug in sgtack cmd

* same bug

* Fix another bug sry

* Update sdd

* sp

* Fix undefined behavior with bitshift of signed integer

* sp

* Fix lil bug in timeout detection of stack cmd

* Switch format check to do all Svc dirs

* Reformat, and fix packet descriptor serialize bug

* Add UTs for all of arith ops

* Add tests for disc, memcmp, stack cmd

* Add deser tests for those three dirs

* sp

* Format

* Replace magic numbers with sizeofs

* Add currentStatementIdx helper function

* Format

* Split imod into smod and umod

* sp

* Add fmod, copy python behavior for fmod and smod

---------

Co-authored-by: Zimri Leisher <zimri.leisher@fireflyspace.com>
2025-08-21 14:08:40 -07:00
Rob Bocchino
7972392cf4
Reformat FppTest (#4048) 2025-08-19 17:48:16 -07:00
Thomas Boyer-Chammard
a070ee768a
Fix AI Policy link in PR template (#4019) 2025-08-13 14:25:03 -07:00
Zimri Leisher
30a3902e3e
FpySequencer stack based architecture (#3975)
* Some work towards stack based arch

* Bring fp/int conv up to date

* Get compiling with stack based arch

* Start trying to fix UTs

* Start adding store/load dirs

* Add push val dir

* UTs are running

* UTs passing

* Make exit stack based

* Fix more uts

* Fix final UTs

* sp

* Fix overflow potential err

* Fix another overflow

* same error fix

* Update sdd

* sp

* Fix undefined behavior with bitshift of signed integer

* sp

---------

Co-authored-by: Zimri Leisher <zimri.leisher@fireflyspace.com>
2025-08-13 09:51:30 -07:00
Thomas Boyer-Chammard
4e5bb71460
Fix HelloWorld CI following update to v4.0 (#3997) 2025-08-06 16:02:15 -07:00
Amber Borjigin
b72d866d19
Generative AI documentation Added (#3932)
* fixing error #3897

* Generative AI documentation added

* Update GENERATIVE_AI.md

* Update GENERATIVE_AI.md

* Update pull_request_template.md

resolving comments

* Update OsTime.cpp

resolving comment

* updating expect.txt to have "GPT"

* Update GENERATIVE_AI.md

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

* Fix relative link and display

* updates to GENERATIVE_AI.md

* Fix merge

* Update GENERATIVE_AI.md

* Update cross-compilation.md

* reverting back to AI b/c branch confusion

* updating disclosure and file name

* Update to current in fprime devel

* Fix relative link and display

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
Co-authored-by: Rob Bocchino <bocchino@icloud.com>
Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>
2025-08-06 15:32:52 -07:00
Thomas Boyer-Chammard
be7e4ea098
Fix F Prime location in LedBlinker CI (#3988)
* Fix F Prime location in LedBlinker CI

* Fix framing-selection
2025-08-05 18:51:01 -07:00
Justine West
dfaf496263
Add DP Demo for testing DPs and fprime-dp-writer (#3951)
* Initial DpDemo component, added test for decoding DPs

* Updated Dp demo to include additional types, arrays, and struct records

* Added struct member array to DP demo

* Remove unused tlm

* Cleanup after merging devel

* Add deepdiff to requirements, fix formatting, update spelling

* fpp v3.0.0a16

* fprime-gds v4.0.0a10

* Add 3 array record cases to DP demo

* Remove comments

* Remove deepdiff

* Formatting, update spelling

* FPP v3.0.0a18

* Spelling

---------

Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>
2025-08-05 12:28:00 -07:00
Thomas Boyer-Chammard
c69ff72110
Format Svc and add to CI (#3978)
* Format Svc and add to CI

* Fix comlogger include

* fix assert UTs

* Fix static analysis warning

* formatting
2025-08-04 16:21:47 -07:00
Thomas Boyer-Chammard
ab58cf18fb
Format Fw and add to CI (#3976)
* Format Fw and add to CI

* Fix include of HPP file instead of H in extern C

* Fix format strings
2025-08-04 12:56:02 -07:00
Mishaal
02afd01545
Fix warnings reported by clang-tidy 20.1 (#3949)
* Clang 20.1 UT Errors

* CI fixes

* Remove m_rng and use STest

* 1 more update to STest

* Resolve spellcheck conflict

* Resolve spellcheck conflict

* Init severityString to null ptr

* Fix CPP formatting

* Format QueueRules.cpp

---------

Co-authored-by: thomas-bc <thomas.boyerchammard@gmail.com>
Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>
2025-08-01 17:21:07 -07:00
Amber Borjigin
29b9f2b4bf
Bump GDS to latest release (#3964)
* Bump GDS to latest release 

Fixes #3963

* Set LEDBlinker to FPrime Framing

* Set Rasbperry Pi Integration Test Framer

* Remove spurious 'g'

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
2025-08-01 08:52:22 -07:00
Thomas Boyer-Chammard
e17d42a9ff
Format Drv module (#3960)
* Format Drv module

* Add Drv to format CI check

* Fix double // in include path
2025-07-31 15:49:45 -07:00
Thomas Boyer-Chammard
578e61f1da
Format Os Module (#3959)
* Format Os module

* Add Os to format-check CI

* Remove double semi-colon
2025-07-31 15:40:30 -07:00
Thomas Boyer-Chammard
3dc73f9d72
Update GDS and Tools requirements for v4.0.0a2 (#3953)
* Update GDS and Tools requirements for v4.0.0a2

* Disable UT run in Hello World CI
2025-07-30 12:01:14 -07:00
Moises Mata
268e168f23
Restructure core subtopologies and add Svc_Subtopologies target (#3904)
* Modify Com/Ccsds/Fprime ComDriverConfig & TopologyDefs for easier ComDriver config

* Fix BaseID collision

* Removed restrict platform, UART/TCP driver configs different files, CMake switch depending on FPRIME_HAS_SOCKETS

* Add Exclude_FROM_ALL to all subtopology cmake modules

* remove exclude from ComCcsds (needed for Ref)

* Remove exclude from all for testing

* Exclude_from_all only on comLoggerTee, comFprime (not used in Ref)

* Added Svc_Subtopologies target

* Use add_custom_target, spelling fix

* Add Configs to Svc_Subtopologies target

* Removed comDriver as instance within subtopologies, now within project topology

* Take out cmdSeq from ComSubtopologies, put in FileHandling

* Added Subtopology States for all, common pattern users can follow

* Fix Extra newline

* Moved Phased comDriver code into RefTopology.cpp

* Update metadata

check-spelling run (pull_request_target) for subtopology-config-phasing-updates

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

* Fixed call to default stack size

* Moved cmdSeq from FileHandling subtopology to Ref Root Topology

* Fix integration test

* Remove unneeded Os includes in RefTopology.cpp

* Fix BaseIds

* Add comment for BaseIDs, comDriver configuration order fix

* Restructure of enums within Com Subtopologies

* Correct include for ComCcsds enum headers

* Using namespace syntax change

* Fix BaseIds

* Update metadata

check-spelling run (pull_request_target) for subtopology-config-phasing-updates

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

* Remove unneeded Dependency

* Add enum at the top

* Fix RefTopology.cpp

* Update Comment

---------

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
Co-authored-by: Moises Mata <moisesmata@users.noreply.github.com>
2025-07-30 10:25:29 -07:00
Cel Skeggs
29c537f076
Add lightweight SpscQueue class (#3871)
* Add lightweight AtomicQueue class

* Improve naming of SpscQueue

* Fix spell checking for SPSC

---------

Co-authored-by: Rob Bocchino <bocchino@jpl.nasa.gov>
2025-07-23 17:54:07 -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
Mishaal
0bb6d59230
Rework fpp test (#3912)
* Add FppTestProject level

* Fix FPP Test Project UT errors

* Add back in FppTest deployment & make empty main in source.cpp

* Remove Wold-style-cast to see if that fixes CI issues

* Update add_compile_options

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
2025-07-22 19:34:56 -07:00
M Starch
cca4e1261c
Remove RPI project in lieu of the LED workshop (#3908) 2025-07-22 15:31:22 -07:00
Moises Mata
2e7bdd50ac
Add ComLoggerTee Core Subtopology (#3867)
* Added ComLogTSplit subtopology, compiles but needs testing within a larger topology

* Added ComLogTSplit Subtopology
- Takes com in from tlm send and uses a com splitter to split between comQueue and comLogger
- Uses the instance format, will be compatible with fprime-util new --subtopology-instance in fprime-tools update

* Update metadata

check-spelling run (push) for add-com-logger-subtopology

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

* Syntax fixes to include and add_fprime_subdirectory

* Remove uneeded base address in config

* Fix BaseID clashes

* Fix ComLogTSplit PingEntries Namespace

* Update metadata

check-spelling run (pull_request_target) for add-com-logger-subtopology

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

* Removed un-needed mallocator include in RefTopology.cpp

* Update BASE_IDS in Ref, Subtopologies. ComLogTSplit -> ComLoggerTee

* Update metadata

check-spelling run (pull_request_target) for add-com-logger-subtopology

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

* Removed unneeded headers is RefTopologyDefs.hpp

* ComFprime fix: subtopology state references and configObjects phased code

* Queue size bigger in ComFprime

* Add missing tearDownComponents phase to comQueue(comFprime) component in ComFprime.

---------

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
Co-authored-by: Moises Mata <moisesmata@users.noreply.github.com>
2025-07-21 17:28:51 -07:00
Zimri Leisher
a91f24cb38
Add float to int conversion directives, some misc changes (#3847)
* Add fptoi and itofp dirs

* Fix F32 literal

* Add some file read stage telemetry to err msgs

* Update default register count to 128

* Fix NOT directive to behave properly with if

* Make fptoi and itofp signed/unsigned

* fix warning

* Fix another warning

* Fix sp
2025-07-13 11:22:33 -07:00
Zimri Leisher
5c896379e5
Add fpext, fptrunc directives (#3845)
* Add fpext, fptrunc, combine with not into unary op, tests pass

* Some UTs, switch to using memcpy

* Add UTs for all binary and unary ops

* Some more UTs

* sp

---------

Co-authored-by: Zimri Leisher <zimri.leisher@fireflyspace.com>
Co-authored-by: M Starch <LeStarch@googlemail.com>
2025-07-03 16:23:03 -07:00
Mishaal
ebaf92b2c6
Make Fw::TimeInterval an FPP Struct (#3834)
* Update Fw/Time/TimeInterval to use an FPP struct

* Spelling; add TimeInterval UTs; remove UT-only stdout << method which is autocoded now for TimeInterval

* Add TimeInterval sub tests

* Re-factor tests into TestMain/Tester format files, separating Time and TimeInterval

* Add TimeIntervalTester as friend, for consistency

* Address build errors

* Update fpp comments

* Update TimeInterval to use FPP struct as underlying member variable type, only

* Upate CMake for build errors
2025-07-03 14:16:36 -07:00
Zimri Leisher
e3376dca9e
FpySequencer floating point comparisons (#3820)
* Add a little work on fp cmps

* Lil more work on fp cmp

* Finish flt stuff, add UT

* sp

* Much cleaner binary cmps

* Add final UTs

* sp

---------

Co-authored-by: Zimri Leisher <zimri.leisher@fireflyspace.com>
Co-authored-by: M Starch <LeStarch@googlemail.com>
2025-07-03 14:16:22 -07:00
Moises Mata
d69b7a10d1
Add Core Subtopologies: ComFprime, ComCcsds, DataProducts, FileHandling (#3768)
* Added led-blinker workflow for aarch64-linux platform

* Update runner label

* Added Tags to RPI self hosted workflows, sparse-checkout-cone-mode false

* Add subtopologies to Svc/ restructing of Ref to include CDH subtopology

* CDHCore Subtopology added under Svc and integrated into Ref

* Health instance within CDHCore references CDHCoreConfig for queue size

* Update metadata

check-spelling run (push) for add-subtopologies

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

* Added AssertFatalAdapter Version PassiveTextLogger to Subtopology, config clarity improvements

* Comms subtopology without cmdSeq created, integrated in Ref

* Added cmdSeq to Comms Subtopology, integrated into Ref

* Add FileHandling Subtopology, initial structure

* Fixed Spelling, Flie -> File

* Update metadata

check-spelling run (push) for add-subtopologies

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

* Added working FileHandling, DataProducts subtopology, integrated into Ref

* prmDb part of FileHandling, fatalHandler part of CDHCore

* Update metadata

check-spelling run (push) for add-subtopologies

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

* Update comment for clarity

* Initial move to phasing components

* Fixing Phasing: Adding initial Phasing for CDHCore, DataProducts, FileHandling

* Renaming topologydefs.hpp, phasing fully working on all four subtopologies, needs cleaning up

* Cleanup with Ports_ComPacketQueue, definition only in Comms.fpp now

* Base project with all 4 subtopologies, integrated into Ref, and passing CI

* Initial Commit with all Subtopologies in Svc/Subtopologies

* Added posixtime back in to Ref Deployment (Accidentally Deleted)

* Updates to match new subtopology structure, integrate CCSDS into Ref

* Changes to CommCCSDS that go with last changes

* Standardize subtopology structure and naming to PascalCase

* Namespace fixe for ComFprime

* CDHCore->Cdhcore for consistency

* Rename CDHCore to CdhCore for consistency

* Update metadata

check-spelling run (pull_request_target) for add-subtopologies

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

* Reorder on teardown phases for Com Subtopolgies

* Cpp check style fix

* Fix: Add missing tearDownComponents cleanup for DataProducts dpBufferManager

* Delete old comments, test using same mallocator for all subtopologies

* fix: Deallocated DataProducts BufferMgr

* Fix DataProducts subtopology memory cleanup

* Fix: Dataproducts subtopology teardown order

* Added tearDownComponents(state)

* Consolidate all cleanup to teardowncomponents

* Fix memory leaks: restore teardown phases

* Removal of redundant teardowncomponents()

* Revert "Removal of redundant teardowncomponents()"

This reverts commit 29d4ff8242574f1afc1bb6aacdf5cfef4d79987d.

* Fix formatting, remove commented out code

* Swap hardcoded numbers to config constants in subtopologies

* register_fprime_config() in config modules, isolated ComDriver into a separate config fpp file

* Added explicit CMake Module Names and Depends between Subtopologies and their Configs

* Fixed CCSDS case, more config constants

* Added explicit depends for each subtopology config

* added mallocator config, subtopology state structure

* Update subtopology config names for clarity, fixes #3571

* Fix reference to dpBuffer config Constants

---------

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
Co-authored-by: Moises Mata <moisesmata@users.noreply.github.com>
2025-06-26 15:00:57 -07:00
Thomas Boyer-Chammard
c602046f4b
Format Svc/Ccsds and add to CI (#3811)
* Format Svc/Ccsds package

* Add check to CI
2025-06-26 13:38:20 -07:00
Zimri Leisher
50d3d4e492
FpySequencer V0.3 (#3702)
* Start combining dirs and cmd

* Much closer to combining dir and cmd

* Finish making cmds work

* Add directive error codes, fix UT

* Add deser lvar directive

* Add comparison operators

* Add unsigned/signed inequality ops

* Rename store to setreg

* First UT with a binary comparison op!

* Remove printfs

* Doc commnt

* Add and/not, and/or under binary cmp

* Fix a couple bugs in sequencer

* Add exit directive'

* Make exit actually end sequence if positive

* A little more work on UTS

* Fix UTs

* Add deser lvar UT

* Add exit, not, set reg, and binary cmp UTs

* Rename lvar to sreg

* Get the last few old refs to lvar

* sp

* Fix typo

* Fix typo

---------

Co-authored-by: Zimri Leisher <zimri.leisher@fireflyspace.com>
Co-authored-by: M Starch <LeStarch@googlemail.com>
2025-06-26 11:38:19 -07:00