SatNOGS client architecture¶
SatNOGS client is the part of our software stack that:
- Fetches observation jobs from the network.
- Schedules locally when the observation starts/ends.
- Does orbital calculation for the position of the observer and the tracked object (using
rotctl/rigctlcommands to control SatNOGS rotator.
- Spawns processes to run demodulation/decoding software with the signal received as input.
- Posts observation data back to the network.
Following the paradigm of SatNOGS being extensively modular, SatNOGS client is designed to have discrete modules with specific functionality.
- Build using
- Stores tasks in
get_jobs: Queries SatNOGS Network API to get jobs scheduled for the ground station.
spawn_observation: Initiates an
Observerinstance and runs the observation.
post_observation_data: Gathers output files, parses filename and posts data back to SatNOGS Network API.
- Given initial description of the observation (
- Checks input for sanity.
WorkerFreqinstances that start
rigctl/rotctl. communication using
- Starts/Stops GNU Radio script (
gr-satnogs), which collects the data.
- Processes produced data from observation (ogg file, waterfall plotting).
- Facilitates as a worker for
- Is the lowest abstraction level on
- Tracks object until end of observation is reached.
- Implements orbital calculations using
pinpointmethod the returns alt/az position of tracked object.
satnogs-client: Run the scheduler queue in the background and fetch jobs from the network.