Overview
A software-only C++17 industrial edge gateway and simulated MCU. Virtual sensors feed a transport abstraction; the gateway validates frames, monitors sensor freshness, controls safety states, and exposes supervisory and telemetry interfaces.
Problem
A gateway linking device readings with SCADA systems must identify corrupt frames, stale telemetry, and hazardous states without treating missing data as a safe reading.
Architecture
Virtual sensors → simulated MCU (sampling and CRC-32) → TCP/UART transport abstraction → C++ edge gateway → Modbus TCP, MQTT, and SCADA tools.
My implementation
The simulation models sampling, serialized binary frames, concurrent network handling, staleness monitoring, watchdog decisions, and a fault-aware control state machine.
Tradeoffs and safety
A decoupled transport isolates simulation from potential hardware adapters. CRC-32 catches damaged frames, staleness tracking handles silence, and hysteresis limits oscillation between warning and normal states.
Verification and limits
The public source documents builds, diagnostics, and fault-injection scenarios. This is workstation software, not an actual industrial deployment or physical embedded-hardware validation.