Добавляем новую функцию в сценарии doByInterval

Выполняем интервальное действие модуля вне плана. Используется только совместно с ИД элемента: ID.doByInterval()
Возврат - значение элемента после выполнения doByInterval
This commit is contained in:
2025-05-21 09:35:51 +03:00
parent bdb8c29d8f
commit 892e6d32ab
2 changed files with 13 additions and 0 deletions

View File

@@ -293,6 +293,13 @@ class CallExprAST : public ExprAST {
return &ret; return &ret;
} }
// вызываем системную функцию периодического выполнения вне таймера
if (Cmd == F("doByInterval")) {
Item->doByInterval();
ret = Item->value;
return &ret;
}
// если все же все ок, то готовим параметры для передачи в модуль // если все же все ок, то готовим параметры для передачи в модуль
std::vector<IoTValue> ArgsAsIoTValue; std::vector<IoTValue> ArgsAsIoTValue;
for (unsigned int i = 0; i < Args.size(); i++) { for (unsigned int i = 0; i < Args.size(); i++) {

View File

@@ -14,6 +14,12 @@
"descr": "Получаем количество секунд доверия к значениям элемента. При -2 доверие полное, при -1 время доверия истекло. При >0 время обратного отсчета. Используется только совместно с ИД элемента: ID.getIntFromNet()", "descr": "Получаем количество секунд доверия к значениям элемента. При -2 доверие полное, при -1 время доверия истекло. При >0 время обратного отсчета. Используется только совместно с ИД элемента: ID.getIntFromNet()",
"params": [] "params": []
}, },
{
"name": "doByInterval",
"descr": "Выполняем интервальное действие модуля вне плана. Используется только совместно с ИД элемента: ID.doByInterval()",
"params": [],
"return": "значение элемента после выполнения doByInterval"
},
{ {
"name": "exit", "name": "exit",
"descr": "Прерываем работу сценария и выводим в консоль причину. Причина не обязательна.", "descr": "Прерываем работу сценария и выводим в консоль причину. Причина не обязательна.",