Конфигурационные файлы в системе Parking

Материал из VIT company
Перейти к навигации Перейти к поиску

Конфигурационные файлы

OSAPoliticsDefs.plist

Для настройки логики работы приложения в различных режимах («пропускать всех», «пропускать своих» и т.п.) необходимо корректно настроить конфигурационный файл - "..\resources2\user\OSAPoliticsDefs.plist". Схема такова – каждому из существующих в системе событий можно назначить соответствующую реакцию и сгруппировать такие события по сферам влияния (все, друзья, отдельно взятая группа).


Пример записи:


"Группа1" = [
1 = [
oper_sleep = [
car_store=;
];


car_let = [
car_store=;
gate_open = [
];


avmod_process = [
relay = [
gate_1 = [
value = 1;
time= 20;
];
];
];
avmod_process = [
relay = [
gate_2 = [
value = 1;
time= 200;
];
];
];


ev_rec = [
];
ask_user_hide = ;
];
];
];


friends = [
6 = [
after_store_action = [
];


car_lost = [
ev_rec = [
];
];


park_action = [
park_process=;
db_exec = [
];
];
]; //6
];


all = [
default = [
frame_saved = [
db_exec = [
];
];


make_snapshot = [
save_frame=;
];
];


Пояснение:


Сначала проверяется принадлежность к прописанным группам (работает их политика, затем к 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;
];
];
];
];


В данной записи параметры:

  • 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";
];
];


Так же следует отметить, что следующие записи считаются одинаковыми:

host1 = "192.168.99.1/32";
host2 = "192.168.99.2";

Configuration files in Parking system Конфигурационные файлы в системе Parking Arcivos de configuración del Parking sistem