...
При постановке первой камеры на охрану выполнить перевод камеры в цветной режим и начать запись с нее.
Code Block |
---|
|
OnEvent("CAM","1","ARM") //первая видеокамера поставлена на охрану
{
DoReact("CAM","1","SETUP","color<1>"); //установка цветного режима видеокамеры
DoReact("CAM","1","REC"); //запись с первой видеокамеры
} |
Необходимо поставить на охрану первую видеокамеру при отключении пятой видеокамеры.
Code Block |
---|
|
OnEvent("CAM","5","DETACH") //пятая видеокамера отключена
{
DoReact("CAM","1","ARM"); //первая видеокамера поставлена на охрану
} |
Необходимо использовать половину ресурсов при записи у первой видеокамеры (то есть, если в системе через первую плату видеоввода подключено 4 видеокамеры, то первая будет записывать со скоростью 6 кадров/сек, а остальные три – по 2-2,5 кадра/сек.), если она находится в тревожном состоянии.
Code Block |
---|
|
OnEvent("CAM","1","MD_START") //первая видеокамера находится в тревожном состоянии
{
DoReact("CAM","1","SETUP","rec_priority<2>"); //использование половины ресурсов при записи
} |
Необходимо установить максимальную компрессию синхронно с четвертым микрофоном звуковой платы на первой видеокамере при записи на диск видео с первой видеокамеры.
Code Block |
---|
|
OnEvent("CAM","1","REC") //первая видеокамера ведет запись на диск
{
DoReact("CAM", "1", "SETUP", "compression<5>, audio_type<OLXA_LINE>, audio_id<4>"); //первая видеокамера, максимальная компрессия,
синхронно с четвертым микрофоном звуковой платы
} |
Необходимо начать запись с первой видеокамеры с минимальным качеством в черно-белом режиме, когда она выйдет из состояния тревоги.
Code Block |
---|
|
OnEvent("CAM","1","MD_STOP") //первая видеокамера перестала находиться в тревожном состоянии
{
value = 5;
DoReact("CAM", "1", "SETUP", "compression<" + value + ">,сolor<0>");
//начать запись первой видеокамеры с минимальным качеством в ч/б режиме
} |
Необходимо начать запись с первой видеокамеры в режиме «откат», когда она снята с охраны.
Code Block |
---|
|
OnEvent("CAM","1","DISARM") //первая видеокамера снята с охраны
{
DoReact("CAM","1","REC","rollback<1>"); //начать запись с первой видеокамеры в режиме «откат»
} |
Установить новые параметры видеоканала при подключении первой видеокамеры.
Code Block |
---|
|
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.
Code Block |
---|
|
OnEvent ("MACRO","2","RUN")
{
DoReact("CAM","1","CRUISE_START","cruise_id<1>,action<CRUISE_START>,cam_id<1>");
} |
Есть определенное количество камер (num). Необходимо проверить работу детектора движения по всем камерам (можно использовать для проверки работоспособности датчиков охраны).
Для решения задачи используется эмуляция линейного символьного массива (строка), т.е. заполняется массив символов (в примере это символ «N»). Далее при сработке детектора движения по камере меняется соответствующий (идентификатору камеры) элемент массива (меняется на "Y"). Таким образом, на выходе образуется символьный массив из «N» (камера не сработала) и «Y» (камера сработала). Подсчитывается количество сработок и выдается сообщение об общем количестве камер и количество камер, у которых сработал детектор. Старт проверки по Макрокоманде 1. Остановка по Макрокоманде 2.
Code Block |
---|
|
OnInit()
{
run=0;
}
OnEvent("MACRO","1","RUN")
{
run=1; flag=""; num=8;
for(i=1;i<str(num+1);i=str(i+1))
{
DoReact("CAM",i,"DISARM");
DoReact("CAM",i,"REC_STOP");
DoReact("CAM",i,"ARM");
flag=flag+"N";
if(i<num) {flag=flag+"|";}
}
}
OnEvent("CAM",N,"MD_START")
{
if(run)
{
nn=str((N*2)-1);
flag=strleft(flag,str(nn-1))+"Y"+strright(flag,str(((num*2)-1)-nn));
}
}
OnEvent("MACRO","2","RUN")
{
run=0; fin=0;
for(i=1;i<str(num+1);i=str(i+1))
{
tmp=extract_substr(flag,"|",str(i-1));
if(strequal(tmp,"Y")) {fin=str(fin+1);}
DoReact("CAM",i,"DISARM");
}
tmp="Всего:"+str(num)+" Сработало:"+str(fin);
rez=MessageBox("",tmp,0);
} |
При возникновении тревоги по камере 1 накладывать титры на видеоизображение с данной камеры. При окончании тревоги накладывать титры об окончании тревоги.
Code Block |
---|
|
OnEvent("CAM","1","MD_START")
{
DoReact("CAM","1","CLEAR_SUBTITLES","title_id<1>"); //удалить все титры с видеоизображения
DoReact("CAM","1","ADD_SUBTITLES","command<Камера 1 Тревога " + time + "\r>,page<BEGIN>,title_id<1>");
//параметр time позволяет включить в титры время регистрации события
}
OnEvent("CAM","1","MD_STOP")
{
DoReact("CAM","1","ADD_SUBTITLES","command<Камера 1 Конец тревоги " + time + "\r>,page<END>,title_id<1>");
} |
Примеры использования событий и реакций объекта Монитор:
...