Browse Source

Merge pull request #335 from seagull9000/RTTTL-tone-for-shutdown

Connect RTTTL  shutdown melody to shutdown procedure
pull/341/head
ripplebiz 1 year ago
committed by GitHub
parent
commit
9ba1d8262f
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 26
      examples/companion_radio/UITask.cpp
  2. 2
      examples/companion_radio/UITask.h

26
examples/companion_radio/UITask.cpp

@ -266,7 +266,7 @@ void UITask::buttonHandler() {
digitalWrite(PIN_STATUS_LED, LOW);
delay(10);
#endif
_board->powerOff();
shutdown(); // without restart
}
}
btn_state_change_time = millis();
@ -278,6 +278,30 @@ void UITask::buttonHandler() {
#endif
}
/* hardware-agnostic pre-shutdown activity should be done here
*/
void UITask::shutdown(bool restart){
#ifdef PIN_BUZZER
/* note: we have a choice here -
we can do a blocking buzzer.loop() with non-deterministic consequences
or we can set a flag and delay the shutdown for a couple of seconds
while a non-blocking buzzer.loop() plays out in UITask::loop()
*/
buzzer.shutdown();
uint32_t buzzer_timer = millis(); // fail-safe shutdown
while (buzzer.isPlaying() && (millis() - 2500) < buzzer_timer)
buzzer.loop();
#endif // PIN_BUZZER
if (restart)
_board->reboot();
else
_board->powerOff();
}
void UITask::loop() {
buttonHandler();
userLedHandler();

2
examples/companion_radio/UITask.h

@ -39,7 +39,6 @@ class UITask {
void buttonHandler();
void userLedHandler();
void renderBatteryIndicator(uint16_t batteryMilliVolts);
public:
@ -55,5 +54,6 @@ public:
void msgRead(int msgcount);
void newMsg(uint8_t path_len, const char* from_name, const char* text, int msgcount);
void soundBuzzer(UIEventType bet = UIEventType::none);
void shutdown(bool restart = false);
void loop();
};

Loading…
Cancel
Save