init
This commit is contained in:
31
readme.md
Normal file
31
readme.md
Normal file
@@ -0,0 +1,31 @@
|
||||
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.
|
||||
Reference in New Issue
Block a user