...
Необходимо установить для первого устройства видеоввода первый канал, максимальную скорость оцифровки, разрешение полукадр и формат PAL при запуске первой макрокоманды.
| Code Block |
|---|
|
OnEvent("MACRO","1","RUN") //запуск макрокоманды 1
{
DoReact("GRABBER","1", "SETUP", "chan<1>,mode<0>,resolution<1>,format<PAL>");
//установка для первой платы видеоввода канал - 1, скорость оцифровки - максимальная, разрешение - полукадр, формат - PAL
} |
Необходимо при запуске третьей макрокоманды установить диски D:\ и F:\ для записи видеоархива.
| Code Block |
|---|
|
OnEvent("MACRO","3","RUN") //запуск макрокоманды 3
{
DoReact("GRABBER","1","SET_DRIVES","drives<D:\,F:\>"); //запись видеоархива на диски D:\ и F:\
} |
Необходимо вывести первую видеокамеру на первый аналоговый выход платы и отключить первые аналоговые выходы первой и второй плат при ошибке подключения ко второй плате видеоввода.
| Code Block |
|---|
|
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-го аналогового выхода второй платы
} |
| Info |
|---|
|
| Если аналоговые выходы двух и более плат соединяются параллельно, и видеокамера 1, например, принадлежит первому грабберу, а видеокамера 2 − второму, то при вызове команды «DoReact("CAM","1","MUX1");» необходимо сначала вызвать команду «DoReact("GRABBER","2","MUX1_OFF");» и, соответственно, при вызове команды «DoReact("CAM","2","MUX1");» необходимо сначала вызвать команду «DoReact("GRABBER","1","MUX1_OFF");». Иначе произойдет наслоение сигналов. |
Необходимо отключить второй аналоговый выход платы видеоввода при восстановлении питания от сети.
| Code Block |
|---|
|
OnEvent("GRABBER","1","UPS_ONLINE") //восстановление питания от сети
{
DoReact("GRABBER","1","MUX2_OFF"); //отключение аналогового выхода 2
} |
...
Примеры использования событий и реакций объекта Монитор:
Необходимо при При запуске первой макрокоманды проиграть запись с видеокамеры 1 на мониторе 4 с указанными датой и временем.
| Code Block |
|---|
|
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 кадров далее, начиная с фрагмента указанной даты и времени.
| Code Block |
|---|
|
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>");
}
} |
Необходимо приблизить Приблизить видеоизображение на экране монитора, если видеокамера находится в состоянии тревоги, и вернуть в исходное состояние при ее окончании.
| Code Block |
|---|
|
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 при срабатывании макрокоманды.
| Code Block |
|---|
OnEvent("MACRO","1","RUN")
{
DoReact("MONITOR","1","KEY_PRESSED","key<SELECT_LAYOUT>,number<1>");
} |
- Команда запуска экспорта видео с Камеры 1 в Мониторе 1, начиная с момента времени 24-10-14 17:10:38 и заканчивая 24-10-14 17:10:50, в файл c:\aaa.avi.
Примеры запуска экспорта тремя способами: через IIDK (порт 900 и порт 1030) и через скрипт.- 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> - 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> Скрипт (запуск по Макрокоманде 1)
| Code Block |
|---|
|
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 отключать.
| Code Block |
|---|
|
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>");
} |
Выводить активную камеру на аналоговый монитор.
| Code Block |
|---|
|
OnEvent ("MONITOR","1","ACTIVATE_CAM")
{
DoReact ("CAM",cam,"MUX1");
} |
Выводить тревожную камеру в режим однократера.
| Code Block |
|---|
|
OnEvent ("CAM",N,"MD_START")
{
DoReact ("MONITOR","1","ACTIVATE_CAM","cam<"+N+">");
DoReact ("MONITOR","1","KEY_PRESSED","key<SCREEN.1>");
} |
Тревожный монитор, на котором всегда остается видео от последней тревожной камеры.
| Code Block |
|---|
|
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+">");
}
} |
- По макрокоманде 1 включить проигрывание по раскладкам на всех серверах в окне Монитора видеонаблюдения (Монитор 1), по макрокоманде 2 отключить проигрывание по раскладкам на всех серверах.
| Code Block |
|---|
|
if(Event.SourceType == "MACRO" && Event.SourceId=="1" && Event.Action=="RUN")
{
DoReactStr("MONITOR", "1","START_PAGING_LAYOUTS","");
}
if (Event.SourceType == "MACRO" && Event.SourceId == "2" && Event.Action == "RUN")
{
DoReactStr("MONITOR", "1", "STOP_PAGING_LAYOUTS","");
} |