Only allow deep sleep if there's been ignition before (#1019)

* add another gate for deepsleep

* Minimum uptime for deep sleep (#1020)

add minimum uptime before going back to deepsleep
This commit is contained in:
Robbe Derks
2022-08-12 12:43:36 +02:00
committed by GitHub
parent acff2c8ec8
commit 508ee90f8e
2 changed files with 5 additions and 2 deletions

View File

@@ -28,7 +28,9 @@
// ********************* Serial debugging *********************
bool check_started(void) {
return current_board->check_ignition() || ignition_can;
bool started = current_board->check_ignition() || ignition_can;
ignition_seen |= started;
return started;
}
void debug_ring_callback(uart_ring *ring) {
@@ -419,7 +421,7 @@ int main(void) {
}
#endif
} else {
if (deepsleep_allowed && !usb_enumerated && !check_started()) {
if (deepsleep_allowed && !usb_enumerated && !check_started() && ignition_seen && (heartbeat_counter > 20U)) {
usb_soft_disconnect(true);
current_board->set_fan_power(0U);
current_board->set_usb_power_mode(USB_POWER_CLIENT);

View File

@@ -22,6 +22,7 @@ bool heartbeat_disabled = false; // set over USB
// Enter deep sleep mode
bool deepsleep_allowed = false;
bool ignition_seen = false;
// siren state
bool siren_enabled = false;