23 Commits

Author SHA1 Message Date
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
Vince Woo
3422cfa117
Mark legacy serialize and deserialize methods as DEPRECATED. Upgrade remaining references to legacy methods. (#4145)
* Mark legacy serialize and deserialize functions as deprecated. Clean up of remaining legacy references.

* Upgrading serialization in FppTestProject and Ref

* Fixed formatting issues
2025-09-22 07:57:34 -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
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
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
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
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
be91bfadf1
Support non-default Fw type config (ie: U16, U64) (#3714)
* Add FwBaseIdType, updates ActiveLogger, CmdDispatcher, TlmPacketizer to use Fw types, update unit tests

* Update unit tests, rename FwBaseIdType to FwIdType

* Cleanup

* Change type of sizeOfZeros

* Add FwIdType to TestConfigDeployment overriden config

* Add annotation

* Update Ref linuxTimer base id
2025-06-16 16:06:36 -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
M Starch
f912e1bd75
Issue 3285 reducing signed size type in os file (#3402)
* Remove FwSignedSizeType from file

* Restoring FwSignedSizeType to seek offsets

* Fixing usages and UTs

* Fixes on Linux

* CI fix

* CI round 3

* CI rev 4

* Fixing code scan errors

* Review fixes - pt 1

* Failed to save
2025-03-28 11:47:07 -07:00
M Starch
ec08d43dd3
Removes NATIVE_INT_TYPE, NATIVE_UINT_TYPE, and POINTER_CAST from Fw (#3286)
* NATIVE_INT_TYPE use in toString

* NATIVE_INT_TYPE use in SimpleObjRegistry

* NATIVE_INT_TYPE use in Asserts

* NATIVE_INT_TYPE use in Fw/Comp

* NATIVE_INT_TYPE use in getCapacity

* NATIVE_INT_TYPE use in getEntries

* NATIVE_INT_TYPE use in size/length

* NATIVE_INT_TYPE use in FILE_NAME_ARG

* NATIVE_INT_TYPE use in Fw (misc)

* NATIVE_INT_TYPE use in identifier

* NATIVE_INT_TYPE use in Fw (misc II)

* POINTER_CAST in Buffer

* POINTER_CAST in Serializable

* sp

* Removing no longer used DefaultTypes.hpp

* Fixes to accomidate Fw refactor

* Unit-test and CI fixes

* Fixing review comments - pt 1
2025-03-04 14:42:48 -08:00
Rob Bocchino
cdac751845
Make single-argument string constructors explicit (#2707)
* Revise Linux platform types

* Fix regression in test autocoder

TimeBaseStoreType is not the same as TimeBase

* Revise test autocoder

Cast to the TimeBaseStore type with a known size

* Revise test autocoder

Remove unnecessary const casting

* Fix integer type mismatch in ComQueue

* Update fpp version

* Update fpp version

* Revise DpWriter unit tests

Remove manually written functions
Use new autocode in tester base

* Update fpp version

* Update fpp version

* Revise DpTest

Add check for priority set by dpGet

* Reivse StringType; add ExternalString

* Revise dp test

* Revise dp test; update fpp version

* Revise dp test

* Revise dp test

* Revise dp test

* Revise dp test

* Revise dp test

* Revise dp test

* Revise dp test

* Revise dp test

* Revise dp test

* Revise fpp version

* Update fpp version

* Revise ExternalString

* Reformat Fw/Serializable.{hpp,cpp}

* Reformat StringType.{hpp,cpp}

* Revise StringBase

* Update fpp version

* Remove trailing space

* Reformat code

* Revise dp test

* Reformat cpp and hpp files in Fw/Types

* Revise string types

* Revise string types

* Revise string types

* Remove EightyCharString

* Revise CmdString

* Revise LogString

* Revise PrmString

* Revise TextLogString

* Revise Test/String

* Revise TlmString

* Revise InternalInterfaceString

* Revise Os/QueueString

* Revise Os/TaskString

* Add missing type qualifier

* Fix warning in String.hpp

* Revise string types

* Remove stray character

* Revise StringBase

* Revise string types

* Revise String type

* Revise FileNameString

* Revise string types

* Add missing file

* Revise InternalInterfaceString

* Revise comment

* Revise TlmString

* Revise string types

* Revise log strings

* Revise PrmString

* Revise Os string classes

* Revise string types

* Revise string types

* Revise os strings

* Add test for ExternalString to TypesTest

* Revise ExternalString

* Revise ExternalString

* Update fpp version

* Format Fw/Types

* Add static serialized size to StringBase

* Update fpp version

* Update fpp version; revise string classes

* Revise event handling in DpWriter

* Revise string implementations

* Revise string implementations

* Refactor dp tests

* Add static assertion to PrmBuffer

For safety's sake!

* Revise string implementations; update fpp version

* Revise StringBase

Existing code was correct but somewhat terse and obscure
Refactor and add comments for clarity

* Fix tests to conform to FPP changes

* Remove helper scripts

* Add const qualifier

* Revise StringBase

* Revise StringBase

* Revise comment

* Update fpp version

* Fix code formatting

* Make constructors explicit

* Make string constructors explicit

* Make string constructors explicit

* Revise String.hpp

Remove explicit from char* constructor
The autocoder depends on the implicit constructor

* Fixing improper null-termination in fail case

* Fixing conversion warnings

* Removing broken link

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
Co-authored-by: Michael D Starch <Michael.D.Starch@jpl.nasa.gov>
2024-04-30 11:28:39 -07:00
Johan Bertrand
d5181219d0
Fixed conversion warnings on framework tests (#2606)
---------

Co-authored-by: Michael D Starch <Michael.D.Starch@jpl.nasa.gov>
2024-04-29 18:39:20 -07:00
M Starch
58c21418aa
Issue 2457 (#2502)
* Os::File refactor: open w/ basic stub, posix UTs

* Refactoring Os::File for all methods, less UTs

* Adding rules-based common tests

* Fixing posix file for common UTs

* Adding WriteRead and WriteReadSeek tests

* Working random tests

* Working randomized tests and stub testing

* Fixing PrmDb unit tests

* Updating files to used FwSignedSizeType

* Factoring out the synthetic file system

* Initial work on CmdSequencer UTs

* Fixing linux implementation

* Newlines at end of file

* sp

* Static analysis checks

* Changing API to use enums

* Refactoring for proper class tree

* CmdSequencer UTs - WIP

* CmdSequencer UTs work

* Adding copy constructor functionality

* Spelling and static analysis fixes

* Copy constructor/assignment operator UTs and fixes

* Initial CRC work

* Working CRC and FPP models

* Minor UT fixes

* Correcting CMake choices implementation

* MAking implementation choices real dependencies

* Fixing implementation to use source files

* Fixing posix file read/write permissions

* Allowing None implementations

* Fixed CI breakages

* Fixing MyRules.hpp formatting

* Minor CRC unit test fix

* Removing direct write support

* Changing get delegate to static method of interface

* Replacing old comments with new comments

* Fixing friend regression

* Review fixes

* Fixing serialization method usages

* Review fixes

* Fixing RPI build

* Fixing FwBuffSizeType overflow

* Fixing review comment

* Renaming FwExternalSize -> FwSizeStoreType
2024-02-28 11:25:19 -08:00
M Starch
d177bb7ef9
lestarch: update for small platform support (no U64) (#1721)
* lestarch: update for small platform support (no U64)

* first-pass at fixing types interface

* fixing U64s in merged commit

* fixing improper loop limit

* fixing FwSizeType redefinition

* fixing review comments

* formatting Linux/FileSystem

* fixing static analysis errors

* fixing UTs when file system or memory to large

* disabling broken ut and fixing spelling

* cleaning up unused variable

* adding more comments to explain casting checks
2022-12-22 18:00:24 -08:00
Joshua Anderson
234bb5d176
Replace NULL with nullptr (#1049) 2021-09-29 09:04:52 -07:00
Joshua Anderson
1b9c785ce6
Remove void from parameterless functions (#811) 2021-07-14 12:54:01 -07:00
bocchino
1d98c13739 Revise Cmd Sequencer
Refactor types
Add changed symbols
2021-06-22 18:43:00 -07:00
bocchino
30df140f9e Revise CmdSequencer
Remove duplicate enum
2021-06-16 15:53:49 -07:00
Timothy Canham
8e874631ef Merge fixes from gcc 7.2 build 2020-07-06 23:13:55 -07:00
Michael D Starch
136af07edd mstarch: more header cleaning for issue: #189 2019-04-18 14:12:02 -07:00
Robert L. Bocchino Jr
db6be3acea Revise command sequencer
Update copyright notices in comments
2018-04-08 16:23:45 -07:00
Robert L. Bocchino Jr
75933997ba Revise command sequencer
Refactor command sequencer into generic and format-specific parts
Add support for AMPCS format
Revise unit tests to support multiple formats
Add AMPCS tests
2018-04-08 16:19:48 -07:00