diff --git a/src/modules/virtual/Logging/Loging.cpp b/src/modules/virtual/Logging/Loging.cpp index f0fd2e77..35529d3d 100644 --- a/src/modules/virtual/Logging/Loging.cpp +++ b/src/modules/virtual/Logging/Loging.cpp @@ -7,6 +7,7 @@ class Loging : public IoTItem { String logid; String id; int points; + int keepdays; int interval; bool firstTime = true; @@ -21,6 +22,7 @@ class Loging : public IoTItem { SerialPrint("E", F("Loging"), "'" + id + "' user set more points than allowed, value reset to 300"); } jsonRead(parameters, F("int"), interval); + jsonRead(parameters, F("keepdays"), keepdays); } String getValue() { @@ -124,6 +126,10 @@ class Loging : public IoTItem { //выгрузка по частям, по одному файлу publishJsonPartly("/lg/" + fname, calculateMaxCount(), i); //} + if (fileUnixTime < (unixTime - (keepdays * 86400))) { + SerialPrint("i", F("Loging"), "'" + id + "' file '" + fname + "' too old, deleted"); + removeFile(directory + "/" + fname); + } } } else { SerialPrint("i", F("Loging"), "'" + id + "' file '" + fname + "' not used, deleted"); diff --git a/src/modules/virtual/Logging/modinfo.json b/src/modules/virtual/Logging/modinfo.json index 694156fb..a2be2d4f 100644 --- a/src/modules/virtual/Logging/modinfo.json +++ b/src/modules/virtual/Logging/modinfo.json @@ -12,7 +12,8 @@ "int": 60, "logid": "tmp", "num": 1, - "points": 255 + "points": 300, + "keepdays": 2 } ], "about": { @@ -22,11 +23,12 @@ "specialThanks": "", "moduleName": "Loging", "moduleVersion": "1.0", - "moduleDesc": "Расширение позволяющее логгировать любую величину в график", + "moduleDesc": "Расширение позволяющее логировать любую величину в график", "propInfo": { - "int": "Интервал", - "logid": "ID величины которую будем логгировать", - "points": "Максимальное количество точек в одном файле" + "int": "Интервал логирования", + "logid": "ID величины которую будем логировать", + "points": "Максимальное количество точек в одном файле, может быть не более 300", + "keepdays": "Количество дней за которое необходимо хранить историю. Данные старее будут удалены автоматически" } }, "defActive": true,