Перейти в хранилище документации
Обратиться в техническую поддержку
Формат процедуры событий для Устройства видеоввода:
OnEvent("GRABBER","_id_","_событие_")
Формат оператора для описания действий с Устройством видеоввода:
DoReact("GRABBER","_id_","_команда_" [,"_параметры_"]);
Формат процедуры событий для объекта Камера:
OnEvent("CAM","_id_","_событие_")
Формат оператора для описания действий с Камерой:
DoReact("CAM","_id_","_команда_" [,"_параметры_"]);
Функция проверки состояния объекта Камера:
CheckState("CAM","номер","состояние")
Формат процедуры событий для объекта Монитор:
OnEvent("MONITOR","_id_","_событие_")
Формат оператора для действий с Монитором:
DoReact("MONITOR","_id_","_команда_"[,"_параметры_"]);
Примеры использования событий и реакций объекта Устройство видеоввода:
Необходимо установить для первого устройства видеоввода первый канал, максимальную скорость оцифровки, разрешение полукадр и формат PAL при запуске первой макрокоманды.
OnEvent("MACRO","1","RUN") //запуск макрокоманды 1 { DoReact("GRABBER","1", "SETUP", "chan<1>,mode<0>,resolution<1>,format<PAL>"); //установка для первой платы видеоввода канал - 1, скорость оцифровки - максимальная, разрешение - полукадр, формат - PAL }
Необходимо при запуске третьей макрокоманды установить диски D:\ и F:\ для записи видеоархива.
OnEvent("MACRO","3","RUN") //запуск макрокоманды 3 { DoReact("GRABBER","1","SET_DRIVES","drives<D:\,F:\>"); //запись видеоархива на диски D:\ и F:\ }
Необходимо вывести первую видеокамеру на первый аналоговый выход платы и отключить первые аналоговые выходы первой и второй плат при ошибке подключения ко второй плате видеоввода.
OnEvent("GRABBER","2"," UPS_FATAL_ERROR") //ошибка подключения к плате видеоввода 2 { DoReact("CAM","1","MUX1"); //вывод видеокамеры 1 на 1-ый аналоговый вывод платы Wait(5); DoReact("GRABBER","1","MUX1_OFF"); //отключение 1-го аналогового выхода первой платы DoReact("GRABBER","2","MUX1_OFF"); //отключение 1-го аналогового выхода второй платы }
Примечание.
Необходимо отключить второй аналоговый выход платы видеоввода при восстановлении питания от сети.
OnEvent("GRABBER","1","UPS_ONLINE") //восстановление питания от сети { DoReact("GRABBER","1","MUX2_OFF"); //отключение аналогового выхода 2 }
Примеры использования событий и реакций объекта Камера:
При постановке первой камеры на охрану выполнить перевод камеры в цветной режим и начать запись с нее.
OnEvent("CAM","1","ARM") //первая видеокамера поставлена на охрану { DoReact("CAM","1","SETUP","color<1>"); //установка цветного режима видеокамеры DoReact("CAM","1","REC"); //запись с первой видеокамеры }
Необходимо поставить на охрану первую видеокамеру при отключении пятой видеокамеры.
OnEvent("CAM","5","DETACH") //пятая видеокамера отключена { DoReact("CAM","1","ARM"); //первая видеокамера поставлена на охрану }
Необходимо использовать половину ресурсов при записи у первой видеокамеры (то есть, если в системе через первую плату видеоввода подключено 4 видеокамеры, то первая будет записывать со скоростью 6 кадров/сек, а остальные три – по 2-2,5 кадра/сек.), если она находится в тревожном состоянии.
OnEvent("CAM","1","MD_START") //первая видеокамера находится в тревожном состоянии { DoReact("CAM","1","SETUP","rec_priority<2>"); //использование половины ресурсов при записи }
Необходимо установить максимальную компрессию синхронно с четвертым микрофоном звуковой платы на первой видеокамере при записи на диск видео с первой видеокамеры.
OnEvent("CAM","1","REC") //первая видеокамера ведет запись на диск { DoReact("CAM", "1", "SETUP", "compression<5>, audio_type<OLXA_LINE>, audio_id<4>"); //первая видеокамера, максимальная компрессия, синхронно с четвертым микрофоном звуковой платы }
Необходимо начать запись с первой видеокамеры с минимальным качеством в черно-белом режиме, когда она выйдет из состояния тревоги.
OnEvent("CAM","1","MD_STOP") //первая видеокамера перестала находиться в тревожном состоянии { value = 5; DoReact("CAM", "1", "SETUP", "compression<" + value + ">,сolor<0>"); //начать запись первой видеокамеры с минимальным качеством в ч/б режиме }
Необходимо начать запись с первой видеокамеры в режиме «откат», когда она снята с охраны.
OnEvent("CAM","1","DISARM") //первая видеокамера снята с охраны { DoReact("CAM","1","REC","rollback<1>"); //начать запись с первой видеокамеры в режиме «откат» }
Установить новые параметры видеоканала при подключении первой видеокамеры.
OnEvent("CAM","1","ATTACH") //подключена первая видеокамера { VIDEO_CANAL_ID = GETOBJECTPARAM("CAM","1","PARENT_ID"); //определяем идентификатор видеоканала, которому принадлежит первая видеокамера DoReact("GRABBER",VIDEO_CANAL_ID,"SETUP","chan<0>,mode<0>,resolution<1>,format<pal>"); //устанавливаем новые параметры видеоканала }
По макрокоманде 2 запустить автопанорамирование на камере 1.
OnEvent ("MACRO","2","RUN") { DoReact("CAM","1","CRUISE_START","cruise_id<1>,action<CRUISE_START>,cam_id<1>"); }
Примеры использования событий и реакций объекта Монитор:
Необходимо при запуске первой макрокоманды проиграть запись с видеокамеры 1 на мониторе 4 с указанными датой и временем.
OnEvent("MACRO","1","RUN") { DoReact("MONITOR","4","ARCH_FRAME_TIME","cam<1>,date<"+date+">,time<11:00:00>"); DoReact("MONITOR","4","KEY_PRESSED","key<PLAY>"); }
Необходимо при печати кадра с первой видеокамеры перейти в режим просмотра видеоархива на первой видеокамере монитора 4, и перейти на 10 кадров далее, начиная с фрагмента указанной даты и времени.
OnEvent("CAM", "1", "PRINT") { DoReact("MONITOR","4","ARCH_FRAME_TIME","cam<1>,date<"+date+">,time <11:00:00>"); for(i=0;i<10;i=i+1) { DoReact ("MONITOR","4","KEY_PRESSED","key<FF>"); } }
Необходимо приблизить видеоизображение на экране монитора, если видеокамера находится в состоянии тревоги, и вернуть в исходное состояние при ее окончании.
OnEvent("CAM","1","MD_START") { DoReact("MONITOR","1","KEY_PRESSED","key<ZOOM_IN>"); } OnEvent("CAM", "1", "MD_STOP"); { DoReact("MONITOR","1","KEY_PRESSED","key<ZOOM_OUT>"); }
Необходимо вывести на экран монитора раскладку под номером 1 при срабатывании макрокоманды.
OnEvent("MACRO","1","RUN") { DoReact("MONITOR","1","KEY_PRESSED","key<SELECT_LAYOUT>,number<1>"); }
Скрипт (запуск по Макрокоманде 1)
OnEvent("MACRO","1","RUN") { DoReact("CORE","","DO_REACT","source_type<MONITOR>,source_id<1>,action<START_AVI_EXPORT>,params<4>, param0_name<avi_path>,param0_val<c:\aaa.avi>,param1_name<cam>,param1_val<1>,param2_name<finish>, param2_val<24-10-14 17:10:50>,param3_name<start>,param3_val<24-10-14 17:10:38"); }
По макрокоманде 1 включать управление телеметрией при помощи мыши на камере 4, выведенной на монитор 10, по макрокоманде 2 отключать.
OnEvent("MACRO","1","RUN") { DoReact("MONITOR","10","CONTROL_TELEMETRY","cam<4>,on<1>"); } OnEvent("MACRO","2","RUN") { DoReact("MONITOR","10","CONTROL_TELEMETRY","cam<4>,on<0>"); }
Выводить активную камеру на аналоговый монитор.
OnEvent ("MONITOR","1","ACTIVATE_CAM") { DoReact ("CAM",cam,"MUX1"); }
Выводить тревожную камеру в режим однократера.
OnEvent ("CAM",N,"MD_START") { DoReact ("MONITOR","1","ACTIVATE_CAM","cam<"+N+">"); DoReact ("MONITOR","1","KEY_PRESSED","key<SCREEN.1>"); }
Тревожный монитор, на котором всегда остается видео от последней тревожной камеры.
OnInit() { counter=0; } OnEvent("CAM",T,"MD_START") { if(strequal(counter,"0")) { DoReact("MONITOR","2","REMOVE_ALL"); DoReact("MONITOR","2","ADD_SHOW","cam<"+T+">"); } counter=str(counter+1); } OnEvent("CAM",M,"MD_STOP") { counter=str(counter-1); if(strequal(counter,"0")) { DoReact("MONITOR","2","ADD_SHOW","cam<"+M+">"); } }