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

1 ... 191 192 193 194 195 196 197 ... 364

Для изменения размера шрифта используйте сочетания клавиш CTRL и + для увеличения шрифта

Onlnit О


CTRL и - для уменьшения шрифта


16 . 1. 3 Рекомендуемый порядок написания программ

1. Постановка общей задачи.

2. Разбитие задачи на подзадачи.

3. Написание подзадач и их отладка.

4. Поиск и исправление ошибок

Постановка общей задачи

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

Разбитие задачи на подзадачи

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

Написание подзадач и их отладка

Наиболее сложным в написании скриптов является написание списка действий с возможным



использованием логических и циклических операций. По опыту эта часть программирования наиболее долго отлаживается. Зачастую генерация события, требующая обработки, является не очень удобной, тем более на реальном объекте, например срабатывание пожарного датчика или движение по камере, достаточно удаленной от места программирования - от сервера с Ядром системы. В этом случае рекомендуется на этапе отладки действий генерировать событие вручную, самое удобное - это запуск пустой макрокоманды. После отладки тела скрипта в событие вместо запуска пустой макрокоманды подставляется реальное событие. Кроме того можно проверить и наоборот - убедиться в правильности написания реального события не запуская списка действий можно вставив вместо списка действий - запуск пустой макрокоманды и посмотреть ее выполнение в отладочном окне.

Поиск и исправление ошибок

Встроенный синтаксический анализатор на этапе запуска программы проверяет правильность написания названий функций, но не проверяет правильность расстановки ключевых символов -запятых, точек с запятой, вложенности скобок. Поэтому ошибки, если они есть, будут проявляться только на этапе исполнения тела программы.

16 . 2 Описание синтаксиса

Скрипт состоит из набора процедур.

Все операторы выполняемые внутри процедур формируются в блоки {..}.

Если нужно вставить комментарий, то в начале строчки ставятся спецсимволы .

16 . 2 .1 Описание процедур

Существуют 3 стандартные процедуры, которые могут быть выполнены при соответствующего события:

возникновении

OnlnitO - Используется для инициализации переменных (задания первоначальных значений), которые будут в дальнейшем использоваться при выполнении скриптов. Выполняется до старта всех модулей системы. Рекомендуется использовать один вызов процедуры на все существующие скрипты.

Пример использования

OnInit()

flag=1; num=8;

на старте системы будут проинициализированы переменные }

OnTime (день недели (1-7), день-месяц-год, часы, минуты, секунды) - Запуск в определенный момент времени.

OnTime(W,D,X,Y,H,C,S)



W - день недели ( 0 - понедельник, 6 - воскресенье);

D - дата в формате число-месяц-год , 16 августа 2001 года это 16-08-01

X,Y - зарезервировано

H - час

C - минуты

S - секунды

В1ПОЛНЯЯ СРАВНЕНИЕ С ПАРАМЕТРАМИ ДАЛЕЕ УКАЗТВАЕТСЯ ДЕЙСТВИЕ }

Примеры использования

OnTime(W, 16-08-01 ,X,Y, 11 , 11 , 30 ) {

помещенный здесь код сработает 16 августа 2001 года в 11 часов 11 минут 30 секунд }

OnTime(W,D,X,Y, 11 , 11 , 30 ) {

помещенный здесь код сработает каждый день в 11 часов 11 минут 30 секунд }

OnTime(W, 16-08-01 ,X,Y,H,C,S) {

помещенный здесь код ,будет срабатывать 16 августа 2001 года

каждую секунду

OnTime(W, 16-08-01 ,X,Y, 11 , 11 ,S) {

помещенный здесь код ,будет срабатывать 16 августа 2001 года c 11 часов 11 минут по 11 часов 12 минут каждую секунду }

OnTime( 0 ,D,X,Y, 21 , 0 , 0 ) {



1 ... 191 192 193 194 195 196 197 ... 364