mirror of
https://github.com/meshtastic/firmware.git
synced 2025-04-29 11:01:15 +00:00

Some checks are pending
CI / setup (check) (push) Waiting to run
CI / setup (esp32) (push) Waiting to run
CI / setup (esp32c3) (push) Waiting to run
CI / setup (esp32c6) (push) Waiting to run
CI / setup (esp32s3) (push) Waiting to run
CI / setup (nrf52840) (push) Waiting to run
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / package-raspbian (push) Waiting to run
CI / package-raspbian-armv7l (push) Waiting to run
CI / package-native (push) Waiting to run
CI / after-checks (push) Blocked by required conditions
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
Flawfinder Scan / Flawfinder (push) Waiting to run
56 lines
1.4 KiB
C
56 lines
1.4 KiB
C
#include "buzz.h"
|
|
#include "configuration.h"
|
|
#include "graphics/Screen.h"
|
|
#include "main.h"
|
|
#include "power.h"
|
|
#if defined(ARCH_PORTDUINO)
|
|
#include "api/WiFiServerAPI.h"
|
|
#include "input/LinuxInputImpl.h"
|
|
|
|
#endif
|
|
|
|
void powerCommandsCheck()
|
|
{
|
|
if (rebootAtMsec && millis() > rebootAtMsec) {
|
|
LOG_INFO("Rebooting");
|
|
#if defined(ARCH_ESP32)
|
|
ESP.restart();
|
|
#elif defined(ARCH_NRF52)
|
|
NVIC_SystemReset();
|
|
#elif defined(ARCH_RP2040)
|
|
rp2040.reboot();
|
|
#elif defined(ARCH_PORTDUINO)
|
|
deInitApiServer();
|
|
if (aLinuxInputImpl)
|
|
aLinuxInputImpl->deInit();
|
|
SPI.end();
|
|
Wire.end();
|
|
Serial1.end();
|
|
if (screen)
|
|
delete screen;
|
|
LOG_DEBUG("final reboot!");
|
|
reboot();
|
|
#else
|
|
rebootAtMsec = -1;
|
|
LOG_WARN("FIXME implement reboot for this platform. Note that some settings require a restart to be applied");
|
|
#endif
|
|
}
|
|
|
|
#if defined(ARCH_ESP32) || defined(ARCH_NRF52)
|
|
if (shutdownAtMsec) {
|
|
screen->startAlert("Shutting down...");
|
|
}
|
|
#endif
|
|
|
|
if (shutdownAtMsec && millis() > shutdownAtMsec) {
|
|
LOG_INFO("Shut down from admin command");
|
|
#if defined(ARCH_NRF52) || defined(ARCH_ESP32) || defined(ARCH_RP2040)
|
|
playShutdownMelody();
|
|
power->shutdown();
|
|
#elif defined(ARCH_PORTDUINO)
|
|
exit(EXIT_SUCCESS);
|
|
#else
|
|
LOG_WARN("FIXME implement shutdown for this platform");
|
|
#endif
|
|
}
|
|
} |