Spacecraft command language

A spacecraft command language (or satellite control language, spacecraft control language, Systems Test and Operation Language (STOL), Satellite Test and Operation Language, etc.) is a computer command language for commanding spacecraft mission systems. Ultimately such languages are used to command remote spacecraft with telecommands, but they are also used for development and verification of onboard systems (prototype, engineering model, and flight hardware and software), and of ground systems, prior to launch.

Spacecraft command languages are typically written in a format similar to human languages. This is in contrast to telecommand protocols, which are usually binary formats (although they may be displayed in hexadecimal, or broken out into labelled fields by command displays). Some spacecraft command languages, such as SCL or PLEXIL, can be executed on the spacecraft with an onboard executive.

The NASA GSFC Systems Test and Operation Language (STOL) Functional Requirements and Language Description (1978). illustrates the concept: The Systems Test and Operation Language (STOL) provides the means for user communication with payloads, applications programs, and other ground system elements. It is a systems operation language that enables an operator or user to communicate a command to a computer system. The system interprets each high level language directive from the user and performs the indicated action, such as executing a program, printing out a snapshot, or sending a payload command. By using STOL, payload test and operations personnel may be relieved of repetitive tasks while ensuring that recurring, fixed sequences of operations are always performed in exactly the same order, and guaranteeing repeatability of test procedures or Project Operations Control Center (POCC) operations.

History
The original language to which the acronym STOL was applied, GSFC Systems Test and Operation Language, was designed in the 1970s at NASA Goddard Space Flight Center to provide a standardized language for functionality that had been previously represented in at least three other satellite operation language efforts at GSFC.

Various STOLs were created at other locations with mission-specific or site-specific names, and proliferated to the extent that a Jargon Interpreter program was prototyped at one GSFC, to convert English statements to a limited set of MSTOL directives, with plans for other STOL dialects. Other languages were later developed and offered by private companies as part of satellite control software suites.

Command Translation Examples
The following examples show natural language CSTOL commands and the lower-level spacecraft commands they are translated into, for a particular spacecraft.

The first two examples show two different CSTOL commands that are translated into the same spacecraft command, indicating that this spacecraft command takes different values as an argument.

In the last example, the CSTOL command is translated to another CSTOL command, which would then be translated into a spacecraft command in still-human-readable textual format. The command can be uplinked as-is if the spacecraft has the ability to read the text format. Otherwise, the command is translated to a packed binary representation on the ground, prior to uplink.