Список операторов, используемых для описания действий:

  1. DoReact(тип объекта, номер, действие[,параметры]) – выполнить действие.
    Пример использования:

    OnEvent("GRAY","1","ON")
    {
                    DoReact("GRELE","1","ON");     //при замыкании луча 1 замкнуть реле 1
    }
  2. DoCommand(командная строка) – запуск командной строки.

    Пример использования:

    OnEvent("GRAY","1","ON")
    {
                    DoCommand("notepad.exe"); //при замыкании луча 1 запустить «Блокнот»
    }
  3. Wait(кол-во секунд) – ждать N секунд;
    Sleep(кол-во миллисекунд) – ждать N миллисекунд.

    Операторы ожидания должны быть выделены в отдельный поток. Отдельный поток выделяется квадратными скобками.

    Пример. При замыкании Луча №1 Реле №1 будет замыкаться на 5 секунд.

    OnEvent("GRAY","1","ON")
    {
                    [
                    DoReact("GRELE","1","ON");
                    Wait(5);
                    DoReact("GRELE","1","OFF");
                    ]
    }
  4. Функция проверки состояния объекта:

    CheckState(тип объекта, номер, состояние) – результат будет равен 1, если состояние объекта соответствует действительности, иначе 0.

    В качестве параметров могут быть выражения. Константные значения берутся в кавычки.

    Пример. При замыкании луча №1 проверяется состояние камеры №2 и если состояние «Тревога», то замкнуть реле №1.

    OnEvent("GRAY","1","ON")
    {
                    if(CheckState("CAM","2","ALARMED"))
                    {
                                    DoReact("GRELE","1","ON");
                    }
    }
  5. Условный оператор:

    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
    }
  6. Оператор цикла:

    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);
                    }
                    ]
    }   
  7. DoReactGlobal(тип объекта, номер, состояние) – функция, генерирующая реакции системных объектов. При этом генерируемая реакция рассылается по всем ядрам системы, соединенным по сети.

    Пример. При выполнении макрокоманды №1 ставить камеру №1 на охрану.

    OnEvent("MACRO","1","RUN")
    {
    	DoReactGlobal("CAM","1","ARM");
    }
  8. NotifyEventGlobal(тип объекта, номер, состояние) – функция, генерирующая системные события. При этом генерируемые события рассылаются по всем ядрам системы, соединенным по сети.

    Пример. При выполнении макрокоманды №1 генерировать событие «Запись на диск» для  камеры №1. Команду отправлять по всем ядрам системы в виде события для регистрации в Протоколе событий.

    OnEvent("MACRO","1","RUN")
    {
    	NotifyEventGlobal ("CAM","1","REC");
    }

    Примечание.

    Если нет необходимости в рассылке события по всем ядрам системы, можно воспользоваться функцией NotifyEvent.