Skip to content
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

Cmd history docs #1685

Merged
merged 7 commits into from
Nov 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/configuration/_command.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 4
title: Commands
description: Command definition file format and keywords
sidebar_custom_props:
myEmoji: 📡
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I always hated the icons that went on those top level collection pages. I also updated the description throughout.
Screenshot 2024-11-06 at 1 49 01 PM

---

<!-- Be sure to edit _command.md because command.md is a generated file -->
Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/configuration/_plugins.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 2
title: Plugins
description: Plugin definition file format and keywords
sidebar_custom_props:
myEmoji: 🔌
---

<!-- Be sure to edit _plugins.md because plugins.md is a generated file -->
Expand Down
1 change: 1 addition & 0 deletions docs.openc3.com/docs/configuration/_table.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
sidebar_position: 8
title: Tables
description: Table definition file format and keywords
---

<!-- Be sure to edit _table.md because table.md is a generated file -->
Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/configuration/_target.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 3
title: Targets
description: Target definition file format and keywords
sidebar_custom_props:
myEmoji: 🛰️
---

<!-- Be sure to edit _target.md because target.md is a generated file -->
Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/configuration/_telemetry-screens.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 9
title: Screens
description: Telemetry Viewer screen definition and widget documentation
sidebar_custom_props:
myEmoji: 🖥️
---

<!-- Be sure to edit _telemetry_screens.md because telemetry_screens.md is a generated file -->
Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/configuration/_telemetry.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 5
title: Telemetry
description: Telemetry definition file format and keywords
sidebar_custom_props:
myEmoji: 📡
---

<!-- Be sure to edit _telemetry.md because telemetry.md is a generated file -->
Expand Down
9 changes: 9 additions & 0 deletions docs.openc3.com/docs/configuration/command.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 4
title: Commands
description: Command definition file format and keywords
sidebar_custom_props:
myEmoji: 📡
---

<!-- Be sure to edit _command.md because command.md is a generated file -->
Expand Down Expand Up @@ -633,6 +636,12 @@ Generally the template file is formatted in JSON or HTML and then values are fil
Used for packet definitions that can be used as structures for items with a given packet.


### RESTRICTED
<div class="right">(Since 5.20.0)</div>**Marks this packet as restricted and will require approval if critical commanding is enabled**

Used as one of the two types of critical commands (HAZARDOUS and RESTRICTED)


### VALIDATOR
<div class="right">(Since 5.19.0)</div>**Defines a validator class for a command**

Expand Down
1 change: 1 addition & 0 deletions docs.openc3.com/docs/configuration/format.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
sidebar_position: 1
title: File Format
description: Structure of a COSMOS file, including using ERB
---

COSMOS configuration files are just text files. They can (and should) be checked into your configuration management system and thus can be easily diffed throughout their history. They support ERB syntax, partials, and various line continuations which make them extremely flexible.
Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/configuration/interfaces.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 6
title: Interfaces
description: Built-in COSMOS interfaces including how to create one
sidebar_custom_props:
myEmoji: 💡
---

Interfaces are the connection to the external embedded systems called targets. Interfaces are defined by the top level [INTERFACE](plugins.md#interface-1) keyword in the plugin.txt file.
Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/configuration/plugins.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 2
title: Plugins
description: Plugin definition file format and keywords
sidebar_custom_props:
myEmoji: 🔌
---

<!-- Be sure to edit _plugins.md because plugins.md is a generated file -->
Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/configuration/protocols.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 7
title: Protocols
description: Built-in COSMOS protocols including how to create one
sidebar_custom_props:
myEmoji: 💡
---

Protocols process data on behalf of an Interface. They can modify the data being written, data being read, or both. Protocols can also mark a packet as stored instead of real-time which means COSMOS will not update the current value table with the packet data. Protocols can be layered and will be processed in order. For example, if you have a low-level encryption layer that must be first removed before processing a higher level buffer length protocol.
Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/configuration/ssl-tls.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 10
title: SSL-TLS
description: How to configure SSL and TLS
sidebar_custom_props:
myEmoji: 🔐
---

COSMOS 5 is a container based service which does not use SSL/TLS out of the box. This guide will help you configure SSL and TLS. Learn more at the Traefik [docs](https://doc.traefik.io/traefik/routing/entrypoints/#tls).
Expand Down
1 change: 1 addition & 0 deletions docs.openc3.com/docs/configuration/table.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
sidebar_position: 8
title: Tables
description: Table definition file format and keywords
---

<!-- Be sure to edit _table.md because table.md is a generated file -->
Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/configuration/target.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 3
title: Targets
description: Target definition file format and keywords
sidebar_custom_props:
myEmoji: 🛰️
---

<!-- Be sure to edit _target.md because target.md is a generated file -->
Expand Down
35 changes: 35 additions & 0 deletions docs.openc3.com/docs/configuration/telemetry-screens.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 9
title: Screens
description: Telemetry Viewer screen definition and widget documentation
sidebar_custom_props:
myEmoji: 🖥️
---

<!-- Be sure to edit _telemetry_screens.md because telemetry_screens.md is a generated file -->
Expand Down Expand Up @@ -1316,6 +1319,22 @@ BUTTON 'Start Collect' 'var type = screen.getNamedWidget("COLLECT_TYPE").text();
NAMED_WIDGET COLLECT_TYPE COMBOBOX NORMAL SPECIAL
```

### DATE
**Displays a date picker**

Note this is of limited use by itself and is primarily used in conjunction with NAMED_WIDGET.

| Parameter | Description | Required |
|-----------|-------------|----------|
| Date label | Text to label the data selection ('Date' by default) | False |

Example Usage:
```ruby
BUTTON 'Alert Date' 'var date = screen.getNamedWidget("DATE").text();' +
'alert("Date:"+date)'
NAMED_WIDGET DATE DATE
```

### RADIOGROUP
**Creates a group of RADIOBUTTONs**

Expand Down Expand Up @@ -1359,6 +1378,22 @@ BUTTON 'Start Collect' 'var dur = screen.getNamedWidget("DURATION").text();' +
'api.cmd("INST COLLECT with TYPE NORMAL, DURATION "+dur+"")'
```

### TIME
**Displays a time picker**

Note this is of limited use by itself and is primarily used in conjunction with NAMED_WIDGET.

| Parameter | Description | Required |
|-----------|-------------|----------|
| Time label | Text to label the time selection ('Time' by default) | False |

Example Usage:
```ruby
BUTTON 'Alert Time' 'var time = screen.getNamedWidget("TIME").text();' +
'alert("Time:"+time)'
NAMED_WIDGET TIME TIME
```

## Canvas Widgets
****

Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/configuration/telemetry.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
sidebar_position: 5
title: Telemetry
description: Telemetry definition file format and keywords
sidebar_custom_props:
myEmoji: 📡
---

<!-- Be sure to edit _telemetry.md because telemetry.md is a generated file -->
Expand Down
33 changes: 19 additions & 14 deletions docs.openc3.com/docs/development/curl.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
---
title: Testing with Curl
description: How to use Curl to hit the COSMOS APIs
sidebar_custom_props:
myEmoji: 🌊
---

:::note This documentation is for COSMOS Developers
Expand Down Expand Up @@ -95,6 +98,7 @@ It can be very useful to run the a suite or script remotely from a continuous te
![Network Traffic in browser developer tools](https://github.com/OpenC3/cosmos/assets/55999897/df642d42-43e0-47f9-9b52-d42746d9746b)

You can see that there are 5 transactions total. To investigate just right-click on the network transaction and click "copy as `curl`" (depends on the browser). Here is an example of the second one:

```bash
curl 'http://localhost:2900/script-api/scripts/TARGET/procedures/cmd_tlm_test.rb/lock?scope=DEFAULT' \
-X 'POST' \
Expand All @@ -108,14 +112,16 @@ curl 'http://localhost:2900/script-api/scripts/TARGET/procedures/cmd_tlm_test.rb
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0' \
--insecure
```

Many of the browser-specific headers are not required. The important thing to notice here is the URL and the request (in this case `POST`). If we inspect all of these we'll find out what each one does:

1. Set the script contents
* this updates any local changes)
* Note that this is a different request to `GET` the script contents. This is done on the page load.
3. Lock the script (so other users can't edit it during execution)
4. Run script (this takes a JSON with options)
5. Open Websocket for logs
6. Request Result (this URL is a little different because the results are saved in redis)
- this updates any local changes)
- Note that this is a different request to `GET` the script contents. This is done on the page load.
2. Lock the script (so other users can't edit it during execution)
3. Run script (this takes a JSON with options)
4. Open Websocket for logs
5. Request Result (this URL is a little different because the results are saved in redis)

Below is a bash script which does all the above given some options. It requires `curl` for the web requests and `jq` for JSON parsing and formatting. It locks and runs the script, continually checks its status, then requests the result.

Expand All @@ -128,13 +134,13 @@ SUITE=${3:-'TestSuite'}
COSMOS_HOST='http://localhost:2900'
SCRIPT_API="$COSMOS_HOST/script-api"
SCRIPT_PATH="scripts/$TARGET/$SCRIPT"
CURL_ARGS=(
-H 'Accept: application/json'
-H 'Authorization: password'
-H 'Accept-Language: en-US,en;q=0.9'
-H 'Connection: keep-alive'
-H 'Content-Type: application/json'
--insecure
CURL_ARGS=(
-H 'Accept: application/json'
-H 'Authorization: password'
-H 'Accept-Language: en-US,en;q=0.9'
-H 'Connection: keep-alive'
-H 'Content-Type: application/json'
--insecure
--silent )

# Lock script #
Expand Down Expand Up @@ -176,4 +182,3 @@ URL="$(curl "$COSMOS_HOST/openc3-api/storage/download/$BUCKET_FILE_URI?bucket=OP

curl "$COSMOS_HOST$URL" "${CURL_ARGS[@]}"
```

3 changes: 3 additions & 0 deletions docs.openc3.com/docs/development/developing.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
---
title: Developing COSMOS
description: Building COSMOS and developing the frontend and backend
sidebar_custom_props:
myEmoji: 💻
---

# Developing COSMOS
Expand Down
2 changes: 2 additions & 0 deletions docs.openc3.com/docs/development/host-install.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
---
title: Host Install
sidebar_custom_props:
myEmoji: 🖥️
---

## Installing COSMOS Directly onto a Host (No Containers)
Expand Down
7 changes: 5 additions & 2 deletions docs.openc3.com/docs/development/json-api.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
---
title: JSON API
description: Interfacing to the COSMOS APIs using JSON-RPC
sidebar_custom_props:
myEmoji: 🖥️
---

:::note This documentation is for COSMOS Developers
If you're looking for the methods available to write test procedures using the COSMOS scripting API, refer to the [Scripting API Guide](../guides/scripting-api.md) page. If you're trying to interface to a COSMOS Command and Telemetry Server from an external application using any language then this is the right place.
If you're looking for the methods available to write test procedures using the COSMOS scripting API, refer to the [Scripting API Guide](../guides/scripting-api.md) page. If you're trying to interface to COSMOS from an external application using any language then this is the right place.
:::

This document provides the information necessary for external applications to interact with the COSMOS Command and Telemetry Server using the COSMOS API. External applications written in any language can send commands and retrieve individual telemetry points using this API. External applications also have the option of connecting to the COSMOS Command and Telemetry server to interact with raw tcp/ip streams of commands/telemetry. However, the COSMOS JSON API removes the requirement that external applications have knowledge of the binary formats of packets.
This document provides the information necessary for external applications to interact with COSMOS using the COSMOS API. External applications written in any language can send commands and retrieve individual telemetry points using this API. External applications also have the option of connecting to the COSMOS Command and Telemetry server to interact with raw tcp/ip streams of commands/telemetry. However, the COSMOS JSON API removes the requirement that external applications have knowledge of the binary formats of packets.

## Authorization

Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/development/log-structure.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
---
title: Log Structure
description: Structure of the COSMOS log file
sidebar_custom_props:
myEmoji: 🪵
---

Updated: 8-21-2023 to the format as of OpenC3 COSMOS 5.11.0
Expand Down
41 changes: 23 additions & 18 deletions docs.openc3.com/docs/development/roadmap.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,45 @@
---
title: Roadmap
description: COSMOS roadmap now and into the future
sidebar_custom_props:
myEmoji: 🗺️
---

## Key Features Still to Come in OpenC3 COSMOS 5.x:

- [x] Command Authority (Enterprise)
- [x] Standardized Mission Planning Interface (aka Command Load Generator (CLG))
- [x] Protocol buffer support
- [ ] Critical Commanding (Two Operators - Enterprise)
- [ ] Log Message Extractor Tool (Enterprise)
- [ ] System Health Tool (Enterprise)
:white_check_mark:&nbsp;&nbsp;Python Support<br/>
:white_check_mark:&nbsp;&nbsp;Standardized Mission Planning Interface (aka Command Load Generator (CLG))<br/>
:white_check_mark:&nbsp;&nbsp;Protocol buffer support<br/>
:white_check_mark:&nbsp;&nbsp;Command Authority (Enterprise)<br/>
:white_check_mark:&nbsp;&nbsp;Critical Commanding (Two Operators - Enterprise)<br/>

## OpenC3 COSMOS 6.0 (Late 2024)

Core Features:

- [x] Python Support
- [ ] Upgrade Tools to Vue 3 / Vuetify 3
- [ ] Plugin App Store
:white_check_mark:&nbsp;&nbsp;Upgrade Tools to Vue 3 / Vuetify 3<br/>
:white_check_mark:&nbsp;&nbsp;Traefik v3<br/>
:white_large_square:&nbsp;&nbsp;Python / Ruby parity (interfaces, protocols, etc)<br/>

Functionality For 6.1+:

- [ ] Telemetry Viewer screen playback of historical data
- [ ] libCSP Interface (Cubesat Space Protocol)
- [ ] Standardized Interfaces for common message buses (ZeroMQ, ActiveMQ, etc)
- [ ] COSMOS Notebooks (similar to Jupyter Notebooks)
- [ ] COSMOS Dashboards (configurable iFrames for Common Operating Picture)
- [ ] Integration with ground networks (Atlas, RBC Signals)
- [ ] Integration with mission planning (Orbit Logic, Cognitive Space)
- [ ] Integration with flight dynamics (Kayhan, SEE, Exotrail)
:white_large_square:&nbsp;&nbsp;Plugin App Store<br/>
:white_large_square:&nbsp;&nbsp;System Health Tool (Enterprise)<br/>
:white_large_square:&nbsp;&nbsp;Log Message Extractor Tool (Enterprise)<br/>
:white_large_square:&nbsp;&nbsp;Telemetry Viewer screen playback of historical data<br/>
:white_large_square:&nbsp;&nbsp;libCSP Interface (Cubesat Space Protocol)<br/>
:white_large_square:&nbsp;&nbsp;Standardized Interfaces for common message buses (ZeroMQ, ActiveMQ, etc)<br/>
:white_large_square:&nbsp;&nbsp;COSMOS Notebooks (similar to Jupyter Notebooks)<br/>
:white_large_square:&nbsp;&nbsp;COSMOS Dashboards (configurable iFrames for Common Operating Picture)<br/>
:white_large_square:&nbsp;&nbsp;Integration with ground networks (Atlas, RBC Signals)<br/>
:white_large_square:&nbsp;&nbsp;Integration with mission planning (Orbit Logic, Cognitive Space)<br/>
:white_large_square:&nbsp;&nbsp;Integration with flight dynamics (Kayhan, SEE, Exotrail)<br/>

## OpenC3 COSMOS 7.0

Core Features:

- [ ] Super Bridge - This will enable SaaS COSMOS and provide a secure method to communicate from a cloud server to an intranet for hardware control
:white_large_square:&nbsp;&nbsp;Super Bridge - This will enable SaaS COSMOS and provide a secure method to communicate from a cloud server to an intranet for hardware control

## Near-term Planning

Expand Down
3 changes: 3 additions & 0 deletions docs.openc3.com/docs/development/streaming-api.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
---
title: Streaming API
description: Using the websocket streaming API to retrieve data
sidebar_custom_props:
myEmoji: 📝
---

:::note This documentation is for COSMOS Developers
Expand Down
Loading
Loading