Browse Source
Merge pull request #1532 from oltaco/esp32board.h-removewifi
Refactor ESP32Board.h to save ~500 bytes of DRAM
pull/1597/head
ripplebiz
4 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with
8 additions and
6 deletions
-
examples/companion_radio/main.cpp
-
src/helpers/ESP32Board.cpp
-
src/helpers/ESP32Board.h
|
|
|
@ -194,6 +194,7 @@ void setup() { |
|
|
|
); |
|
|
|
|
|
|
|
#ifdef WIFI_SSID |
|
|
|
board.setInhibitSleep(true); // prevent sleep when WiFi is active
|
|
|
|
WiFi.begin(WIFI_SSID, WIFI_PWD); |
|
|
|
serial_interface.begin(TCP_PORT); |
|
|
|
#elif defined(BLE_PIN_CODE) |
|
|
|
|
|
|
|
@ -11,6 +11,7 @@ |
|
|
|
#include <SPIFFS.h> |
|
|
|
|
|
|
|
bool ESP32Board::startOTAUpdate(const char* id, char reply[]) { |
|
|
|
inhibit_sleep = true; // prevent sleep during OTA
|
|
|
|
WiFi.softAP("MeshCore-OTA", NULL); |
|
|
|
|
|
|
|
sprintf(reply, "Started: http://%s/update", WiFi.softAPIP().toString().c_str()); |
|
|
|
|
|
|
|
@ -8,12 +8,12 @@ |
|
|
|
#include <rom/rtc.h> |
|
|
|
#include <sys/time.h> |
|
|
|
#include <Wire.h> |
|
|
|
#include "esp_wifi.h" |
|
|
|
#include "driver/rtc_io.h" |
|
|
|
|
|
|
|
class ESP32Board : public mesh::MainBoard { |
|
|
|
protected: |
|
|
|
uint8_t startup_reason; |
|
|
|
bool inhibit_sleep = false; |
|
|
|
|
|
|
|
public: |
|
|
|
void begin() { |
|
|
|
@ -72,11 +72,7 @@ public: |
|
|
|
} |
|
|
|
|
|
|
|
void sleep(uint32_t secs) override { |
|
|
|
// To check for WiFi status to see if there is active OTA
|
|
|
|
wifi_mode_t mode; |
|
|
|
esp_err_t err = esp_wifi_get_mode(&mode); |
|
|
|
|
|
|
|
if (err != ESP_OK) { // WiFi is off ~ No active OTA, safe to go to sleep
|
|
|
|
if (!inhibit_sleep) { |
|
|
|
enterLightSleep(secs); // To wake up after "secs" seconds or when receiving a LoRa packet
|
|
|
|
} |
|
|
|
} |
|
|
|
@ -126,6 +122,10 @@ public: |
|
|
|
} |
|
|
|
|
|
|
|
bool startOTAUpdate(const char* id, char reply[]) override; |
|
|
|
|
|
|
|
void setInhibitSleep(bool inhibit) { |
|
|
|
inhibit_sleep = inhibit; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
class ESP32RTCClock : public mesh::RTCClock { |
|
|
|
|