chore: Add course material

This commit is contained in:
2026-10-05 11:27:21 +02:00
parent 971813c351
commit e8241fd1ff
660 changed files with 26658 additions and 1 deletions
+40
View File
@@ -0,0 +1,40 @@
#include "Light.h"
#include "LightTimer.h"
#include "Pelican.h"
#include "Screen.h"
#include <iostream>
Light::Light(std::string name, int x, int y, int color) : x(x), y(y), c(color), name(name), flashOn(false) {
myTimer = new LightTimer(*this, &Light::flashLight);
}
Light::~Light() {
std::cout << "Deleting light (" << name << ", " << x << ", " << y << ", " << c << ")"
<< "\n";
}
void Light::set(LightState newState) {
state = newState;
if (state == FLASH) {
flashOn = true;
flashLight();
} else
Screen::write(name.c_str(), x, y, state == OFF ? 0 : c); // No need to worry about flashing here
}
Light::LightState Light::get(void) { return state; }
void Light::flashLight() {
if (state == FLASH) // If we haven't left the FLASH state
{
Screen::write(name.c_str(), x, y, flashOn ? c : 0); // Display
flashOn = !flashOn; // Toggle
myTimer->timeoutRequest(FLASH_PERIOD); // Have another go
}
}