Address review comments

This commit is contained in:
Wessel Nieboer 2026-03-04 03:13:53 +01:00
parent 53ff4ed57f
commit 1ab8a6f6da
No known key found for this signature in database
GPG key ID: 929C8E45E33B5FD2
9 changed files with 47 additions and 47 deletions

View file

@ -110,8 +110,8 @@ void setup() {
board.begin();
#ifdef HAS_EX_WATCHDOG
ex_watchdog.begin();
#ifdef HAS_EXTERNAL_WATCHDOG
external_watchdog.begin();
#endif
#ifdef DISPLAY_CLASS
@ -229,7 +229,7 @@ void loop() {
ui_task.loop();
#endif
rtc_clock.tick();
#ifdef HAS_EX_WATCHDOG
ex_watchdog.loop();
#ifdef HAS_EXTERNAL_WATCHDOG
external_watchdog.loop();
#endif
}

View file

@ -29,8 +29,8 @@ void setup() {
board.begin();
#ifdef HAS_EX_WATCHDOG
ex_watchdog.begin();
#ifdef HAS_EXTERNAL_WATCHDOG
external_watchdog.begin();
#endif
#if defined(MESH_DEBUG) && defined(NRF52_PLATFORM)
@ -138,13 +138,13 @@ void loop() {
#endif
rtc_clock.tick();
#ifdef HAS_EX_WATCHDOG
ex_watchdog.loop();
#ifdef HAS_EXTERNAL_WATCHDOG
external_watchdog.loop();
#endif
if (the_mesh.getNodePrefs()->powersaving_enabled && !the_mesh.hasPendingWork()) {
#if defined(NRF52_PLATFORM)
#ifdef HAS_EX_WATCHDOG
uint32_t sleep_interval = ex_watchdog.getIntervalMs()/1000;
#ifdef HAS_EXTERNAL_WATCHDOG
uint32_t sleep_interval = external_watchdog.getIntervalMs()/1000;
board.sleep((sleep_interval > 1800) ? 1800 : sleep_interval); // To sleep. Wake up after 30 minutes or when receiving a LoRa packet
#else
board.sleep(1800); // To sleep. Wake up after 30 minutes or when receiving a LoRa packet
@ -152,8 +152,8 @@ void loop() {
board.sleep(1800); // nrf ignores seconds param, sleeps whenever possible
#else
if (the_mesh.millisHasNowPassed(lastActive + nextSleepinSecs * 1000)) { // To check if it is time to sleep
#ifdef HAS_EX_WATCHDOG
uint32_t sleep_interval = ex_watchdog.getIntervalMs()/1000;
#ifdef HAS_EXTERNAL_WATCHDOG
uint32_t sleep_interval = external_watchdog.getIntervalMs()/1000;
board.sleep((sleep_interval > 1800) ? 1800 : sleep_interval); // To sleep. Wake up after 30 minutes or when receiving a LoRa packet
#else
board.sleep(1800); // To sleep. Wake up after 30 minutes or when receiving a LoRa packet

View file

@ -24,8 +24,8 @@ void setup() {
board.begin();
#ifdef HAS_EX_WATCHDOG
ex_watchdog.begin();
#ifdef HAS_EXTERNAL_WATCHDOG
external_watchdog.begin();
#endif
#ifdef DISPLAY_CLASS
@ -117,7 +117,7 @@ void loop() {
ui_task.loop();
#endif
rtc_clock.tick();
#ifdef HAS_EX_WATCHDOG
ex_watchdog.loop();
#ifdef HAS_EXTERNAL_WATCHDOG
external_watchdog.loop();
#endif
}

View file

@ -559,8 +559,8 @@ void setup() {
board.begin();
#ifdef HAS_EX_WATCHDOG
ex_watchdog.begin();
#ifdef HAS_EXTERNAL_WATCHDOG
external_watchdog.begin();
#endif
if (!radio_init()) { halt(); }
@ -594,7 +594,7 @@ void setup() {
void loop() {
the_mesh.loop();
rtc_clock.tick();
#ifdef HAS_EX_WATCHDOG
ex_watchdog.loop();
#ifdef HAS_EXTERNAL_WATCHDOG
external_watchdog.loop();
#endif
}

View file

@ -58,8 +58,8 @@ void setup() {
board.begin();
#ifdef HAS_EX_WATCHDOG
ex_watchdog.begin();
#ifdef HAS_EXTERNAL_WATCHDOG
external_watchdog.begin();
#endif
#ifdef DISPLAY_CLASS
@ -151,7 +151,7 @@ void loop() {
ui_task.loop();
#endif
rtc_clock.tick();
#ifdef HAS_EX_WATCHDOG
ex_watchdog.loop();
#ifdef HAS_EXTERNAL_WATCHDOG
external_watchdog.loop();
#endif
}

View file

@ -1,10 +1,10 @@
#pragma once
class ExWatchdogManager {
class ExternalWatchdogManager {
protected:
unsigned long next_feed_watchdog;
public:
ExWatchdogManager() { next_feed_watchdog = 0; }
ExternalWatchdogManager() { next_feed_watchdog = 0; }
virtual bool begin() { return false; }
virtual void loop() { }
virtual unsigned long getIntervalMs() const { return 0; }

View file

@ -14,10 +14,10 @@ build_flags = ${nrf52_base.build_flags}
-D LORA_TX_POWER=22
-D SX126X_CURRENT_LIMIT=140
-D SX126X_RX_BOOSTED_GAIN=1
-D HAS_EX_WATCHDOG
-D EX_WATCHDOG_DONE_PIN=9
-D EX_WATCHDOG_WAKE_PIN=10
-D EX_WATCHDOG_TIMEOUT_MS=480000 ;(6*60*1000) ; 6 minute watchdog
-D HAS_EXTERNAL_WATCHDOG
-D EXTERNAL_WATCHDOG_DONE_PIN=9
-D EXTERNAL_WATCHDOG_WAKE_PIN=10
-D EXTERNAL_WATCHDOG_TIMEOUT_MS=480000 ;(6*60*1000) ; 6 minute watchdog
build_src_filter = ${nrf52_base.build_src_filter}
+<helpers/*.cpp>

View file

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

View file

@ -8,7 +8,7 @@
#include <helpers/AutoDiscoverRTCClock.h>
#include <helpers/SensorManager.h>
#include <helpers/sensors/LocationProvider.h>
#include <helpers/ExWatchdogManager.h>
#include <helpers/ExternalWatchdogManager.h>
#ifdef DISPLAY_CLASS
#include <helpers/ui/ST7789Display.h>
#endif
@ -31,9 +31,9 @@ public:
bool setSettingValue(const char* name, const char* value) override;
};
class SolarExWatchdog : public ExWatchdogManager {
class SolarExternalWatchdog : public ExternalWatchdogManager {
public:
SolarExWatchdog() {}
SolarExternalWatchdog() {}
bool begin() override;
void loop() override;
unsigned long getIntervalMs() const override;
@ -44,7 +44,7 @@ extern MeshSolarBoard board;
extern WRAPPER_CLASS radio_driver;
extern AutoDiscoverRTCClock rtc_clock;
extern SolarSensorManager sensors;
extern SolarExWatchdog ex_watchdog;
extern SolarExternalWatchdog external_watchdog;
#ifdef DISPLAY_CLASS
extern DISPLAY_CLASS display;