8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

1 ... 200 201 202 203 204 205 206 ... 364

останавливается только если она равна нулю, т.е. нет ни аккустопуска, ни движения. Реализация:

OnInit()

flag=0;

OnEvent( MACRO , 1 , RUN )

DoReact( PERSON , 214 , SETUP , facility code<111> );

OnEvent( CAM , 3 , MD START )

flag=str(flag+1);

DoReact( OLXA LINE , 1 , RECORD START );

OnEvent( OLXA LINE , 1 , ACCU START )

flag=str(flag+1);

DoReact( OLXA LINE , 1 , RECORD START );

OnEvent( OLXA LINE , 1 , ACCU STOP )

flag=str(flag-1);

if (!(flag)) {DoReact( OLXA LINE , 1 , RECORD STOP );}

OnEvent( CAM , 3 , MD STOP )

flag=str(flag-1);



if (!(flag)) {DoReact( OLXA LINE , 1 , RECORD STOP );}

Пример 12

Есть определенное количество камер (num).

Задача. Проверить работу детектора движения по всем камерам (можно использовать для проверки работоспособности датчиков охраны).

Для решения задачи используется эмуляция линейного символьного массива (строка). Т.е. заполняется массив символов (у нас это символ N ). Далее при сработке детектора движения по камере - меняется соответсвующий (идентификатору камеры) элемент массива (меняется на Y ). Таким образом на выходе у нас символьный массив из N (камера не сработала) и Y (камера сработала). Подсчитывается количество сработок и выдается сообщение об общем количестве камер и количество камер у которых сработал детектор. Старт проверки по Макрокоманде 1. Остановка по макрокоманде 2.

Реализация:

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);

Пример 13

Осуществить патрулирование нескольких зон видимости с помощью пресетов поворотной камеры, с возможностью включения детектора движения на определенных областях этих зон.

Камера 1. 5 зон детектора, 5 предустановок (пресетов).

Два этих параметра задаются переменной n.

Макрокоманда 1 - старт алгоритма.

Макрокоманда 2 - остановка алгоритма.

flag-внутренняя переменная.

При старте алгоритма камера становится в 1-й пресет и ставит на охрану 1-ю зону детектора. Между этими командами задержка 200 милисекунд, чтобы камера успела встать в пресет. Далее через 5 секунд 1-я зона снимается с охраны и цикл начинается заново но уже с второй зоной и 2-м пресетом. И так далее пока не переберутся все n зон и пресетов. После начинается заново с 1-го. Алгоритм останавливается если переменная flag обнуляется (с помощью макрокоманды 2).

OnEvent( MACRO , 1 , RUN )

flag=1; n=5;

[for(i=1;flag;i=str(i+1))



1 ... 200 201 202 203 204 205 206 ... 364