1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
|
-- Copyright 2020 United States Government as represented by the Administrator
-- of the National Aeronautics and Space Administration. All Rights Reserved.
--
-- Disclaimers
--
-- No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY
-- OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT
-- LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO
-- SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
-- PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE
-- SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF
-- PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN
-- ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR
-- RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR
-- ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER,
-- GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING
-- THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES
-- IT "AS IS."
--
-- Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS AGAINST
-- THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS
-- ANY PRIOR RECIPIENT. IF RECIPIENT'S USE OF THE SUBJECT SOFTWARE RESULTS IN
-- ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING FROM SUCH USE,
-- INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING FROM, RECIPIENT'S
-- USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY AND HOLD HARMLESS THE
-- UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY
-- PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE REMEDY
-- FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, UNILATERAL TERMINATION OF THIS
-- AGREEMENT.
cabal-version: 2.0
build-type: Simple
name: ogma-cli
version: 1.7.0
homepage: https://github.com/nasa/ogma
bug-reports: https://github.com/nasa/ogma/issues
license: OtherLicense
license-file: LICENSE.pdf
author: Ivan Perez, Alwyn Goodloe
maintainer: ivan.perezdominguez@nasa.gov
category: Aerospace
extra-source-files: CHANGELOG.md
synopsis: Ogma: Helper tool to interoperate between Copilot and other languages.
description: Ogma is a tool to facilitate the integration of safe runtime monitors into
other systems. Ogma extends
<https://github.com/Copilot-Language/copilot 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
<https://cfs.gsfc.nasa.gov/ 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
<https://ros.org Robot Operating System (ROS 2)>
applications that use Copilot for monitoring data
received from different topics.
.
- Generating
<https://github.com/nasa/fprime 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:
.
- <https://github.com/nasa/ogma The Ogma repository>.
.
- <https://copilot-language.github.io/ The Copilot web page>.
.
- <https://cfs.gsfc.nasa.gov/ The NASA Core Flight System web page>.
.
- <https://ros.org/ The Robot Operating System (ROS 2) web page>.
.
- <https://github.com/nasa/fprime The F' repository>.
.
- "<https://ntrs.nasa.gov/citations/20200003164 Copilot 3>", Perez, Dedden and Goodloe. 2020.
.
- "<https://shemesh.larc.nasa.gov/people/cam/publications/FMAS2020_3.pdf From Requirements to Autonomous Flight>", Dutle et al. 2020.
extra-source-files: tests/fcs-example1.json
tests/fdb-example1.json
tests/reduced_geofence_msgs.h
tests/reduced_geofence_msgs_bad.h
-- Ogma packages should be uncurated so that only the official maintainers make
-- changes.
--
-- Because this is a NASA project, we want to make sure that users obtain
-- exactly what we publish, unmodified by anyone external to our project.
x-curation: uncurated
source-repository head
type: git
location: git@github.com:nasa/ogma.git
subdir: ogma-cli
executable ogma
main-is:
Main.hs
other-modules:
CLI.CommandCFSApp
CLI.CommandCStructs2Copilot
CLI.CommandCStructs2MsgHandlers
CLI.CommandDiagram
CLI.CommandFPrimeApp
CLI.CommandROSApp
CLI.CommandStandalone
CLI.CommandTop
CLI.Result
build-depends:
base >= 4.11.0.0 && < 5
, optparse-applicative >= 0.14 && < 0.19
, ogma-core >= 1.7.0 && < 1.8
hs-source-dirs:
src
default-language:
Haskell2010
ghc-options:
-Wall
test-suite test-ogma
type:
exitcode-stdio-1.0
main-is:
Main.hs
build-depends:
base >= 4.11.0.0 && < 5
, HUnit >= 1.2.0.0 && < 1.7
, process >= 1.6 && < 1.7
, test-framework >= 0.8.2 && < 0.9
, test-framework-hunit >= 0.2.0 && < 0.4
, unix >= 2.7.2.2 && < 2.9
hs-source-dirs:
tests
default-language:
Haskell2010
ghc-options:
-Wall
|