Skip to content

EmbeddedSystems-UniversitySiegen/eslab-task3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lab 3 - Distributed Fan Control Services

Table of Contents

Introduction

This repository contains the implementation scaffold for ESLAB Task 3. The system is built as distributed C++ services that communicate via message queues and are deployed across a Raspberry Pi cluster.

Two fan-control loops run in parallel:

  • control_service <-> fan_service
  • control_service1 <-> fan_service1

A central server service provides HTTP endpoints for runtime control, parameter updates, and status monitoring.

Services overview diagram

Important runtime note: The full system cannot be run meaningfully without the required fan hardware and the Raspberry Pi cluster. For students working on this repository locally, supported execution is local testing only. Actual runtime/deployment must be performed via Cascade in the lab environment.

Features

  • Service-oriented distributed architecture for embedded control.
  • Two independent control/fan service pairs.
  • ZeroMQ-based communication through shared queue abstractions.
  • HTTP server for runtime control and monitoring.
  • Static and unit test workflow through Docker.

Dependencies

  • Docker TBD

Most dependencies are already provisioned in docker/Dockerfile.servers for the test image.

Building the Project

Building the project for the first time can take a while on most hardware, since Docker needs to download and install various dependencies. Once completed, these dependencies are cached, so future builds will be significantly faster.

Linux

From the repository root, run:

./run_docker_tests.sh

The script will:

  1. Build the container image with: docker build -f docker/Dockerfile.servers -t eslab-task3-tests .
  2. Start a container from that image.
  3. Execute run_tests.sh inside the running container.
  4. Format the test output in a more readable way.
  5. Clean up the temporary container.

Windows

TBD

Usage

For most students, usage is:

  1. Implement the required TODOs in control and fan services.
  2. Run local tests via Docker.
  3. Validate your report outputs and behavior using the provided test pipeline.

Runtime clarification:

  1. Local machine: testing/validation only.
  2. Full runtime with physical fans and distributed Raspberry Pi services: done through Cascade.
  3. Without the required fans and RPi cluster, hardware-level behavior cannot be reproduced locally.

Documentation

Task and code documentation can be found at ESLAB Task 3 Documentation.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors