.cargo | ||
docs | ||
pytmtc | ||
scripts | ||
src | ||
templates | ||
test_pictures | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
Cross.toml | ||
README.md |
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.
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.