FSCompose

Commands

Time of Execution

All commands except for downlink need to add a time of execution prefix to the command. It can be either relative to the previous command or absolute timing. Both types are explained below :

Absolute Execution Time

The Absolute Execution Time executes commands at the given absolute calendar time. It’s Prefix has the following format, an ‘A’ followed by ISO_8601 ordinal datetime format with optional subseconds:

AYYYY-DDDTHH:MM:SS[.sss] [command]

Where:

The example below will execute the command the 20th of August of 2024, at 15h02 and 1 second:

A2024-232T15:02:01 [command]

On Linux, you can easily fetch the day of the year of a given date with the following command :

$ date --date="2023-07-25" +%j
206

Which gives you the DDD argument of the Prefix, 206 in this example.

Relative Execution Time

The Relative Execution Time is relative to the previous command’s execution time and it’s Prefix has the following format :

RHH:MM:SS [command]

Where:

If the first command in a command sequence is Relative Execution timed, it will execute relative to the start of the command sequence.

R00:00:02 build Dockerfile.integration integration-img

Note Relative times cannot exceed 24 hours for now.

Commands

[time] build [Dockerfile.name] [image_tag]

Description

Build a Docker Container on the Flight Software (FS).

Parameters

Usage

The first build will be executed the 21th of August 2024, at 23h02, build the Dockerfile Dockerfile.integration and tag the built Docker Image to integration-img.

The second build command will be executed 2h32 after the previous command, i.e. the 22th of August 2024, at 1h02 minutes and 32 seconds. It will build the same Dockerfile, and tag the built Docker Image to integration-img-2

    A2024-232T23:02:00 build Dockerfile.integration integration-img
    R02:00:32 build Dockerfile.integration integration-img-2

[time] start [image_tag] [container_name]

Description

Starts a Docker Container from the specified Docker Image. The Docker Image needs to be built before running this command for it to succeed.

Parameters

Usage

The first build will be executed the 14th of September 2024, at 15h02, build the Dockerfile Dockerfile.integration and tag the built Docker Image to integration-img.

The second command will be executed 10 minutes and 21 seconds after the previous command, i.e. the 14th of September 2024, at 15h12 and 21 seconds. It will start the Docker Container from the previously built integration-img Docker Image, and name this Docker Container testing-interface

    A2024-257T15:02:00 build Dockerfile.integration integration-img
    R00:10:21 start integration-img testing-interface

[time] stop [container_name]

Description

Stops a running Docker Container.

Parameters

Usage

The first command will be executed immediately when the command sequence start. It will start a Docker Container from a previously built Docker Image integration-img, and name the Docker Container quick-test

The second command will be executed 21 seconds after the previous one. It will stop the previously started Docker Container.

    R00:00:00 start integration-img quick-test
    R00:00:21 stop  quick-test

Description

Requests the FS to downlink a file that is contained in the data/ folder of the Users’ volume.

Parameters

Usage

The command will be executed immediately. It will request the FS to add the test.txt file to the zip file that will be downlinked to the FS Interface.

    downlink test.txt

Note The downlink command does not take a time of execution prefix.

Full Example

Below is presented a full example of Command Sequence, in which we do the following :

  1. Build the Dockerfile.integration file and name the resulting Docker Image to integration-image.
  2. Start a Docker Container from the previously built Docker Image integration-image, and name this Docker Container to run-integration
  3. Stop the running Docker Container named run-integration
  4. Request downlink of the log.txt, which is foun in the data/ folder of the users volume in the FS.
R00:00:00 build Dockerfile.integration integration-image

R00:00:10 start integration-image run-integration

R00:00:30 stop run-integration

downlink log.txt