How tailstff/madmax works
MadMax is an embedded equipment-control and monitoring system. Its principal user workflow is browser navigation to live data or configuration, HTTP requests to the device, and responses rendered in the UI. The device also exposes Modbus TCP memory to clients and publishes queued MQTT messages to a broker. Domain modules cover variables, equipment, pump swapping, timing and control functions. The tree and excerpts establish application setup and several integrations; unsampled domain and API internals are shown as capabilities without speculative call links.
Main entry points: main.cpp Device startup · app.js UI application · ModbusServerManager.cpp Modbus server · WebAPI.cpp Web API
Components 26
Browser interface
- UI application
data/app.js - Accum navigator
data/accumsNavigator/accumsNavigator.js - Variables navigator
data/variablesNavigator/variablesNavigator.js - Pump swaps navigator
data/pumpSwapsNavigator/pumpSwapsNavigator.js - System navigator
data/madmaxSystem/madmaxSystem.js
Device application
- Device startup
src/main.cpp - Web API
src/WebAPI.cpp - Application logic
src/myApp.cpp - Execution environment
lib/ExecutionEnv/ExecutionEnv.cpp - Digital I/O
lib/DigitalInputs/DigitalInputs.cpp
Control domains
- Variables
lib/Variable/Variable.h - Digital equipment
lib/DigitalEquipment/DigitalEquipment.cpp - Timing controls
lib/DelayOnOff/DelayOnOff.cpp - Pump swapping
lib/PumpSwap/PumpSwap.cpp - Control functions
lib/PID/PID.cpp
Protocols and storage
- Modbus server
lib/ModbusServerManager/ModbusServerManager.cpp - Modbus memory
lib/ModbusServerMemoryManager/ModbusServerMemoryManager.cpp - Protocol bindings
lib/Binding/BindingManager.cpp - Modbus adapter
lib/ProtocolAdapters/ModbusAdapter.cpp - MQTT manager
lib/MQTTManager/MQTTManager.cpp - Preferences
lib/MiniPrefs/MiniPrefs.cpp
Other components
- Operator
- Browser
- Modbus client
- MQTT broker
- I/O hardware
Connections 20
- Operator → Browser: uses
- Browser → UI application: loads
- UI application → Accum navigator: opens
- UI application → Variables navigator: opens
- UI application → Pump swaps navigator: opens
- UI application → System navigator: opens
- UI application → Web API: requests HTTP
- Web API → Browser: returns HTTP
- Device startup → Web API: creates
- Device startup → Application logic: creates
- Device startup → Execution environment: creates
- Device startup → Modbus server: starts
- Device startup → MQTT manager: starts
- Device startup → Digital I/O: initializes
- Modbus client → Modbus server: requests Modbus
- Modbus server → Modbus memory: reads and writes
- Modbus server → Modbus client: returns response
- Protocol bindings → Modbus adapter: dispatches binding
- MQTT manager → MQTT broker: publishes
- I/O hardware → Digital I/O: supplies signals