31 lines
1018 B
Markdown
31 lines
1018 B
Markdown
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.
|
|
|
|
1. 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.
|
|
|
|
2. 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.
|
|
|
|
3. 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. |