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
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with
26 additions and
2 deletions
-
examples/companion_radio/UITask.cpp
-
examples/companion_radio/UITask.h
|
|
|
@ -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(); |
|
|
|
|
|
|
|
@ -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(); |
|
|
|
}; |
|
|
|
|