Перейти в хранилище документации
Обратиться в техническую поддержку![]()
Предыдущая страница Следующая страница
Формат процедуры событий для объекта Поворотное устройство:
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");
}
}