Конфигурационные файлы в системе Parking
Конфигурационные файлы
OSAPoliticsDefs.plist
Для настройки логики работы приложения в различных режимах («пропускать всех», «пропускать своих» и т.п.) необходимо корректно настроить конфигурационный файл - "..\resources2\user\OSAPoliticsDefs.plist". Схема такова – каждому из существующих в системе событий можно назначить соответствующую реакцию и сгруппировать такие события по сферам влияния (все, друзья, отдельно взятая группа).
Пример записи:
- "Группа1" = [
- 1 = [
- oper_sleep = [
- car_store=;
- ];
- "Группа1" = [
- car_let = [
- car_store=;
- gate_open = [
- ];
- car_let = [
- avmod_process = [
- relay = [
- gate_1 = [
- value = 1;
- time= 20;
- ];
- ];
- gate_1 = [
- ];
- relay = [
- avmod_process = [
- relay = [
- gate_2 = [
- value = 1;
- time= 200;
- ];
- ];
- gate_2 = [
- ];
- relay = [
- avmod_process = [
- ev_rec = [
- ];
- ev_rec = [
- ask_user_hide = ;
- ];
- ];
- ];
- friends = [
- 6 = [
- after_store_action = [
- ];
- after_store_action = [
- car_lost = [
- ev_rec = [
- ];
- ];
- park_action = [
- park_process=;
- db_exec = [
- ];
- ];
- db_exec = [
- park_process=;
- ]; //6
- park_action = [
- ];
- all = [
- default = [
- frame_saved = [
- db_exec = [
- ];
- ];
- db_exec = [
- frame_saved = [
- default = [
- all = [
- make_snapshot = [
- save_frame=;
- ];
- save_frame=;
- ];
- make_snapshot = [
Пояснение:
Сначала проверяется принадлежность к прописанным группам (работает их политика, затем к friends, затем к all).
Параметры записей файла OSAPoliticsDefs.plist
События и реакции
Возможные события:
- car_tries_in - машина пробует въехать (распознан номер, направление = «въезд»);
- car_tries_out - машина пробует выехать (распознан номер, направление = «выезд»);
- car_tries_unk - машина непонятно что пробует (распознан номер, направление = «не определено»);
- oper_sleep - оператор проспал машину (она приехала и уехала);
- car_let - машину пропустили (оператор нажал кнопку «пропустить» в алерте);
- car_no_let - машину не впустили (оператор закрыл алерт);
- car_tries_change_dir - машина пробует изменить направление (направление движения машины в кадре изменяется);
- car_lost_in - машина исчезла (выехала из кадра) в направлении «въезд»;
- car_lost_out - машина исчезла в направлении «выезд»;
- car_lost_unk - машина исчезла в направлении «не определено».
Возможные реакции:
- show_info - показать информацию о машине (алерт);
- hide_info - спрятать информацию машине (алерт);
- gate_open – отдать сигнал на управляющее устройство;
- car_store - сохранить машину (в базе событий);
- car_let - пропустить машину (на территорию, с занесением в статистику);
- ask_user - спросить пользователя что делать (алерт);
- ask_user_hide - спрятать окно с вопросом (убрать предыдущий алерт).
События и реакции. Дополнительные возможности
В последних версиях системы Parking (1.15.3 и выше) стали доступными расширенные события и реакции на события для описания в конфигурационных файлах:
Новые возможные события:
- after_store_action - произошла запись номера в список номеров в БД;
- frame_saved - сохранился кадр (фрейм) без номера;
- make_snapshot- сделан скриншот (кадр) с камеры;
- no_recognize - ничего не было распознано по команде распознать;
- car_manual_capt - пользователем была нажата кнопка "Определить";
- start_lpr - по-требованию было запущено распознавание;
- inspector_init- инициализация вьюпорта;
- car_confirm_dir- пользователем было выбрано направление движения;
- car_ask_dir- требуется алерт с выбором направления;
- park_action - машина пытается въхать/выехать с парковки.
- user_press_space или user_press_Escape - пользователь нажал клавиши пробел или Esc;
Новые возможные реакции:
- ask_test_allert_type - запрос типа алерта (для ввода вручную);
- park_process- обработать данные по парковке;
- db_exec - обработать данные по композитным (сборным) событиям;
- manual_edit - показать ручной ввод;
- ev_rec - запись архива по событию;
- start_recognize = [
- frame_count = 100;
- ]
- - запустить распознавание на указанное количество кадров либо бессрочно (в примере - на 100 кадров).
В качестве реакции на события возможно отправить запрос в БД. Для этого следует описать блок следующего формата:
- raw_db_query = [
- template = "select '%s' as test";
- type = "xml";
- result = "test";
- exec = [
- hello = [
- send_msg = [
- @type = 500;
- ];
- send_msg = [
- ];
- hello = [
- ];
- ];
- raw_db_query = [
В данной записи параметры:
- template содержит текст SQL-запроса в БД. Может содержать шаблон '%s', который обозначает номер ТС или информацию о номере в xml формате;
- type содержит информацию о формате, в котором будет вестись работа с номером. Если указано формат plate - номер ТС будет в формате utf-8, если будет указан формат xml - данные о номере могут содержать подробную информацию, например: канал распознавания, время, и т.д. и передаваться в формате xml-контейнера;
- result содержит указание колонки (колонок) таблицы, из которых требуется получать данные;
- exec - это раздел, который может содержать события БД в ответ на запрос (в данной записи это hello), а также реакции на эти события (в рассматриваемой записи это send_msg).
Пример правильной записи для вставки данных в БД:
raw_db_query = [ template = "insert into q values('%s');select 1 as test"; type = "xml"; result = "test"; exec = [ ]; ];
Возможно в качестве реакции на событие отправить информацию о событии в систему MainConsole. Для этого следует добавить запись следующего формата:
send_msg = [ @type = 102; ];
В данной записи в параметре type указывается код событий, которые могут быть следующими:
Код события | Событие |
---|---|
100 | Car in group %s |
101 | Car let |
102 | Plate add money |
104 | Gate action |
4 | Plate detected |
5 | Plate lost |
Другие параметры
- settings > timeout Сколько минут хранить историю, Влияет на параметр car_tries_change_dir. Нужно для определение кратковременного въезда/выезда и ошибочной детекции;
- all / friends Эти две ноды содержат правила "для всех" и для групп помеченных как "свои" соответственно;
- default /Номер канала. В этих нодах расписываются политики либо для всех каналов, либо для канала с указанным номером, нумерация с нуля.
acl.plist
acl.plist – конфигурационный файл, предназначенный для описания настроек удаленного доступа к Overseer Parking, отдающему видеопоток. В файле прописываются все разрешения и запреты для ip-адресов и подсетей. Работает политика «все запрещено по умолчанию», т.е. если нет совпадения в разрешениях, то не пускает. Запреты предназначены для указания исключений для сетей, перечисленных в разрешениях.
Пример файла:
- ACL = [
- allow = [
- work = "192.168.100.0/24";
- home = "192.168.73.0/24"; // Хост
- ];
- deny = [
- excl = "192.168.73.128";
- ];
- allow = [
- ];
- ACL = [
Так же следует отметить, что следующие записи считаются одинаковыми:
- host1 = "192.168.99.1/32";
- host2 = "192.168.99.2";
Configuration files in Parking system Конфигурационные файлы в системе Parking Arcivos de configuración del Parking sistem