-
Notifications
You must be signed in to change notification settings - Fork 236
Description
Is your feature request related to a problem? Please describe.
SB provides abstraction from CCSDS packets, yet the CCSDS_CommandPacket_t is still referenced directly by the services (and likely all the Apps that accept a command) and SB functionality itself is tightly coupled to the actual message format.
Describe the solution you'd like
Provide a "MSG" abstraction layer (like inc/cfe_msg.h and a src/msg) to implement direct access getters/setters for supported "header" fields. Allow for selection of the supported message formats, or customization via mission configuration (and adding of additional getters/setters). SB should be abstracted the same as the other services.
"header" is intentionally vague, since it should include any common fields for which getter/setter abstraction is appropriate related to cFE services and apps.
Describe alternatives you've considered
Leave as is, which requires clone and own approach for customization and extensive SB impacts.
Additional context
Suggest that since this would now support customization, we collapse the open source supported time format options down to 1 (big endian, with the 6 byte default). If missions need something else, they can easily customize.
#711 - Separate message access API's from SB
#597 - local endian SID macros, unused shift/mask macros (in ccsds.h)
#440 - Improve API consistency for functions accepting a software bus message
#416 - Investigate various VerifyCmdLength implementations and possible common utility
#172 - Unsafe macros, investigate conversion into Inline functions
#92 - CFE_SB_GetMsgTime() and CFE_SB_SetMsgTime() do not handle byte-swapping on _EL platforms
Requester Info
Jacob Hageman - NASA/GSFC