diff --git a/src/AgWiFiConnector.cpp b/src/AgWiFiConnector.cpp index 1538ea1..cb094ac 100644 --- a/src/AgWiFiConnector.cpp +++ b/src/AgWiFiConnector.cpp @@ -2,19 +2,21 @@ #include "Arduino.h" #include "Libraries/WiFiManager/WiFiManager.h" #include "Libraries/Arduino_JSON/src/Arduino_JSON.h" + +#ifdef ESP32 #include "WiFiType.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_CRED_CHAR_UUID "703fa252-3d2a-4da9-a05c-83b0d9cacb8e" #define BLE_SCAN_CHAR_UUID "467a080f-e50f-42c9-b9b2-a2ab14d82725" #define BLE_CRED_BIT (1 << 0) #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)) @@ -527,8 +529,44 @@ bool WifiConnector::hasConfigurated(void) { */ 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) { +#ifdef ESP32 if (!bleServerRunning) { return; } @@ -547,15 +585,10 @@ void WifiConnector::bleNotifyStatus(int status) { } } } +#endif // ESP32 } -/** - * @brief Set wifi connect to default WiFi - * - */ -void WifiConnector::setDefault(void) { - WiFi.begin("airgradient", "cleanair"); -} +#ifdef ESP32 int WifiConnector::scanAndFilterWiFi(WiFiNetwork networks[], int maxResults) { Serial.println("Scanning for Wi-Fi networks..."); @@ -705,34 +738,6 @@ void WifiConnector::handleBleScanRequest() { 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) { NimBLEDevice::init("AirGradient"); NimBLEDevice::setPower(3); /** +3db */ @@ -860,3 +865,4 @@ void WifiConnector::CharacteristicCallbacks::onWrite(NimBLECharacteristic *pChar } +#endif // ESP32 diff --git a/src/AgWiFiConnector.h b/src/AgWiFiConnector.h index a838666..6fa26e5 100644 --- a/src/AgWiFiConnector.h +++ b/src/AgWiFiConnector.h @@ -8,12 +8,15 @@ #include "AgConfigure.h" #include "Libraries/WiFiManager/WiFiManager.h" #include "Main/PrintLog.h" -#include "esp32-hal.h" +#ifdef ESP32 +#include "esp32-hal.h" #include #include "NimBLECharacteristic.h" #include "NimBLEService.h" +#endif + // Provisioning Status Codes #define PROV_WIFI_CONNECT 0 // WiFi Connect #define PROV_CONNECTING_TO_SERVER 1 // Connecting to server @@ -45,9 +48,10 @@ private: OledDisplay &disp; StateMachine &sm; Configuration &config; + #ifdef ESP32 NimBLEServer *pServer; - EventGroupHandle_t bleEventGroup; + #endif // ESP32 String ssid; void *wifi = NULL; @@ -62,6 +66,7 @@ private: bool wifiClientConnected(void); bool isBleClientConnected(); +#ifdef ESP32 int scanAndFilterWiFi(WiFiNetwork networks[], int maxResults); String buildPaginatedWiFiJSON(WiFiNetwork networks[], int totalCount, int page, int batchSize, int totalPages); @@ -89,6 +94,7 @@ private: WifiConnector *parent; }; +#endif // ESP32 public: void setAirGradient(AirGradient *ag); @@ -96,9 +102,11 @@ public: WifiConnector(OledDisplay &disp, Stream &log, StateMachine &sm, Configuration &config); ~WifiConnector(); - void setupProvisionByPortal(WiFiManagerParameter *disableCloudParam, WiFiManagerParameter *disableCloudInfo); + #ifdef ESP32 void setupProvisionByBLE(const char *modelName); void stopBLE(); + #endif // ESP32 + void setupProvisionByPortal(WiFiManagerParameter *disableCloudParam, WiFiManagerParameter *disableCloudInfo); bool connect(String modelName = ""); void disconnect(void); void handle(void); @@ -116,7 +124,6 @@ public: bool hasConfigurated(void); bool isConfigurePorttalTimeout(void); - void bleNotifyStatus(int status); const char *defaultSsid = "airgradient";