radio-c2-core
The "Brain" of the project. This central server manages the global state of the radio network, routes commands to nodes, and persists historical data.
- Components
MQTT Broker (Mosquitto): The post office. Handles all traffic between nodes and the C2.
FastAPI Core: The logic engine. Listens to MQTT events and provides the REST API for the future Web Portal.
PostgreSQL: The memory. Stores node registry, status history, and metadata logs.
- MQTT Topic Structure
nodes/{node_id}/checkin: Nodes publish their full config here on boot.
nodes/{node_id}/status: LWT (Last Will) and periodic heartbeat.
nodes/{node_id}/command: C2 publishes tuning commands here for nodes to execute.
nodes/{node_id}/metadata: High-resolution talkgroup and signal data.
- The Handshake
Node connects to MQTT.
Node publishes online to status and full JSON to checkin.
C2 receives checkin, updates the database, and marks the node as "Manageable".
If Node vanishes, Broker publishes offline to status via LWT.