31 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
M Starch
0659f0940b
Refactored type organization (#3422)
* Refactored type organization

* Creating better configuration/types header hierarchy

* Replace FpConfig type aliases with FPP generated aliases

* Add the aliases to the FPP model

* Config + Type Aliases builds

* Renamed Fw/Types.h,hpp to Fw/FPrimeBasicTypes.h,hpp

* Updating to FPP-a7

* Adding newline

* sp

* Fixing minor nit from review

* Spurious ;

---------

Co-authored-by: Andrei Tumbar <andrei.tumbar@jpl.nasa.gov>
2025-04-03 12:11:36 -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
58f4f96915
Remove NATIVE_INT_TYPE, NATIVE_UINT_TYPE, and POINTER_CAST from Svc (#3374)
* Remove NATIVE_* types from FileUplink

* Remove NATIVE_* types from RateGroupDriver

* Remove NATIVE_* types from ComLogger

* Addressing init function usage of NATIVE_ types

* NATIVE_ types from command dispatcher

* NATIVE_ types from ComQueue

* NATIVE_ types from CmdSplitter

* U32 -> FwOpcodeType in CmdDispatcher

* NATIVE_ types in BufferManager

* NATIVE_ types in LinuxTimer

* NATIVE_ types from BufferAccumulator and renabling UT

* NATIVE_ types from TlmChan

* NATIVE_ types from BufferRepeater

* NATIVE_ types from Active/Passive Rate Group

* NATIVE_ types from ComSplitter and ComStub

* NATIVE_ types from ActiveLogger and fixed ActiveRateGroup sdd

* NATIVE_ types from Dp*

* NATIVE_ types from FileManager and ActiveLogger (missed)

* NATIVE_ types from BufferLogger, FileDownlink, StaticMemory

* Deleting UdpSender/UdpReceiver that lack models and build config

* NATIVE_ types from Health

* NATIVE_ types from CmdSequencer

* NATIVE_ types from TlmPacketizer

* Fixing unit test issues

* POINTER_CAST from Svc

* CI fixes

* CI fixes (Linux)

* Fixing Ref/RPI for RG context

* CI (sp)

* Fixing RPI build for time conversions

* CI fixes (RPI)

* Self review comments

* Removing UDP sender/receiver config

* Review recommendations - pt 1
2025-03-17 09:58:56 -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
M Starch
a5c853b9cf
NATIVE_INT_TYPE portNum to FwIndexType portNum (#3236) 2025-02-14 12:25:12 -08:00
M Starch
ad3c2e5fb1
Removing printf from Svc (#3170) 2025-01-29 14:22:22 -08:00
M Starch
a049743e07
Removing component init() functions where unneeded (#2893)
* Removing component init() functions where unneeded

* Removing spurious assert
2024-09-23 18:39:00 -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
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
Johan Bertrand
f0f19baafb
Fix shadow variables (#2482)
* Fixed shadow warnings from Fprime

* Fix unit tests

* Fix missing shadow warnings

* Fix condition in cmake

* Fix cmake

* Fixes from review

* Fixed mistake in PathName

* Fixing comment

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
2024-02-01 10:18:10 -08:00
Johan Bertrand
7d13cbd8b8
Fix pedantic warnings (#2441)
* Fix macro pedantic warning

* Fixed pedantic warnings
2024-01-04 17:02:36 -08:00
kubiak-jpl
08a2c68ef8
Added a name only constructor to ComLogger (#1983)
* Added a name only constructor to ComLogger

* Minor fixup of CodeQL warnings

* Fixing ctor warnings, checking arg

* Reusing init_log_file in constructor

* sp

* NULL -> nullptr

* Adding throttle

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
2023-05-16 09:38:17 -07:00
M Starch
14091f63b9
fixing cppcheck detected issues (#1788)
* fixing cppcheck detected issues

* fixing spi casts to use the header type
2022-12-05 09:33:48 -08:00
M Starch
b76d8c9a0c
Update/types refactor as constants (#1623)
* lestarch: adding logical types implementation into Linux/StandardTypes.hpp

* lestarch: removing VxWorks StandardTypes from repository

* updated fprime types for correct compilation with vxworks and baremetal

* lestarch: refactoring types and configuration header w.r.t type design

* lestarch: replacing usages of AssertArg with FwAssertArgType

* lestarch: missspelled configuration

* lestarch: minor compilation fixes

* lestarch: renaming StandardTypes.hpp -> PlatformTypes.hpp

* lestarch: updating PRI tokens

* lestarch: replacing BasicTypes.hpp includes with FpConfig.hpp

* lestarch: UT and compilation fixes for types refactor

* lestarch: sp

* lestarch: fixing RPI issues in PassiveConsoleTextLogger

* lestarch: converting RPI build to debug

* lestarch: removing duplicate config imports

* lestarch: fixing documentation

* lestarch: fixing up multiple definitions and RPI compilation problems

* lestarch: reverting debug build

* lestarch: reverting platform types to class-based constants

* lestarch: reworking basic types

* lestarch: configured types refactor into classes

* lestarch: fixing bugs with static constants in classes

* lestarch: fixing platform types spelling and documentation

* lestarch: adding include guards to types headers

Co-authored-by: Kevin F Ortega <kevin.f.ortega@jpl.nasa.gov>
2022-08-18 13:25:56 -07:00
Timothy Canham
e083f9dc84
Older compiler compatibility changes (#1408)
* Experimental PPC build

* VxWorks/GCC 4.3.3 compile backfixes

* Changed using to typedef for older gcc

* Added fp_compat.hpp header and commented code back in

* Reverted vxworks experimental changes

* Removed vxworks submodule

* Some other reversions

* Spelling

* Update fp_compat.hpp

* lestarch: deleting this

* lestarch: reverting FP compat.  Projects can add back in where needed.

* Delete fp_compat.hpp

Co-authored-by: M Starch <LeStarch@googlemail.com>
2022-05-02 10:59:34 -07:00
M Starch
1fd2bfcc03
Merge branch 'release/v3.0.0' into remove-c-style-casts-svc 2021-09-01 09:57:27 -07:00
Joshua Anderson
f1f5d499c0 Remove deprecated C style headers 2021-08-31 11:36:16 -07:00
Joshua Anderson
05f4557ca8
Svc: Convert C style casts to C++ style casts 2021-08-31 10:29:02 -07:00
Joshua Anderson
1b9c785ce6
Remove void from parameterless functions (#811) 2021-07-14 12:54:01 -07:00
Rob Bocchino
53b2dcd0c9 FPP Types and Ports (#727)
* Revise command response port

Replace inline enum with XML enum type
Generate XML from FPP
Revise uses to match

* Revise xml-gen script

* Revise event ports

Replace inline enums with external enums

* Add missing files

* Revise ActiveLogger

* Revise text log port

* Revise text log port

Replace inline enum with external LogSeverity enum
Now Log and TextLog share the same enum for severity

* Revise Fw/Prm

* Revise uses of Fw/Prm

* Revise Fw/Cmd model

* Revise Fw/Cmd build

* Revise build for Fw/Cmd

* Refactor Fw/Log model

* Refactor build for Fw/Prm

* Revise build scripts

Remove workarounds after compiler fix

* Revise model

Revise build scripts
Regerate XML

* Revise FPP model in Fw

* Add gen-xml

* Add metadata files

* Add redo scripts

* Remove gen-xml scripts

* Revise redo scripts

* Revise redo scripts

* Add redo scripts

* Add FPP model for Fw/Com

* Add FPP model for Fw/Time

* Revise redo scripts

* Add FPP model for Fw/Tlm

* Revise redo scripts

* Revise redo scripts

* Revise redo scripts, gitignore

* Remove unused file

* Revise redo scripts

* Add FPP.adoc

* Add FPP model for Svc/Cycle

* Revise defs.fpp and build rules

* Revise do files

Rename fpp-defs to defs

* Update redo scripts

* Revise redo scripts

* Fix build rules

* Add FPP model for Svc/Sched

* Revise update script

* Rename defs.fpp --> locs.fpp

* Revise build scripts

* Revise Svc.Cycle model

Make TimerVal argument by value, not by reference

This is required for compliance with FPP semantics, because
Svc.Cycle is used in async input ports

* Revert "Revise Svc.Cycle model"

This reverts commit a31c12f1c0a9639da818d79da4f7ddd036c0b3d8.

Under the revised semantics of FPP, this change is not necessary.

* Revise Fw/Types build

Add missing file

* Revise FatalHandler

Abort with SIGABRT, not SIGSEGV

* Add FPP model for Ping port

* Revise GDS launcher

Make the HTML server port configurable
Interpret -g 5001 as "Run the HTML GUI at port 5001"

* Fix bug in XML array parser

* Revise build scripts

* Revise build script

* Fix merge errors

* Fix merge errors

* Fix redo scripts

* redo not overwriting Svc/FileDownlink .xml files

* Remove redo database

* Revise .gitignore

* Revise FileDownlink FPP model

* pre redo all in Drv/ByteStreamDriveModel

* Revisited SignalPair to run redo all

* redo all in Ref/SignalGen

* Saving before running redo all

* /Svc/Watchdog pre redo all

* All Svc Enums etc. done minus /Svc/PolyIf and /Svc/WatchDog

* Forgot to add /Seq/Seq.fpp on last commit

* Created Type.fpp, ran redo xml in /Svc/Seq

* /Svc/PolyIf pre redo all

* /Svc/PolyIf returning .hpp error on fprime-util build

* Svc ports etc. complete

* Svc/ActiveLogger pre redo

* /Svc/PolyDb pre redo

* /Svc/ActiveTextLogger pre-redo

* /Svc/ActiveTextLogger post redo

* Svc/ComSplitter pre redo

* Svc/ComSplitter post redo

* /Svc/Deframer pre redo

* Svc/Deframer post redo

* /Svc/FatalHandler pre redo

* /Svc/FatalHandler post redo

* /Svc/Framer pre redo

* /Svc/FramerComponentAi post redo

* /Svc/LinuxTimer pre redo

* post redo for /Svc/LinuxTimer /Svc/PolyDb

* /Svc/Time pre redo

* /Svc/Time post redo

* /Svc/TlmChan pre redo

* /Svc/TlmChan post redo

* Remove files deleted from mainline

* Revert change to Fatal Handler

* Rename CommandResponse to CmdResponse

* Revert name of enum constant

* updated Fw/types.fpp

* Added ActiveRateGroupOutputPorts to Fpconfig.fpp, Svc/ActiveRateGroup pre redo

* /Svc/ActiveRateGroup component finished

* Revise build scripts

* Revise Ref redo build

Make it into a separate project

* Revise fpp build

* Revise fpp build

* Revise ActiveRateGroup

Put AcConstants variable back in for now

* Revise FPP model

* Revise fpp model

Add AcConstants.fpp

* Remove local setup scripts

* Fix spelling in comment

* Revise spell check

Co-authored-by: jweadick <joshua.m.weadick@jpl.nasa.gov>
2021-06-25 18:14:29 -07:00
Joshua Anderson
9d57d91794 Compile root cmake project with -Wextra 2021-06-22 08:19:55 -07:00
Josh Soref
87f4587047 spelling: unnecessary
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2021-03-07 14:49:51 -05:00
Tobias Nießen
03be75f342
Rename misspelled private fields in Svc::ComLogger 2021-03-01 18:08:10 +01:00
Joshua Anderson
3cccd731d9
Refactor FW_OBJECT_NAMES switches and fix building without object names
Instead of adding the name argument to a constructor when FW_OBJECT_NAMES
is enabled, always supply a name argument.

Add a marco that conditionally sets the name to "" if FW_OBJECT_NAMES is not set.
This cleans up a lot of the conditional compilation switches that weren't being tested
and would silently break, while still stripping the strings from the binary.
2020-10-07 17:19:05 -07:00
Timothy Canham
8e874631ef Merge fixes from gcc 7.2 build 2020-07-06 23:13:55 -07:00
Timothy Canham
d494a3692e Removed std library headers 2020-06-10 23:35:17 -07:00
Timothy Canham
6d9c4c2d06 Initial check-in 2017-06-16 08:25:38 -07:00