Web-based INterface Ground-station Software
WINGS is a software processing telemetry and command for satellites and satellite components. WINGS is a web application that can be used from both web browsers and HTTP API requests. WINGS supports C2A-styled and ISSL-styled telemetry and command formats. Users can implement other formats.
Usually, interface software is required for the connection between WINGS and satellites. WINGS_TMTC_IF is such software that supports COM port and socket connection. Users can implement other interface software.
WINGS uses ASP .NET for backend software, MySQL for database, and React for frontend software.
The application listed below is required:
- Open a terminal.
- Navigate to the desired location for the repository.
- Clone the repository.
- Make sure that docker is running.
- Create docker images in the directory containing
docker-compose.yml
.docker-compose build
- Start the docker containers.
docker-compose up -d
- Access
https://localhost:5001
from your browser. - If you stop the containers, you can use the following command:
docker-compose down
- Add the component name you want to communicate with, along with the Command APID and Telemetry APID, to the config.json file.
- Fulfill comment and select a component in the main page.
- Click the operation start button.
- Connect WINGS_TMTC_IF to the the operation.
- Click the operation join button.
- You can show telemetries and send commands while joining the operation.
- You can send commands by clicking command line and pushing
"Shift" + "Return"
keys. - If you want to use command files, click "+" button in command file tabs.
- If you want to add unplanned commands, select command in "Command Selection" area and click "add" button.
- You can show telemetry by clicking "+" button, selecting showing type and telemetry packet names, and clicking "Open" button.
- "packet" type just shows telemetry values.
- "graph" type shows telemetry graphs.
- You can save and restore telemetry showing layouts (click "Layouts" button).
- Command logs are shown in "CmdLog" page.
-
Command
- Four types of Command are available for OBC:
RT
,TL
,UTL
,BL
- Four types of Command are available for OBC:
-
Comment
- Comment function is available by prefixing a line with
#
.
- Comment function is available by prefixing a line with
-
Other Functions
call
: Funtion to call other *.ops file.- ex.)
call TEST.ops
.
- ex.)
wait_sec
: Function to specify how many seconds to wait before moving to the next file line.- ex.)
wait_sec 2
- ex.)
let
: Function to define internal variables.- The right-hand side of the
let
function can perform four arithmetic operations and other operations (*1). - The current telemetry value or an already defined variable using
let
function can be assigned by enclosing it in braces{}
. - ex.1)
let testA = 10 + 60 * 10
- ex.2)
let testB = {testA} + 10 * Math.sin(Math.PI)
- The right-hand side of the
get
: Function to get the current value of the telemerty or the defined variable.- ex.)
get testA
- ex.)
check_value
: Function to check whether the specific condition is satisfied.check_value
function is basically used as follows:check_value A == B
check_value A >= B
- Currently,
A
is limited to telemetry names and variables defined bylet
function. B
can be any value, the names of telemetry, or variables already defined usinglet
function.- The names of telemetry, or variables already defined must be enclosed in braces {}.
wait_until
: Function to wait until the specific condition is satisfied.wait_until
function is basically used as follows:wait_until A == B
wait_until A >= B
- Currently,
A
is limited to telemetry names and variables defined bylet
function. B
can be any value, the names of telemetry, or variables already defined usinglet
function.- The names of telemetry, or variables already defined must be enclosed in braces {}.
-
Annotation(*1):About other operations
- The following is a list of operations that can be used in addition to the four basic arithmetic operations:
- Math Object
- Javascript provides built-in objects that allow the following operations:
- ex.)
Math.PI
Math.abs(x)
Math.asin(x)
Math.acos(x)
Math.hypot(x, y, z, ...)