@@ -20,8 +20,12 @@ void halt() {
2020static char command[160 ];
2121
2222// For power saving
23+ constexpr unsigned long ACTIVE_TIME_SEC_INUSE = 2 * 60 ; // 2 minutes
24+ constexpr unsigned long ACTIVE_TIME_SEC_IDLE = 5 ; // 5 seconds
25+ constexpr unsigned long IDLE_PERIOD_SEC = 30 * 60 ; // 30 minutes
26+
2327unsigned long lastActive = 0 ; // mark last active time
24- unsigned long nextSleepinSecs = 120 ; // next sleep in seconds. The first sleep (if enabled) is after 2 minutes from boot
28+ unsigned long nextSleepinSecs = ACTIVE_TIME_SEC_INUSE ; // next sleep in seconds
2529
2630void setup () {
2731 Serial.begin (115200 );
@@ -129,14 +133,14 @@ void loop() {
129133
130134 if (the_mesh.getNodePrefs ()->powersaving_enabled && !the_mesh.hasPendingWork ()) {
131135 #if defined(NRF52_PLATFORM)
132- board.sleep (1800 ); // nrf ignores seconds param, sleeps whenever possible
136+ board.sleep (IDLE_PERIOD_SEC ); // nrf ignores seconds param, sleeps whenever possible
133137 #else
134138 if (the_mesh.millisHasNowPassed (lastActive + nextSleepinSecs * 1000 )) { // To check if it is time to sleep
135- board.sleep (1800 ); // To sleep. Wake up after 30 minutes or when receiving a LoRa packet
139+ board.sleep (IDLE_PERIOD_SEC ); // To sleep. Wake up after 30 minutes or when receiving a LoRa packet
136140 lastActive = millis ();
137- nextSleepinSecs = 5 ; // Default: To work for 5s and sleep again
141+ nextSleepinSecs = ACTIVE_TIME_SEC_IDLE ; // Default: To work for 5s and sleep again
138142 } else {
139- nextSleepinSecs += 5 ; // When there is pending work, to work another 5s
143+ nextSleepinSecs += ACTIVE_TIME_SEC_IDLE ; // When there is pending work, to work another 5s
140144 }
141145 #endif
142146 }
0 commit comments