diff --git a/include/classes/IoTItem.h b/include/classes/IoTItem.h index 81405849..41cd0794 100644 --- a/include/classes/IoTItem.h +++ b/include/classes/IoTItem.h @@ -73,8 +73,8 @@ class IoTItem { String _id = "errorId"; // если будет попытка создания Item без указания id, то элемент оставит это значение long _interval = 0; int _intFromNet = -2; // количество секунд доверия, пришедших из сети вместе с данными для текущего ИД - // -2 - данные не приходили, скорее всего, элемент локальный, доверие есть - // -1 - данные приходили и обратный отсчет дошел до нуля, значит доверия нет + // -2 - данные не приходили, скорее всего, элемент локальный, доверие есть, в случае прихода сетевого значения с int=0, будет выключен механизм проверки доверия + // -1 - данные приходили и обратный отсчет дошел до нуля, значит доверия нет и элемент будет удален при следующем такте loop float _multiply; // умножаем на значение float _plus; // увеличиваем на значение diff --git a/src/Main.cpp b/src/Main.cpp index ea73e295..815c56dd 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -91,7 +91,7 @@ void setup() { iotScen.loadScenario("/scenario.txt"); // создаем событие завершения конфигурирования для возможности выполнения блока кода при загрузке - createItemFromNet("onStart", "1", -4); + createItemFromNet("onStart", "1", 1); stInit(); diff --git a/src/WsServer.cpp b/src/WsServer.cpp index bee9cea3..6eec69aa 100644 --- a/src/WsServer.cpp +++ b/src/WsServer.cpp @@ -119,7 +119,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) configure("/config.json"); iotScen.loadScenario("/scenario.txt"); // создаем событие завершения конфигурирования для возможности выполнения блока кода при загрузке - createItemFromNet("onStart", "1", -4); + createItemFromNet("onStart", "1", 1); } //----------------------------------------------------------------------// diff --git a/src/classes/IoTItem.cpp b/src/classes/IoTItem.cpp index 545ca059..f807675c 100644 --- a/src/classes/IoTItem.cpp +++ b/src/classes/IoTItem.cpp @@ -7,7 +7,7 @@ IoTItem::IoTItem(const String& parameters) { jsonRead(parameters, F("int"), _interval, false); - if (_interval = 0) enableDoByInt = false; // выключаем использование периодического выполнения в модуле + if (_interval == 0) enableDoByInt = false; // выключаем использование периодического выполнения в модуле if (_interval > 0) _interval = _interval * 1000; // если int положителен, то считаем, что получены секунды if (_interval < 0) _interval = _interval * -1; // если int отрицательный, то миллисекунды jsonRead(parameters, F("subtype"), _subtype, false); @@ -171,7 +171,7 @@ void IoTItem::setIntFromNet(int interval) { void IoTItem::checkIntFromNet() { // проверяем элемент на доверие данным. if (_intFromNet >= 0) { - // если время жизни истекло, то удаляем элемент + // если время жизни истекло, то удаляем элемент чуть позже на следующем такте loop // если это было уведомление не об ошибке или начале работы, то сообщаем, что сетевое событие давно не приходило if (_intFromNet == 0 && _id.indexOf("onError") == -1 && _id.indexOf("onStart") == -1) { SerialPrint("E", _id, "The new data did not come from the network. The level of trust is low.", _id); @@ -271,6 +271,9 @@ IoTItem* createItemFromNet(const String& itemId, const String& value, int interv // создаем временную копию элемента из сети на основе события IoTItem* createItemFromNet(const String& msgFromNet) { IoTItem* tmpp = new IoTItem(msgFromNet); + + Serial.println("vvvvvvvvvvv " + msgFromNet + " " + (String)tmpp->getInterval()); + if (tmpp->getInterval()) tmpp->setIntFromNet(tmpp->getInterval() / 1000 + 5); tmpp->iAmLocal = false; IoTItems.push_back(tmpp); diff --git a/src/utils/SerialPrint.cpp b/src/utils/SerialPrint.cpp index 8ed907e2..4b3d1434 100644 --- a/src/utils/SerialPrint.cpp +++ b/src/utils/SerialPrint.cpp @@ -21,7 +21,7 @@ void SerialPrint(const String& errorLevel, const String& module, const String& m cleanString(tosend); // создаем событие об ошибке для возможной реакции в сценарии if (itemId != "") { - createItemFromNet(itemId + F("_onError"), tosend, -4); + createItemFromNet(itemId + F("_onError"), tosend, 1); } else { // createItemFromNet("onError", tosend, -4); }