@@ -315,72 +315,94 @@ void wait(unsigned long ms) {
315
315
}
316
316
}
317
317
318
- void sleep (unsigned long ms) {
318
+ int8_t sleep (unsigned long ms) {
319
319
#if defined(MY_OTA_FIRMWARE_FEATURE)
320
- if (_fwUpdateOngoing) {
321
- // Do not sleep node while fw update is ongoing
322
- _process ( );
323
- return ;
324
- } else {
320
+ if (_fwUpdateOngoing) {
321
+ // Do not sleep node while fw update is ongoing
322
+ wait (ms );
323
+ return - 1 ;
324
+ }
325
325
#endif
326
+ // if repeater, do not sleep
327
+ #if defined(MY_REPEATER_FEATURE)
328
+ wait (ms);
329
+ return -1 ;
330
+ #else
326
331
#if defined(MY_RADIO_FEATURE)
327
332
transportPowerDown ();
328
333
#endif
329
- hwSleep (ms);
330
- #if defined(MY_OTA_FIRMWARE_FEATURE)
331
- }
334
+ return hwSleep (ms);
332
335
#endif
333
336
}
334
337
335
- void smartSleep (unsigned long ms) {
336
- wait (MY_SMART_SLEEP_WAIT_DURATION );
337
- sleep (ms);
338
+ int8_t smartSleep (unsigned long ms) {
339
+ int8_t ret = sleep (ms );
340
+ // notifiy controller about wake up
338
341
sendHeartbeat ();
342
+ // listen for incoming messages
343
+ wait (MY_SMART_SLEEP_WAIT_DURATION);
344
+ return ret;
339
345
}
340
346
341
- bool sleep (uint8_t interrupt, uint8_t mode, unsigned long ms) {
347
+ int8_t sleep (uint8_t interrupt, uint8_t mode, unsigned long ms) {
342
348
#if defined(MY_OTA_FIRMWARE_FEATURE)
343
349
if (_fwUpdateOngoing) {
344
- // Do not sleep node while fw update is ongoing
345
- return false ;
346
- } else {
350
+ // not supported
351
+ return - 2 ;
352
+ }
347
353
#endif
354
+ #if defined(MY_REPEATER_FEATURE)
355
+ // not supported
356
+ (void )interrupt;
357
+ (void )mode;
358
+ (void )ms;
359
+ return -2 ;
360
+ #else
348
361
#if defined(MY_RADIO_FEATURE)
349
362
transportPowerDown ();
350
363
#endif
351
- return hwSleep (interrupt, mode, ms) ;
352
- #if defined(MY_OTA_FIRMWARE_FEATURE)
353
- }
364
+ return hwSleep (interrupt, mode, ms);
354
365
#endif
355
366
}
356
367
357
- bool smartSleep (uint8_t interrupt, uint8_t mode, unsigned long ms) {
358
- wait (MY_SMART_SLEEP_WAIT_DURATION );
359
- bool ret = sleep (interrupt, mode, ms);
368
+ int8_t smartSleep (uint8_t interrupt, uint8_t mode, unsigned long ms) {
369
+ int8_t ret = sleep (interrupt, mode, ms );
370
+ // notifiy controller about wake up
360
371
sendHeartbeat ();
372
+ // listen for incoming messages
373
+ wait (MY_SMART_SLEEP_WAIT_DURATION);
361
374
return ret;
362
375
}
363
376
364
377
int8_t sleep (uint8_t interrupt1, uint8_t mode1, uint8_t interrupt2, uint8_t mode2, unsigned long ms) {
365
378
#if defined(MY_OTA_FIRMWARE_FEATURE)
366
379
if (_fwUpdateOngoing) {
367
- // Do not sleep node while fw update is ongoing
368
- return -1 ;
369
- } else {
380
+ // not supported
381
+ return -2 ;
382
+ }
370
383
#endif
384
+ #if defined(MY_REPEATER_FEATURE)
385
+ // not supported
386
+ (void )interrupt1;
387
+ (void )mode1;
388
+ (void )interrupt2;
389
+ (void )mode2;
390
+ (void )ms;
391
+ return -2 ;
392
+ #else
371
393
#if defined(MY_RADIO_FEATURE)
372
394
transportPowerDown ();
373
395
#endif
374
- return hwSleep (interrupt1, mode1, interrupt2, mode2, ms) ;
375
- #if defined(MY_OTA_FIRMWARE_FEATURE)
376
- }
396
+ return hwSleep (interrupt1, mode1, interrupt2, mode2, ms);
377
397
#endif
378
398
}
379
399
380
400
int8_t smartSleep (uint8_t interrupt1, uint8_t mode1, uint8_t interrupt2, uint8_t mode2, unsigned long ms) {
381
- wait (MY_SMART_SLEEP_WAIT_DURATION);
382
401
int8_t ret = sleep (interrupt1, mode1, interrupt2, mode2, ms);
402
+ // notifiy controller about wake up
383
403
sendHeartbeat ();
404
+ // listen for incoming messages
405
+ wait (MY_SMART_SLEEP_WAIT_DURATION);
384
406
return ret;
385
407
}
386
408
0 commit comments