sensecap solar: add poweroff command and board power/LED parity
This commit is contained in:
@@ -5,6 +5,11 @@
|
||||
#include <helpers/NRF52Board.h>
|
||||
|
||||
class SenseCapSolarBoard : public NRF52BoardDCDC {
|
||||
protected:
|
||||
#ifdef NRF52_POWER_MANAGEMENT
|
||||
void initiateShutdown(uint8_t reason) override;
|
||||
#endif
|
||||
|
||||
public:
|
||||
SenseCapSolarBoard() : NRF52Board("SENSECAP_SOLAR_OTA") {}
|
||||
void begin();
|
||||
@@ -31,4 +36,23 @@ public:
|
||||
const char* getManufacturerName() const override {
|
||||
return "Seeed SenseCap Solar";
|
||||
}
|
||||
|
||||
void powerOff() override {
|
||||
digitalWrite(LED_GREEN, LOW);
|
||||
digitalWrite(LED_BLUE, LOW);
|
||||
|
||||
#ifdef PIN_USER_BTN
|
||||
while (digitalRead(PIN_USER_BTN) == LOW);
|
||||
nrf_gpio_cfg_sense_input(digitalPinToInterrupt(g_ADigitalPinMap[PIN_USER_BTN]), NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW);
|
||||
#elif defined(PIN_BUTTON1)
|
||||
while (digitalRead(PIN_BUTTON1) == LOW);
|
||||
nrf_gpio_cfg_sense_input(digitalPinToInterrupt(g_ADigitalPinMap[PIN_BUTTON1]), NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW);
|
||||
#endif
|
||||
|
||||
#ifdef NRF52_POWER_MANAGEMENT
|
||||
initiateShutdown(SHUTDOWN_REASON_USER);
|
||||
#else
|
||||
sd_power_system_off();
|
||||
#endif
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user