Question about application API's #358
-
Hello! Still getting up to speed with cFS so apologies if this is a "remedial" question. My question is, is there a centralized point for application API's and specifically message ID's or are they all contained within the application tree? I want to be able to have external processes easily interface with applications and it would be nice to have some common library or source to link against. For reference I am currently using the OSK release so I am not fully up to date with the latest cFS releases, but I believe I read somewhere in OSK that there were future plans to centralize the message ID's and add tools for generating those sources. Any and all help is greatly appreciated! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 9 replies
-
@tstern-masten you've touched on a very popular use case. In the There's a fork of the cFS distribution which shows how the EDS files can be used and processed here: https://github.com/jphickey/cfe-eds-framework/ See the following discussions for more info: cc @jphickey |
Beta Was this translation helpful? Give feedback.
-
I bit of additional background on the mechanics - although apps typically do include a header that defines their message ID's, these are really just intended as the default such that it's trivial to plug-and-play with the open source framework. For a real distribution the defaults are typically all overridden with headers that are maintained within the *_defs directory (which is "owned" by the distribution). This approach avoids the need to "clone-and-own" or modify anything within the related open source repo. Your *_defs directory then becomes the "one-stop-shop" for all these definitions, which in turn are frequently generated via a data management system like https://github.com/nasa/CCDD or similar utilizing EDS or other common data description techniques. Using this technique you can create a single header that includes all the various distribution mission ID headers, or whatever grouping you need to make things easy to manage. |
Beta Was this translation helpful? Give feedback.
@tstern-masten you've touched on a very popular use case.
In the
main
cFS distribution, Message ID / Topic ID and type definitions are currently only specified in C header files. There is a big push from the community to embrace the (CCSDS SOIS EDS standard](https://public.ccsds.org/publications/SOIS.aspx) for specifying all of these interfaces in XML which can be processed by the NASA EDS Tooling. The approach leveraging EDS would allow you to generate interface source definitions for whatever external system you need from a single source of truth.There's a fork of the cFS distribution which shows how the EDS files can be used and processed here: https://github.com/jphickey/cfe-eds-fram…