Command Definitions define the set of Commands that can be run on a System (a Satellite or Ground Station).

Structure

Command Definitions are uploaded as JSON files that look like the following:

*1*{
*2*  "definitions": {
*3*    "command": {
*4*      "display_name": "Command Name To Display",
*5*      "description": "Description to give context to the operator.",
*6*      "tags": ["operations"],
*7*      "fields": [
*8*        {"name": "Field Name 1", "type": "number", "range": [1, 10]},
*9*        {"name": "Field Name 2", "type": "number", "value": 15},
*10*        {"name": "Field Name 3", "type": "string"},
*11*        {"name": "Field Name 4", "type": "text"},
*12*        {"name": "Field Name 5", "type": "enum", "enum": {
*13*          "LOW": 1, "MEDIUM": 5, "HIGH": 11
*14*        }}
*15*      ]
*16*    },
*17*    "deploy": {
*18*      "display_name": "Deploy",
*19*      "description": "Deploy the Solar Panels on the satellite.",
*20*      "tags": ["commissioning", "one-time"],
*21*      "fields": [
*22*        {"name": "timeout", "type": "number", "value": 10}
*23*      ]
*24*    },
*25*    "attitude_control": {
*26*      "display_name": "Attitude Control",
*27*      "description": "Sets the target quaternion for the ADCS",
*28*      "tags": ["operations", "adacs"],
*29*      "fields": [
*30*        {"name": "X", "type": "number"},
*31*        {"name": "Y", "type": "number"},
*32*        {"name": "Z", "type": "number"},
*33*        {"name": "W", "type": "number"}
*34*      ]
*35*    },
*36*    "hardware_test": {
*37*      "display_name": "Hardware Test",
*38*      "description": "Runs the test command for all subsystems.",
*39*      "tags": ["commissioning", "recovery"],
*40*      "fields": []
*41*    }
*42*  }
*43*}

The JSON structure always has a top level key of definitions that contains a map of command names (e.g., deploy, attitude_control, and hardware_test above) to command definitions. A JSON schema is available to download at this repo, and can be referred to directly from the Command Definitions JSON file at the url below:

{
  "$schema": "<https://raw.githubusercontent.com/kubos/command_definitions_schema/main/mt_command_definitions.schema.json>"
}

Command definitions are defined as follows.

Command Definitions

Each Command Definition must contain the display_name, description, and fields keys.

Command Definition keys:

Field Definitions

The fields key must map to an array of zero or more Field Definitions with the following keys.

Field Definition keys: