51727f9e2434be1492c93a6bd6e350ab00bbbff7
Satellites that dropped out of a receiver's NAV-SAT report (set below horizon, lost signal) were never removed from the sky tab's store/trail/highlight-timer dicts, only on full receiver removal. Over a long session this let ghost satellites accumulate without bound, making table rebuilds and sky-plot rendering progressively more expensive and the GUI increasingly laggy.
Usage
main.py
python main.py [--project FILE] [--save FILE]
[--network NAME HOST PORT] ...
[--serial NAME DEVICE BAUD] ...
[--file PATH] ...
[--log-dir DIR] [--delay SECS]
| Option | Default | Description |
|---|---|---|
--network NAME HOST PORT |
— | Add a TCP/IP source |
--serial NAME DEVICE BAUD |
— | Add a serial port source |
--file PATH |
— | Add a log file for replay |
--log-dir DIR |
./log |
Directory for recorded frame logs |
--delay SECS |
1.0 |
Inter-frame delay for file replay (0–10 s) |
--project FILE |
— | Load config from a JSON project file |
--save FILE |
— | Save current config as a JSON project file |
Multiple --network, --serial and --file options can be combined freely.
Examples
# Two network receivers
python main.py --network neo-f9p 192.168.22.93 8721 \
--network zed-x20p 192.168.22.93 8731
# Save config to project file
python main.py --network neo-f9p 192.168.22.93 8721 --save project.json
# Load from project file
python main.py --project project.json
# Replay a recorded log at 0.5 s per frame
python main.py --file log/2026_05_25_11_05_19_neo-f9p.log --delay 0.5
# Mix live network source with file replay
python main.py --network zed-x20p 192.168.22.93 8731 \
--file log/2026_05_25_11_05_19_neo-f9p.log
Project file format (JSON)
{
"log_dir": "./log",
"delay": 1.0,
"sources": [
{"type": "network", "name": "neo-f9p", "host": "192.168.22.93", "port": 8721},
{"type": "serial", "name": "gps1", "device": "/dev/ttyUSB0", "baudrate": 115200},
{"type": "file", "path": "log/2026_05_25_11_05_19_neo-f9p.log"}
]
}
NEO-F9P
Data sheet
Integration Manual
https://content.u-blox.com/sites/default/files/documents/NEO-F9P_IntegrationManual_UBX-22028362.pdf
Interface spec
ZED-20P
Data sheet
Integration Manual
Interface spec
Real time Kinematics
ESA Article
https://gssc.esa.int/navipedia/index.php?title=Real_Time_Kinematics
RTCM 3.0
Overview
https://www.geopp.de/pdf/gppigs06_rtcm_f.pdf
Cheat sheet
https://www.use-snip.com/kb/knowledge-base/an-rtcm-message-cheat-sheet/
Languages
Python
100%