14 Commits

Author SHA1 Message Date
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
M Starch
a5c853b9cf
NATIVE_INT_TYPE portNum to FwIndexType portNum (#3236) 2025-02-14 12:25:12 -08:00
M Starch
e9ea56d41a
UDP does not bind on send only port. Fixes: #3127 (#3143)
* UDP does not bind on send only port. Fixes: #3127

* Refining autoconnection behavior. Fixes: #3144

* Simplifying read loop

* I should probably at least build before pushing...

* sp

* Adding UTs to catch UDP send only

* Adding auto-connect disabled UTs

* Disabling UDP configure, reconnect -> private, and SDD fixes

* Renaming reconnect to reopen

* Fixing deployment examples

* Add links to SDD

* sp
2025-01-28 09:12:22 -08:00
M Starch
9ed68fdd06
Correcting shutdown/close usage; refactoring TcpServer (#2950)
* Correcting shutdown/close usage; refactoring TcpServer

* Fixing Tcp

* Review and CI fixes

* ...and the other half of the fixes
2024-10-16 09:36:34 -07:00
Thomas Boyer-Chammard
564cb5773b
Add Os::RawTime OSAL implementation, refactor Os::IntervalTimer (#2923)
* Add Os::RawTime and preliminary rule-based tests

* Implement Stubs and stub tests tests + misc improvements

* Update delay functions to use Fw::TimeInterval instead of Fw::Time

* Replace TimerVal with Os::RawTime FPP type, SERIALIZED_SIZE fixed to 2*sizeof(U32)

* Fix spelling and legacy code

* Fix test import

* Remove TimerVal files and misc clean up

* Add Fw/Time as dependency of Os module

* Fix include guards

* Fix default constructors and missing getHandle stub

* Add Handle and Serialization size to FpConfig, refactor interface for less vtable calls, refactor IntervalTimer

* Fixes for new OS CMake API

* Add RawTime FPP Model

* Rename getRawTime to now(), better error handling, added docs for all functions

* Correct handle size, spelling, and more robust test IntervalTimer test

* Peer review changes

* Move `Os.RawTime` to `Os/Types.fpp`

* Fix unused variable

* Fix spelling and comments

* spelling extravaganza

* Update metadata

check-spelling run (pull_request_target) for os-interval-timer

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

* Reference based approach to minuend and subtrahend

---------

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>
Co-authored-by: M Starch <LeStarch@googlemail.com>
2024-10-14 10:06:45 -07:00
Johan Bertrand
652c670e68
Fix warnings in tcp/udp UT (#2744)
* Fix warnings in TCP/UDP UT

* Clean unit tests

* Fixes from review

* Fixes from review 2

* Revert changes

* Fix indentation

* Fix from merge request

* Fix log format

* Fix indentation

* add another status for no data available and allow retry in UTs

---------

Co-authored-by: crsmith <celeste.r.smith@jpl.nasa.gov>
2024-10-07 14:48:34 -07:00
Celeste
e0c5a892b3
Add Open Port Request on Sending Side of IpSocket (#2683)
* remove thread specific behavior from the library level of IpSocket. Moved behavior to the component level by placing thread protection behavior to SocketReadTask, now called SocketComponentHelper. Calls to socket functionality from TcpClient/TcpServer/Udp will go through SocketComponentHelper rather than directly to the library. This also implemented the original desired functionality of reopening a client socket on a send call rather than only in receive

* merge new logger name

* update unit tests for new structuring and update smake to allow unit tests whos name includes more than the module name

* updates and fixes for TcpClient's unit tests

* fix/work around for an interesting issue where the TcpClient receive buffer equality check would fail because the size of the original buffer (owned by the unit test) gets set to 0, sometimes. Maybe 1/10 runs. I changed it to save the size of that buffer before it does the send and use that saved value in the equality check

* fix tcp server and tcp client unit tests (hopefully)

* update UDP uts

* fix startup function change

* fix reference argument and mutex locking to take care of issues uncovered in integration testing

* updating docs

* updates to remove dead code and comments

---------

Co-authored-by: crsmith <celeste.r.smith@jpl.nasa.gov>
2024-09-25 10:23:56 -07:00
M Starch
7159e7e347
Implements #2723: Adds Os::Console to replace Os::Log (#2831)
* Initial logging refactor - WIP

* Removing LogAssert as it is not used

* Working on Fw::Logger rewrite

* Initial Os::Console refactor

* Fixing Fw::Logger unit tests

* Fixing up UT build

* Adding Os::Stub::Console implementation

* Added interface UTs

* Adding posix console tests

* Fixing Linux errors

* Spelling

* Initial review requests

* Fixing RPI build issues

* Fixing codeql errors

* Fixing code QL

* Validating 'message' parameter
2024-08-15 18:53:36 -07:00
M Starch
e55ebca49b
Fixing port selection in TCP UTs (#2739)
* Fixing port selection in TCP UTs

* Fixing CI issues, UDP on port 0 test, and spelling

* Unused variable

* Fixing UDP port collisions; 2sp -> 1sp

* Fixing port search initial conditions
2024-05-22 19:13:03 -07:00
M Starch
640cf44c80
Os task refactor issue 2526 (#2672)
* Task refactor WIP -- compiles, but does not link

* Adding isCooperative method - WIP

* more WIP

* Initial Os::Posix::Task implementaion

* Adding makeDelegate functions; Fixing existing UTs

* Touching up comments

* Fixing Linux issues

* Adding type_traits import

* Removing TaskId and reworking handle storage

* Do not need to assert that a reference is not nullptr; compiler will get angry

* Starting UT development

* Start test works

* Working start and join rules; random test

* Adding state, delay, and count tests

* Adding stub interface tests

* sp

* Registry tests

* Fixing UTs

* Fixing PTHREAD_MIN_STACK for linux

* Missing newlines

* Fixing GPIO driver's task

* More build fixes

* Fixes for CI

* Correcting errors in GNU only code

* Fixing review comments

* Fixing sp

* Fixing RPI (again)

* Removing divergent open rules from interface testing. Fixes #2733

* Fixing review comments

---------

Co-authored-by: Kevin F. Ortega <kevin.f.ortega@jpl.nasa.gov>
2024-05-22 16:38:18 -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
Johan Bertrand
0d4e909fe9
Add log on TCP/UDP UT failure and fix UDP UT (#2705)
* Add perror and unify failure in unit tests

* Change perror to printf to output in stdout

* Fix UDP unit tests

* Revert asserts to expects

* Fix from review
2024-04-29 15:53:00 -07:00
M Starch
f797734994
Integrate/fpp v2 (#2293)
* WIP: FPP v2

* Initial integration of FPP UT generation

* Updating UT GTestBase.hpp includes

* Update fpp version

* Revise header path

* Revise test; add modified generated code

* Revise modified code gen

* Revise modified generated code

* Add and move files

* Revise Fpp tests

* Add fpp deps

* Update fpp version

* Update include paths

* Fix unit tests

* Fix unit tests

* Revise TlmPacketizer test

* Fix unit tests

* Fix unit tests

* Delete temporary files

* Updating for new FPP tools flags

* Bump for fixed FPP tools

* Migrating TcpServer unit tests to v3.4.0 standards

* Migrating Udp unit tests to v3.4.0 standards

* Migrating LinuxSpiDriver unit tests to v3.4.0 standards

* Migrating LinuxI2cDriver unit tests to v3.4.0 standards

* Migrating LinuxGpioDriver unit tests to v3.4.0 standards

* Migrating TcpClient unit tests to v3.4.0 standards

* Migrating StreamCrossover unit tests to v3.4.0 standards

* Migrating SignalGen unit tests to v3.4.0 standards

* Migrating Checksum unit tests to v3.4.0 standards

* Migrating queued unit tests to v3.4.0 standards

* Migrating empty unit tests to v3.4.0 standards

* Migrating passive unit tests to v3.4.0 standards

* Migrating active unit tests to v3.4.0 standards

* Migrating FilePacket unit tests to v3.4.0 standards

* Migrating Logger unit tests to v3.4.0 standards

* Migrating port_return_type unit tests to v3.4.0 standards

* Migrating ext_dict unit tests to v3.4.0 standards

* Migrating time_tester unit tests to v3.4.0 standards

* Migrating serial_passive unit tests to v3.4.0 standards

* Migrating tlm_multi_inst unit tests to v3.4.0 standards

* Migrating param2 unit tests to v3.4.0 standards

* Migrating param_string unit tests to v3.4.0 standards

* Migrating command_string unit tests to v3.4.0 standards

* Migrating command_res unit tests to v3.4.0 standards

* Migrating tlm_onchange unit tests to v3.4.0 standards

* Migrating param_multi_inst unit tests to v3.4.0 standards

* Migrating command2 unit tests to v3.4.0 standards

* Migrating port_nogen unit tests to v3.4.0 standards

* Migrating tlm2 unit tests to v3.4.0 standards

* Migrating command_tester unit tests to v3.4.0 standards

* Migrating event2 unit tests to v3.4.0 standards

* Migrating param_tester unit tests to v3.4.0 standards

* Migrating tlm_string unit tests to v3.4.0 standards

* Migrating testgen unit tests to v3.4.0 standards

* Migrating log_tester unit tests to v3.4.0 standards

* Migrating port_loopback unit tests to v3.4.0 standards

* Migrating param_enum unit tests to v3.4.0 standards

* Migrating command_multi_inst unit tests to v3.4.0 standards

* Migrating log1 unit tests to v3.4.0 standards

* Migrating event_multi_inst unit tests to v3.4.0 standards

* Migrating serialize_user unit tests to v3.4.0 standards

* Migrating telem_tester unit tests to v3.4.0 standards

* Migrating param1 unit tests to v3.4.0 standards

* Migrating event_throttle unit tests to v3.4.0 standards

* Migrating string_port unit tests to v3.4.0 standards

* Migrating command1 unit tests to v3.4.0 standards

* Migrating noargport unit tests to v3.4.0 standards

* Migrating time_get unit tests to v3.4.0 standards

* Migrating event_enum unit tests to v3.4.0 standards

* Migrating comp_no_namespace unit tests to v3.4.0 standards

* Migrating event1 unit tests to v3.4.0 standards

* Migrating event_string unit tests to v3.4.0 standards

* Migrating tlm1 unit tests to v3.4.0 standards

* Migrating comp_diff_namespace unit tests to v3.4.0 standards

* Migrating tlm_enum unit tests to v3.4.0 standards

* Migrating pass_by_attrib unit tests to v3.4.0 standards

* Migrating stress unit tests to v3.4.0 standards

* Migrating interface1 unit tests to v3.4.0 standards

* Migrating templates unit tests to v3.4.0 standards

* Migrating FileUplink unit tests to v3.4.0 standards

* Migrating ComLogger unit tests to v3.4.0 standards

* Migrating SystemResources unit tests to v3.4.0 standards

* Migrating TlmPacketizer unit tests to v3.4.0 standards

* Migrating ComStub unit tests to v3.4.0 standards

* Migrating ComSplitter unit tests to v3.4.0 standards

* Migrating Health unit tests to v3.4.0 standards

* Migrating BufferLogger unit tests to v3.4.0 standards

* Migrating AssertFatalAdapter unit tests to v3.4.0 standards

* Migrating FileDownlink unit tests to v3.4.0 standards

* Migrating StaticMemory unit tests to v3.4.0 standards

* Migrating CmdSequencer unit tests to v3.4.0 standards

* Migrating Framer unit tests to v3.4.0 standards

* Migrating GroundInterface unit tests to v3.4.0 standards

* Migrating FileManager unit tests to v3.4.0 standards

* Migrating ActiveTextLogger unit tests to v3.4.0 standards

* Migrating LinuxTime unit tests to v3.4.0 standards

* Migrating Deframer unit tests to v3.4.0 standards

* Migrating Deframer unit tests to v3.4.0 standards

* Migrating BufferRepeater unit tests to v3.4.0 standards

* Migrating TlmChan unit tests to v3.4.0 standards

* Migrating GenericHub unit tests to v3.4.0 standards

* Migrating BufferAccumulator unit tests to v3.4.0 standards

* Migrating LinuxTimer unit tests to v3.4.0 standards

* Migrating BufferManager unit tests to v3.4.0 standards

* Migrating CmdSplitter unit tests to v3.4.0 standards

* Migrating ComQueue unit tests to v3.4.0 standards

* Migrating Os unit tests to v3.4.0 standards

* Federating FPP tools with release versions

* Python formatting

* Reverting FPPTest to correctly working build

* Removing minor dead code and comments

---------

Co-authored-by: bocchino <bocchino@jpl.nasa.gov>
2023-10-05 14:42:09 -07:00