Skip to content

av1452/Embedded-Supervisor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Embedded Device Supervisor

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

Features

Telemetry Monitoring

Simulates:

  • CPU usage
  • memory usage
  • device temperature

Watchdog Supervision

Monitors subsystem heartbeat signals and detects thread failures.

Fault Detection

Generates alerts when:

  • telemetry becomes unresponsive
  • simulated temperature exceeds thresholds

Thread-Safe Logging

Logs:

  • INFO messages
  • WARN messages
  • ERROR messages

All logs are written to:

logs/system.log

Live CLI Dashboard

Displays:

  • CPU usage
  • memory usage
  • temperature
  • system status

Multithreaded Architecture

Separate threads for:

  • telemetry
  • watchdog
  • dashboard

Technologies Used

  • C++17
  • std::thread
  • std::mutex
  • std::atomic
  • MinGW g++
  • VS Code
  • Git

Project Structure

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

System Architecture

+----------------------+
|  Supervisor Service  |
+----------------------+
           |
    +------+------+ 
    |      |      |
Telemetry Watchdog Dashboard
 Thread    Thread   Thread

Installation

1. Clone Repository

git clone YOUR_REPOSITORY_URL
cd embedded-supervisor

Build Instructions

Windows (MinGW)

Compile

mingw32-make

Run

./supervisor.exe

Example Output

===== DEVICE SUPERVISOR =====

CPU Usage: 42%
Memory Usage: 57%
Temperature: 71 C

Example Logs

[INFO] Telemetry thread started
[WARN] High temperature warning
[ERROR] Telemetry thread unresponsive

Embedded Systems Concepts Demonstrated

Thread Synchronization

Uses:

  • mutexes
  • atomic variables
  • thread-safe shared state

Watchdog Monitoring

Implements heartbeat supervision similar to embedded watchdog systems.

Fault Handling

Detects subsystem failures and generates fault alerts.

Deterministic Task Execution

Uses periodic timing loops commonly found in embedded systems.

Modular Architecture

Separates:

  • telemetry
  • monitoring
  • logging
  • UI/dashboard

into independent components.


Future Improvements

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

Author

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors