Продолжаем рассказывать о доработках системы контроля доступа под нужды заказчика. О том, как мы реализовывали интеграцию СКУД PERCo и SAP на промышленном предприятии, можно прочитать здесь.
Сегодня речь пойдет о системе контроля доступа на объектах Москомспорта. Оборудование PERCo работает более чем на 30 объектах Департамента физической культуры и спорта Москвы. Среди них – спортивный комплекс “Измайлово”, школа олимпийского резерва “Москвич”, дворец борьбы имени Ивана Ярыгина, футбольный клуб "Строгино".
Входные группы оборудованы турникетами и картоприемниками PERCo. В общей сложности на объектах Москомспорта работают 94 турникета, 145 контроллеров, 480 считывателей и 138 пакетов программного обеспечения PERCo-Web.
Задача
На объектах Москомспорта доступ посетителей осуществляется по штрихкодам на абонементах и билетах с помощью собственной системы заказчика.
Необходимо было реализовать проверку идентификаторов посетителей (2D QR code) с помощью сервисов Москомспорт и контроллера доступа PERCo. Информация о проходах посетителей используется заказчиком для формирования статистических данных.
Реализация
Мы предложили следующий пример реализации данной задачи.
Пользователь проходит идентификацию по билету или абонементу.
Далее контроллер доступа PERCo отправляет сервису Москомспорт сообщение в формате:
{
“event” : “card”,
“card” : {
“number” : 0,
“direction” : 0,
“id” : “12345”
}
}
Сервер Москомспорта проверяет наличие данного идентификатора в списке сервиса и отправляет контроллеру соответствующую команду управления турникетом.
Если идентификатор в системе есть, в контроллер передается сообщение в формате:
{
"control" : "exdev",
"exdev" : {
"number" : 0,
"direction" : 0,
"action" : "open",
"open_type" : "",
"open_time" : 1000
}
}
Если идентификатор не был найден:
{
"control" : "access",
"access" : {
"number" : 0,
"direction" : 0
}
}
Далее, если проход разрешен, контроллер разблокирует турникет. При совершении прохода контроллер отправляет системе Москомспорта сообщение в формате:
{
“event” : “pass_personal”,
“pass_personal” : {
“number” : 0,
“direction” : 0,
“remove_card” : false,
“id” : “12345”
}
}
Если проход не был осуществлён, по истечении времени разблокировки турникета контроллер отправит сообщение об отказе от прохода:
{
“event” : “refusal_personal”,
“refusal_personal” : {
“number” : 0,
“direction” : 0,
“remove_card” : false,
“id” : “12345”
}
}
При получении от системы Москомспорт запрещающего сигнала контроллер оставит турникет заблокированным и отправит сообщение о запрете прохода:
{
"event" : "pass_ban_personal",
"pass_ban_personal" : {
"number" : 0,
"direction" : 0,
"command_source" : "server",
"remove_card" : false,
"id" : "12345"
}
}
Данная задача также может быть решена на базе других контроллеров PERCo, в том числе на базе контроллеров с собственной энергонезависимой памятью. В таком случае сервер билетной системы отправляет список идентификаторов контроллеру, который самостоятельно принимает решение о разрешении или запрете прохода при предъявлении идентификатора.
freeExec
Серьёзно, вся статья из набора json-ов?