This commit is contained in:
Quency-D 2026-04-20 13:54:23 +00:00 committed by GitHub
commit 0fc7e10530
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 112 additions and 5 deletions

View file

@ -13,6 +13,7 @@ VolatileRTCClock fallback_clock;
AutoDiscoverRTCClock rtc_clock(fallback_clock);
MicroNMEALocationProvider nmea = MicroNMEALocationProvider(Serial1, &rtc_clock);
SolarSensorManager sensors = SolarSensorManager(nmea);
SolarExternalWatchdog external_watchdog;
#ifdef DISPLAY_CLASS
DISPLAY_CLASS display;
@ -121,3 +122,35 @@ bool SolarSensorManager::setSettingValue(const char* name, const char* value) {
}
return false; // not supported
}
bool SolarExternalWatchdog::begin() {
next_feed_watchdog = 0;
pinMode(EXTERNAL_WATCHDOG_WAKE_PIN, INPUT);
pinMode(EXTERNAL_WATCHDOG_DONE_PIN, OUTPUT);
delay(1);
digitalWrite(EXTERNAL_WATCHDOG_DONE_PIN, LOW);
delay(1);
feed();
return true;
}
void SolarExternalWatchdog::loop() {
if (millis() > next_feed_watchdog) {
feed();
next_feed_watchdog = millis() + EXTERNAL_WATCHDOG_TIMEOUT_MS;
}
}
unsigned long SolarExternalWatchdog::getIntervalMs() const {
unsigned long interval_ms = 0;
interval_ms = next_feed_watchdog - millis();
if(interval_ms > EXTERNAL_WATCHDOG_TIMEOUT_MS) {
interval_ms = EXTERNAL_WATCHDOG_TIMEOUT_MS;
}
return interval_ms;
}
void SolarExternalWatchdog::feed() {
digitalWrite(EXTERNAL_WATCHDOG_DONE_PIN, HIGH);
delay(1);
digitalWrite(EXTERNAL_WATCHDOG_DONE_PIN, LOW);
}