Inter-Payload Communications Tutorial
Complexity: | Medium |
---|---|
Payloads: | SDR & SABERTOOTH |
Windows: | PAYLOAD_SDR PAYLOAD_SABERTOOTH |
This walk-through shows how to communicate between two payloads on a single satellite using HTTP over TCP/IP through the local ethernet.
- Start an HTTP server on the
SDR
- Have
SABERTOOTH
request a file from theSDR
usingcurl
- Review
Only ports 10000 and above are available to connect & bind to. Only payloads with an overlapping window are reachable.
Prerequisites
All tutorials require the steps outlined in the Getting Started Guide.
Deploy Script
The deploy
contains the following steps:
- Schedules a
PAYLOAD_SDR
window to run a web server - Schedules a
PAYLOAD_SABERTOOTH
window to download a file from the SDR webserver
Schedule PAYLOAD_SDR Window
The deploy script creates a window on the SDR
to start the built-in python
HTTP Server
on port 10101
sharing the entire filesystem (since the command is run from /
). Nothing needs to be uploaded since this already exists in python
. The server is stopped at the end of the window before the payload shuts down. Run the accompanying deploy
script:
Schedule a PAYLOAD_SABERTOOTH Window
Next, the script creates a window on the SABERTOOTH
for 30 seconds later to make an HTTP request to download /var/log/syslog
from the SDR
to the /outbox
. The IP address of the SDR is 10.2.1.12
.
$ ./deploy "[YOUR_AUTH_TOKEN]" [YOUR_SAT_ID]
Review
Once the windows have completed and enough time has passed for the file to download, we can review it in AWS S3:
$ aws s3 ls --recursive s3://user-s3-bucket/a/directory/${SAT_ID}/downlink/
2021-09-06 04:32:29 0 2021/
2021-09-06 04:32:29 0 2021/09/
2021-09-06 04:32:29 0 2021/09/06/
2021-09-06 04:32:29 2568 2021/09/06/20210906T043229Z_sdr_syslog