Перейти в хранилище документации
Обратиться в техническую поддержку
Список операторов, используемых для описания действий:
DoReact(тип объекта, номер, действие[,параметры]) – выполнить действие.
Пример использования:
OnEvent("GRAY","1","ON") { DoReact("GRELE","1","ON"); //при замыкании луча 1 замкнуть реле 1 }
DoCommand(командная строка) – запуск командной строки.
Пример использования:
OnEvent("GRAY","1","ON") { DoCommand("notepad.exe"); //при замыкании луча 1 запустить «Блокнот» }
Wait(кол-во секунд) – ждать N секунд;
Sleep(кол-во миллисекунд) – ждать N миллисекунд.
Операторы ожидания должны быть выделены в отдельный поток. Отдельный поток выделяется квадратными скобками.
Пример. При замыкании Луча №1 Реле №1 будет замыкаться на 5 секунд.
OnEvent("GRAY","1","ON") { [ DoReact("GRELE","1","ON"); Wait(5); DoReact("GRELE","1","OFF"); ] }
Функция проверки состояния объекта:
CheckState(тип объекта, номер, состояние) – результат будет равен 1, если состояние объекта соответствует действительности, иначе 0.
В качестве параметров могут быть выражения. Константные значения берутся в кавычки.
Пример. При замыкании луча №1 проверяется состояние камеры №2 и если состояние «Тревога», то замкнуть реле №1.
OnEvent("GRAY","1","ON") { if(CheckState("CAM","2","ALARMED")) { DoReact("GRELE","1","ON"); } }
Условный оператор:
If (выражение) { ... // если результат выражения не 0 } else { ... // если результат выражения равен 0 }
Часть оператора else {} может отсутствовать.
Пример использования:
OnEvent ("MACRO","1","RUN"){ x=5; if(x>10) {y=2;} // если "x" больше чем 10, то y=2 else {y=3;} //иначе y=3 }
Оператор цикла:
For (выражение 1; выражение 2; выражение 3){ ... }
Выражение 1 выполнится в начале цикла, пока выражение 2 истинно, будет выполняться тело цикла, после каждого выполнения тела цикла будет выполняться выражение 3.
Пример. При замыкании луча №1 реле №1 будет замыкаться и размыкаться с интервалом в 1 секунду и это будет происходить 10 раз.
OnEvent ("GRAY","1","ON") { [ for(i=0;i<10;i=str(i+1)) { DoReact("GRELE","1","ON"); Wait(1); DoReact("GRELE","1","OFF"); Wait(1); } ] }
DoReactGlobal(тип объекта, номер, состояние) – функция, генерирующая реакции системных объектов. При этом генерируемая реакция рассылается по всем ядрам системы, соединенным по сети.
Пример. При выполнении макрокоманды №1 ставить камеру №1 на охрану.
OnEvent("MACRO","1","RUN") { DoReactGlobal("CAM","1","ARM"); }
NotifyEventGlobal(тип объекта, номер, состояние) – функция, генерирующая системные события. При этом генерируемые события рассылаются по всем ядрам системы, соединенным по сети.
Пример. При выполнении макрокоманды №1 генерировать событие «Запись на диск» для камеры №1. Команду отправлять по всем ядрам системы в виде события для регистрации в Протоколе событий.
OnEvent("MACRO","1","RUN") { NotifyEventGlobal ("CAM","1","REC"); }
Примечание.