mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-27 14:42:18 +03:00
перенос библиотеки сокетов в тело проекта
This commit is contained in:
@@ -72,7 +72,6 @@ void setup() {
|
||||
Wire.setClock(i2cFreq);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
//настраиваем микроконтроллер
|
||||
configure("/config.json");
|
||||
|
||||
@@ -220,6 +220,10 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
||||
generateOrder(key, value);
|
||||
SerialPrint("i", F("=>WS"), "Msg from svelte web, WS No: " + String(num) + ", msg: " + msg);
|
||||
}
|
||||
|
||||
if (headerStr == "/test|") {
|
||||
//sendBlobToWsStrHeader("/layout.json", "header", num, 1024);
|
||||
}
|
||||
} break;
|
||||
|
||||
case WStype_BIN: {
|
||||
@@ -396,6 +400,44 @@ void publishChartToWs(String filename, int num, size_t frameSize, int maxCount,
|
||||
}
|
||||
}
|
||||
|
||||
// 6 4
|
||||
// layout|0120|{status:12}|...from file...
|
||||
// layout|0000|...from file...
|
||||
// layout|0000|...from file...
|
||||
|
||||
void sendBlobToWsStrHeader(const String& filename, const String& header, uint8_t client_id, size_t frameSize) {
|
||||
// откроем файл
|
||||
auto path = filepath(filename);
|
||||
auto file = FileFS.open(path, "r");
|
||||
if (!file) {
|
||||
SerialPrint("E", "FS", F("reed file error"));
|
||||
return;
|
||||
}
|
||||
|
||||
size_t totalSize = file.size();
|
||||
SerialPrint("I", "FS", "Send file '" + String(filename) + "', file size: " + String(totalSize));
|
||||
|
||||
// размер заголовка
|
||||
auto headerSize = header.length();
|
||||
// выделим буфер размером с фрейм
|
||||
auto frameBuf = new uint8_t[frameSize];
|
||||
// заголовок у нас не меняется, запием его в начало буфера
|
||||
header.toCharArray((char*)frameBuf, frameSize);
|
||||
// указатель на начало полезной нагрузки
|
||||
auto payloadBuf = &frameBuf[headerSize];
|
||||
// и сколько осталось места для нее
|
||||
auto maxPayloadSize = frameSize - headerSize;
|
||||
|
||||
while (file.available()) {
|
||||
// прочитаем кусок в буфер
|
||||
size_t payloadSize = file.read(payloadBuf, maxPayloadSize);
|
||||
if (payloadSize) {
|
||||
// отправим фрейм
|
||||
standWebSocket.sendBIN(client_id, frameBuf, headerSize + payloadSize, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// void sendMark(const char* filename, const char* mark, uint8_t num) {
|
||||
// char outChar[strlen(filename) + strlen(mark) + 1];
|
||||
// strcpy(outChar, mark);
|
||||
|
||||
@@ -102,11 +102,7 @@
|
||||
},
|
||||
"defActive": true,
|
||||
"usedLibs": {
|
||||
"esp32_4mb": [
|
||||
"https://github.com/mandulaj/PZEM-004T-v30"
|
||||
],
|
||||
"esp8266_4mb": [
|
||||
"https://github.com/mandulaj/PZEM-004T-v30"
|
||||
]
|
||||
"esp32_4mb": [],
|
||||
"esp8266_4mb": []
|
||||
}
|
||||
}
|
||||
@@ -329,10 +329,10 @@ String createDataBaseSting() {
|
||||
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||
if ((*it)->getSubtype() == "LogingDaily") {
|
||||
String id = (*it)->getID();
|
||||
id = "/lgd/" + id + "/" + id + ".txt";
|
||||
String fileContent = readFile(id, 10000);
|
||||
String path = "/lgd/" + id + "/" + id + ".txt";
|
||||
String fileContent = readFile(path, 10000);
|
||||
if (fileContent == "failed") {
|
||||
SerialPrint("i", "Export", "file not exist " + id);
|
||||
SerialPrint("i", "Export", "file not exist " + path);
|
||||
} else {
|
||||
out += "=>" + fileContent + "\r\n";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user