#include #include "alarm.h" #include "DoorSensor.h" #include "LedController.h" #include "Siren.h" // #include AlarmStatus s; DoorSensor doorSensor(&s); LedController led(&s); Siren siren(&s); void printStatus() { String msg = String("Door: ") + String(doorSensor.IsDoorOpen() ? "Open" : "Closed"); msg = msg + " | Alarm: " + String(s.isArmed ? "Armed" : "Disarmed"); msg = msg + " | Is Fired: " + String(s.isFired ? "Fired" : "Not Fired"); msg = msg + " | Led: " + String(s.ledOn ? "On" : "Off"); msg = msg + " | Silent: " + String(s.silent ? "Silent" : "Loud"); msg = msg + " | Muted: " + String(s.muted ? "Muted" : "Not Muted"); Serial.println(msg); } void setup() { Serial.begin(115200); doorSensor.Init(); led.Init(); siren.Init(); s.silent = true; s.isArmed = doorSensor.IsDoorClosed(); // WiFi.mode(WIFI_STA); // WiFi.disconnect(); // delay(100); printStatus(); } void loop() { doorSensor.HandleDoor(); if (s.doorChanged) { DoorEvent(); } s.doorChanged = false; if (s.isFired) { siren.SoundSiren(); } led.Update(); // delay(1000); } void DoorEvent() { if (doorSensor.IsDoorOpen()) { Serial.println("The door-opening"); if (!s.isArmed) { Serial.println("Alarm is dissarmed, not fireing"); return; } Serial.println("Alarm is armed, firing"); s.isFired = true; } else { // delay(500); Serial.println("The door-closing"); s.isArmed = true; } }