ASTP 1.0.0 Local pools
API Changes:
Local Pools:
Pool Managers
Old pool config:
const uint8_t numberOfIpcPools = 4;
uint16_t numberOfElements[numberOfIpcPools] = {100, 30, 20, 10};
uint16_t sizeofElements[numberOfIpcPools] = {32, 64, 128, 265};
new PoolManager<numberOfIpcPools>(objects::IPC_STORE,sizeofElements,
numberOfElements);
New pool config:
/* Pool manager handles storage und mutexes */
const LocalPool::LocalPoolConfig poolConfig = {
{100, 32}, {30, 64}, {20, 128}, {10, 265}
};
new PoolManager(objects::IPC_STORE, poolConfig);
new PoolManager(objects::TM_STORE, poolConfig);
new PoolManager(objects::TC_STORE, poolConfig);
ParameterIF:
- INVALID_MATRIX_ID is now INVALID_IDENTIFIER_ID (#250)
- The API of the parameter service has been changed to prevent inconsistencies
between documentation and actual code and to clarify usage. - The parameter ID now consists of:
- Domain ID (1 byte)
- Unique Identifier (1 byte)
- Linear Index (2 bytes)
The linear index can be used for arrays as well as matrices.
The parameter load command now explicitly expects the ECSS PTC and PFC
information as well as the rows and column number. Rows and column will
default to one, which is equivalent to one scalar parameter (the most
important use-case)
- The HasParameterIF has changed, ParameterId is now a uint8_t and the name is uniqueIdentifier (#365)
DeviceHandler
- DHB has an additional PST Step. This has to be added to your Polling Sequence but gives more control over the DH (#281)
- Typo for UNKNOWN_DEVICE_REPLY fixed (#320)
- getTransitionDelayMs is now an abstract method (#320)
Events:
- Changes in eventId generation (#288)
- The spelling of the namespaces "EVENT" and "SEVERITY" changed to "event" and "severity"
- The function to generate a EventId (makeEvent(..)) is more explicit now with the Id as new parameter. This should be preferred over the macro.
Pus Sercices:
- Service 5 and Service 1 queue depths need to be given as constructor elements (#283)
- This allows mission code to select how many events/verification messages can be processed
- All Commanding Service Base instances had a 3 command wide fifo, this can now be changed to any size (#319)
- VerificationCodes namespace TC_VERIFY is now tc_verification (#309)
static constexpr uint8_t FSFW_CSB_FIFO_DEPTH = 6;
FreeRTOS:
- extern "C" void vRequestContextSwitchFromISR(); marked extern C so it can be implemented in a C file. (#263)
RTEMS:
- RTEMS OSAL Updated after tests (#363)
Mutex:
- MutexHelper is now MutexGuard (#383)
Action:
ActionMessage::setCompletionReply
now expects the success as dedicated bool
MISC:
- CCSDSTime.cpp now uses size_t for sizes #315
- FSFWConfig: USE_MODESTORE for storage of on-the-fly modes is replaced with FSFW_USE_MODESTORE == 1 from FSFWConfig.h (#306)
Enhancement:
Pus Sercices:
CMake
- FSFW Provides cmake files now (#298)
Misc
- ExtendedController: Controller with HasActionIF has HasLocalDatapoolIF. (#276)
- DeviceHandlerIF: Command_t NO_COMMAND_ID in DeviceHandlerIF can be used to set a invalid command (#263)
- Default CFG: Update of Default CFG (#274)
- PeriodicOperationDivider: Op divider additional features (#286)
- unittest: Includes for unittest folder relative (#285)
- objectmanager: objectmanager/frameworkObjects.h new ID added TIME_STAMPER = 0x53500010 (#328)
Bug Fixes:
HostOSAL:
RTEMS:
Linux:
- Important Bug fix in MesseQueue.cpp #394
MISC:
- Bugfixes discovered during coverity checks #398
100% Completed