Release v4.1.0 🎉 #4495
LeStarch
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
All, we've release F Prime v4.1.0! Here are the release notes.
New Features
dictionaryspecifiersFw::MemAllocatorMore details on each feature is available below.
Breaking Changes
Configuration Changes
Users with custom config in their project need to understand these changes:
FpConfig.hBreak-UpFpConfig.hBreak-UpMany of
FpConfig.h's constants were needed into the model and have been moved into.fppmodel filesFpConfig.fpp,FpConstants.fpp, andPlatformCfg.fpp.Warning
Users shipping custom
FpConfig.has ofv4.0.0must update to these new files.New Configuration Files
config/MemoryAllocation.hppconfig/ActiveTextLoggerCfg.hppconfig/FileManagerConfig.hppconfig/PassiveTextLoggerCfg.hppconfig/MemoryAllocation.hppWe've added configuration for a new default memory allocator. This is used by clients of
Fw::MemAllocatorRegistrycallinggetAnAllocator()when no appropriate allocator has been defined.config/MemoryAllocation.hpp+using DefaultMemoryAllocatorType = Fw::MallocAllocator;Users wanting a different default (other than
MallocAllocator) should override this definition.config/ActiveTextLoggerCfg.hppandconfig/PassiveTextLoggerCfg.hppThese files control the number of filter slots for these componnets.
config/FileManagerConfig.hppUser Changes
Standard projects should update to the following changes:
Linux Timer Interface Takes Fw::TimeInterval
LinuxTimer has been updated to tak
Fw::TimeInterval(seconds, microseconds);instead of an integer number of milliseconds.Tester Component Deinitialization
Queued and Active components now have a
deinit()function used to clean-up memory/resource allocation. Unit Tests run under leak checking will produce memory leak warnings. To fix this, addthis->component.deinit()to the Tester destructor.OSAL Interface Changes
Developers shipping custom OSAL implementations must update to meet these interface changes:
Os::QueueInterfaceChangesOs::QueueInterfaceChangesThe
Os::QueueInterfacehas had three changes that implementers must update to support.StringBasehas been changed toConstStringBasein thecreatemethodidvia thecreatemethod for use in potential allocationteardownmethod for use in resource clean-upOs::QueueInterfaceimplementers should update to support both of these changes.+ void teardown();Driver Interface Changes
Implementers of driver interfaces found in
Drv/Interfacesshould meet these following changes:SPI Interface Changes
The former SPI interface did not support returning a status, which meant that the calling component was blind to problems arising within SPI. The interface now specifies a new WriteRead port that includes a status. Implementers of SPI components must add this port to their components.
We recommend deprecating the old
voidfunction as well.Misc Interface Changes
There are a few changes to misc interfaces in F Prime. Developers to those interfaces must update:
Fw::MemAllocatorRequires AlignmentFw::MemAllocatorRequires AlignmentDevelopers of custom
Fw::MemAllocatorobjects must now support the alignment parameter. Alignment communicates the minimum Byte alignment for the object being allocated. Returnedvoid*allocations must guarantee this alignment.Hand-Coded Serializables Require Endianness
F Prime now supports a mode flag to serialization that communicates the desired endianness. This was done to better support external libraries, technologies, and products that use little endian format. Hand-coded serializables should update to accept this new parameter.
This affects both the
serializeToanddeserializeFromfunction.Optional Changes
There are several optional changes. Users should consider these changes.
serializeanddeserializeDeprecatedTask Priorities
Subtopology and
Refpriorities have been updated to better reflect Linux priority space. Users should consider their own priorities and ajust accordingly.serializeanddeserializeDeprecatedserializeanddeserializemethods were renamed inv4.0.0toserializeTo,serializeFrom,deserializeTo, anddeserializeFrom. We have now DEPRECATED theseserializeanddeserializefunctions. Users should update as these will now produce compiler warnings and will be removed in future releases.Feature Descriptions
FPP
dictionarySpecifiersFPP now supports the
dictionaryspecifier, allowing developers to annotate model elements for inclusion in generated JSON dictionaries. This feature allows developers to extend flight/ground tooling.Shared Flight/Ground Configuration
F´ introduces unified configuration between flight and ground (
fprime-gds). This significantly reduces duplication, improves consistency, and centralizes configuration.Aligned Memory Support in
Fw::MemAllocatorFw::MemAllocatornow supports aligned allocation, allowing components and platform adapters to request memory with specific alignment boundaries.Time-Limited Event Throttling
A new throttling policy allows events to be rate-limited over a configurable time window. Rather than suppressing events indefinitely, the system now restores visibility after the throttle period elapses.
Little-Endian Serialization Interfaces
F´ adds explicit support for little-endian serialization paths. This allows users to leverage F Prime serialization for external interfaces.
Upgrade to C++14
The framework, libraries, and autocoders now require and fully support C++14. This enables safer and more expressive language features for more reliable software.
Secondary-File Loading for the Parameter Database
Svc::PrmDbnow supports loading parameters from a secondary file.Commits
AssertFatalAdapterby @kyleajones in Add logic for assert failure short circuiting inAssertFatalAdapter#4042Checksis supposed to be a comma separated list by @Saransh-cpp in fix(.clang-tidy):Checksis supposed to be a comma separated list #4379New Contributors
Checksis supposed to be a comma separated list #4379Full Changelog: v4.0.0...v4.1.0
This discussion was created from the release v4.1.0.
Beta Was this translation helpful? Give feedback.
All reactions