.cargo | ||
docs | ||
pass-log | ||
pytmtc | ||
scripts | ||
src | ||
templates | ||
test_pictures | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
Cross.toml | ||
LICENSE-APACHE | ||
NOTICE | ||
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.
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:
- If the software is built with the
host
feature, the HOME path will be the current path the software is run at. - If the
host
feature is not set and the/home/exp278
folder exists, that folder will be the home directory. - 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