-
Notifications
You must be signed in to change notification settings - Fork 200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement generic runtime configuration registry for CFE #1979
Comments
jphickey
changed the title
Need some type of generic runtime configuration registry for CFE (ES?)
Implement generic runtime configuration registry for CFE
Sep 24, 2021
Currently thinking to make the registry read-only and fully configured by ES during boot (could be a TBL-based load potentially). Unless there is a use-case/strong need for making values change-able, it seems to introduce more complexity. Or at least any "set" APIs could be reserved for boot-time use, and become fixed thereafter. |
jphickey
added a commit
to jphickey/cFE
that referenced
this issue
Sep 27, 2021
Adds a new module called "config" that tracks simple key/value pairs. All values are const. As a proof of concept, all version information is mirrored into this key store, and ES is updated to use this instead of the GLOBAL_CONFIGDATA when generating events.
jphickey
added a commit
to jphickey/cFE
that referenced
this issue
Sep 27, 2021
Adds a new module called "config" that tracks simple key/value pairs. All values are const. As a proof of concept, all version information is mirrored into this key store, and ES is updated to use this instead of the GLOBAL_CONFIGDATA when generating events.
jphickey
added a commit
to jphickey/cFE
that referenced
this issue
Sep 27, 2021
Adds a new module called "config" that tracks simple key/value pairs. All values are const. As a proof of concept, all version information is mirrored into this key store, and ES is updated to use this instead of the GLOBAL_CONFIGDATA when generating events.
jphickey
added a commit
to jphickey/cFE
that referenced
this issue
Sep 27, 2021
Adds a new module called "config" that tracks simple key/value pairs. All values are const. As a proof of concept, all version information is mirrored into this key store, and ES is updated to use this instead of the GLOBAL_CONFIGDATA when generating events.
jphickey
added a commit
to jphickey/cFE
that referenced
this issue
Sep 27, 2021
Adds a new module called "config" that tracks simple key/value pairs. All values are const. As a proof of concept, all version information is mirrored into this key store, and ES is updated to use this instead of the GLOBAL_CONFIGDATA when generating events.
jphickey
added a commit
to jphickey/cFE
that referenced
this issue
Sep 28, 2021
Adds a new module called "config" that tracks simple key/value pairs. All values are const. As a proof of concept, all version information is mirrored into this key store, and ES is updated to use this instead of the GLOBAL_CONFIGDATA when generating events.
jphickey
added a commit
to jphickey/cFE
that referenced
this issue
Sep 28, 2021
Adds a new module called "config" that tracks simple key/value pairs. All values are const. As a proof of concept, all version information is mirrored into this key store, and ES is updated to use this instead of the GLOBAL_CONFIGDATA when generating events.
jphickey
added a commit
to jphickey/cFE
that referenced
this issue
Sep 29, 2021
Adds a new module called "config" that tracks simple key/value pairs. All values are const. As a proof of concept, all version information is mirrored into this key store, and ES is updated to use this instead of the GLOBAL_CONFIGDATA when generating events.
astrogeco
added a commit
to astrogeco/cFE
that referenced
this issue
Nov 3, 2021
…istry Fix nasa#1979, implement abstract config registry module
astrogeco
added a commit
to astrogeco/cFE
that referenced
this issue
Nov 3, 2021
…gistry Fix nasa#1979, implement abstract config registry module
astrogeco
added a commit
to astrogeco/cFE
that referenced
this issue
Nov 3, 2021
…gistry Fix nasa#1979, implement abstract config registry module
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is your feature request related to a problem? Please describe.
Rather than compiling-in various values (e.g. via
cfe_platform_cfg.h
orcfe_mission_cfg.h
) it would be more flexible and more useful to put many of these configuration items into some type of simple runtime registry.The registry would be a simple key/value store, where the key is the configurable item ID, and the value is either an integer or a pointer to a global data object (ideally const, to avoid sharing/concurrent access issues).
The registry can be somewhat dynamic, allowing registry items to be easily added/extended. Default values and text-based descriptions can also be potentially included.
Describe the solution you'd like
User API that works something like:
uint32 CFE_ES_RegistryGetInt(uint32 Key);
const void* CFE_ES_RegistryGetPointer(uint32 Key);
Additional context
This would reduce dependency on
cfe_platform_cfg.h
andcfe_mission_cfg.h
for keeping this type of value, and also provide a place for the version info currently incfe_version.h
. Thereby consolidating the current bunch of different types of info with different access methods into one generic registry with a common, simple access method.Similar model exists in UNIX/POSIX in the
sysconf
facility - so certain platform-specific values do not need to be compiled into binaries, thereby improving binary portability (i.e. compile once for a CPU arch, run anywhere that has that arch). This would make the long-desired feature of separate CFE core and app builds closer to reality.Of course Windows has its well-known registry, which is huge and unwieldy - this should not turn into that. More like UNIX sysconf, but with pointers/strings also supported, not just integers.
Other issues with
#define
-ed config values:cfe_mission_cfg.h
/cfe_platform_cfg.h
be kept in sync with the source code. New variables added in new builds must be manually propagated to the user build.Requester Info
Joseph Hickey, Vantage Systems, Inc.
The text was updated successfully, but these errors were encountered: