Skip to content

Provide configurable/customizable message abstraction layer #554

@skliper

Description

@skliper

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions