mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 14:12:16 +03:00
@@ -146,7 +146,7 @@ void setup() {
|
||||
jsonRead(settingsFlashJson, "pinSDA", pinSDA, false);
|
||||
jsonRead(settingsFlashJson, "i2cFreq", i2cFreq, false);
|
||||
jsonRead(settingsFlashJson, "i2c", i2c, false);
|
||||
jsonWriteStr_(ssidListHeapJson, "0", "Scaning...");
|
||||
//jsonWriteStr_(ssidListHeapJson, "0", "Scaning...");
|
||||
if (i2c != 0) {
|
||||
#ifdef ESP32
|
||||
Wire.end();
|
||||
|
||||
@@ -143,6 +143,10 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
||||
sendFileToWsByFrames("/widgets.json", "widget", "", num, WEB_SOCKETS_FRAME_SIZE);
|
||||
sendFileToWsByFrames("/config.json", "config", "", num, WEB_SOCKETS_FRAME_SIZE);
|
||||
sendStringToWs("settin", settingsFlashJson, num);
|
||||
#ifndef ESP8266
|
||||
ssidListHeapJson = "{}";
|
||||
jsonWriteStr_(ssidListHeapJson, "0", "Scanning...");
|
||||
#endif
|
||||
sendStringToWs("ssidli", ssidListHeapJson, num);
|
||||
sendStringToWs("errors", errorsHeapJson, num);
|
||||
// запуск асинхронного сканирования wifi сетей при переходе на страницу
|
||||
@@ -157,6 +161,12 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
||||
sendStringToWs("errors", errorsHeapJson, num);
|
||||
// если не было создано приема данных по udp - то создадим его
|
||||
addThisDeviceToList();
|
||||
#ifndef ESP8266
|
||||
settingsFlashJson = readFile(F("settings.json"), 4096);
|
||||
settingsFlashJson.replace("\r\n", "");
|
||||
Serial.println(settingsFlashJson);
|
||||
WiFiUtilsItit();
|
||||
#endif
|
||||
}
|
||||
|
||||
// обработка кнопки сохранить настройки mqtt
|
||||
@@ -173,17 +183,19 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
||||
// запуск асинхронного сканирования wifi сетей при нажатии выпадающего
|
||||
// списка
|
||||
if (headerStr == "/scan|") {
|
||||
#ifdef ESP8266
|
||||
std::vector<String> jArray;
|
||||
jsonReadArray(settingsFlashJson, "routerssid", jArray);
|
||||
#ifdef ESP8266
|
||||
RouterFind(jArray);
|
||||
sendStringToWs("ssidli", ssidListHeapJson, num);
|
||||
#else
|
||||
//String ssidScan = "{Scaning...}";
|
||||
ssidListHeapJson = "{}";
|
||||
jsonWriteStr_(ssidListHeapJson, "0", "Scaning...");
|
||||
//ssidListHeapJson = "{}";
|
||||
//jsonWriteStr_(ssidListHeapJson, "0", "Scanning...");
|
||||
//Serial.println("Async scan:" + String(ssidListHeapJson));
|
||||
sendStringToWs("ssidli", ssidListHeapJson, num);
|
||||
ScanAsync();
|
||||
if (ssidListHeapJson == "{\"0\":\"Scanning...\"}")
|
||||
ScanAsync();
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#ifndef ESP8266
|
||||
std::vector<String> _ssidList;
|
||||
std::vector<String> _passwordList;
|
||||
volatile bool scanInProgress = false;
|
||||
// номер сети, для перебирания в момент подключения к сетям из массива
|
||||
volatile uint8_t currentNetwork = 0;
|
||||
volatile bool wifiConnecting = false;
|
||||
@@ -79,10 +78,17 @@ void WiFiEvent(arduino_event_t *event)
|
||||
#else
|
||||
case SYSTEM_EVENT_SCAN_DONE:
|
||||
#endif
|
||||
if (WiFi.scanComplete() >= 0) {
|
||||
Serial.println("Valid Scan completed");
|
||||
handleScanResults();
|
||||
WiFi.scanDelete(); // Очищаем только при успешном сканировании
|
||||
} else {
|
||||
//Serial.println("Empty scan or error");
|
||||
//WiFi.scanDelete(); // Принудительная очистка буфера
|
||||
}
|
||||
// Завершилось сканирование сетей
|
||||
Serial.println("Scan completed");
|
||||
scanInProgress = false;
|
||||
handleScanResults();
|
||||
//Serial.println("Scan completed");
|
||||
//handleScanResults();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -120,11 +126,11 @@ void handleScanResults()
|
||||
connectNumNet = i;
|
||||
}
|
||||
}
|
||||
sendStringToWs("ssidli", ssidListHeapJson, -1);
|
||||
// if
|
||||
}
|
||||
sendStringToWs("ssidli", ssidListHeapJson, -1);
|
||||
SerialPrint("i", "WIFI", "Scan Found: " + ssidListHeapJson);
|
||||
if (connectNumNet >= 0)
|
||||
if (connectNumNet >= 0 && !isNetworkActive())
|
||||
{
|
||||
// ts.remove(WIFI_SCAN);
|
||||
connectToNextNetwork();
|
||||
@@ -142,11 +148,13 @@ void WiFiUtilsItit()
|
||||
#else
|
||||
WiFi.setAutoConnect(false);
|
||||
#endif
|
||||
WiFi.persistent(false);
|
||||
WiFi.setSleep(true);
|
||||
WiFi.persistent(true); // Сохраняет текущую сеть при сканировании
|
||||
WiFi.setSleep(false);
|
||||
#endif
|
||||
WiFi.mode(WIFI_STA);
|
||||
WiFi.onEvent(WiFiEvent);
|
||||
_ssidList.clear();
|
||||
_passwordList.clear();
|
||||
jsonReadArray(settingsFlashJson, "routerssid", _ssidList);
|
||||
jsonReadArray(settingsFlashJson, "routerpass", _passwordList);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user