From 892e6d32abaecbeeb5c6d80c8698e5ce2544b3b5 Mon Sep 17 00:00:00 2001 From: Ilya Date: Wed, 21 May 2025 09:35:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BD=D0=BE=D0=B2=D1=83=D1=8E=20=D1=84=D1=83?= =?UTF-8?q?=D0=BD=D0=BA=D1=86=D0=B8=D1=8E=20=D0=B2=20=D1=81=D1=86=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=D1=80=D0=B8=D0=B8=20doByInterval=20=D0=92=D1=8B?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D0=BD=D1=8F=D0=B5=D0=BC=20=D0=B8=D0=BD=D1=82?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B5=20=D0=B4?= =?UTF-8?q?=D0=B5=D0=B9=D1=81=D1=82=D0=B2=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=B4?= =?UTF-8?q?=D1=83=D0=BB=D1=8F=20=D0=B2=D0=BD=D0=B5=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=D0=B0.=20=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D1=83=D0=B5=D1=82=D1=81=D1=8F=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA?= =?UTF-8?q?=D0=BE=20=D1=81=D0=BE=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BD=D0=BE?= =?UTF-8?q?=20=D1=81=20=D0=98=D0=94=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0:=20ID.doByInterval()=20=D0=92=D0=BE=D0=B7=D0=B2?= =?UTF-8?q?=D1=80=D0=B0=D1=82=20-=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D0=B0?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=D0=B2=D1=8B=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20doByInterval?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/classes/IoTScenario.cpp | 7 +++++++ src/modules/sceninfo.json | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/src/classes/IoTScenario.cpp b/src/classes/IoTScenario.cpp index 754d12c5..7245b2f8 100644 --- a/src/classes/IoTScenario.cpp +++ b/src/classes/IoTScenario.cpp @@ -293,6 +293,13 @@ class CallExprAST : public ExprAST { return &ret; } + // вызываем системную функцию периодического выполнения вне таймера + if (Cmd == F("doByInterval")) { + Item->doByInterval(); + ret = Item->value; + return &ret; + } + // если все же все ок, то готовим параметры для передачи в модуль std::vector ArgsAsIoTValue; for (unsigned int i = 0; i < Args.size(); i++) { diff --git a/src/modules/sceninfo.json b/src/modules/sceninfo.json index 53265548..b7d0be54 100644 --- a/src/modules/sceninfo.json +++ b/src/modules/sceninfo.json @@ -14,6 +14,12 @@ "descr": "Получаем количество секунд доверия к значениям элемента. При -2 доверие полное, при -1 время доверия истекло. При >0 время обратного отсчета. Используется только совместно с ИД элемента: ID.getIntFromNet()", "params": [] }, + { + "name": "doByInterval", + "descr": "Выполняем интервальное действие модуля вне плана. Используется только совместно с ИД элемента: ID.doByInterval()", + "params": [], + "return": "значение элемента после выполнения doByInterval" + }, { "name": "exit", "descr": "Прерываем работу сценария и выводим в консоль причину. Причина не обязательна.",