улучшения

This commit is contained in:
Dmitry Borisenko
2022-01-29 00:23:53 +01:00
parent c85824f67f
commit 01690b1b3e
4 changed files with 7 additions and 26 deletions

View File

@@ -1,24 +1,4 @@
[
{
"type": "Reading",
"subtype": "AnalogAdc",
"id": "t1",
"widget": "anydataDef",
"page": "Сенсоры",
"descr": "Температура",
"pin": 0,
"int": 10
},
{
"type": "Reading",
"subtype": "AnalogAdc",
"id": "t2",
"widget": "anydataTmp",
"page": "Сенсоры",
"descr": "Температура",
"pin": 0,
"int": 15
},
{
"type": "Variable",
"subtype": "ButtonOut",

View File

@@ -2,7 +2,7 @@
#include "EspFileSystem.h"
#include "Global.h"
extern void writeFileUint8tFromBuf(const String& filename, uint8_t*& payload, size_t length, size_t headerLenth, size_t bufSize);
extern void writeFileUint8tByFrames(const String& filename, uint8_t*& big_buf, size_t length, size_t headerLenth, size_t frameSize);
extern void writeFileUint8tByByte(const String& filename, uint8_t*& payload, size_t length, size_t headerLenth);
extern File seekFile(const String& filename, size_t position = 0);
extern const String writeFile(const String& filename, const String& str);

View File

@@ -226,7 +226,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
}
if (headerStr == "/gifnoc") {
writeFileUint8tFromBuf("config.json", payload, length, headerLenth, 256);
writeFileUint8tByFrames("config.json", payload, length, headerLenth, 256);
}
} break;

View File

@@ -1,23 +1,24 @@
#include "Utils/FileUtils.h"
//данная функция записывает файл из длинного массива uint8_t через буфер
void writeFileUint8tFromBuf(const String& filename, uint8_t*& big_buf, size_t length, size_t headerLenth, size_t bufSize) {
//данная функция записывает файл из буфера страницами указанного размера
void writeFileUint8tByFrames(const String& filename, uint8_t*& big_buf, size_t length, size_t headerLenth, size_t frameSize) {
String path = filepath(filename);
auto file = FileFS.open(path, "w");
if (!file) {
Serial.println(F("failed write file uint8tFromBuf"));
Serial.println(F("failed write file uint8tByFrames"));
return;
}
size_t written{headerLenth};
while (length > written) {
size_t size = length - written;
if (size > bufSize) size = bufSize;
if (size > frameSize) size = frameSize;
uint8_t* p = &big_buf[written];
size_t res = file.write(p, size);
if (size != res) {
break;
}
written += res;
yield();
}
file.close();
}