| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /*
- * TimerManager.cpp
- *
- * Created on: 12.07.2026
- * Author: FSmilari
- */
-
- #include "TimerManager.h"
- #include "ConfigManager.h"
-
- TimerManager::TimerManager(ConfigManager &configManager) : configManager(configManager) {
- }
-
- TimerManager::~TimerManager() {
- }
-
- void TimerManager::onTimerIntervalChange(String timerIntervalName, const char *timerInterval) {
- TimeInterval interval;
- parseTimeInterval(timerInterval, interval);
- saveTimerInterval(timerIntervalName, interval.start, interval.end);
- }
-
- void TimerManager::saveTimerInterval(String timerIntervalName, uint32_t start, uint32_t end) {
- Config cfg = configManager.getConfig();
- if (timerIntervalName.equals("timeInterval1")) {
- cfg.timeInterval1.start = start;
- cfg.timeInterval1.end = end;
- } else if (timerIntervalName.equals("timeInterval2")) {
- cfg.timeInterval2.start = start;
- cfg.timeInterval2.end = end;
- }
-
- configManager.saveConfig(cfg);
- }
- uint32_t TimerManager::timeToSeconds(uint8_t hour, uint8_t minute, uint8_t second) {
- return (uint32_t) hour * 3600UL +
- (uint32_t) minute * 60UL +
- second;
- }
-
- bool TimerManager::parseTimeInterval(const char *str, TimeInterval &interval) {
- unsigned int sh, sm, ss;
- unsigned int eh, em, es;
-
- if (sscanf(str,
- "%u:%u:%u - %u:%u:%u",
- &sh, &sm, &ss,
- &eh, &em, &es) != 6) {
- return false;
- }
-
- // Bereich prüfen
- if (sh > 23 || eh > 23 ||
- sm > 59 || em > 59 ||
- ss > 59 || es > 59) {
- return false;
- }
-
- interval.start = timeToSeconds(sh, sm, ss);
- interval.end = timeToSeconds(eh, em, es);
-
- return true;
- }
|