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
|
-- Copyright 2020 United States Government as represented by the Administrator
-- of the National Aeronautics and Space Administration. All Rights Reserved.
--
-- Disclaimers
--
-- Licensed under the Apache License, Version 2.0 (the "License"); you may
-- not use this file except in compliance with the License. You may obtain a
-- copy of the License at
--
-- https://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-- License for the specific language governing permissions and limitations
-- under the License.
cabal-version: 2.0
build-type: Simple
name: ogma-cli
version: 1.11.0
homepage: https://github.com/nasa/ogma
bug-reports: https://github.com/nasa/ogma/issues
license: Apache-2.0
license-file: LICENSE
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:
> overview Generate an overview of the input specification(s)
> 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.CommandOverview
CLI.CommandROSApp
CLI.CommandStandalone
CLI.CommandTop
CLI.Result
build-depends:
base >= 4.11.0.0 && < 5
, aeson >= 2.0.0.0 && < 2.3
, optparse-applicative >= 0.14 && < 0.20
, microstache >= 1.0 && < 1.1
, text >= 1.2.3.1 && < 2.2
, ogma-core >= 1.11.0 && < 1.12
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
|