Перейти в хранилище документации
Обратиться в техническую поддержку
Формат процедуры событий для объекта Поворотное устройство:
OnEvent("TELEMETRY","_id_","_событие_")
Формат оператора для описания действий с Поворотными устройствами:
DoReact("TELEMETRY","_id_","_команда_" [,"_параметры_"]);
Формат процедуры событий для объекта Пульт управления:
OnEvent("TELEMETRY_EXT","_id_","_событие_")
Формат оператора для описания действий с Пультом управления:
DoReact("TELEMETRY_EXT","_id_","_команда_" [,"_параметры_"]);
Формат процедуры событий для объекта Устройство управления:
OnEvent("JOYSTICK","_id_","_событие_")
Примеры использования реакций объекта Поворотное устройство:
Необходимо установить автофокусирование, когда видеокамеру 1 ставят на охрану.
OnEvent("CAM","1","ARM") { DoReact("TELEMETRY","1", "AUTOFOCUS_ON"); }
Необходимо повернуть видеокамеру в положение, заданное в первом пресете, при включении реле.
OnEvent("GRELE","1","ON") { telemetry_id= GetObjectParam("CAM","1","parent_id"); DoReact("TELEMETRY","telemetry_id","SETUP","GO_preset<1>"); }
Записать маршрут патрулирования для Камеры 1, соответствующей Поворотному устройству 1.1. Маршрут состоит из двух точек, таких, что для перехода из точки 1 в точку 2 необходимо поворачивать камеру влево со скоростью 6 в течение 2 секунд. Патрулирование должно осуществляться со скоростью 10. Время нахождения в каждой точке маршрута – 25 секунд. Предполагается, что в момент начала выполнения программы камера установлена в положение, соответствующее первой точке маршрута.
OnEvent("MACRO","1","RUN") { DoReact("TELEMETRY","1.1","PATROL_LEARN","cam<1>,preset<1>,tel_prior<1>,dwell<25>,speed<10>,flush_tour<0>"); Wait(2); DoReact("TELEMETRY","1.1","LEFT","speed<6>,tel_prior<1>"); Wait(2); DoReact("TELEMETRY","1.1","STOP","speed<6>,tel_prior<1>"); Wait(2); DoReact("TELEMETRY","1.1","PATROL_LEARN","cam<1>,preset<2>,tel_prior<1>,dwell<25>,speed<10>,flush_tour<1>"); }
Есть 2 камеры с поворотными устройствами. Каждые 15 минут нужно повернуть камеры в пресет №1 (предустановка №1) и сделать скриншот. Имя файла – текущее время.
OnTime(W,D,X,Y,H,M, "01") { if(strequal(M,"0")) { name=H+"_"+M+"_"+S+".jpg"; //Камера 1 Поворотное устройство 1.1 name1="Камера1 "+name; DoReact("TELEMETRY","1.1","GO_PRESET","preset<1>,tel_prior<1>"); DoReact("MONITOR","1","EXPORT_FRAME","cam<1>,file<d:\"+name1); //Камера 2 Поворотное устройство 1.2 name="Камера2 "+name; DoReact("TELEMETRY","1.2","GO_PRESET","preset<1>,tel_prior<1>"); DoReact("MONITOR","1","EXPORT_FRAME","cam<2>,file<d:\"+name); } if(strequal(M,"15")) { name=H+"_"+M+"_"+S+".jpg"; //Камера 1 Поворотное устройство 1.1 name1="Камера1 "+name; DoReact("TELEMETRY","1.1","GO_PRESET","preset<1>,tel_prior<1>"); DoReact("MONITOR","1","EXPORT_FRAME","cam<1>,file<d:\"+name1); //Камера 2 Поворотное устройство 1.2 name="Камера2 "+name; DoReact("TELEMETRY","1.2","GO_PRESET","preset<1>,tel_prior<1>"); DoReact("MONITOR","1","EXPORT_FRAME","cam<2>,file<d:\"+name); } if(strequal(M,"30")) { name=H+"_"+M+"_"+S+".jpg"; //Камера 1 Поворотное устройство 1.1 name1="Камера1 "+name; DoReact("TELEMETRY","1.1","GO_PRESET","preset<1>,tel_prior<1>"); DoReact("MONITOR","1","EXPORT_FRAME","cam<1>,file<d:\"+name1); //Камера 2 Поворотное устройство 1.2 name="Камера2 "+name; DoReact("TELEMETRY","1.2","GO_PRESET","preset<1>,tel_prior<1>"); DoReact("MONITOR","1","EXPORT_FRAME","cam<2>,file<d:\"+name); } if(strequal(M,"45")) { name=H+"_"+M+"_"+S+".jpg"; //Камера 1 Поворотное устройство 1.1 name1="Камера1 "+name; DoReact("TELEMETRY","1.1","GO_PRESET","preset<1>,tel_prior<1>"); DoReact("MONITOR","1","EXPORT_FRAME","cam<1>,file<d:\"+name1); //Камера 2 Поворотное устройство 1.2 name="Камера2 "+name; DoReact("TELEMETRY","1.2","GO_PRESET","preset<1>,tel_prior<1>"); DoReact("MONITOR","1","EXPORT_FRAME","cam<2>,file<d:\"+name); } }
Осуществить патрулирование нескольких зон видимости с помощью пресетов поворотной камеры, с возможностью включения детектора движения на определенных областях этих зон.
Камера 1: 5 зон детектора, 5 предустановок (пресетов). Два этих параметра задаются переменной n. Макрокоманда №1 – старт алгоритма. Макрокоманда №2 – остановка алгоритма. Flag – внутренняя переменная.
При старте алгоритма камера становится в 1 пресет и ставит на охрану 1 зону детектора. Между этими командами задержка 200 миллисекунд, чтобы камера успела встать в пресет. Далее через 5 секунд 1 зона снимается с охраны и цикл начинается заново, но уже с 2 зоной и 2 пресетом. И так далее пока не переберутся все n зон и пресетов. После алгоритм начинается заново с 1. Алгоритм останавливается, если переменная flag обнуляется (с помощью макрокоманды №2).
OnEvent("MACRO","1","RUN") { flag=1; n=5; [ for(i=1;flag;i=str(i+1)) { DoReact("TELEMETRY","1.1","GO_PRESET","preset<"+i+">,tel_prior<3>"); Sleep(200); DoReact("CAM_ZONE","1"+i,"ARM"); Wait(5); DoReact("CAM_ZONE","1"+i,"DISARM"); if(strequal(i,n)) {i=0;} } ] } OnEvent("MACRO","2","RUN") { flag=0; }
Пример использования событий и реакций объекта Пульт управления:
По нажатию клавиши 15 на клавиатуре AXIS T8312 включить на ней лампочку и поставить камеру 2 на охрану.
OnEvent ("TELEMETRY_EXT","1","KEY_PRESSED") { if (strequal(param0, "15")){ DoReact("TELEMETRY_EXT","1","RELE_ON","rele<15>"); DoReact("CAM","2","ARM"); } }