ESA OPS-SAT Rust Software experiment
Go to file
2024-04-30 13:37:38 +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
pytmtc some more optimizations 2024-04-29 16:45:08 +02:00
scripts improvements for deployment script 2024-04-28 13:14:19 +02:00
src Merge remote-tracking branch 'origin/main' into fixes-and-optimizations-camera 2024-04-30 13:37:38 +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 Merge remote-tracking branch 'origin/main' into fixes-and-optimizations-camera 2024-04-30 13:37:38 +02:00
Cargo.toml Merge remote-tracking branch 'origin/main' into fixes-and-optimizations-camera 2024-04-30 13:37:38 +02:00
CHANGELOG.md changelog 2024-04-26 19:25:08 +02:00
Cross.toml init commit 2024-04-08 16:47:31 +02:00
README.md added host feature 2024-04-26 19:18:37 +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.