A multithreaded C++ system monitoring and supervision application designed to simulate embedded/Linux-style device management architecture on Windows.
This project demonstrates:
- watchdog monitoring
- telemetry collection
- thread supervision
- fault detection
- logging systems
- modular software architecture
- multithreaded synchronization
The application simulates how embedded systems supervise critical services and monitor system health in real-world environments such as:
- automotive systems
- industrial controllers
- robotics
- IoT gateways
- embedded Linux devices
Simulates:
- CPU usage
- memory usage
- device temperature
Monitors subsystem heartbeat signals and detects thread failures.
Generates alerts when:
- telemetry becomes unresponsive
- simulated temperature exceeds thresholds
Logs:
- INFO messages
- WARN messages
- ERROR messages
All logs are written to:
logs/system.log
Displays:
- CPU usage
- memory usage
- temperature
- system status
Separate threads for:
- telemetry
- watchdog
- dashboard
- C++17
- std::thread
- std::mutex
- std::atomic
- MinGW g++
- VS Code
- Git
embedded-supervisor/
│
├── include/
│ ├── dashboard.h
│ ├── logger.h
│ ├── shared_state.h
│ ├── telemetry.h
│ └── watchdog.h
│
├── src/
│ ├── dashboard.cpp
│ ├── logger.cpp
│ ├── main.cpp
│ ├── telemetry.cpp
│ └── watchdog.cpp
│
├── logs/
│ └── system.log
│
├── Makefile
├── README.md
└── .gitignore
+----------------------+
| Supervisor Service |
+----------------------+
|
+------+------+
| | |
Telemetry Watchdog Dashboard
Thread Thread Thread
git clone YOUR_REPOSITORY_URL
cd embedded-supervisormingw32-make./supervisor.exe===== DEVICE SUPERVISOR =====
CPU Usage: 42%
Memory Usage: 57%
Temperature: 71 C
[INFO] Telemetry thread started
[WARN] High temperature warning
[ERROR] Telemetry thread unresponsive
Uses:
- mutexes
- atomic variables
- thread-safe shared state
Implements heartbeat supervision similar to embedded watchdog systems.
Detects subsystem failures and generates fault alerts.
Uses periodic timing loops commonly found in embedded systems.
Separates:
- telemetry
- monitoring
- logging
- UI/dashboard
into independent components.
Potential upgrades:
- real system telemetry APIs
- process supervision
- socket communication
- CAN bus simulation
- serial communication
- ncurses dashboard
- JSON configuration support
- SQLite logging
- network telemetry streaming
Created as a systems programming and embedded architecture project focused on expanding practical experience with modern C++, multithreaded application design, watchdog supervision, telemetry systems, and modular software architecture.
This project was developed to further explore low-level software design concepts commonly used in embedded, industrial, and real-time systems environments.