ogma-cli
Ogma: Helper tool to interoperate between Copilot and other languages.
Stackage Nightly 2025-04-24: | 1.7.0 |
Latest on Hackage: | 1.7.0 |
ogma-cli-1.7.0@sha256:0087159a39c1481e8a86936c07e0c9a24a6df1e7bb1c0919abf7b7964e93bf5b,7895
Module documentation for 1.7.0
There are no documented modules for this package.
Ogma is a tool to facilitate the integration of safe runtime monitors into other systems. Ogma extends Copilot, a high-level runtime verification framework that generates hard real-time C99 code.
Some use cases supported by Ogma include:
Translating requirements defined in structured natural language into monitors in Copilot.
Generating the glue code necessary to work with C structs in Copilot.
Generating NASA Core Flight System applications that use Copilot for monitoring data received from the message bus.
Generating message handlers for NASA Core Flight System applications to make external data in structs available to a Copilot monitor.
Generating Robot Operating System (ROS 2) applications that use Copilot for monitoring data received from different topics.
Generating F' components that use Copilot for monitoring.
Generating monitors from state diagrams specified using a graphical notation.
The main invocation with --help
lists sub-commands available.
$ ogma --help
ogma - an anything-to-Copilot application generator
Usage: ogma COMMAND
Generate complete or partial Copilot applications from multiple languages
Available options:
-h,--help Show this help text
Available commands:
structs Generate Copilot structs from C structs
handlers Generate message handlers from C structs
cfs Generate a complete CFS/Copilot application
fprime Generate a complete F' monitoring component
ros Generate a ROS 2 monitoring application
standalone Generate a Copilot file from an input specification
diagram Generate a monitor from a state machine diagram
For further information, see:
"Copilot 3", Perez, Dedden and Goodloe. 2020.
"From Requirements to Autonomous Flight", Dutle et al. 2020.
Changes
Revision history for ogma-cli
[1.7.0] - 2025-03-21
- Version bump 1.7.0 (#269).
- Add all auxiliary test files to distributable Cabal package (#216).
- Remove extraneous EOL character (#224).
- Update installation instructions to use cabal install (#149).
- Update README with new cFS template variables (#229).
- Expose handlers-file argument to cFS backend (#234).
- Expose template-vars argument to cFS backend (#106).
- Document new template variables in README (#237).
- Fix formatting of template variables in README (#222).
- Update README with new ROS template variables (#244).
- Update README with new FPrime template variables (#246).
- Adjust CLI to match new backend API (#248).
- Expose template-vars argument to ROS, FPrime, standalone backends (#250).
- Expose spec processing arguments to cFS backend in CLI (#252).
- Use new sample spec with ROS backend in CI job (#107).
- Update examples, Github Actions, README to use new variable DB format (#256).
- Update README, ROS example with ability to pass data to handlers (#219).
- Update README, Github Actions with new dependencies (#263).
- Update to support boolean expressions in the Lustre language (#267).
[1.6.0] - 2025-01-21
- Version bump 1.6.0 (#208).
- Update contribution guidelines (#161).
- Provide ability to customize template in fprime command (#185).
- Provide ability to customize template in standalone command (#189).
- Add repository information to cabal package (#148).
- Add version bounds to all dependencies (#119).
- Introduce new diagram command (#194).
- Provide ability to preprocess properties via external command (#197).
- Extend support for file, property formats across backends (#204).
[1.5.0] - 2024-11-21
- Version bump 1.5.0 (#178).
- Provide ability to customize template in cfs command (#157).
- Provide ability to customize template in ros command (#162).
- Introduce new standalone command (#170).
- Update README to demonstrate robotics (#172).
- Remove unused resources (#174).
- Add version bounds to base (#180).
[1.4.1] - 2024-09-21
- Version bump 1.4.1 (#155).
- Constrain version of dependency in CI jobs (#151).
- Replace homepage (#147).
[1.4.0] - 2024-05-21
- Version bump 1.4.0 (#145).
- Introduce CI test job (#139).
- Introduce test job for ROS package generation (#136).
- Add a float and a double input variable to ROS example (#138).
- Document format of variable DB (#143).
[1.3.0] - 2024-03-21
- Version bump 1.3.0 (#133).
[1.2.0] - 2024-01-21
- Version bump 1.2.0 (#117).
- Re-structure README around on backends (#75).
[1.1.0] - 2023-11-21
- Version bump 1.1.0 (#112).
- Document cabal update step in README (#100).
[1.0.11] - 2023-09-21
- Version bump 1.0.11 (#103).
[1.0.10] - 2023-07-21
- Version bump 1.0.10 (#98).
- Correct test case (#96).
[1.0.9] - 2023-05-21
- Version bump 1.0.9 (#93).
- Rename ROS2 to ROS 2 (#83).
- Allow customizing the names of the C files generated by Copilot (#80).
- Re-order README’s TOC to match order of contents (#88).
- Fix rendering of quotes in URLs in package description (#72).
- List FPrime backend as supported use case in package description (#91).
[1.0.8] - 2023-03-21
- Version bump 1.0.8 (#81).
- Introduce new F’ (FPrime) backend (#77).
- Mark package as uncurated (#74).
[1.0.7] - 2023-01-21
- Version bump 1.0.7 (#69).
- Replace tabs in cabal file (#69).
- Introduce new ROS2 backend (#56).
[1.0.6] - 2022-11-21
- Version bump 1.0.6 (#64).
- Update license in cabal file to OtherLicense (#62).
- Add empty file to keep directory structure in distributable package (#65).
[1.0.5] - 2022-09-21
- Version bump 1.0.5 (#60).
- Update README to reflect that GHC 9.2 is supported (#55).
[1.0.4] - 2022-07-21
- Version bump 1.0.4 (#53).
- Address all hlint suggestions (#51).
[1.0.3] - 2022-05-21
- Version bump 1.0.3 (#49).
- Enable CI (#47).
- Conformance with style guide (partial) (#45).
[1.0.2] - 2022-03-21
- Version bump 1.0.2 (#43).
- Address HLint warning (#41).
[1.0.1] - 2022-01-21
- Version bump 1.0.1 (#39).
- Merge imports (#33).
[1.0.0] - 2021-11-22
- Initial release.