7 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
f38010abca
(De)Serialization clean up of temporary workarounds (#3971)
* Staging DEPRECATE changes in preparation for new FPP alpha. Removed backwards compat hacks. Updated some uses of the legacy functions that were missed originally.

* Remove declaration of serialize and deserialize from RawTime as those should be inherited now

* Removing FW_SERIALIZE_UNIMPLEMENTED and FW_DESERIALIZE_UNIMPLEMENTED from SerializeStatus

* Removing superfluous comma

* Missed AmpcsEvrLogPacket. Fixing a minor whitespace issue in Serializable.

* Un-deprecating serialize/deserialize for this release

* Restoring DEPRECATED for the noLength functions

* Pulling in fpp 3.0.0a17. Fixing some lingering issues with refactoring.

* Format files

* Update fprime-fpp package

* Fixing some lingering issues with serialization modernization.

* Fixing weird merge issue with AmpcsEvrLogPacket

* More clang issue fixes

* Still pesky clang formatting issues. Superfluous whitespace.

* Removing redundant virtuals for overriden methods

* Incorporating PR comments

* clang formatted Serializable.hpp

* Removing redundant serialize and deserialize methods in TestAbsType. Inherit from parent.

---------

Co-authored-by: thomas-bc <thomas.boyerchammard@gmail.com>
2025-08-06 11:50:32 -07:00
Andrei Tumbar
bf7d9866cf
Improve backward compatibility [de]serialize[From/To] fallback on Fw::Serializable and Fw::Buffer (#3962) 2025-08-01 13:28:32 -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
Thomas Boyer-Chammard
1a07c847b1
Add code formatting check to CI (#3778)
* Format Fw/Buffer Fw/Cmd and Fw/Com

* add code format check

* fix branch to pull from

* debug

* uninstall before install

* Use pip3

* debug with tmate

* put fprime-tools dep in req.txt

* test

* req hash

* setup python first

* use nasa pointer

* Revert "Format Fw/Buffer Fw/Cmd and Fw/Com"

This reverts commit b4968ec6805006a99bd2a01c0a28fe6fb5f6430f.

* Format Fw/Buffer Fw/Cmd and Fw/Com

* Update to fprime-tools 4.0.0a2

* Use env var for readability

* naming

* Add clang-format to requirements.txt

* Skip clang-format requirement on armv7l platform
2025-06-24 12:18:34 -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
Timothy Canham
6d9c4c2d06 Initial check-in 2017-06-16 08:25:38 -07:00