список устройств исправление

This commit is contained in:
Dmitry Borisenko
2023-06-11 17:07:04 +02:00
parent 9e49ece90f
commit 57a5bb6df2
5 changed files with 19 additions and 14 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -4,12 +4,12 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" /> <meta name="viewport" content="width=device-width,initial-scale=1" />
<title>IoT Manager 4.4.5</title> <title>IoT Manager 4.4.6</title>
<link rel="icon" type="image/png" href="/favicon.ico" /> <link rel="icon" type="image/png" href="/favicon.ico" />
<link rel="stylesheet" href="/build/bundle.css?445" /> <link rel="stylesheet" href="/build/bundle.css?446" />
<script defer src="/build/bundle.js?445"></script> <script defer src="/build/bundle.js?446"></script>
</head> </head>
<body></body> <body></body>

View File

@@ -37,10 +37,10 @@ void addThisDeviceToList() {
AsyncUDP asyncUdp; AsyncUDP asyncUdp;
void udpListningInit() { void udpListningInit() {
// если был включен автоматический поиск устройств if (asyncUdp.listenMulticast(IPAddress(239, 255, 255, 255), 4210)) {
if (jsonReadInt(settingsFlashJson, F("udps")) != 0) { asyncUdp.onPacket([](AsyncUDPPacket packet) {
if (asyncUdp.listenMulticast(IPAddress(239, 255, 255, 255), 4210)) { // если был включен автоматический поиск устройств то начнем запись в оперативную память
asyncUdp.onPacket([](AsyncUDPPacket packet) { if (jsonReadInt(settingsFlashJson, F("udps")) != 0) {
// Serial.print("UDP Packet Type: "); // Serial.print("UDP Packet Type: ");
// Serial.println(packet.isBroadcast() ? "Broadcast" : packet.isMulticast() ? "Multicast" : "Unicast"); // Serial.println(packet.isBroadcast() ? "Broadcast" : packet.isMulticast() ? "Multicast" : "Unicast");
// Serial.print("From: "); // Serial.print("From: ");
@@ -55,8 +55,8 @@ void udpListningInit() {
// Serial.print(packet.length()); // Serial.print(packet.length());
// Serial.print(", Data: "); // Serial.print(", Data: ");
// Serial.write(packet.data(), packet.length()); // Serial.write(packet.data(), packet.length());
// String data = {packet.data(), packet.length()}; // для ESP32 подходит как замена uint8tToString, но 8266 не переваривает // String data = {packet.data(), packet.length()}; // для ESP32 подходит как замена uint8tToString, но 8266 не переваривает
String data = uint8tToString(packet.data(), packet.length()); String data = uint8tToString(packet.data(), packet.length());
String remoteWorkgroup = ""; String remoteWorkgroup = "";
data.replace("[", ""); data.replace("[", "");
@@ -67,21 +67,25 @@ void udpListningInit() {
if (remoteWorkgroup == loacalWorkgroup) { if (remoteWorkgroup == loacalWorkgroup) {
SerialPrint("i", F("UDP"), "IP: " + packet.remoteIP().toString() + ":" + String(packet.remotePort())); SerialPrint("i", F("UDP"), "IP: " + packet.remoteIP().toString() + ":" + String(packet.remotePort()));
jsonMergeArrays(devListHeapJson, data); jsonMergeArrays(devListHeapJson, data);
// эксперементальный вариант отправки нового списка сразу по приходу
// sendStringToWs("devlis", devListHeapJson, -1);
} }
} else { } else {
SerialPrint("E", F("UDP"), F("Udp packet invalid")); SerialPrint("E", F("UDP"), F("Udp packet invalid"));
} }
// reply to the client // reply to the client
// String ip = WiFi.localIP().toString(); // String ip = WiFi.localIP().toString();
// asyncUdp.broadcastTo(ip.c_str(), packet.remotePort()); // asyncUdp.broadcastTo(ip.c_str(), packet.remotePort());
// packet.printf(ip.c_str(), packet.length()); // packet.printf(ip.c_str(), packet.length());
});
}
SerialPrint("i", F("UDP"), F("Udp listning inited")); } else {
} else { devListHeapJson = "";
devListHeapJson = ""; }
});
} }
SerialPrint("i", F("UDP"), F("Udp listning inited"));
} }
void udpBroadcastInit() { void udpBroadcastInit() {

View File

@@ -428,10 +428,11 @@ void sendStringToWs(const String& header, String& payload, int client_id) {
void sendDeviceList(uint8_t num) { void sendDeviceList(uint8_t num) {
if (jsonReadInt(settingsFlashJson, F("udps")) != 0) { if (jsonReadInt(settingsFlashJson, F("udps")) != 0) {
// если включен автопоиск то отдаем список из оперативной памяти // если включен автопоиск то отдаем список из оперативной памяти
SerialPrint("E", "FS", devListHeapJson); SerialPrint("i", "FS", "heap list");
sendStringToWs("devlis", devListHeapJson, num); sendStringToWs("devlis", devListHeapJson, num);
} else { } else {
// если выключен автопоиск то отдаем список из флешь памяти // если выключен автопоиск то отдаем список из флешь памяти
sendFileToWsByFrames("/devlist.json", "devlis", "", num, WEB_SOCKETS_FRAME_SIZE); sendFileToWsByFrames("/devlist.json", "devlis", "", num, WEB_SOCKETS_FRAME_SIZE);
SerialPrint("i", "FS", "flash list");
} }
} }