How waterloo-rocketry/omnibus works
Omnibus is a real-time data bus for rocket-test sensors and telemetry. The principal workflow is sensor acquisition and formatting, message publication to the bus, then receiving components that display, forward, or log the data; logs can later be replayed or processed into exports. The graph includes major documented source, sink, dashboard, mapping, and log-processing capabilities. Several subsystem internals are unsampled, so their links are limited to the documented bus workflow rather than assumed implementation details.
Main entry points: omnibus.py Bus Messaging · omnibus/server.py Omnibus Server · websocket_server/server.py WebSocket Server · main.py Processing CLI
Components 22
Message Bus
- Omnibus Server
src/omnibus/server.py - Bus Messaging
src/omnibus/omnibus.py
Data Sources
- NI DAQ
src/sources/ni/main.py - LabJack DAQ
src/sources/ljm/main.py - Parsley Telemetry
src/sources/parsley/main.py - RLCS Source
src/sources/rlcsv3/main.py - Other Sources
src/sources
Live Consumers
- Dashboard
src/dashboard/main.py - Display Items
src/dashboard/items - GPS Mapping
src/sinks/interamap - Other Sinks
src/sinks - WebSocket Server
src/websocket_server/server.py - WebSocket Bridge
src/bridge/relay.py
Logging And Replay
- Global Logger
src/globallog/main.py - Message Log
- Log Replay
src/sources/replay_log/replay_log.py
Log Processing
- Processing CLI
tools/data_processing/main.py - DAQ And CAN Processing
tools/data_processing - Beta Processing
tools/data_processing_v2_beta/main.py - Processed Exports
Other components
- Test Operators
- WebSocket Clients
Connections 24
- NI DAQ → Bus Messaging: sends DAQ
- LabJack DAQ → Bus Messaging: sends DAQ
- Parsley Telemetry → Bus Messaging: sends telemetry
- RLCS Source → Bus Messaging: publishes messages
- Other Sources → Bus Messaging: publish messages
- Bus Messaging → Omnibus Server: routes messages
- Omnibus Server → Dashboard: broadcasts messages
- Omnibus Server → GPS Mapping: broadcasts messages
- Omnibus Server → Other Sinks: broadcasts messages
- Omnibus Server → Global Logger: broadcasts messages
- Dashboard → Display Items: renders through
- WebSocket Clients → WebSocket Server: connects
- WebSocket Server → WebSocket Clients: broadcasts events
- WebSocket Server → WebSocket Bridge: relays events
- WebSocket Bridge → Bus Messaging: forwards messages
- Global Logger → Message Log: writes records
- Test Operators → Log Replay: selects log
- Message Log → Log Replay: replays messages
- Log Replay → Bus Messaging: publishes replay
- Test Operators → Processing CLI: requests preview or export
- Processing CLI → DAQ And CAN Processing: dispatches processing
- Processing CLI → Beta Processing: runs DAQ or logger
- DAQ And CAN Processing → Processed Exports: writes exports
- Beta Processing → Processed Exports: writes CSV