8 Commits

Author SHA1 Message Date
M Starch
e21fa7b109
Add Svc.BufferAllocation FPP interface (#4148)
* Add Fw::Buffer allocation interface

* Update Svc/Interfaces/Allocation.fpp

Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>

* Rename BufferAllocation.fpp interface file

* Update input file for Svc_Interfaces module

---------

Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>
2025-09-15 16:35:24 -07:00
Andrei Tumbar
5723115f5e
Add FPP Interfaces (#3709)
* Interfaces

* Point to new fpp alpha release

* Fix the fprime-gds version

* Update for framer/deframer work

* Fix cmake tests

* Clean up annotations

* Clean up final fpp
2025-06-24 09:08:44 -07:00
Thomas Boyer-Chammard
c3b2e04880
Use data return pattern on Uplink and standardize port names (#3546)
* First pass at Svc + TcpClient implementation

* 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

* Update Deframer interface to include bufferReturn

* Address review comments
2025-05-08 10:54:54 -07:00
Thomas Boyer-Chammard
d0246f148b
Add Framer FPP interface, implement FprimeFramer and adapt ComQueue (#3486)
* Initial FprimeFramer and FprimePacketizer

* Code clarity + set up UTs

* Rework ComQueue and ComStub to use DataWithContext

* Add packets to RefPackets.fppi

* Fix ComQueue tests

* Add hotfix to FileDownlink instead of ComQueue

* Fix cancelPacket as well

* Fix ComQueue UTs by removing hotfix

* Refactor DataWithContext to use an FPP object for context instead of Fw.Buffer

* Touch up testing

* Add docs

* more docs

* More docs

* Rework buffer deallocation pattern to pass-through ComQueue

* Update ComStub UTs

* Restore original FileDownlink.cpp

* Formatting tweak

* Update deprecated getSerializeRepr() calls

* deserialization methods

* Fix spelling

* add cast for safety

* CMakefile change

* Bump ComQueue depth

* Update RPI deployment with new Downlink stack

* Rename comQueueIn port to comPktQueueIn

* Fix comQueueIn to comPktQueueIn change

* Remove legacy Svc.Framer

* Fix CMake UTs

* Fix RPI topology config

* Fix FprimeProtocol.fpp module

* Fix namespacing

* Use const reference for FrameContext port

* Review comments EXCEPT port passback refactor

* Rework ComStub with new ByteStream

* New ByteStream - ComInterface model

* Rework TcpClient / TcpServer with new bytestream

* Adapt UDP component for new ByteStream

* Adapt FrameAccumulator for new ByteStream

* Adapt FprimeFramer for new ByteStream

* Update Ref topology with new ByteStream model

* Remove all legacy deallocates from Drivers; reintroduce DEPRECATED model types

* Fix spelling and include error

* More spelling....

* RPI and RpiDemo fixes

* Fix conversion warning on RPI

* static_cast for short int on RPI

* Standardize port names

* Remove legacy Drv types and merge RECV/SEND enum type, delete StreamCrossover

* Update SDDs

* Update SDDs

* Fix ComInterface <-> Framer interfaction, clarify comments and fix annotations

* Switch ComStub from ASSERT to log failure and return buffer

* Add history size check + clarify test handler overrides

* Fix RPI topology to wire comStub on Uplink

* Rename comm to comDriver in RPI topology

* Update communication adapter interface docs
2025-04-29 16:40:36 -07:00
Thomas Boyer-Chammard
dcc3436200
Split Deframer into FrameAccumulator, Deframer, and Router (#3250)
* Split Router out of Deframer - initial implementation

* Rename variable to packetBuffer and resolve conversion warnings

* Add test cases for each incoming packet type

* Adjust comments and stuff

* Update Ref topology with Router

* WIP - FrameAccumulator

* Add lightweight deframer

* Working frame detector, accumulator, and fprime packet

* CCSDS implementation and better checksums

* Fixing overly small start word to use SCID as well

* Fixing frame accumulator for new structure

* Minor cleanup to frame detectors

* Add CCSDS Deframers and F´ minimal deframer

* Clean up comments

* Update Ref topology with Accumulator/Deframer/Router

* Update buffer manager

* Upgrade Router.cpp to latest Fw::Logger

* Update RPI deployment to use FrameAccumulator/Router

* Remove CCSDS Deframers

* Add first pass at UTs

* add buffer accumulation testing

* start SDD and rename author

* Fix static analysis warnings and add comments to UTs

* Spelling

* Add FprimeFrameDetector UTs

* Fix CI issue

* Fix test component creation

* Add first pass at SDDs

* Rename FrameAccumulator allocation ports

* Add review comments

* Functional one-off detection

* Fix algorithms and rename Deframer to FprimeDeframer

* Remove file

* Remove templated detectors

* Improve test code

* Rename frame Footer to Trailer, and improve SDDs

* finish renaming footer to trailer and add implementation note

* Fix spelling and CI warning

* Fix test code

* More CI and spelling fixes

* Add back virtual destructor

* appease pedantic warnings

* Fix declaration ordering for safe destruction

* Run formatting and add a few comments

* Add RouterInterface.fppi and use it in Router

* review changes round 1

* Rename Router to FprimeRouter and add test for unconnected unknownDataOut port

* Finish renaming Router -> FprimeRouter

* Use get-target-branch for cookiecutters tests and fix spelling

* fix a few comments, CI warning and formatting

* Update types for compatibility with updated FwSizeType

* Move FprimeProtocol.fpp to Svc/ and update non-compliant UINT types

* Code review recommendations

* Move FrameAccumulator destruction to cleanup() code

* Add frame validation to FprimeDeframer

* Add cleanup() call to test code

* Fix static analysis warnings

* Resolve type warnings and add multiple events in FprimeDeframer

* latest latest v3

---------

Co-authored-by: Michael D Starch <Michael.D.Starch@jpl.nasa.gov>
2025-03-12 16:05:09 -07:00
Joaquim Silveira
e3a4024b5f
Created ComInterface.fppi (#3017) 2024-11-11 13:53:08 -08:00
CombustableLem0n
de2089cd01
Renamed Time Interface File and fixed where it's included (#2728)
* Renamed Time Interface File and fixed where it's included

* Fixed Typo in TimeInterface.fppi

* Reversing typo fix

* Fixed typo again, was trying to understand why checks were passed when typo was present.
2024-05-14 11:19:23 -07:00
M Starch
b5777e99dc
Convert Svc.Time into An Interface (#2317)
* Renaming of linux time files to posix

* Fixes #2256. Renames LinuxTime into PosixTime implementing new Time interface

* sp

* Static analysis errors

* Cleaning up other LinuxTime references
2023-10-25 08:54:51 -07:00