nachdem die einzelnen Hard- und Software-Komponenten funktionieren, werden diese zum Gesamtsystem zusammengefügt und eine erste einfache Lösung erstellt (Initial Operating Capability)
Controller::onStart()
// boot sequence after start SysTick statusLED.blink(1); display.clear(); display.home(); display.write("WELCOME"); // Uhr stellen clock.hour=11; clock.minute=20; clock.second=0; // weckzeit stellen sensorBus.eep.writeData(10,clock.hour); waitMs(10); sensorBus.eep.writeData(11,clock.minute+1); waitMs(10); sensorBus.eep.writeData(12,clock.second); waitMs(10); speaker.setHz(900);
Controller::onEvent1s()
uint8_t temerature; temerature=sensorBus.temperatureSensor.getTemp(); String txt; txt.format("Temp=%d ",temerature); display.setPos(1,1); display.write(txt); txt=clock.getTimeAsText(); display.setPos(1,2); display.write(txt); uint8_t wm,wh,ws; wh=sensorBus.eep.readData(10); wm=sensorBus.eep.readData(11); ws=sensorBus.eep.readData(12); if (wh==clock.hour) { if (wm==clock.minute) { if(ws==clock.second) { //alarm alarm=true; speaker.on(); statusLED.flicker(); } } }
TemperatureSensor::onStart()
connect(app.sensorBus,0x90);
EEPROM::onStart()
connect(app.sensorBus,addr);
UserButton::onClick()
// hier alarm ausschalten app.speaker.off(); app.statusLED.blink(1);
Clock::onEvent1s()
second++; if (second>60) { minute++; second=0; if (minute>60) { hour++; minute=0; if (hour>24) { hour=0; } } }
Clock::getTimeAsText()
String txt; txt.format("%d:%d:%d",hour,minute,second);