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