ESA OPS-SAT Rust Software experiment
Go to file
2024-05-22 18:55:33 +02:00
.cargo init commit 2024-04-08 16:47:31 +02:00
docs add some docs 2024-04-19 18:04:27 +02:00
pass-log add license files and pass log 2024-05-22 18:55:33 +02:00
pytmtc add TM DB handling 2024-05-19 08:05:18 +02:00
scripts improvements for deployment script 2024-04-28 13:14:19 +02:00
src smaller fix and TODO 2024-05-02 15:25:37 +02:00
templates Networking update 2024-04-19 17:40:38 +02:00
test_pictures initial camera handling things 2024-04-16 08:30:55 +02:00
.gitignore Networking update 2024-04-19 17:40:38 +02:00
Cargo.lock bump some package versions 2024-05-19 13:42:07 +02:00
Cargo.toml prepare v0.2.0 2024-05-02 15:11:05 +02:00
CHANGELOG.md prepare v0.2.0 2024-05-02 15:11:05 +02:00
Cross.toml init commit 2024-04-08 16:47:31 +02:00
LICENSE-APACHE add license files and pass log 2024-05-22 18:55:33 +02:00
NOTICE add license files and pass log 2024-05-22 18:55:33 +02:00
README.md update README 2024-05-02 15:13:34 +02:00

ESA OPS-SAT Rust experiment

This is the primary repository for the ESA OPS-SAT experiment. The primary repository to generate packages for ESOC can be found here. You can also find some more general documentation about OPS-SAT there.

Pre-Requisites

Build for Target Hardware

You might need to set the CROSS_CONTAINER_ENGINE and CROSS_ROOTLESS_CONTAINER_ENGINE variables manually before calling cross.

Debug Build

cross build

Release Build

cross build --release

Build for Host

The software was designed to be runnable and testable on a host computer. You can use the regular cargo workflow for this.

Running

cargo run --features host

Testing

cargo test

Commanding Infrastructure

Commanding of the ops-sat-rs application is possible by different means.

Networking and Commanding Structure

Using the pyclient and pyserver applications

You can find both commanding application inside the pytmtc folder. It is recommended to set up a virtual environment first, for example by running the following code inside the pytmtc folder:

python3 -m venv venv
source venv/bin/activate

After that, you can install all requirements for both the client and server application interactively using

pip install -e .

If you want to command the satellite using the OPS-SAT infrastrucute, start the pyserver.py as a background application first, for example by simply running pyserver.py inside a new terminal window.

After that, you can run pyclient.py -p /test/ping -l to send a ping telecommand and then go into listener mode using the following tmtc_conf.json file:

{
    "com_if": "tcp",
    "tcpip_tcp_ip_addr": "127.0.0.1",
    "tcpip_tcp_port": 4097
}

You can command the TCP server in the OPS-SAT software directly by running the commands with the following configuration:

{
    "com_if": "tcp",
    "tcpip_tcp_ip_addr": "127.0.0.1",
    "tcpip_tcp_port": 7031
}

You can run pyclient.py -T or pyclient.py -h for more information on the client application.

Knowledge Base

Home Path Handling

The OPS-SAT software filesystem handling will determine a home path at the start of the software. This home path is used for various mechanisms inside the OPS-SAT infrastructure.

Currently, there are 3 possible configurations:

  1. If the software is built with the host feature, the HOME path will be the current path the software is run at.
  2. If the host feature is not set and the /home/exp278 folder exists, that folder will be the home directory.
  3. Otherwise, the default OS home directory will be the home directory.

Application Shutdown Handling

The application can be stopped by creating a stop-experiment file either in the home path specified in the previous section, or inside the temporary folder. There is also an action command available to stop the application.

Camera Handling

TODO