mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-27 06:32:19 +03:00
@@ -20,4 +20,5 @@ void periodicWsSend();
|
||||
void sendFileToWsByFrames(const String& filename, const String& header, const String& json, int client_id, size_t frameSize);
|
||||
void sendStringToWs(const String& header, String& payload, int client_id);
|
||||
|
||||
void sendDeviceList(uint8_t num);
|
||||
void sendDeviceList(uint8_t num);
|
||||
int getNumWSClients();
|
||||
@@ -2,9 +2,8 @@
|
||||
|
||||
#include "Global.h"
|
||||
#include "MqttClient.h"
|
||||
#include <vector>
|
||||
// boolean isNetworkActive();
|
||||
inline boolean isNetworkActive() {return WiFi.status() == WL_CONNECTED;};
|
||||
boolean isNetworkActive();
|
||||
uint8_t getNumAPClients();
|
||||
void routerConnect();
|
||||
bool startAPMode();
|
||||
boolean RouterFind(std::vector<String> jArray);
|
||||
|
||||
@@ -450,25 +450,27 @@ void sendFileToWsByFrames(const String& filename, const String& header,
|
||||
}
|
||||
|
||||
void sendStringToWs(const String& header, String& payload, int client_id) {
|
||||
if (!(WiFi.softAPgetStationNum() || isNetworkActive())) {
|
||||
return;
|
||||
}
|
||||
if ((!getNumAPClients() && !isNetworkActive()) || !getNumWSClients()) {
|
||||
// standWebSocket.disconnect(); // это и ниже надо сделать при -
|
||||
// standWebSocket.close(); // - отключении AP И WiFi(STA), надо менять ядро WiFi. Сейчас не закрывается сессия клиента при пропаже AP И WiFi(STA)
|
||||
return;
|
||||
}
|
||||
|
||||
if (header.length() != 6) {
|
||||
SerialPrint("E", "FS", F("wrong header size"));
|
||||
return;
|
||||
}
|
||||
if (header.length() != 6) {
|
||||
SerialPrint("E", "FS", F("wrong header size"));
|
||||
return;
|
||||
}
|
||||
|
||||
String msg = header + "|0012|" + payload;
|
||||
size_t totalSize = msg.length();
|
||||
String msg = header + "|0012|" + payload;
|
||||
size_t totalSize = msg.length();
|
||||
|
||||
char dataArray[totalSize];
|
||||
msg.toCharArray(dataArray, totalSize + 1);
|
||||
if (client_id == -1) {
|
||||
standWebSocket.broadcastBIN((uint8_t*)dataArray, totalSize);
|
||||
} else {
|
||||
standWebSocket.sendBIN(client_id, (uint8_t*)dataArray, totalSize);
|
||||
}
|
||||
char dataArray[totalSize];
|
||||
msg.toCharArray(dataArray, totalSize + 1);
|
||||
if (client_id == -1) {
|
||||
standWebSocket.broadcastBIN((uint8_t*)dataArray, totalSize);
|
||||
} else {
|
||||
standWebSocket.sendBIN(client_id, (uint8_t*)dataArray, totalSize);
|
||||
}
|
||||
}
|
||||
|
||||
void sendDeviceList(uint8_t num) {
|
||||
@@ -483,3 +485,7 @@ void sendDeviceList(uint8_t num) {
|
||||
SerialPrint("i", "FS", "flash list");
|
||||
}
|
||||
}
|
||||
|
||||
int getNumWSClients() {
|
||||
return standWebSocket.connectedClients(false);
|
||||
}
|
||||
@@ -11,11 +11,11 @@ void SerialPrint(const String& errorLevel, const String& module, const String& m
|
||||
tosend += msg;
|
||||
Serial.println(tosend);
|
||||
|
||||
if (isNetworkActive()) {
|
||||
if (jsonReadInt(settingsFlashJson, F("log")) != 0) {
|
||||
sendStringToWs(F("corelg"), tosend, -1);
|
||||
}
|
||||
// if (isNetworkActive()) { // все проверки происходят в sendStringToWs()
|
||||
if (jsonReadInt(settingsFlashJson, F("log")) != 0) {
|
||||
sendStringToWs(F("corelg"), tosend, -1);
|
||||
}
|
||||
// }
|
||||
|
||||
if (errorLevel == "E") {
|
||||
cleanString(tosend);
|
||||
|
||||
@@ -171,9 +171,13 @@ boolean RouterFind(std::vector<String> jArray)
|
||||
return res;
|
||||
}
|
||||
|
||||
// boolean isNetworkActive() {
|
||||
// return WiFi.status() == WL_CONNECTED;
|
||||
// }
|
||||
boolean isNetworkActive() {
|
||||
return WiFi.status() == WL_CONNECTED;
|
||||
}
|
||||
|
||||
uint8_t getNumAPClients() {
|
||||
return WiFi.softAPgetStationNum();
|
||||
}
|
||||
|
||||
uint8_t RSSIquality() {
|
||||
uint8_t res = 0;
|
||||
|
||||
Reference in New Issue
Block a user