Purdue Orbital's Avionics and Ground Control Library, now with 100% more Rust!
Build the code:
./build.sh <ground|launch> [load]
First argument determines which station to build, second optional argument determines whether to load into Docker. If no second argument is given, a tarball file of the container is left in the root directory.
docker run --privileged -p 80:80 ground:latest
docker run --privileged launch:latest
All benchmarks are run on a Raspberry PI 4B running Raspbian aarch64.
To Run:
cargo bench --features ask --manifest-path=radio/Cargo.toml
Result:
Mod 2048 Bytes: [269.31 µs, 271.27 µs, 273.32 µs]
Demod 2048 Bytes: [1.5399 ms 1.5415 ms 1.5433 ms]
To Run:
cargo bench --features fsk --manifest-path=radio/Cargo.toml
Result:
Mod 2048 Bytes: [1.2463 ms, 1.2528 ms, 1.2596 ms]
Demod 2048 Bytes: [5.0906 ms 5.1181 ms 5.1592 ms]
To Run:
cargo bench --features bpsk --manifest-path=radio/Cargo.toml
Result:
Mod 2048 Bytes: [5.1202 ms 5.1264 ms 5.1342 ms]
Demod 2048 Bytes: [7.1631 ms 7.1662 ms 7.1697 ms]
To Run:
cargo bench --features qpsk --manifest-path=radio/Cargo.toml
Result:
Mod 2048 Bytes: [6.8521 ms 7.3044 ms 7.7264 ms]
Demod 2048 Bytes: [5.1894 ms 5.8040 ms 6.4660 ms]
This section is for developers who wish to help contribute to this code! ALL code needs to be tested before being committed.
To test all radio components work properly, run the code seen below.
cargo test --manifest-path=radio/Cargo.toml
(Credit: https://stackoverflow.com/questions/31446777/difference-between-packets-and-frames)