You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Форматы и функции

Формат процедуры событий для Устройства видеоввода:

OnEvent("GRABBER","_id_","_событие_")

Формат оператора для описания действий с Устройством видеоввода:

DoReact("GRABBER","_id_","_команда_" [,"_параметры_"]);

Формат процедуры событий для объекта Камера:

OnEvent("CAM","_id_","_событие_")

Формат оператора для описания действий с Камерой:

DoReact("CAM","_id_","_команда_" [,"_параметры_"]);

Функция проверки состояния объекта Камера:

CheckState("CAM","номер","состояние")

Формат процедуры событий для объекта Монитор:

OnEvent("MONITOR","_id_","_событие_")

Формат оператора для действий с Монитором:

DoReact("MONITOR","_id_","_команда_"[,"_параметры_"]);


Примеры

Примеры использования событий и реакций объекта Устройство видеоввода:

  1. Необходимо установить для первого устройства видеоввода первый канал, максимальную скорость оцифровки, разрешение полукадр и формат PAL при запуске первой макрокоманды.

    OnEvent("MACRO","1","RUN") //запуск макрокоманды 1
    {
    	DoReact("GRABBER","1", "SETUP", "chan<1>,mode<0>,resolution<1>,format<PAL>"); 
    	//установка для первой платы видеоввода канал - 1, скорость оцифровки - максимальная, разрешение - полукадр, формат - PAL
    }
  2. Необходимо при запуске третьей макрокоманды установить диски D:\ и F:\ для записи видеоархива.

    OnEvent("MACRO","3","RUN") //запуск макрокоманды 3
    {
    	DoReact("GRABBER","1","SET_DRIVES","drives<D:\,F:\>"); //запись видеоархива на диски D:\ и F:\
    }
  3. Необходимо вывести первую видеокамеру на первый аналоговый выход платы и отключить первые аналоговые выходы первой и второй плат при ошибке подключения ко второй плате видеоввода.

    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-го аналогового выхода второй платы
    }

    Примечание.

    Если аналоговые выходы двух и более плат соединяются параллельно, и видеокамера 1, например, принадлежит первому грабберу, а видеокамера 2 − второму, то при вызове команды «DoReact("CAM","1","MUX1");»  необходимо сначала вызвать команду «DoReact("GRABBER","2","MUX1_OFF");» и, соответственно, при вызове команды «DoReact("CAM","2","MUX1");» необходимо сначала вызвать команду «DoReact("GRABBER","1","MUX1_OFF");». Иначе произойдет наслоение сигналов.
  4. Необходимо отключить второй аналоговый выход платы видеоввода при восстановлении питания от сети.

    OnEvent("GRABBER","1","UPS_ONLINE") //восстановление питания от сети
    {
    	DoReact("GRABBER","1","MUX2_OFF"); //отключение аналогового выхода 2
    }

Примеры использования событий и реакций объекта Камера:

  1. При постановке первой камеры на охрану выполнить перевод камеры в цветной режим и начать запись с нее.

    OnEvent("CAM","1","ARM") //первая видеокамера поставлена на охрану
    {
    	DoReact("CAM","1","SETUP","color<1>"); //установка цветного режима видеокамеры
    	DoReact("CAM","1","REC"); //запись с первой видеокамеры
    }
  2. Необходимо поставить на охрану первую видеокамеру при отключении пятой видеокамеры.

    OnEvent("CAM","5","DETACH") //пятая видеокамера отключена 
    {
    	DoReact("CAM","1","ARM"); //первая видеокамера поставлена на охрану
    }
  3. Необходимо использовать половину ресурсов при записи у первой видеокамеры (то есть, если в системе через первую плату видеоввода подключено 4 видеокамеры, то первая будет записывать со скоростью 6 кадров/сек, а остальные три – по 2-2,5 кадра/сек.), если она находится в тревожном состоянии.

    OnEvent("CAM","1","MD_START") //первая видеокамера находится в тревожном состоянии
    {
    	DoReact("CAM","1","SETUP","rec_priority<2>"); //использование половины ресурсов при записи
    }
  4. Необходимо установить максимальную компрессию синхронно с четвертым микрофоном звуковой платы на первой видеокамере при записи на диск видео с первой видеокамеры.

    OnEvent("CAM","1","REC") //первая видеокамера ведет запись на диск
    {
    	DoReact("CAM", "1", "SETUP", "compression<5>, audio_type<OLXA_LINE>, audio_id<4>"); //первая видеокамера, максимальная компрессия, 
    синхронно с четвертым микрофоном звуковой платы
    }
  5. Необходимо начать запись с первой видеокамеры с минимальным качеством в черно-белом режиме, когда она выйдет из состояния тревоги.

    OnEvent("CAM","1","MD_STOP") //первая видеокамера перестала находиться в тревожном состоянии
    {
    	value = 5;
    	DoReact("CAM", "1", "SETUP", "compression<" + value + ">,сolor<0>"); 
    	//начать запись первой видеокамеры с минимальным качеством в ч/б режиме
    }
  6. Необходимо начать запись с первой видеокамеры в режиме «откат», когда она снята с охраны.

    OnEvent("CAM","1","DISARM")  //первая видеокамера снята с охраны
    {
    	DoReact("CAM","1","REC","rollback<1>");  //начать запись с первой видеокамеры в режиме «откат»
    }
  7. Установить новые параметры видеоканала при подключении первой видеокамеры.

    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>"); //устанавливаем новые параметры видеоканала
    }
  8. По макрокоманде 2 запустить автопанорамирование на камере 1.

    OnEvent ("MACRO","2","RUN")
    {
        DoReact("CAM","1","CRUISE_START","cruise_id<1>,action<CRUISE_START>,cam_id<1>");
    }

Примеры использования событий и реакций объекта Монитор:

  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>");
    }
  2. Необходимо при печати кадра с первой видеокамеры перейти в режим просмотра видеоархива на первой видеокамере монитора 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>"); 
     	}
    }
  3. Необходимо приблизить видеоизображение на экране монитора, если видеокамера находится в состоянии тревоги, и вернуть в исходное состояние при ее окончании.

    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>");
    }
  4. Необходимо вывести на экран монитора раскладку под номером 1 при срабатывании макрокоманды.

    OnEvent("MACRO","1","RUN")
    {
    	DoReact("MONITOR","1","KEY_PRESSED","key<SELECT_LAYOUT>,number<1>");
    }
  5. Команда запуска экспорта видео с Камеры 1 в Мониторе 1, начиная с момента времени 24-10-14 17:10:38 и заканчивая 24-10-14 17:10:50, в файл c:\aaa.avi.
    Примеры запуска экспорта тремя способами: через IIDK (порт 900 и порт 1030) и через скрипт.
    1. IIDK (порт 900)
      MONITOR|1|START_AVI_EXPORT|start<24-10-14 17:10:38>,finish<24-10-14 17:10:50>,avi_path<c:\aaa.avi>,cam<1>
    2. IIDK (порт 1030)
      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>
    3. Скрипт (запуск по Макрокоманде 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");
      }
  6. По макрокоманде 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>");
    }
  • No labels