Fix esp8266 compile error

This commit is contained in:
samuelbles07
2025-12-19 15:20:02 +07:00
parent 9c1fa3a8f4
commit 684574a40a
2 changed files with 56 additions and 43 deletions

View File

@@ -2,19 +2,21 @@
#include "Arduino.h" #include "Arduino.h"
#include "Libraries/WiFiManager/WiFiManager.h" #include "Libraries/WiFiManager/WiFiManager.h"
#include "Libraries/Arduino_JSON/src/Arduino_JSON.h" #include "Libraries/Arduino_JSON/src/Arduino_JSON.h"
#ifdef ESP32
#include "WiFiType.h" #include "WiFiType.h"
#include "esp32-hal.h" #include "esp32-hal.h"
#define WIFI_CONNECT_COUNTDOWN_MAX 180
#define WIFI_HOTSPOT_PASSWORD_DEFAULT "cleanair"
#define BLE_SERVICE_UUID "acbcfea8-e541-4c40-9bfd-17820f16c95c" #define BLE_SERVICE_UUID "acbcfea8-e541-4c40-9bfd-17820f16c95c"
#define BLE_CRED_CHAR_UUID "703fa252-3d2a-4da9-a05c-83b0d9cacb8e" #define BLE_CRED_CHAR_UUID "703fa252-3d2a-4da9-a05c-83b0d9cacb8e"
#define BLE_SCAN_CHAR_UUID "467a080f-e50f-42c9-b9b2-a2ab14d82725" #define BLE_SCAN_CHAR_UUID "467a080f-e50f-42c9-b9b2-a2ab14d82725"
#define BLE_CRED_BIT (1 << 0) #define BLE_CRED_BIT (1 << 0)
#define BLE_SCAN_BIT (1 << 1) #define BLE_SCAN_BIT (1 << 1)
#endif // ESP32
#define WIFI_CONNECT_COUNTDOWN_MAX 180
#define WIFI_HOTSPOT_PASSWORD_DEFAULT "cleanair"
#define WIFI() ((WiFiManager *)(this->wifi)) #define WIFI() ((WiFiManager *)(this->wifi))
@@ -527,8 +529,44 @@ bool WifiConnector::hasConfigurated(void) {
*/ */
bool WifiConnector::isConfigurePorttalTimeout(void) { return connectorTimeout; } bool WifiConnector::isConfigurePorttalTimeout(void) { return connectorTimeout; }
/**
* @brief Set wifi connect to default WiFi
*
*/
void WifiConnector::setDefault(void) {
WiFi.begin("airgradient", "cleanair");
}
void WifiConnector::setupProvisionByPortal(WiFiManagerParameter *disableCloudParam, WiFiManagerParameter *disableCloudInfo) {
WIFI()->setConfigPortalBlocking(false);
WIFI()->setConnectTimeout(15);
WIFI()->setTimeout(WIFI_CONNECT_COUNTDOWN_MAX);
WIFI()->setBreakAfterConfig(true);
WIFI()->setAPCallback([this](WiFiManager *obj) { _wifiApCallback(); });
WIFI()->setSaveConfigCallback([this]() { _wifiSaveConfig(); });
WIFI()->setSaveParamsCallback([this]() { _wifiSaveParamCallback(); });
WIFI()->setConfigPortalTimeoutCallback([this]() {_wifiTimeoutCallback();});
if (ag->isOne() || (ag->isPro4_2()) || ag->isPro3_3() || ag->isBasic()) {
disp.setText("Connecting to", "WiFi", "...");
} else {
logInfo("Connecting to WiFi...");
}
ssid = "airgradient-" + ag->deviceId();
// ssid = "AG-" + String(ESP.getChipId(), HEX);
WIFI()->setConfigPortalTimeout(WIFI_CONNECT_COUNTDOWN_MAX);
WIFI()->addParameter(disableCloudParam);
WIFI()->addParameter(disableCloudInfo);
WIFI()->autoConnect(ssid.c_str(), WIFI_HOTSPOT_PASSWORD_DEFAULT);
logInfo("Wait for configure portal");
}
void WifiConnector::bleNotifyStatus(int status) { void WifiConnector::bleNotifyStatus(int status) {
#ifdef ESP32
if (!bleServerRunning) { if (!bleServerRunning) {
return; return;
} }
@@ -547,15 +585,10 @@ void WifiConnector::bleNotifyStatus(int status) {
} }
} }
} }
#endif // ESP32
} }
/** #ifdef ESP32
* @brief Set wifi connect to default WiFi
*
*/
void WifiConnector::setDefault(void) {
WiFi.begin("airgradient", "cleanair");
}
int WifiConnector::scanAndFilterWiFi(WiFiNetwork networks[], int maxResults) { int WifiConnector::scanAndFilterWiFi(WiFiNetwork networks[], int maxResults) {
Serial.println("Scanning for Wi-Fi networks..."); Serial.println("Scanning for Wi-Fi networks...");
@@ -705,34 +738,6 @@ void WifiConnector::handleBleScanRequest() {
Serial.println("All WiFi scan pages sent successfully"); Serial.println("All WiFi scan pages sent successfully");
} }
void WifiConnector::setupProvisionByPortal(WiFiManagerParameter *disableCloudParam, WiFiManagerParameter *disableCloudInfo) {
WIFI()->setConfigPortalBlocking(false);
WIFI()->setConnectTimeout(15);
WIFI()->setTimeout(WIFI_CONNECT_COUNTDOWN_MAX);
WIFI()->setBreakAfterConfig(true);
WIFI()->setAPCallback([this](WiFiManager *obj) { _wifiApCallback(); });
WIFI()->setSaveConfigCallback([this]() { _wifiSaveConfig(); });
WIFI()->setSaveParamsCallback([this]() { _wifiSaveParamCallback(); });
WIFI()->setConfigPortalTimeoutCallback([this]() {_wifiTimeoutCallback();});
if (ag->isOne() || (ag->isPro4_2()) || ag->isPro3_3() || ag->isBasic()) {
disp.setText("Connecting to", "WiFi", "...");
} else {
logInfo("Connecting to WiFi...");
}
ssid = "airgradient-" + ag->deviceId();
// ssid = "AG-" + String(ESP.getChipId(), HEX);
WIFI()->setConfigPortalTimeout(WIFI_CONNECT_COUNTDOWN_MAX);
WIFI()->addParameter(disableCloudParam);
WIFI()->addParameter(disableCloudInfo);
WIFI()->autoConnect(ssid.c_str(), WIFI_HOTSPOT_PASSWORD_DEFAULT);
logInfo("Wait for configure portal");
}
void WifiConnector::setupProvisionByBLE(const char *modelName) { void WifiConnector::setupProvisionByBLE(const char *modelName) {
NimBLEDevice::init("AirGradient"); NimBLEDevice::init("AirGradient");
NimBLEDevice::setPower(3); /** +3db */ NimBLEDevice::setPower(3); /** +3db */
@@ -860,3 +865,4 @@ void WifiConnector::CharacteristicCallbacks::onWrite(NimBLECharacteristic *pChar
} }
#endif // ESP32

View File

@@ -8,12 +8,15 @@
#include "AgConfigure.h" #include "AgConfigure.h"
#include "Libraries/WiFiManager/WiFiManager.h" #include "Libraries/WiFiManager/WiFiManager.h"
#include "Main/PrintLog.h" #include "Main/PrintLog.h"
#include "esp32-hal.h"
#ifdef ESP32
#include "esp32-hal.h"
#include <NimBLEDevice.h> #include <NimBLEDevice.h>
#include "NimBLECharacteristic.h" #include "NimBLECharacteristic.h"
#include "NimBLEService.h" #include "NimBLEService.h"
#endif
// Provisioning Status Codes // Provisioning Status Codes
#define PROV_WIFI_CONNECT 0 // WiFi Connect #define PROV_WIFI_CONNECT 0 // WiFi Connect
#define PROV_CONNECTING_TO_SERVER 1 // Connecting to server #define PROV_CONNECTING_TO_SERVER 1 // Connecting to server
@@ -45,9 +48,10 @@ private:
OledDisplay &disp; OledDisplay &disp;
StateMachine &sm; StateMachine &sm;
Configuration &config; Configuration &config;
#ifdef ESP32
NimBLEServer *pServer; NimBLEServer *pServer;
EventGroupHandle_t bleEventGroup; EventGroupHandle_t bleEventGroup;
#endif // ESP32
String ssid; String ssid;
void *wifi = NULL; void *wifi = NULL;
@@ -62,6 +66,7 @@ private:
bool wifiClientConnected(void); bool wifiClientConnected(void);
bool isBleClientConnected(); bool isBleClientConnected();
#ifdef ESP32
int scanAndFilterWiFi(WiFiNetwork networks[], int maxResults); int scanAndFilterWiFi(WiFiNetwork networks[], int maxResults);
String buildPaginatedWiFiJSON(WiFiNetwork networks[], int totalCount, String buildPaginatedWiFiJSON(WiFiNetwork networks[], int totalCount,
int page, int batchSize, int totalPages); int page, int batchSize, int totalPages);
@@ -89,6 +94,7 @@ private:
WifiConnector *parent; WifiConnector *parent;
}; };
#endif // ESP32
public: public:
void setAirGradient(AirGradient *ag); void setAirGradient(AirGradient *ag);
@@ -96,9 +102,11 @@ public:
WifiConnector(OledDisplay &disp, Stream &log, StateMachine &sm, Configuration &config); WifiConnector(OledDisplay &disp, Stream &log, StateMachine &sm, Configuration &config);
~WifiConnector(); ~WifiConnector();
void setupProvisionByPortal(WiFiManagerParameter *disableCloudParam, WiFiManagerParameter *disableCloudInfo); #ifdef ESP32
void setupProvisionByBLE(const char *modelName); void setupProvisionByBLE(const char *modelName);
void stopBLE(); void stopBLE();
#endif // ESP32
void setupProvisionByPortal(WiFiManagerParameter *disableCloudParam, WiFiManagerParameter *disableCloudInfo);
bool connect(String modelName = ""); bool connect(String modelName = "");
void disconnect(void); void disconnect(void);
void handle(void); void handle(void);
@@ -116,7 +124,6 @@ public:
bool hasConfigurated(void); bool hasConfigurated(void);
bool isConfigurePorttalTimeout(void); bool isConfigurePorttalTimeout(void);
void bleNotifyStatus(int status); void bleNotifyStatus(int status);
const char *defaultSsid = "airgradient"; const char *defaultSsid = "airgradient";