## Changes from ASTP 0.0.1 to 1.0.0 ### Host OSAL - Bugfix in MessageQueue, which caused the sender not to be set properly ### FreeRTOS OSAL - vRequestContextSwitchFromISR is declared extern "C" so it can be defined in a C file without issues ### PUS Services - It is now possible to change the message queue depth for the telecommand verification service (PUS1) - The same is possible for the event reporting service (PUS5) - PUS Health Service added, which allows to command and retrieve health via PUS packets ### EnhancedControllerBase - New base class for a controller which also implements HasActionsIF and HasLocalDataPoolIF ### Local Pool - Interface of LocalPools has changed. LocalPool is not a template anymore. Instead the size and bucket number of the pools per page and the number of pages are passed to the ctor instead of two ctor arguments and a template parameter ### Parameter Service - 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: 1. Domain ID (1 byte) 2. Unique Identifier (1 byte) 3. Linear Index (2 bytes) The linear index can be used for arrays as well as matrices. The parameter load command now explicitely 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) ### File System Interface - A new interfaces specifies the functions for a software object which exposes the file system of a given hardware to use message based file handling (e.g. PUS commanding) ### Internal Error Reporter - The new internal error reporter uses the local data pools. The pool IDs for the exisiting three error values and the new error set will be hardcoded for now, the the constructor for the internal error reporter just takes an object ID for now. ### Device Handler Base - There is an additional `PERFORM_OPERATION` step for the device handler base. It is important that DHB users adapt their polling sequence tables to perform this step. This steps allows for aclear distinction between operation and communication steps - setNormalDatapoolEntriesInvalid is not an abstract method and a default implementation was provided - getTransitionDelayMs is now an abstract method ### DeviceHandlerIF - Typo for UNKNOWN_DEVICE_REPLY ### Events - makeEvent function: Now takes three input parameters instead of two and allows setting a unique ID. Event.cpp source file removed, functions now defined in header directly. Namespaces renamed. Functions declared `constexpr` now ### Commanding Service Base - CSB uses the new fsfwconfig::FSFW_CSB_FIFO_DEPTH variable to determine the FIFO depth for each CSB instance. This variable has to be set in the FSFWConfig.h file