How dawtrin/emergency-mesh-desktop works
Emergency Mesh Rescue is a JavaFX command-and-control application for receiving SOS reports from simulated field nodes over a TCP mesh and dispatching instructions back to them. Field nodes create SOS and heartbeat packets; relay routing forwards packets, while load reports help the base station choose relays for dispatch and failover. The base station presents incidents in a victim table and map and raises an audible alarm. Excerpts confirm these main paths; some UI and server callback wiring is not shown, so uncertain connections are omitted.
Main entry points: BaseStationController.java Command Dashboard · NodeClientController.java Node Client UI · RoutingEngine.java Packet Router · SocketServer.java TCP Server
Components 23
Field Nodes
- Node Client UI
src/main/java/com/rescue/mesh/ui/controller/NodeClientController.java - Node Application
src/main/java/com/rescue/mesh/SimulatedNodeApp.java - Node Configuration
src/main/java/com/rescue/mesh/network/NodeConfig.java - Node Layout
src/main/resources/fxml/NodeClient.fxml - Node Properties
config
Mesh Transport
- TCP Server
src/main/java/com/rescue/mesh/network/SocketServer.java - TCP Client
src/main/java/com/rescue/mesh/network/SocketClient.java - Packet Router
src/main/java/com/rescue/mesh/routing/RoutingEngine.java - Duplicate Cache
src/main/java/com/rescue/mesh/routing/SeenPacketCache.java
Command Center
- Station Application
src/main/java/com/rescue/mesh/BaseStationApp.java - Command Dashboard
src/main/java/com/rescue/mesh/ui/controller/BaseStationController.java - Victim Table Rows
src/main/java/com/rescue/mesh/ui/component/VictimTableRow.java - Relay Load Balancer
src/main/java/com/rescue/mesh/routing/LoadBalancer.java - Relay Status
src/main/java/com/rescue/mesh/routing/NodeStatus.java - SOS Alarm
src/main/java/com/rescue/mesh/audio/AlarmPlayer.java - Offline Map
src/main/resources/map/leaflet_offline.html - Station Layout
src/main/resources/fxml/BaseStation.fxml
Packet Model
- Mesh Packet
src/main/java/com/rescue/mesh/model/MeshPacket.java - Packet Factory
src/main/java/com/rescue/mesh/util/PacketFactory.java - Checksum Utility
src/main/java/com/rescue/mesh/util/ChecksumUtil.java
Other components
- Rescue Operator
- Station Commander
- Mesh Peer
Connections 32
- Rescue Operator → Node Client UI: reports SOS
- Node Application → Node Configuration: loads settings
- Node Application → Node Client UI: starts UI
- Node Client UI → Packet Factory: creates SOS
- Node Client UI → Packet Factory: creates heartbeat
- Node Client UI → Packet Factory: creates load report
- Node Client UI → Packet Router: processes packet
- Node Client UI → TCP Client: sends report
- Node Client UI → TCP Server: starts listener
- Node Layout → Node Client UI: defines view
- Node Properties → Node Configuration: configures node
- TCP Server → Packet Router: passes packet
- Mesh Peer → TCP Server: sends packet
- Packet Router → Duplicate Cache: checks duplicates
- Packet Router → TCP Client: forwards packet
- Packet Router → Mesh Peer: relays packet
- Packet Router → Mesh Packet: routes packet
- Packet Factory → Mesh Packet: builds packet
- Mesh Packet → Checksum Utility: computes checksum
- Station Application → Command Dashboard: loads station
- Command Dashboard → TCP Server: starts listener
- Command Dashboard → Relay Load Balancer: selects relay
- Relay Load Balancer → Relay Status: tracks relay
- Command Dashboard → Packet Factory: creates dispatch
- Command Dashboard → TCP Client: sends dispatch
- Command Dashboard → SOS Alarm: plays alarm
- Command Dashboard → Victim Table Rows: presents incidents
- Command Dashboard → Offline Map: renders locations
- Station Application → Station Layout: loads view
- Station Commander → Command Dashboard: dispatches command
- TCP Server → Command Dashboard: delivers events
- Mesh Peer → TCP Client: receives packet