не рабочая версия

This commit is contained in:
Dmitry Borisenko
2022-09-14 18:06:40 +02:00
parent 5532ef7dfb
commit 49dde6031a
9 changed files with 90 additions and 115 deletions

View File

@@ -398,7 +398,7 @@
"execLevel": "1",
"pinMode": "INPUT",
"debounceDelay": 50,
"fixState": 1,
"fixState": 0,
"num": 30
},
{
@@ -455,18 +455,16 @@
"num": 34
},
{
"name": "35. PWM ESP32",
"name": "35. PWM ESP8266",
"type": "Writing",
"subtype": "Pwm32",
"subtype": "Pwm8266",
"id": "pwm",
"widget": "range",
"page": "Кнопки",
"descr": "PWM",
"int": 0,
"pin": 2,
"pin": 15,
"freq": 5000,
"ledChannel": 2,
"PWM_resolution": 10,
"val": 0,
"apin": -1,
"num": 35

View File

@@ -34,7 +34,7 @@
#endif
#ifdef esp32_4mb
#define USE_LITTLEFS false
#define USE_LITTLEFS true
#endif
#define START_DATETIME 1661990400 // 01.09.2022 00:00:00 константа для сокращения unix time

View File

@@ -12,14 +12,17 @@ extern const String filepath(const String& filename);
extern bool cutFile(const String& src, const String& dst);
extern size_t countLines(const String filename);
void removeFile(const String& filename);
void removeDirectory(const String& dir);
void cleanDirectory(String path);
void cleanLogs();
void cleanLogs1();
void cleanLogs2();
void saveDataDB(String id, String data);
String readDataDB(String id);
extern void onFlashWrite();
String FileList(String path);
String getFilesList8266(String& directory);
String getFilesList32(String& directory);
String getFilesList(String& directory);
extern void getFSInfo();
#ifdef ESP8266
extern bool getInfo(FSInfo& info);

View File

@@ -21,7 +21,7 @@
},
"projectProp": {
"platformio": {
"default_envs": "esp32_4mb",
"default_envs": "esp8266_4mb",
"data_dir": "data_svelte"
}
},

View File

@@ -32,6 +32,7 @@ monitor_filters = esp32_exception_decoder
upload_speed = 921600
monitor_speed = 115200
debug_tool = esp-prog
board_build.filesystem = littlefs
build_src_filter =
+<*.cpp>
+<classes/*.cpp>
@@ -40,7 +41,7 @@ build_src_filter =
${env:esp32_4mb_fromitems.build_src_filter}
[platformio]
default_envs = esp32_4mb
default_envs = esp8266_4mb
data_dir = data_svelte
[common_env_data]

View File

@@ -196,8 +196,12 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
}
//команда очистки всех логов esp
if (headerStr == "/clean|") {
cleanLogs();
if (headerStr == "/clean1|") {
cleanLogs1();
}
if (headerStr == "/clean2|") {
cleanLogs2();
}
//команда обновления прошивки esp

View File

@@ -22,7 +22,7 @@ void* getAPI_ButtonOut(String subtype, String params);
void* getAPI_IoTServo(String subtype, String params);
void* getAPI_Mcp23017(String subtype, String params);
void* getAPI_Mp3(String subtype, String params);
void* getAPI_Pwm32(String subtype, String params);
void* getAPI_Pwm8266(String subtype, String params);
void* getAPI_TelegramLT(String subtype, String params);
void* getAPI_Lcd2004(String subtype, String params);
@@ -50,7 +50,7 @@ if ((tmpAPI = getAPI_ButtonOut(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_IoTServo(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Mcp23017(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Mp3(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Pwm32(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Pwm8266(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_TelegramLT(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Lcd2004(subtype, params)) != nullptr) return tmpAPI;
return nullptr;

View File

@@ -119,46 +119,9 @@ class Loging : public IoTItem {
return changed;
}
#if defined(ESP8266)
void getFilesList8266() {
filesList = "";
String directory = "lg/" + id;
auto dir = FileFS.openDir(directory);
while (dir.next()) {
String fname = dir.fileName();
if (fname != "") filesList += directory + "/" + fname + ";";
}
}
#endif
#if defined(ESP32)
void getFilesList32() {
filesList = "";
String directory = "/lg/" + id;
File root = FileFS.open(directory);
directory = String();
if (root.isDirectory()) {
File file = root.openNextFile();
while (file) {
String fname = file.name();
if (fname != "") filesList += fname + ";";
file = root.openNextFile();
}
}
}
#endif
void getFilesList() {
#if defined(ESP8266)
getFilesList8266();
#endif
#if defined(ESP32)
getFilesList32();
#endif
}
void sendChart() {
getFilesList();
String dir = "lg/" + id;
filesList = getFilesList(dir);
int f = 0;
bool noData = true;
@@ -202,7 +165,8 @@ class Loging : public IoTItem {
}
void cleanData() {
getFilesList();
String dir = "lg/" + id;
filesList = getFilesList(dir);
int i = 0;
while (filesList.length()) {
String buf = selectToMarker(filesList, ";");

View File

@@ -183,42 +183,37 @@ void removeFile(const String& filename) {
String path = filepath(filename);
if (FileFS.exists(path)) {
if (!FileFS.remove(path)) {
// SerialPrint("i", "Files", "remove " + path);
SerialPrint("i", "Files", "remove file" + path);
}
} else {
SerialPrint("E", "Files", "not exist " + path);
SerialPrint("E", "Files", "file not exist " + path);
}
}
void removeDirectory(const String& dir) {
String path = filepath(dir);
if (FileFS.exists(path)) {
if (!FileFS.rmdir(path)) {
SerialPrint("i", "Files", "remove dir" + path);
}
} else {
SerialPrint("E", "Files", "dir not exist " + path);
}
}
//очищаем директорию с файлами
void cleanDirectory(String path) {
#if defined(ESP8266)
auto dir = FileFS.openDir(path);
while (dir.next()) {
String fname = dir.fileName();
removeFile(path + "/" + fname);
SerialPrint("i", "Files", path + "/" + fname + " => deleted");
String filesList = getFilesList(path);
int i = 0;
while (filesList.length()) {
String buf = selectToMarker(filesList, ";");
i++;
removeFile(buf);
SerialPrint("i", "Files", String(i) + ") " + buf + " => deleted");
filesList = deleteBeforeDelimiter(filesList, ";");
}
onFlashWrite();
#endif
#if defined(ESP32)
path = "/" + path;
File root = FileFS.open(path);
path = String();
if (!root) {
SerialPrint("E", "Files", "nothing to delete");
return;
}
if (root.isDirectory()) {
File file = root.openNextFile();
while (file) {
String fname = file.name();
removeFile(fname);
SerialPrint("i", "Files", fname + " => deleted");
file = root.openNextFile();
}
}
#endif
}
void saveDataDB(String id, String data) {
@@ -231,7 +226,8 @@ String readDataDB(String id) {
return readFile(path, 2000);
}
void cleanLogs() {
void cleanLogs1() {
SerialPrint("i", "Files", "cleanLogs1");
cleanDirectory("db");
//очистка данных всех экземпляров графиков
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
@@ -241,6 +237,20 @@ void cleanLogs() {
}
}
void cleanLogs2() {
SerialPrint("i", "Files", "cleanLogs2");
String dir1 = "db";
SerialPrint("i", "", getFilesList(dir1));
removeDirectory(dir1);
SerialPrint("i", "", getFilesList(dir1));
String dir2 = "lg";
SerialPrint("i", "", getFilesList(dir2));
removeDirectory(dir2);
SerialPrint("i", "", getFilesList(dir2));
}
//счетчик количества записей на флешь за сеанс
void onFlashWrite() {
flashWriteNumber++;
@@ -249,49 +259,44 @@ void onFlashWrite() {
// Создаем список файлов каталога, функции от Сергея Третьякова
#if defined(ESP8266)
String FileList(String path) {
Dir dir = FileFS.openDir(path);
path = String();
String output = "[";
String getFilesList8266(String& directory) {
String filesList = "";
auto dir = FileFS.openDir(directory);
while (dir.next()) {
File entry = dir.openFile("r");
if (output != "[") output += ',';
bool isDir = false;
output += "{\"type\":\"";
output += (isDir) ? "dir" : "file";
output += "\",\"name\":\"";
output += String(entry.name()).substring(1);
output += "\"}";
entry.close();
String fname = dir.fileName();
if (fname != "") filesList += directory + "/" + fname + ";";
}
output += "]";
return output;
return filesList;
}
#else
String FileList(String path) {
File root = FileFS.open(path);
path = String();
#endif
String output = "[";
#if defined(ESP32)
String getFilesList32(String& directory) {
String filesList = "";
String directory = "/" + directory;
File root = FileFS.open(directory);
directory = String();
if (root.isDirectory()) {
File file = root.openNextFile();
while (file) {
if (output != "[") {
output += ',';
}
output += "{\"type\":\"";
output += (file.isDirectory()) ? "dir" : "file";
output += "\",\"name\":\"";
// output += String(file.path()).substring(1);
output += "\"}";
String fname = file.name();
if (fname != "") filesList += fname + ";";
file = root.openNextFile();
}
}
output += "]";
return output;
return filesList;
}
#endif
String getFilesList(String& directory) {
#if defined(ESP8266)
return getFilesList8266(directory);
#endif
#if defined(ESP32)
return getFilesList32(directory);
#endif
}
#if defined(ESP8266)
bool getInfo(FSInfo& info) {
return FileFS.info(info);