Для корректной работы необходимо убедиться в том, что в папке Работа со сканером паспортов Regula осуществляется по websocket. Подключение производится по адресу ws://192.168.250.91:5680/ scan - запуск сканирования на устройстве. Если устройство исправно и подключено, то метод последовательно возвращает следующие статусы: где У возвращаемых полей могут быть 2 вида постфикса: _VISUAL - это поля, которые были распознаны в визуальной зоне документа _MRZ - это поля, которые были распознаны в машиночитаемой зоне документа killThreads - принудительное завершение потоков распознавания. Необходим для того, чтобы завершить зависшие потоки распознавания. Реализован для того, чтобы восстановить работу софта после "отпадывания сканера по питанию". Такое происходит периодически, проявляется долгим сканированием и постоянно включенными диодами освещения зоны документа. В программной реализации такое поведение легко отследить по статусам сканирования. Если статус не меняется в течение ~3 секунд, то необходимо перезагрузить сканер по питанию. После успешного выполнения будет получено сообщение следующего вида: deleteScans - удаляет полученные сканы из файловой системы (потребуется для 152 ФЗ). После успешного выполнения вернет: powerReset - ребут по питанию (через плату USB). На текущий момент возможно 2 варианта ребута. Через отдельную плату с контроллером, которая подключается в материнскую плату с Windows, а также с помощью выключения/включения питания на виндовом хабе мейна. При успешном выполнении вернет последовательно: Протестировать работу подключенного сканера можно через плагин для браузера Chrome (Websocket Test Client) или с помощью консольного клиента wsdump.py 1. Загрузить wsdump.py в домашнюю папку пользователя promobot на роботе 2. Подключиться к роботу по ssh 3. Выполнить sudo pip3 install websocket-client 4. Выполнить python3 wsdump.py ws://192.168.250.91:5680 5. Отправить команду "scan" 6. Успешное выполнение команды при сканировании без документа на сканере показано ниже на скриншоте sudo pip3 4install websocket-clientsudo pip3 install websocket-client Расширенное описание возвращаемых полей при сканировании различных типов документов доступно в приложенном файле (стр. 114)./home/promobot/
существует папка scans.
Если она отсутствует, то необходимо ее создать под пользователем promobot
.
При корректно подключенном устройстве после подключения по ws придет сообщение вида:{status = -51, description = "Document not detected"}
Порядок сканирования и распознавания документов
{status = 1, description = "Scanner successfully enabled"}
{status = 2, description = "Starting scanning"}
{status = 3, description = "Scanning finish"}
{status = 4, description = "Trustability checking started"}
{status = 5, description = "Trustability checking finish"}
При завершении всех этапов сканирования и распознавания документа, придет сообщение вида:{
"Scan_White":"/home/promobot/scans/Scan_1.jpg",
"Scan_Photo":"/home/promobot/scans/Scan_Photo.jpg",
"ft_Issuing_State_Code_VISUAL":"RUS",
"ft_Document_Number_VISUAL":"5555555555",
"ft_Date_of_Birth_VISUAL":"01.01.1990",
"ft_Place_of_Birth(1049)_VISUAL":"ГОР. ПЕРМЬ",
"ft_Place_of_Birth_VISUAL":"GOR.PERM",
"ft_Surname(1049)_VISUAL":"ЛАЛЕТИН",
"ft_Surname_VISUAL":"LALETIN",
"ft_Given_Names(1049)_VISUAL":"ДМИТРИЙ",
"ft_Given_Names_VISUAL":"DMITRII",
"ft_Nationality_VISUAL":"Russian Federation",
"ft_Sex(1049)_VISUAL":"МУЖ",
"ft_Sex_VISUAL":"M",
"ft_Surname_And_Given_Names(1049)_VISUAL":"ЛАЛЕТИН ДМИТРИЙ АНДРЕЕВИЧ",
"ft_Surname_And_Given_Names_VISUAL":"LALETIN DMITRII ANDREEVICH",
"ft_Nationality_Code_VISUAL":"RUS",
"ft_Issuing_State_Name_VISUAL":"Russian Federation",
"ft_Document_Series_VISUAL":"5555",
"ft_Fathers_Name(1049)_VISUAL":"АНДРЕЕВИЧ",
"ft_Fathers_Name_VISUAL":"ANDREEVICH",
"ft_Authority_RUS(1049)_VISUAL":"Пермский край",
"ft_Booklet_Number_VISUAL":"555555",
"ft_Age_VISUAL":"26",
"status":100,
"status_description":"finish",
"Doc_Name":"Russian Federation - Passport (2006)",
"Processing_Time":"03.962",
"UV_Luminescence":"ch_Check_Error"
}
"Scan_White" - путь до изображения с белым сканом
,
"Scan_Photo" - путь до изображения с фотографией владельца паспорта
,
"ft_Issuing_State_Code_VISUAL" - страна, в которой произведена выдача паспорта
,
"ft_Document_Number_VISUAL" - номер документа
,
"ft_Date_of_Birth_VISUAL" - дата рождения
,
"ft_Place_of_Birth(1049)_VISUAL" - место рождения
,
"ft_Place_of_Birth_VISUAL" - место рождения
,
"ft_Surname(1049)_VISUAL" - фамилия
,
"ft_Surname_VISUAL" - фамилия
,
"ft_Given_Names(1049)_VISUAL" - имя
,
"ft_Given_Names_VISUAL" - имя
,
"ft_Nationality_VISUAL" - национальность
,
"ft_Sex(1049)_VISUAL" - пол
,
"ft_Sex_VISUAL" - пол
,
"ft_Surname_And_Given_Names(1049)_VISUAL" - ФИО
,
"ft_Surname_And_Given_Names_VISUAL" - ФИО
,
"ft_Nationality_Code_VISUAL" - код страны
,
"ft_Issuing_State_Name_VISUAL" - название страны, выдавшей документ
,
"ft_Document_Series_VISUAL" - серия документа
,
"ft_Fathers_Name(1049)_VISUAL" - отчество
,
"ft_Fathers_Name_VISUAL" - отчество
,
"ft_Authority_RUS(1049)_VISUAL" - область/край
,
"ft_Booklet_Number_VISUAL" - доподлинно неизвестно
,
"ft_Age_VISUAL"
- возраст
,
"status"
- статус в результате сканирования и распознавания (100 - успешно, -100 - не успешно)
,
"status_description" - описание статуса
,
"Doc_Name" - тип документа
,
"Processing_Time" - время, затраченное на сканирование и распознавание (в секундах)
,
"UV_Luminescence" - статус проверки подлинности UV
{status = 311, description = "Zombie thread finished"}
{status = 303, description = "Files deleted"}
{"status":614,"description":"Power disabled -> 00 00 55 \r\n<- 01 A0 A0 \r\n"}
{"status":615,"description":"Power enabled -> 01 00 55 \r\n<- 01 A0 A0 \r\n"}
Описание статусов
Статус в JSON Описание в JSON Сообщение Описание 1 Scanner successfully enabled {status = 1, description = "Scanner successfully enabled"} Успешная инициализация сканера -1 Scanner not connected {status = -1, description = "Scanner not connected"} Сканер не подключен 311 Zombie thread finished {status = 311, description = "Zombie thread finished"} Зависшие потоки успешно уничтожены (возвращается на killThreads) -71 Device is inaccessible {status = -71, description = "Device is inaccessible"} Устройство недоступно. Возвращает в случае, когда сканирование производится после отвала по питанию. 303 Files deleted {status = 303, description = "Files deleted"} Файлы удалены 51 Document detected {status = 51, description = "Document detected"} Документ находится на сканере -51 Document not detected {status = -51, description = "Document not detected"} Документ на сканере отсутствует 2 Starting scanning {status = 2, description = "Starting scanning"} Начало сканирования 3 Scanning finish {status = 3, description = "Scanning finish"} Сканирование завершено 4 Trustability checking started {status = 4, description = "Trustability checking started"} Начало проверки подлинности 5 Trustability checking finish {status = 5, description = "Trustability checking finish"} Проверка подлинности завершена 100 finish Будет содержаться в общем финальном сообщении (см. порядок сканирования и распознавания документа) Сканирование и распознавание документа успешно завершено -100 Can't recognize fields Будет содержаться в общем финальном сообщении Не удалось распознать документ и поля 614 Power disabled -> 00 00 55 \r\n<- 01 A0 A0 \r\n
{"status":614,"description":"Power disabled -> 00 00 55 \r\n<- 01 A0 A0 \r\n"}
Питание выключено 615 Power enabled -> 01 00 55 \r\n<- 01 A0 A0 \r\n
{"status":615,"description":"Power enabled -> 01 00 55 \r\n<- 01 A0 A0 \r\n"}
Питание включено Проверка работы сканера на роботе
Порядок проверки через wsdump.py
Сканер может быть подключен тремя способами:
1. Реле
2. Отдельная USB плата
3. Win хаб мейна
Для каждого типа подключения используется свой JS-модуль сканирования
Обзор
Инструменты контента
Добавить комментарий