ГОСТ Р ИСО/МЭК 19784-4-2014
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Информационные технологии
БИОМЕТРИЯ
Биометрический программный интерфейс
Часть 4
Интерфейс поставщика функции биометрического датчика
Information technology. Biometrics. Biometric application programming interface. Part 4. Biometric sensor function provider interface
ОКС 35.040
Дата введения 2016-01-01
Предисловие
1 ПОДГОТОВЛЕН Научно-исследовательским и испытательным центром биометрической техники Московского государственного технического университета имени Н.Э.Баумана (НИИЦ БТ МГТУ им.Н.Э.Баумана) на основе собственного аутентичного перевода на русский язык международного стандарта, указанного в пункте 4
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 098 "Биометрия и биомониторинг"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 11 ноября 2014 г. N 1570-ст
4 Настоящий стандарт идентичен международному стандарту ИСО/МЭК 19784-4:2011* "Информационные технологии. Биометрический программный интерфейс. Часть 4. Интерфейс поставщика функции биометрического датчика" (ISO/IEC 19784-4:2011 "Information technology - Biometric application programming interface - Part 4: Biometric sensor function provider interface").
________________
* Доступ к международным и зарубежным документам, упомянутым здесь и далее по тексту, можно получить, перейдя по ссылке на сайт . - .
Наименование настоящего стандарта изменено относительно наименования указанного международного стандарта для приведения в соответствие с ГОСТ Р 1.5-2012 (пункт 3.5).
При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты, сведения о которых приведены в дополнительном приложении ДА
5 ВВЕДЕН ВПЕРВЫЕ
6 Следует обратить внимание на то, что некоторые элементы настоящего стандарта могут быть объектами получения патентных прав. Международная организация по стандартизации (ИСО) и Международная электротехническая комиссия (МЭК) не несут ответственности за установление подлинности каких-либо или всех таких патентных прав
Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующие информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
Введение
Введение
Настоящий стандарт определяет интерфейс низкого уровня, который позволяет модулю поставщика биометрической услуги (ПБУ) (ИСО/МЭК 19784-1) взаимодействовать с биометрическими датчиками от различных изготовителей [модуль поставщика функции биометрического датчика (ПФБД)], используя только спецификацию стандартизированного интерфейса. Биометрический датчик - физическое устройство с программным обеспечением. Интерфейс позволяет биометрическому датчику взаимодействовать с любым разработанным ПБУ, чтобы обращаться с технологией, поддерживаемой данным датчиком. Это позволяет модулю ПБУ быть независимым от деталей фактического датчика, но при этом оставаться зависимым от биометрической модальности, которую поддерживает датчик (палец, лицо, вена, и т.д.).
Биометрические датчики различаются по принципам работы. Форматы данных также сильно различаются в зависимости от биометрической особенности и типа датчика. В целях удовлетворения различных требований для основного поставщика функции в обязательные приложения настоящего стандарта включены определенные функции и инфраструктуры данных для типовых классов устройства датчика или биометрических модальностей. Целью настоящего стандарта является добавление дополнительных нормативных требований для случаев, когда существующие приложения не удовлетворяют требованиям типового класса датчика.
В приложении A представлены определения типов и вызовы функции, разработанных в целях поддерживания биометрических датчиков, сконструированных для возврата изображений (или для неподвижных изображений, или последовательности изображений). В приложении B представлены определения типов и вызовы функции, разработанных в целях поддерживания биометрических датчиков, сконструированных для возврата последовательности движений пера.
Главной функцией модуля ПБУ, выполняющего сбор биометрических данных, является создание полной записи биометрической информации (ЗБИ) для возврата к биометрическому приложению (как правило, посредством инфраструктуры BioAPI).
Главной функцией ПФБД является сбор и возврат данных в идентифицированном формате или как единого массива данных (используя функцию BioSFPI_DataTransfer), или как ряда пакетов (используя функцию BioSFPI_GetPackets), содержащих записанную информацию, либо посредством потокового интерфейса (приложение C).
ПБУ ответственен за перевод таких данных в биометрический блок данных (ББД) в пределах ЗБИ для возврата посредством интерфейса поставщика услуги (ИПУ).
Дополнительные функции имеют отношение к контролю биометрического датчика и параметров его операций.
1 Область применения
Настоящий стандарт определяет интерфейс биометрического датчика для поставщика биометрической услуги (ПБУ), который определен в ИСО/МЭК 19784-1. Интерфейс осуществляет поддержку ПБУ, который настроен на предоставление функций интерфейса поставщика услуги (ИПУ) BioAPI, и в то же время освобождает ПБУ от деятельности по управлению оборудованием. В настоящем стандарте рассматривается интерфейс, который может быть использован всеми типами биометрических датчиков, включая датчики потоковой передачи изображений (инфракрасный, лица, радужной оболочки глаза, пальца и т.д.), датчики потоковой передачи голоса и датчики подписи (цифровые планшеты, применяемые для сбора динамических данных подписи).
В настоящем стандарте не рассматривается определение требований безопасности и конфиденциальности при сборе и передаче биометрических данных через интерфейс поставщика функции биометрического датчика (ИПФБД).
2 Соответствие
ПФБД должен поддерживать все функции, указанные в разделе 8 и приложениях A и B настоящего стандарта. Для некоторых функций ошибка BioAPIERR_FUNCTION_NOT_SUPPORTED, которая возвращается при вызове функции, является допустимой. Остальные функции должны быть преобразованы согласно описанию (в случае если возвращается другая ошибка).
3 Нормативные ссылки
В настоящем стандарте использованы нормативные ссылки на следующие стандарты*, которые необходимо учитывать при использовании настоящего стандарта (в случае ссылок на документы, у которых указана дата утверждения, необходимо пользоваться только указанной редакцией, в случае, когда дата утверждения не приведена - последней редакцией ссылочных документов, включая любые поправки и изменения к ним):
_______________
* Таблицу соответствия национальных стандартов международным см. по ссылке. - .
ИСО/МЭК 19784-1, Информационные технологии. Биометрический прикладной программный интерфейс. Часть 1. Спецификация биометрического программного интерфейса (ISO/IEC 19784-1, Information technology - Biometric application programming interface - Part 1: BioAPI specification)
ИСО/МЭК 19794-7, Информационные технологии. Форматы обмена биометрическими данными. Часть 7. Данные динамики подписи (ISO/IEC 19794-7, Information technology - Biometric data interchange formats - Part 7: Signature/sign time series data)
4 Термины и определения
В настоящем стандарте применены термины и определения, установленные в ИСО/МЭК 19784-1, а также следующие термины с соответствующими определениями.
Примечание - Названия функций и элементов данных не включены в данный раздел, а их определения приведены в тексте настоящего стандарта;
4.1 поставщик функции биометрического датчика; ПФБД (Biometric Sensor Function Provider; BSFP): Компонент BioAPI, который соединен с ПБУ посредством его интерфейса, в целях предоставления управления информацией от биометрического датчика.
Примечание - В качестве биометрического датчика может выступать камера, биометрический сканер отпечатков пальцев, биометрический сканер радужной оболочки глаза, биометрический сканер лица, либо биометрический сканер подписи, давления или звука, либо какой-либо другой тип биометрического датчика;
4.2 интерфейс поставщика функции биометрического датчика; ИПФБД (Biometric Sensor Function Provider Interface; BSFPI): Интерфейс ПБУ к ПФБД, который поддерживает функции, необходимые для предоставления биометрических данных и управления самим ПФБД и относящимися к нему устройствам.
4.3 пакет (packet): Фрагмент ББД, проходящий через ИПФБД (BSFPI)
________________
4.4 потоковые данные (streaming data): Данные, проходящие через интерфейс от источника, который непрерывно функционирует.
5 Обозначения и сокращения, определения структур данных и коды ошибок
5.1 Обозначения и сокращения
ПИП (API) | - программный интерфейс приложений (Application Programming Interface); |
ББД (BDB) | - блок биометрических данных (Biometric Data Block); |
ПФБ (BFP) | - поставщик функции BioAPI (BioAPI Function Provider); |
ПБУ (BSP) | - поставщик биометрической услуги (Biometric Service Provider); |
ИПФБД (BSFPI, BioSFPI) | - интерфейс поставщика функции биометрического датчика (Biometric Sensor Function Provider Interface); |
ИПФ (FPI) | - интерфейс поставщика функции (Function Provider Interface); |
ИД (ID) | - идентичность/идентификация/идентификатор (Identity/Identification/Identifier); |
ИПУ (SPI) | - интерфейс поставщика услуги (Service Provider Interface); |
sRGB | - стандарт красный зеленый голубой (Standard Red Green Blue) (см. ITU-R BT.709-5); |
УУИД (UUID) | - универсальный уникальный идентификатор (Universally Unique Identifier). |
5.2 Определения структур данных и коды ошибок
Определения структур данных и коды ошибок, примененные в настоящем стандарте, определены в ИСО/МЭК 19784-1.
6 Архитектура интерфейса
6.1 ИСО/МЭК 19784-1:2006 определяет интерфейс верхнего уровня инфраструктуры BioAPI, который используется биометрическим приложением для взаимодействия с ПБУ, либо с биометрическим датчиком напрямую, либо через ПБУ (см. рисунок 1 и рисунок 2 в ИСО/МЭК 19784-1:2006).
6.2 ИПФБД содержит два типа функций:
6.2.1 Общие функции управления ПФБ, которые вызывают ПБУ для управления ПФБ и соотносящиеся с ним модули BioAPI. Такие функции напрямую не связаны с функциями ИПУ.
- функция BioSFPI_BSFPLoad (функция загрузки ПФБД (см. 7 в ИСО/МЭК 19784-1:2006));
- функция BioSFPI_UnitAttach (функция подключения модуля, вызываемая в контексте BioAPI_BSPAttach и BioSPI_BSPAttach (см. 8 и 9 в ИСО/МЭК 19784-1:2006));
- функция BioSFPI_UnitDetach (функция отключения модуля, вызываемая в контексте BioAPI_BSPDetach и BioSPI_BSPDetach (см. 8 и 9 в ИСО/МЭК 19784-1:2006));
- функция BioSFPI_QueryUnits (функция запроса модулей, напрямую связана с функцией ИПУ BioSPI_QueryUnits, которая связана с функцией ПИП BioAPI_QueryUnits (см. 8 и 9 в ИСО/МЭК 19784-1:2006));
- функция BioSFPI_Free (функция освобождения памяти, отношение к соответствующему вызову ПИП зависит от поведения ПБУ - в случае, когда ПБУ копирует данные, для которых ПФБ выделил память, он может незамедлительно отправить BioSFPI_Free в ПФБ, в противном случае, ПФБ вызовет указанную функцию, когда ему самому необходимо будет освободить память для этих данных).
6.2.2 Функции управления модулем, которые вызываются ПБУ для прямого управления модулями BioAPI. Такие функции напрямую связаны с функциями ИПУ.
- функция BioSFPI_ControlUnit (функция контроля модуля, напрямую связана с функцией ИПУ BioSPI_ControlUnit, которая связана с функцией ПИП BioAPI_ControlUnit (см. 8 и 9 в ИСО/МЭК 19784-1:2006));
- функция BioSFPI_Cancel (функция отмены, может быть вызвана при соответствующих вызовах ИПУ либо приложений, но также она может быть вызвана и при отсутствии соответствующего запроса от инфраструктуры BioAPI либо приложения (см. 8 и 9 из ИСО/МЭК 19784-1:2006));
- функция BioSFPI_SetPowerMode (функция выбора режима питания, напрямую связана с функцией ИПУ BioSPI_SetPowerMode, которая связана с функцией ПИП BioAPI_SetPowerMode (см. 8 и 9 в ИСО/МЭК 19784-1:2006));
- функция BioSFPI_SetGUICallbacks (функция обратного вызова ГИП, напрямую связана с функцией ИПУ BioSPI_SetGUICallbacks, которая связана с функцией ПИП BioAPI_SetGUICallbacks (см. 8 и 9 в ИСО/МЭК 19784-1:2006));
- функция BioSFPI_SetIndicatorStatus (функция устанавливающая состояние индикатора, напрямую связана с функцией ИПУ BioSPI_SetIndicatorStatus, которая связана с функцией ПИП BioAPI_SetIndicatorStatus (см. 8 и 9 в ИСО/МЭК 19784-1:2006));
- функция BioSFPI_GetIndicatorStatus (функция получения состояния индикаторы, напрямую связана с функцией ИПУ BioSPI_GetIndicatorStatus, которая связана с функцией ПИП BioAPI_GetIndicatorStatus (см. 8 и 9 в ИСО/МЭК 19784-1:2006));
- функция BioSFPI_CalibrateSensor (функция калибровки датчика, напрямую связана с функцией ИПУ BioSPI_CalibrateSensor, которая связана с функцией ПИП BioAPI_CalibrateSensor (см. 8 и 9 в ИСО/ МЭК 19784-1:2006).
Следующие функции имеют высокую значимость для интерфейса между ПБУ и ПФУ, но они напрямую не соответствуют какой-либо функции через ИПУ между ПБУ и инфраструктурой (либо приложением для бесструктурных операций):
- функция BioSFPI_QueryFormatInfo (функция запроса информации о формате, не связана с ИПУ);
- функция BioSFPI_ActivateSensor (функция активации датчика, не связана с ИПУ);
- функция BioSFPI_GetPackets (функция получения пакетов, не связана с ИПУ);
- функция BioSFPI_DataTransfer (функция передачи данных, не связана с ИПУ);
- функция BioSFPI_SubscribeToGUIEvents (функция, подписывающая на события ГИП, не связана с ИПУ);
- Функция BioSFPI_UnsubscribeFromGUIEvents (функция, отписывающая от событий ГИП, не связана с ИПУ).
7 Выбор и загрузка ПФБ и модулей BioAPI_Units
7.1 Получение информации о ПФБ и модулях BioAPI_Units
Реестр компонентов содержит информацию о инфраструктуре BioAPI, ПБУ и ПФБ (см. 6.3 в ИСО/МЭК 19784-1:2006).
Информация о ПФБ содержится в инфраструктуре под названием BioAPI_BFP_SCHEMA (см. 7.3 в ИСО/МЭК 19784-1:2006).
BioAPI_BFP_SCHEMA содержит элементы данных BFPPropertyID и BFPProperty. Элемент данных BFPPropertyID является УУИД, определяющий тип инфраструктуры данных для BFPProperty.
Каждый ПФБ, который соответствует требованиям ИСО/МЭК 19784-1 и настоящего стандарта, должен предоставлять стандартизированные элементы данных соответствующих BFPPropertyID и BFPPropertySchema. Два элемента данных BSFPPropertyIDs и два связанных элемента данных BSFPPropertySchemas определены в приложениях A и B. Приложение A определяет элемент данных BSFPPropertySchema, применимый для модулей регистрации изображений биометрических датчиков, а приложение B - для модулей биометрического датчика подписи. Последние могут быть использованы в вызовах функций (ИСО/МЭК 19784-1) в качестве элементов данных BFPPropertyIDs и BFPPropertySchemas.
Информация, представленная в элементе данных BFPPropertySchema, сохраняется при установке ПФБ (см. 6.4 в ИСО/МЭК 19784-1:2006) в реестре компонентов.
Приложение может получить указанную информацию посредством вызова функций BioAPI_EnumBFPs и BioAPI_QueryBFPs (см. 8.1.10 и 8.1.11 в ИСО/МЭК 19784-1:2006).
ПБУ может получить указанную информацию при помощи механизма обратной связи BioSPI_ BFP_ENUMERATION_HANDLER (см. 9.2.2 в ИСО/МЭК 19784-1:2006).
Приложение может извлечь информацию обо всех модулях BioAPI_Units, которые поддерживаются определенным ПБУ, посредством вызова функции BioAPI_QueryUnits (см. 8.1.9 в ИСО/МЭК 19784-1:2006). Данная функция выполняется даже в том случае, если сессия присоединения еще не установлена.
ПБУ может просматривать реестр компонентов по отношению ко всем установленным ПФБ при помощи механизма обратной связи BioSPI_BFP_ENUMERATION_HANDLER. ПБУ анализирует элемент данных BFPPropertySchemas и определяет ПФБ, для которых он может осуществить поддержку.
Примечание - Критерии, для принятия подобного решения, не рассматриваются в настоящем стандарте.
Во время вызова функции BioSPI_QueryUnits ПБУ может загрузить поддерживаемые ПФБ. В ответ на вызов функции BioSFPI_QueryUnits к ПБУ, загруженный ПФБ автоматически определяет поддерживаемые модули BioAPI_Units и сообщает о поддерживаемых модулях BioAPI_UNIT_SCHEMAs.
ПБУ может создать список всех элементов данных BFPUuids и UnitIDs поддерживаемых устройств для каждого ПФБ. Дополнительная информация может находиться в параметре UnitManagerUuid модуля BioAPI_UNIT_SCHEMA.
7.2 Загрузка ПФБ
7.2.1 Загрузка ПФБ в случае присоединения к неопределенному модулю BioAPI_Unit
В настоящем пункте описано, каким образом ПФБ загружается в случае, если приложение не выбирает определенный модуль BioAPI_Unit в вызове функции BioAPI_Attach (в случае, если приложение выбирает определенный модуль BioAPI_Unit, см. 7.2.2).
В данном случае приложение вызывает функцию BioAPI_BSPAttach со значением BioAPI_DONT_CARE в определенном элементе параметра UnitList.
Затем ПФБ производит действия, описанные в 7.1, при помощи механизма обратной связи BioSPI_BFP_ENUMERATION_HANDLER, с последующим вызовом функции BioSFPI_QueryUnits. Таким образом, ПБУ получает список всех поддерживаемых модулей и поддерживаемых ими ПФБ. ПБУ выбирает один из модулей BioAPI_Units, а затем загружает соответствующий ПФБД и завершает операцию вызовом функции BioSFPI_BSFPLoad с последующим вызовом функции BioSFPI_BSFPAttach.
Примечание - Критерии, используемые для определения одного из поддерживаемых модулей Bio-API_Units, не рассматриваются в настоящем стандарте.
7.2.2 Загрузка ПФБ при присоединении к определенному модулю BioAPI_Unit
После вызова функции BioAPI_BSPLoad инфраструктура должна загрузить ПБУ (если поддерживается) и запустить функцию BioSPI_BSPLoad.
В свою очередь, приложение вызывает функцию BioAPI_QueryUnits для определения поддерживаемых таким ПБУ модулей и затем вызывает функцию BioAPI_Attach, задавая определенный модуль, который оно намерено использовать. Приложение получает элемент данных UnitSchemaArray от функции BioAPI_QueryUnits, который позволяет просмотреть информацию о модуле BioAPI_Unit. Приложение выбирает параметр UnitId, с которым ему необходимо установить связь, и вызывает функцию BioAPI_BSPAttach. Одновременно ПБУ может принять решение загрузить соответствующий ПФБ, исходя из списка, построенного как описано в 7.1, либо посредством анализа параметра UnitManagerUuid из модуля BioAPI_UNIT_SCHEMA.
Если ПБУ в состоянии поддержать хотя бы один ПФБД, который поддерживает запрашиваемый модуль, то такой ПБУ продолжает действовать согласно 7.1. Если ПБУ не сможет поддержать ПФБД, то он возвращает ошибку. При наличии множественного выбора ПФБД для выбранного модуля, ПБУ сделает выбор (критерии выбора не стандартизированы).
8 Определение ИПФБД
8.1 Инфраструктура данных ИПФБД
8.1.1 Коды контроля
Функция BioSFPI_ControlUnit использует 32-битные значения в качестве кодов для индикации определенной к выполнению операции.
В целях предотвращения конфликтов между стандартизированными и определенными изготовителем кодами, контрольные коды структурированы.
Верхние 16 битов используются для структурирования цели кодов контроля. Нижние 16 битов используются для определения кодов контроля для каждой категории.
Следующие три категории стандартизированы:
#define BioSFPI_BFPControlCode (0x8000)
#define BioSFPI_BioAPIUnitControlCode (0x4000)
#define BioSFPI_VendorSpecificControlCode (0x1000)
Все остальные значения категорий зарезервированы для последующего использования.
8.1.2 BioSFPI_EventHandler
В данном пункте определен интерфейс обработчика событий для получения асинхронных уведомлений о событиях типа BioAPI_EVENT из модуля BioAPI. Пример событий включает установку либо удаление модуля BioAPI (например, установка или извлечение биометрического датчика).
Данный обработчик событий направляется в ПФБД во время выполнения функции BioSFPI_BFPLoad. Это единственный обработчик событий, в котором все модули BioAPI, управляемые таким ПФБД, должны использоваться для уведомления ПБУ о типах событий, происходящих в загруженном ПФБД:
typedef BioAPI_RETURN (BioAPI *BioSFPI_EventHandler)
(const BioAPI_UUID *BSFPUuid,
BioAPI_UNIT_ID UnitID,
BioAPI_UNIT_SCHEMA *UnitSchema,
BioAPI_ EVENT EventType);
BSFPUuid (входной) - УУИД ПФБД, который инициирует событие.
UnitID (входной) - ИД модуля BioAPI (биометрического датчика), связанного с событием.
UnitSchema (входной) - указатель на схему модуля BioAPI, связанного с данным событием.
EventType (входной) - тип произошедшего события BioAPI_ EVENT.
8.1.3 Параметр BioSFPI_GUI_RESPONSE
Параметр определяющий список возможных действий, которые будут выполняться ПФБ, после того как функция обратного вызова уведомления о событии выполнения ГИП возвратила управление ПФБ. Перед возвращением из функции обратного вызова ПБУ присваивает значение данного типа выходному параметру функции обратного вызова (параметр Response).
typedef uint8_t BioSFPI_GUI_RESPONSE;
#define BioSFPI_GUI_RESPONSE_PROGRESS_CONTINUE (1)
#define BioSFPI_GUI_RESPONSE_PROGRESS_ABORT (2)
Значение BioSFPI_GUI_RESPONSE_PROGRESS_CONTINUE может быть возвращено только в ответ на обратный вызов уведомления о событии выполнения ГИП. Это является показателем того, что ПФБ должен продолжить выполнение процесса сбора биометрических данных.
Значение BioSFPI_GUI_RESPONSE_PROGRESS_ABORT может быть возвращено только в ответ на обратный вызов уведомления о событии выполнения ГИП. Это является показателем того, что ПФБ должен прекратить выполнение процесса сбора биометрических данных и выдать код ошибки. После такого ответа от ПБУ ожидается возвращение ошибки на первоначальный вызов от ПФБ.
Если возвращаемое ПБУ значение ответа отличается от допустимых значений, то ПФБ должен прекратить выполнение процесса сбора биометрических данных и вызвать первоначальную функцию вызова для возвращения кода ошибки. Какие-либо еще уведомления от функции обратного вызова о событии выполнения ГИП от ПФБ по той же функции не ожидаются.
8.1.4 BioSFPI_GUI_PROGRESS_EVENT_HANDLER
Функция обратного вызова
typedef BioAPI_RETURN (BioAPI
*BioSFPI_GUI_PROGRESS_EVENT_HANDLER)
BioAPI_UNIT_ID UnitID,
const void *GUIProgressEventHandlerCtx,
const BioAPI_GUI_BITMAP_ARRAY *Bitmaps,
BioSFPI_GUI_RESPONSE *Response);
Описание
Тип указателя функции ПБУ для функции обработчика событий ГИП, которая должна обрабатывать обратные вызовы уведомления о событиях выполнения ГИП, приходящих от ПФБ. В целях получения уведомлений о событиях выполнения ГИП, ПБУ должен зарегистрировать функцию обратного вызова типа BioSFPI_GUI_PROGRESS_EVENT_HANDLER посредством предоставления адреса функции обратного вызова, параллельно с адресом контекста, при вызове BioSFPI_SubscribeToGUIEvents (8.2.16).
Инфраструктура совершает обратный вызов функции приложения данного типа каждый раз, когда она получает входящий обратный вызов функции типа BioSPI_GUI_PROGRESS_EVENT_HANDLER, который она предоставляет ПФБ. Параметры функции обратного вызова (за исключением GUIProgressEventHandlerCtx) должны быть установлены из параметров входящего обратного вызова с теми же именами. Параметр GUIProgressEventHandlerCtx должен быть установлен из адреса контекста выполнения ГИП, изначально предоставленного ПБУ при вызове функции BioSFPI_SubscribeToGUIEvents, а адрес обратного вызова должен быть установлен из адреса обратного вызова выполнения ГИП, изначально предоставленного ПБУ при вызове функции BioSFPI_SubscribeToGUIEvents.
ПФБ может создать событие выполнения ГИП только во время выполнения вызова функций BioSFPI_DataTransfer, BioSFPI_Play или какой-либо другой, которая включена в выполнение процесса сбора биометрических данных. Они могут быть созданы в любое время, даже несколько раз, в течение любого процесса сбора биометрических данных.
Основная цель уведомления о событии выполнения ГИП - отправка ПБУ потоковых данных (в качестве серии битовых массивов), полученных биометрическим датчиком. Одним из возможных вариантов использования такой информации для ПБУ является предоставление битовых массивов субъекту или оператору. ПБУ должен отвечать на каждое уведомление о событии выполнения ГИП, определяя должно ли выполнение процесса сбора биометрических данных продолжено или прекращено (8.1.3).
Функция обработчика события выполнения ГИП и любая другая функция, вовлеченная (напрямую или косвенно) данной функцией, не должны вызывать какую-либо функцию BioSPFI.
Если ПБУ возвращает значение, отличное от BioAPI_OK, то ПФБ должен прекратить текущий процесс сбора биометрических данных и возвратить код ошибки.
Параметры
UnitID (входной) - ИД модуля биометрического датчика ПБУ, с которым связано событие ГИП.
GUIProgressEventHandlerCtx (входной) - контекст адреса, изначально предоставляемый приложением-подписчиком, как составная часть подписки на события ГИП.
Bitmaps (входной) - массив битов, содержащих изображение(я) образцов, запись которых произведена посредством выполнения процесса сбора биометрических данных, и которые предназначены для представления субъекту или оператору. Указанный массив, как правило, содержит ноль либо один битовый массив, но в случае, если ПФБ поддерживает мультимодальный сбор биометрических данных в ходе единичной операции сбора данных, такой массив может содержать множество битовых массивов.
Response (входной) - значение, указывающее на ответ ПБУ на уведомление о событии выбора ГИП (8.1.3).
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_USER_CANCElLED
BioAPIERR_FUNCTION_FAILED
BioAPIERR_FUNCTION_NOT_SUPPORTED
8.2 Функции ПФБД
8.2.1 Функция BioSFPI_BSFPLoad
BioAPI_RETURN BioAPI BioSFPI_BSFPLoad
const BioAPI_UUID *BSFPUuid,
BioSFPI_EventHandler BioSFPINotifyCallback);
Описание
Данная функция инициализирует ПФБ. Инициализация включает в себя регистрацию обработчика события ГИП для определенных ПФБ и предоставление возможности для всех событий. ПБУ может предоставить функции обработчика событий возможность получения уведомлений о событиях. Многие ПБУ могут независимо друг от друга одновременно загружать один и тот же ПФБ, и каждый ПБУ может установить свой собственный обработчик событий. Все они будут получать уведомления о событиях. Один либо разные обработчики событий могут быть использованы, если ПБУ загружает множество ПФБ.
ПБУ может установить сколько ему необходимо обработчиков для заданного ПФБ путем единичного или множественных вызовов функции BioSFPI_BSFPLoad к такому ПФБ. Обработчик событий определен адресом уведомления.
Когда в ПФБ происходит событие, он может отправить уведомление о событии в ПБУ посредством вызова обработчика событий ПБУ.
Если ПБУ установил несколько обработчиков событий, необходимо, чтобы каждый из них был вызван по одному за раз (в любом порядке, выбранном ПФБ), а не несколько одновременно.
Уведомление о событии может появиться в любое время: во время вызовов функции BioSPI или в то время, когда вызовы функции BioSPI не выполняются. Разработчик приложения должен гарантировать, что обратные вызовы будут правильно и безопасно обрабатываться приложением независимо от того, когда приложение будет их получать.
Примечание - В данном случае необходимо использовать технологию синхронизированных потоков и порядка действий, сформированных кодом ПБУ в обработчиках событий.
Когда ПФБ загружен (BioSFPI_BSFPLoad), он должен незамедлительно вызвать событие "вставить"(insert) для каждого имеющегося в наличие модуля BioAPI. Последнее позволит определить ПБУ, что он может продолжить выполнение функции BioSFPI_UnitAttach. Если аппаратный компонент для определенных функциональных возможностей не был подключен, то событие "insert" (вставить) не может быть вызвано до тех пор, пока аппаратный компонент не будет включен.
Функция BioSFPI_UnitAttach может быть задействована несколько раз для каждого вызова функции BioSFPI_BSFPLoad. Параметр BSFPUuid определяет задействованный ПФБ.
Параметр BioSFPINotifyCallback определяет функцию обратного вызова, которая была использована для уведомления ПБУ о событиях типа BioAPI_EVENT. ПФБД должен возвратить данную информацию для дальнейшего использования.
Параметры
BSFPUuid (входной) - УУИД задействованного ПФБД. Используется для определения местоположения элемента компонента в каталоге;
BioSFPINotifyCallback (входной)) - функциональный указатель на обработчика событий, который управляет событиями типа BioAPI_ EVENT.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_MODULE_LOAD_FAIL
BioAPIERR_INVALID_UUID
8.2.2 Функция BioSFPI_UnitAttach
BioAPI_RETURN BioAPI BioSFPI_UnitAttach
(BioAPI_UNIT_ID UnitID);
Описание
Данная функция создает сессию присоединения.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставленного ПБУ в качестве входного к данной функции, было таким же, как значение ИД модуля, который инфраструктура представила ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitID (входное) - ИД модуля BioAPI, определенного предшествующим вызовом функции BioSF-PI_QueryUnits. ПФБД заполняет UnitID в поле UnitId каждого элемента BioAPI_UNIT_SCHEMA.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_INVALID_UNIT_ID
BioAPIERR_UNIT_IN_USE
8.2.3 Функция BioSFPI_UnitDetach
BioAPI_RETURN BioAPI BioSFPI_UnitDetach
(BioAPI_UNIT_ID UnitID);
Описание
Данная функция создает сессию присоединения.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставленного ПБУ в качестве входного к данной функции, было таким же, как значение ИД модуля, который инфраструктура представила ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitID (входное) - ИД модуля BioAPI, определенного предшествующим вызовом функции BioSF-PI_QueryUnits. ПФБД заполняет UnitID в поле UnitId каждого элемента BioAPI_UNIT_SCHEMA.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_INVALID_UNIT_ID
8.2.4 Функция BioSFPI_QueryUnits
BioAPI_RETURN BioAPI BioSFPI_QueryUnits
(const BioAPI_UUID *BSFPUuid,
BioAPI_UNIT_SCHEMA **UnitSchemaArray,
uint32_t *NumberOfElements);
Описание
Данная функция возвращает массив схем модулей BioAPI (см. 7.55 в ИСО/МЭК 19784-1:2006), которые управляются заданным ПФБД и находятся в состоянии ввода.
Примечание - Когда ПБУ вызывает функцию ПФБ BioSFPI_QueryUnits, ПФБ выделяет память для данных, которые будут возвращены ПБУ. В некоторых схемах выполнения ПБУ передает данные приложению в точности, как возвращено ПФБ, так как приложение интерпретирует адрес так же, как и ПФБ, и сможет получить доступ к данным, которые размещены по данному адресу. В других схемах выполнения ПБУ будет необходимо переместить все данные, возвращенные ПФБ, во вновь выделенный блок памяти, доступный приложению, и вызвать функцию BioSPI_Free после копирования каждого блока памяти, но перед возвращением вызова функции BioAPI_QueryUnits. В первом случае, когда инфраструктура вызывает функцию BioSPI_Free, ПБУ совершает соответствующий вызов функции BioSFPI_Free. В последнем случае вызовы функции BioSPI_Free будут внутренне поддерживаться ПБУ. Тем не менее такие отличия в поведении ПБУ не заметны для инфраструктуры.
Когда блок памяти, содержащий массив, более не нужен ПБУ, посредством вызова функции BioSFPI_Free ПБУ освобождает данный блок памяти. Блок памяти, на который указывает параметр Unit-Property внутри каждого элемента массива, должен быть также освобожден ПБУ через вызов функции BioSFPI_Free после того, как у ПБУ больше не будет в нем необходимости.
Данная функция должна вызываться только после того, как функция BioSFPI_Load была вызвана для определенного ПФБ.
Не существует каких-либо требований, чтобы ИД модуля, который возвращается данной функцией для данного модуля BioAPI, был доступен по такому же значению ИД модуля от ПБУ к инфраструктуре. ПБУ может перевести любое значение ИД модуля (предоставленное ПФБ) в другое значение ИД перед тем, как предоставить его инфраструктуре. Цель такого перевода заключается в предотвращении дублирования ИД модулей внутри области ПБУ, что может произойти, когда ПБУ использует два или более ПФБ одинаковой категории либо, когда ПБУ использует ПФБД и одновременно напрямую управляет биометрическими датчиками.
Параметры
BSFPUuid (входной) - уникальный идентификатор для ПФБД, информация о котором должна быть возвращена;
UnitSchemaArray (входной) - указатель для адреса массива элементов типа BioAPI_UNIT_SCHEMA (местоположение которых определено ПБУ), содержит информацию о схеме модуля.
NumberOfElements (входной) - указатель числа элементов в массиве, который управляется данным ПФБД и находится в состоянии ввода.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_INVALID_UUID
BioAPIERR_MEMORY_ERROR
8.2.5 Функция BioSFPI_Free
BioAPI_RETURN BioAPI BioSFPI_Free
(void *Ptr);
Описание
Данная функция освобождает область памяти, на которую указывает параметр Ptr. Если параметр Ptr имеет нулевое значение, то никакие действия не выполняются. Если параметр Ptr не соответствует указателю, ранее возвращенному функциями BioSPFI, или если область памяти уже была освобождена вызовом функции BioSFPI_Free, то последствия вызова данной функции неопределенны.
Параметры
Ptr (входной) - указатель на освобождаемую память.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции.
8.2.6 Функция BioSFPI_ControlUnit
BioAPI_RETURN BioAPI BioSFPI_ControlUnit
(BioAPI_UNIT_ID UnitID,
uint32_t ControlCode,
const BioAPI_DATA *InputData,
BioAPI_DATA **OutputData);
Описание
Данная функция отправляет контрольные данные в модуль BioAPI и принимает от него данные статуса и операций. Содержание параметра ControlCode, входных данных и выходных данных будет определено в соответствующей спецификации для конкретного модуля BioAPI.
Данная функция выделяет область памяти, достаточную для размещения выходных данных, которые должны быть возвращены приложению, заполняет блок данными и записывает в поля "Длина" (Length) и "Данные" (Data) структуры OutputData, размер и адрес блока памяти соответственно.
Блок памяти, возвращенный при вызове функции BioSFPI, должен быть освобожден приложением путем вызова функции BioSFPI_Free.
Функция представляет собой прозрачный канал для модуля BioAPI и может быть использована для любых целей, которые не могут быть реализованы стандартизированными функциями (например, управление установками контраста, установка фокуса и т.п.).
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который структура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitID (входной) - ИД модуля BioAPI, который был ранее определен ПФБД.
ControlCode (входной) - код функции в вызываемом модуле BioAPI;
InputData (входной) - адрес и длина буфера, содержащего данные, которые необходимо отправить в модуль BioAPI, относящийся к заданному параметру ControlCode;
OutputData (выходной) - указатель на структуру BioAPI_DATA. Являясь выходным параметром, он должен содержать адрес и длину данных буфера, который содержит данные, полученные от модуля BioAPI после обработки функции, определенной параметром ControlCode. Если функцией не распределен какой-либо блок памяти, то адрес должен быть установлен на пустой указатель, а длина - на ноль.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_MEMORY_ERROR
BioAPIERR_INVALID_POINTER
BioAPIERR_FUNCTION_FAILED
BioAPIERR_FUNCTION_NOT_SUPPORTED
8.2.7 Функция BioSFPI_Cancel
BioAPI_RETURN BioAPI BioSFPI_Cancel
(BioAPI_UNIT_ID UnitID);
Описание
Данная функция отменяет вызов, который находится в заблокированном состоянии, к модулю BioAPI. Функция не должна возвращаться до тех пор, пока заблокированный вызов не будет отменен.
Выполнение ПФД должно допускать, что данная функция может быть вызвана из ПБУ в любой момент. Заблокированный вызов к модулю BioAPI не должен препятствовать вызову данной функции.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который структура предоставляет ПБУ в исходном вызове к BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitID (входное) - ИД модуля BioAPI, в котором заблокированный вызов должен быть отменен.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_UNIT_IN_USE - обозначает, что нижележащие слои не могут отменить заблокированный вызов должным образом. Либо необходимы действия со стороны программного обеспечения, либо со стороны аппаратных средств изготовителя для перезагрузки связанных компонентов
BioAPIERR_INVALID_UNIT_ID
BioAPIERR_UNIT_NOT_INSERTED
8.2.8 Функция BioSFPI_SetPowerMode
BioAPI_RETURN BioAPI BioSFPI_SetPowerMode
(BioAPI_UNIT_ID UnitId,
BioAPI_POWER_MODE PowerMode);
Описание
Данная функция устанавливает присоединенный модуль BioAPI в требуемый режим энергопотребления в том случае, если модуль поддерживает данный режим.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который структура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, для которого необходимо установить требуемый режим энергопотребления. Опция BioAPI_DONT_CARE недоступна для данной функции.
PowerMode (входной) - 32-битное значение, указывающее режим энергопотребления, в который требуется перевести модуль BioAPI.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
8.2.9 Функция BioSFPI_SetGUICallbacks
BioAPI_RETURN BioAPI BioSFPI_SetGUICallbacks
(BioAPI_UNIT_ID UnitId,
BioAPI_GUI_STREAMING_CALLBACK GuiStreamingCallback,
Void *GuiStreamingCallbackCtx,
BioAPI_GUI_STATE_CALLBACK GuiStateCallback,
Void *GuiStateCallbackCtx);
Описание
Данная функция позволяет ПБУ устанавливать параметры функции обратного вызова таким образом, что ПБУ может принять информационные данные путем получения от ПФБД как последовательного битового массива изображений, называемых потоковыми данными, так и информации о состоянии.
Примечание - Не все ПФБД поддерживают функцию предоставления потоковых данных.
Параметры
UnitId (входной) - ИД модуля BioAPI, который может возвратить информацию обратного вызова о статусе и данных;
GuiStreamingCallback (входной) - указатель на обратный вызов ПБУ для взаимодействия с представлением потоковых биометрических данных;
GuiStreamingCallbackCtx (входной) - указатель на контекстную информацию, которая была предоставлена ПБУ и будет представлена в обратном вызове;
GuiStateCallback (входной) - указатель на обратный вызов ПБУ для взаимодействия с изменениями состояния ГИП;
GuiStateCallbackCtx (входной) - указатель на контекстную информацию, которая была предоставлена ПБУ и будет представлена в обратном вызове.
Примечание 1 - Определения функциональных подтипов для BioAPI_GUI_STATE_CALLBACK и BioAPI_GUI_STREAMING_CALLBACK (см. 7.36 и 7.37 в ИСО/МЭК 19784-1:2006)
Примечание 2 - Определение интерфейса пользователя приведено в приложении C, раздел C.7.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_INVALID_POINTER
BioAPIERR_FUNCTION_NOT_SUPPORTED
8.2.10 Функция BioSFPI_QueryFormatInfo
BioAPI_RETURN BioAPI BioSFPI_QueryFormatInfo
(BioAPI_UNIT_ID UnitId,
BioAPI_UUID *FormatInfo);
Описание
Данная функция используется для получения через модуль биометрического датчика информации о том, какой тип формата данных он поддерживает. Описание, полученных УУИД, представлено в A.4 и B.4.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове к BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, к которому обращаются для сбора биометрических данных;
FormatInfo (входной) - указатель буфера извлечения УУИД, который описывает формат данных, поддерживаемых модулем биометрического датчика.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
8.2.11 Функция BioSFPI_GetPackets
BioAPI_RETURN BioAPI BioSFPI_GetPackets
(BioAPI_UNIT_ID UnitId,
BIOAPI_DATA *MemoryForTransfer,
uint32_t *PacketLength,
BioAPI_BIR_BIOMETRIC_DATA_FORMAT *BDBFormat);
Описание
Данная функция отправляет запрос ПФБД на заполнение инфраструктуры BioAPI_DATA, на которую ссылается параметр MemoryForTransfer, и запрос на возврат с длиной вставленного пакета в PacketLength. Память распределяется ПБУ по размерам, которые взяты из BioSFPI_UNIT_IMAGE_PROPERTY_SCHEMA (приложение A) или BioSFPI_UNIT_SIGNATURE_PROPERTY_SCHEMA (приложение В).
Данная функция определяет модуль BioAPI_Unit и формат ББД, который будет возвращен одним или последовательностью вызовов функции BioSFPI_GetPackets. ПФБД может переписать параметр BDBFormat и возвратить другой формат, взамен запрашиваемого ПБУ.
ПБУ решает либо принять изменение формата, либо отменить операцию путем прекращения отправлений вызовов функции BioSFPI_GetPackets.
BDBFormat является идентификатором согласно ИСО/МЭК СТК 1 ПК 37 СД 9.
Выбранный формат ББД ограничен возможностями ПФБД для такого параметра UnitId (см. также BioSFPI_UNIT_IMAGE_PROPERTY_SCHEMA (приложение A) или BioSFPI_UNIT_SIGNATURE_PROPERTY_SCHEMA (приложение В)).
Примечание - Когда запрашивается множество последовательных пакетов с целью получения всех данных, например для процесса сбора биометрических данных, ПФБД должен возвратить пакеты в форматах и частях, которые могут быть обработаны ПБУ без детального знания характеристик ПФБД или модуля BioAPI_Unit. Архитектура ПФБД направлена на помощь в развитии менее детальных модулей BioAPI_Unit и более универсальных ПБУ.
ПБУ будет совершать взаимосвязанные вызовы функции BioSFPI_GetPackets до тех пор, пока ПФБД не сообщит "последний пакет" (last packet).
Принцип множественного буфера, заключающийся в увеличении производительности и скорости передачи данных ПБУ и ПФБД, может быть с легкостью осуществлен: во время совершения первого вызова функции BioSFPI_GetPackets в ПФБД, ПБУ может подготовить и распределить следующую часть передаваемой памяти. После того как возвратился первый вызов функции BioSFPI_GetPackets, ПБУ может незамедлительно совершить второй вызов функции BioSFPI_GetPackets, используя при этом заранее подготовленную память в инфраструктуре данных MemoryForDataTransfer. В то время как совершается второй вызов в ПФБД, возвращенная память первого вызова может быть обработана ПБУ и затем новая часть памяти может быть опять подготовлена для третьего вызова и так далее.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, к которому обращаются для сбора потоковых биометрических данных.
MemoryForTransfer (входной/выходной) - постоянный указатель, на который ссылается инфраструктура BioAPI_DATA, используюемая для передачи данных. ПФБД установит следующие данные в MemoryForTransfer, в зависимости от лимита длины в данной инфраструктуре, возвращая данные о длине (Приложение C);
PacketLength (выходной) - размер пакета (в байтах), перемещенного в структуру BioAPI_DATA;
BDBFormat (входной/выходной) - владелец формата и тип формата ББД, который будет возвращен.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
8.2.12 Функция BioSFPI_DataTransfer
BioAPI_RETURN BioAPI BioSFPI_DataTransfer
(BioAPI_UNIT_ID UnitId,
uint32_t *StreamID,
BioAPI_DATA *SensorData,
BioAPI_BIR_BIOMETRIC_DATA_FORMAT *BDBFormat);
Описание
Данная функция извлекает базы данных, полученные в результате сбора. Данная функция определяет модуль BioAPI_Unit и возвращаемый формат баз данных.
Данная функция направляет запрос ПФБД на заполнение инфраструктуры BioAPI_DATA, на которую ссылается параметр SensorData. Память распределяется ПБУ по размерам, взятым из BioSFPI_UNIT_IMAGE_PROPERTY_SCHEMA (приложение A) или BioSFPI_UNIT_SIGNATURE_PROPERTY_ SCHEMA (приложение В).
ПФБД может переписать параметр BDBFormat и возвратить другой формат взамен запрашиваемого ПБУ.
ПБУ решает либо принять изменение формата, либо отменить операцию путем отправления функции BioSFPI_Cancel.
BDBFormat является идентификатором, согласно ИСО/МЭК СТК 1 ПК 37 СД 9.
Выбранный формат ББД ограничен возможностями ПФБД для такого параметра UnitId (см. также BioSFPI_UNIT_IMAGE_PROPERTY_SCHEMA (приложение A) или BioSFPI_UNIT_SIGNATURE_PROPERTY_SCHEMA (приложение В)).
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, к которому обращаются для сбора биометрических данных;
StreamID (входной) - ИД доступа к потоковой функции, которая обеспечивается системным интегратором на любой имеющейся платформе, на которой возможна передача потоковых данных между ПФБД и ПБУ;
SensorData (выходной) - указатель на структуру извлечения биометрических данных;
BDBFormat (входной /выходной) - владелец формата и тип формата ББД, который будет возвращен.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
8.2.13 Функция BioSFPI_SetIndicatorStatus
BioAPI_RETURN BioAPI BioSFPI_SetIndicatorStatus
(BioAPI_UNIT_ID UnitId,
BioAPI_INDICATOR_STATUS IndicatorStatus);
Описание
Данная функция устанавливает выбранный модуль BioAPI на требуемый статус индикатора при условии, что модуль BioAPI его поддерживает.
После BioAPI_INDICATOR_ACCEPT либо в случае, если BioAPI_INDICATOR_REJECT установлен на параметр IndicatorStatus, статус не будет изменен до тех пор, пока приложение не установит другое значение.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, для которого необходимо установить статус индикатора. Опция BioAPI_DONT_CARE недоступна для данной функции;
IndicatorStatus (входной) - значение, на которое должен быть установлен статус индикатора модуля BioAPI.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
BioAPIERR_INVALID_UNIT_ID
BioAPIERR_UNIT_NOT_INSERTED
BioAPIERR_UNIT_IN_USE
8.2.14 Функция BioSFPI_GetIndicatorStatus
BioAPI_RETURN BioAPI BioSFPI_GetIndicatorStatus
(BioAPI_UNIT_ID UnitId,
BioAPI_INDICATOR_STATUS *IndicatorStatus);
Описание
Данная функция возвращает статус индикатора модуля BioAPI, но только в том случае, если модуль поддерживает данный режим.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, для которого статус индикатора должен быть получен. Опция BioAPI_DONT_CARE недоступна для данной функции;
IndicatorStatus (выходной) - значение статуса индикатора модуля BioAPI.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
BioAPIERR_INVALID_UNIT_ID
BioAPIERR_UNIT_NOT_INSERTED
BioAPIERR_UNIT_IN_USE
8.2.15 Функция BioSFPI_CalibrateSensor
BioAPI_RETURN BioAPI BioSFPI_CalibrateSensor
(BioAPI_UNIT_ID UnitId,
int32_t *Timeout);
Описание
Данная функция выполняет калибровку подключенного датчика модуля BioAPI, но только в том случае, если модуль датчика поддерживает калибровку.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, к которому обращаются для сбора биометрических данных;
Timeout (входной/выходной) - указатель на целое число, которое обозначает значение времени ожидания операции (в миллисекундах). Если время ожидания истекло, функция возвращает ошибку. Данное значение может быть любым числом. Если ПБУ установлено нулевое значение, то данная функция незамедлительно возвратится со значением, установленным на время ожидания, требуемое для настройки присоединенного модуля BioAPI_Unit при условии, что такой биометрический датчик поддерживает настройку. Если для биометрического датчика не предусмотрена настройка, то возвращаемое значение для времени ожидания будет 0.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
BioAPIERR_UNIT_IN_USE
BioAPIERR_INVALID_UNIT_ID
BioAPIERR_UNIT_NOT_INSERTED
BioAPIERR_CALIBRATION_NOT_SUCCESSFUL
BioAPIERR_TIMEOUT_EXPIRED
8.2.16 Функция BioSFPI_SubscribeToGUIEvents
BioAPl_RETURN BioAPI BioSFPl_SubscribeToGUlEvents
(BioAPI_UNIT_ ID Unitld,
BioSFPl_GUl_PROGRESS_EVENT_HANDLER GUlProgressEventHandler,
const void *GUlProgressEventHandlerCtx);
Описание
Данная функция является необязательной и создает подписку на события ГИП для имеющегося ПБУ. Поддержка подписок на события ГИП осуществляется ПБУ во время рабочего режима.
ПБУ предоставляет адреса функции обратного вызова для обработчика событий выполнения ГИП. Все значения параметра, которые предоставляются в вызове данной функции, должны стать частью подписки на события ГИП, поддерживаемой ПБУ.
Подписки на события ГИП, которые определяют сессию присоединения ПФБ, должны быть автоматически удалены ПБУ после того, как сессия присоединения будет разорвана.
Адреса контекста, предоставленные в вызове, должны быть переданы ПФБ обратно ПБУ в последующих обратных вызовах к обработчикам событий. Настоящий стандарт не определяет для адресов контекста какое-либо значение, но устанавливает для них соответствие требованиям некоторых ПФБ.
После нескольких вызовов функции, не должно появиться множество обработчиков событий выполнения ГИП, установленных для одного и того же ИД модуля ПБУ. Для любого входящего события ГИП не будет ситуации двусмысленности к какому обработчику событий ГИП (если таковые существуют) ПБУ должен направить вызов.
Примечание - Недопустимо наличие двух подписок с одинаковыми параметрами.
Данная функция вызывается только (для имеющегося ИД модуля ПБУ) в случае, если существует хотя бы один вызов функции BioSFPI_BFPLoad (для такого УУИД ПФБД).
Параметры
UnitId (входной) - ИД модуля BioAPI, который может возвратить статус или информацию об обратном вызове данных;
GUIProgressEventHandler (входной) - адреса обратных вызовов функции ПБУ, на которые приходят уведомления о событиях выполнения ГИП от ПФБ;
GUIProgressEventHandlerCtx (входной) - адреса контекстов, которые передаются ПФБ обратно ПБУ на каждый обратный вызов обработчика событий ГИП.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_INVALID_POINTER
BioAPIERR_FUNCTION_NOT_SUPPORTED
8.2.17 Функция BioSFPI_UnsubscribeFromGUIEvents
BioAPI_RETURN BioAPI BioSFPI_UnsubscribeFromGUIEvents
(BioAPI_UNIT_ID UnitId,
BioSFPI_GUI_PROGRESS_EVENT_HANDLER GUIProgressEventHandler
const void *GUIProgressEventHandlerCtx);
Описание
Данная функция является необязательной и удаляет подписку на события ГИП, созданную ранее посредством вызова функции BioSFPI_SubscribeToGUIEvents. Удаляется конкретная подписка, описание которой точно соответствует параметрам вызова.
Примечание - Даже при наличии только одной подписки вызов к данной функции не удаляет данную подписку на события ГИП, если параметры вызова не имеют точно таких же значений, как и в вызове функции BioSFPI_SubscribeToGUIEvents, для которых такая подписка была создана. ПБУ необходимо запомнить значение данных параметров.
У ПБУ нет необходимости вызова данной функции, так как все подписки на события ГИП для имеющегося ИД модуля автоматически уничтожаются ПБУ, после того как сессия присоединения была разорвана. Данная функция может быть использована, когда ПБУ необходимо изменить текущие подписки на события ГИП, но необходимости в разрыве сессии присоединения нет.
Данная функция вызывается только (для имеющегося ИД модуля ПБУ), если существует хотя бы один вызов функции BioSFPI_BFPLoad (для такого УУИД ПФБД).
Параметры
Параметры данной функции имеют то же значение, что и параметры функции BioSFPI_SubscribeToGUIEvents с теми же именами, и используются ПФБ для определения имеющейся подписки на события ГИП, которую необходимо удалить.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_INVALID_POINTER
BioAPIERR_FUNCTION_NOT_SUPPORTED
Приложение A (обязательное). Модули регистрации изображений биометрических датчиков
Приложение A
(обязательное)
A.1 Общие положения
Данное приложение описывает модули биометрических датчиков, которые регистрируют неподвижные или потоковые изображения.
A.1.1 Порядок следования битов и байтов
Все многобайтовые значения должны быть представлены в формате обратного порядка следования байтов (Big-Endian): старшие байты любого многобайтового значения записывают в память раньше младших байтов. В пределах байта: старшие биты записывают в память раньше младших битов. Все численные значения должны быть целочисленными и беззнаковыми величинами фиксированной длины.
A.1.2 Порядок сканирования
Каждое изображение согласно настоящему приложению должно быть зарегистрировано в вертикальном положении. Сканирование и запись данных изображения осуществляться слева направо и сверху вниз. Для описания позиции каждого пикселя на изображении необходимо использовать две оси координат. Начало осей координат (пиксель с координатами (0,0)) должно находиться в левом верхнем углу изображения. Значение координаты X (горизонтальная ось) должно увеличиваться от начала координат к правой границе изображения (слева направо). Значение координаты Y (вертикальная ось) должно увеличиваться от начала координат к нижней границе изображения (сверху вниз).
A.1.3 Соотношение длин сторон пикселя
Изображения представляются при помощи пикселей. Соотношение горизонтальных и вертикальных размеров пикселей либо задано, либо при необходимости возвращается от вызовов функций.
A.1.4 Глубина шкалы оттенков серого пикселя
Четкость данных шкалы оттенков серого пикселя должна быть определена в терминах глубины пикселя либо числом битов, используемых для представления значения шкалы оттенков серого пикселя. Глубина пикселя, равная 3, обеспечивает 8 уровней шкалы оттенков серого; глубина пикселя, равная 8, обеспечивает до 256 уровней серого. Для данных шкалы оттенков серого, минимальное значение, которое может быть соотнесено с "черным" пикселем, должно быть равным нулю. Максимальное значение, которое может быть соотнесено с "белым" пикселем, должно представлять собой значение шкалы оттенков серого со всеми битами, имеющими точность, установленную на 1. Тем не менее "самый черный" пиксель изображения может иметь значение, превышающее 0, а "самый белый" пиксель может иметь значение ниже своего максимального значения. Это означает, что максимальное значение для "белого" пикселя с 5 битами точности должно быть 31 или менее. Максимальное значение для "белого" пикселя при использовании 8 битной точности должно быть 255 или менее. Глубина пикселя может варьироваться от 1 до 16 битов.
A.1.5 Цветовое пространство
24-битное цветовое пространство RGB, в котором на каждый пиксель приходится по 8 битов на каждый компонент цвета: красный, зеленый и синий. Для достижения аппаратной независимости значения координат RGB, полученные с камеры или датчика, должны быть преобразованы в значения в стандартном цветовом пространстве RGB, например sRGB, с использованием цветового профиля и методов управления цветом устройства. Информация об управлении цветом устройств может быть получена с сайта международного консорциума по цвету www.color.org.
A.1.6 Чересстрочная развертка
Не допускается использование чересстрочной кадровой развертки потоковых изображений. Чересстрочная развертка не может быть компенсирована и не должна использоваться.
A.2 BioSFPI_BSFPImagePropertyID
BioSFPI_BSFPImagePropertyID определяет УУИД формата BioSFPI_BSFPPropertySchema. Если заявлено соответствие ПФБД настоящему стандарту, он должен использовать параметр PropertySchema, как определено в данном приложении. Значение такого УУИД будет использовано в элементе ИД характеристик схемы ПФБ (см. 10.1.3 в ИСО/МЭК 19784-1:2006).
#define (BioSFPI_BSFPImagePropertyID, 0x4011dde0, 0x8008, 0x11de, 0xa393, 0x0002a5d5c51b);
Примечание - УУИД (4011dde0-8008-11de-a393-0002a5d5c51b) был создан и зарегистрирован в соответствии с ИСО/МЭК 9834-8, с использованием генератора, предоставленного международным телекоммуникационным союзом.
A.3 BioSFPI_BSFPImagePropertySchema
BioSFPI_BSFPPropertySchema содержит информацию о возможностях поставщика функций, которые предоставлены в реестре компонентов BioAPI и в соответствующих функциональных вызовах. Возможности поставщика функции могут отличаться от возможностей модуля биометрического датчика. Возможности, используемые ПБУ или приложением BioAPI, находятся на пересечении возможностей ПФБД и модуля биометрического датчика.
typedef struct _biosfpi_BSFP_image_property_schema { | ||
BioAPI_VERSION | BSFPImageVersion; | |
BioAPI_POWER_MODE | SupportedPowerModes; | |
BioAPI_BOOL | DataTransferSupported; | |
BioAPI_BOOL | GetPacketsSupported; | |
BioAPI_BIR_BIOMETRIC_DATA_FORMAT | *BDBFormatsSupportedList; | |
uint32_t | NumberOfElements; | |
void | *AdditionalParameters; | |
uint32_t | AdditionalParametersSize; | |
}BioSFPI_BSFP_IMAGE_PROPERTY_SCHEMA, | *BioSFPI_BSFP_IMAGE_PROPERTY_SCHEMA_PTR; |
BSFPImageVersion - данное значение определяет версию ИПФБД. Версия соответствующая настоящему стандарту, имеет целое значение (десятичное) 16 либо (шестнадцатеричное) 10, соответствующее наибольшему значению - 1 и наименьшему значению - 0.
SupportedPowerModes - перечисление, определяющее типы режимов энергопотребления, которые ПБУ и присоединенные устройства (BioAPI_Units) могут использовать. Управление режимом энергопотребления основывается на передаче соответствующих функциональных вызовов к модулю BioAPI в случае, когда он поддерживает такой режим, и при возвращении кода ошибки, связанного с результатом реакции модуля BioAPI.
DataTransferSupported - в случае успешного выполнения функции ПФБ поддерживает вызовы BioSFPI_DataTransfer.
GetPacketsSupported - в случае успешного выполнения функции ПФБ поддерживает вызовы BioSFPI_GetPackets.
BDBFormatsSupportedList - указатель на список пары (владелец формата и тип формата, определяющие форматы ББД).
NumberOfElements - предоставляет число элементов в BDBFormatsSupportedList.
AdditionalParameters - указатель на поле данных, которое описывается разработчиком ПФБД либо другими стандартами.
AdditionalParametersSize - предоставляет размер (в байтах) инфраструктуры AdditionalParameters.
Примечание - Могут использоваться любые зарегистрированные форматы ББД (стандартные либо определенные изготовителем). Установка ограничений на использование форматов ББД может быть произведена посредством профилирования.
A.4 BioSFPI_UnitImagePropertyID
BioSFPI_UnitImagePropertyID определяет УУИД формата BioSFPI_UnitPropertySchema для модулей биометрических датчиков изображений. Если заявлено соответствие биометрического датчика настоящему стандарту, необходимо, чтобы он использовал параметр PropertySchema согласно требованиям настоящего стандарта.
#define (BioSFPI_UnitPropertyID, 0xa3f70a60, 0x800d, 0x11de, 0xba, 0xe3, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b);
Примечание - Данный УУИД был создан и зарегистрирован в соответствии с ИСО/МЭК 9834-8 с использованием генератора, предоставленного международным телекоммуникационным союзом.
A.5 BioSFPI_UnitImagePropertySchema
BioSFPI_UnitPropertySchema содержит информацию, которая предоставляется в соответствующих функциональных вызовах.
Предоставление модулями биометрических датчиков данной схемы содержит информацию, необходимую для идентификации самого модуля (SensorUuid и SensorName), и информацию о возможностях в целом.
typedef struct _biosfpi_unit_image_property_schema { | ||
BioAPI_UUID | SensorType; | |
BioAPI_UUID | SensorUuid; | |
BioAPI_STRING | SensorName; | |
BioAPI_STRING | SensorSerialNumber; | |
uint32_t | MaxResponseTime; | |
BioAPI_POWER_MODE | SupportedPowerModes; | |
uint32_t | PixelsHeight; | |
uint32_t | PixelsWidth; | |
uint32_t | AspectRatio; | |
uint32_t | MonochromePixelDepth; | |
uint32_t | ColourPixelDepth; | |
uint32_t | Resolution; | |
BioAPI_BOOL | DataTransferSupported; | |
BioAPI_BOOL | GetPacketsSupported; | |
BioAPI_BIR_BIOMETRIC_DATA_FORMAT | *BDBFormatsSupportedList; | |
uint32_t | NumberOfElements; | |
uint32_t | EstimatedDataRate; | |
uint32_t | MaxPacketsPerSecond; | |
uint32_t | MaxFramesPerSecond; | |
uint32_t | SuggestedMemoryForTransferSize; | |
} BioSFPI_UNIT_IMAGE_PROPERTY_SCHEMA, | *BioSFPI_UNIT_IMAGE_PROPERTY_SCHEMA_PTR; |
SensorType - УУИД типа модуля биометрического датчика. Значение совпадает с УУИД, определенным в A.2.
SensorUuid - УУИД, заданный изготовителем модуля биометрического датчика.
SensorName - наименование биометрического датчика.
SensorSerialNumber - идентификатор устройства, заданный изготовителем. Если установлено значение 0, то идентификатор устройства не определен.
MaxResponseTime - значение определяет максимальное время (в миллисекундах), которое при вызове какой-либо функции к модулю BioAPI должно пройти до возврата функции. Значение 0 - информация о максимальном времени до возврата от модуля BioAPI не задана.
SupportedPowerModes - перечисление, определяющее типы режимов мощности, которые ПБУ и присоединенные устройства (BioAPI_Units) могут использовать. Управление режимом мощности основывается на передаче соответствующих функциональных вызовов к модулю BioAPI, когда он поддерживает такой режим, и на возврате кода ошибки, связанного с результатом реакции модуля BioAPI.
PixelsHeight - определяет число вертикальных пикселей, которые поддерживаются модулем биометрического датчика.
PixelsWidth - определяет число горизонтальных пикселей, которые поддерживаются модулем биометрического датчика.
AspectRatio - значение определяет соотношение PixelsHeight (высоты пикселей) к PixelsWidth (ширине пикселей). Соотношение высчитывается делением верхних 16 битов AspectRatio (соотношение сторон) на нижние 16 битов. Например: для AspectRatio (соотношение сторон) 1:1 используется код 0x00010001.
MonochromePixelDepth - значение определяет глубину пикселя для изображений со шкалой оттенков серого. Если значение установлено на 0, то модуль биометрического датчика не будет поддерживать изображения со шкалой оттенков серого.
ColourPixelDepth - значение определяет глубину пикселя для изображений sRGB. Если значение установлено на 0, то модуль биометрического датчика не будет поддерживать цветные изображения. Преобразование из RGB в sRGB может быть выполнено либо модулем биометрического датчика самостоятельно, либо соответствующим ПФБД.
Resolution - значение определяет число пикселей в активной зоне датчика.
DataTransferSupported - в случае успешного выполнения функции биометрический датчик поддерживает вызовы функции BioSFPI_DataTransfer.
GetPacketsSupported - в случае успешного выполнения функции биометрический датчик поддерживает вызовы функции BioSFPI_GetPackets.
BDBFormatsSupportedList - указатель на список пары (владелец формата и тип формата, определяющие форматы ББД).
NumberOfElements - предоставляет число элементов в BDBFormatsSupportedList.
EstimatedDataRate - предоставляет усредненное число килобайтов в секунду от устройства между активацией и последующей деактивацией данного устройства. Если установлено значение 0, то информация отсутствует.
MaxPacketsPerSecond - предоставляет максимальное число пакетов в секунду, которое модуль BioAPI_Unit может создать. Данный параметр помогает ПБУ обеспечить эффективное управление памятью (например, множественные буферы). Если установлено значение 0, то информация отсутствует.
MaxFramesPerSecond - предоставляет максимальное число фреймов в секунду, которое модуль BioAPI_Unit может создать в потоковом режиме (при помощи BioSFPI_DataTransfer). Если установлено значение 0, то информация отсутствует.
SuggestedMemoryForTransferSize - предоставляет ПФC наиболее точную оценку оптимального количества памяти для передачи посредством функций BioSFPI_GetPackets или BioSFPI_DataTransfer потоковых данных.
A.6 Функции биометрического датчика изображений
A.6.1 Функция BioSFPI_GetImageParameters
BioAPI_RETURN BioAPI BioSFPI_GetImageParameters | |||
(BioAPI_UNIT_ID UnitId, | |||
uint32_t | *PixelsHeight, | ||
uint32_t | *PixelsWidth, | ||
uint32_t | *Colours, | ||
uint32_t | *PixelDepth); |
Описание
Данная функция используется для извлечения параметров биометрического датчика.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, к которому обращаются для получения параметров сбора биометрических данных.
PixelsHeight (выходной) - указатель для извлечения вертикального размера изображения (в пикселях).
PixelsWidth (выходной) - указатель для извлечения горизонтального размера изображения (в пикселях).
Colours (выходной) - указатель для извлечения цветного режима модуля биометрического датчика. Если установлено значение 0, то модуль биометрического датчика будет возвращать шкалу оттенков серого до тех пор, пока не будет предложено обратное. Если установлено значение 1, то модуль биометрического датчика будет возвращать sRGB до тех пор, пока не будет отмены.
PixelDepth (выходной) - указатель для извлечения числа уровней канала(ов) цвета. Если изображения со шкалой оттенков серого, он предоставляет число уровней серого. В случае sRGB изображений он предоставляет уровни каждого цвета (красный, зеленый, голубой). Для трех цветов число уровней будет равным в любом случае.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
A.6.2 Функция BioSFPI_SetImageParameters
BioAPI_RETURN BioAPI BioSFPI_SetImageParameters | |||
(BioAPI_UNIT_ID UnitId, | |||
uint32_t | PixelsHeight, | ||
uint32_t | PixelsWidth, | ||
uint32_t | Colours, | ||
uint32_t | PixelDepth); |
Описание
Данная функция используется для установки параметров биометрического датчика.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного параметра к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, к которому обращаются для установки параметров сбора биометрических данных.
PixelsHeight (входной) - устанавливает вертикальный размер изображения (в пикселях), который необходимо извлечь. Если устанавливаемый вертикальный размер отличается от значения по умолчанию и новый вертикальный размер не поддерживается биометрическим датчиком, то вызов функции будет возвращен с BioAPIERR_ FUNCTION_NOT_SUPPORTED.
PixelsWidth (входной) - устанавливает горизонтальный размер изображения (в пикселях), который необходимо извлечь. Если устанавливаемый горизонтальный размер отличается от значения по умолчанию и новый горизонтальный размер не поддерживается биометрическим датчиком, то вызов функции будет возвращен с BioAPIERR_FUNCTION_NOT_SUPPORTED.
Colours (входной) - Если установлено значение 0, то к биометрическому датчику направляется запрос на возврат данных о шкале оттенков серого до тех пор, пока не будет предложено обратное. Если установлено значение 1, то к биометрическому датчику направляется запрос на возврат данных о sRGB до тех пор, пока не будет отмены. Если запрашиваемый формат данных не поддерживается биометрическим датчиком, вызов функции будет возвращен с BioAPIERR_FUNCTION_NOT_SUPPORTED.
PixelDepth (входной) - определяет бинарное значение числа уровней каналов цвета. Если изображение со шкалой серого, он представляет число уровней серого. В случае sRGB изображений, он представляет уровни каждого цвета (красный, зеленый, голубой). Для трех цветов число уровней будет равным в любом случае. Если запрашиваемая глубина пикселей не поддерживается биометрическим датчиком, то вызов функции будет возвращен с BioAPIERR_FUNCTION_NOT_SUPPORTED.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
A.6.3 Функция BioSFPI_Pause
BioAPI_RETURN BioAPI BioSFPI_Pause
(BioAPI_UNIT_ID UnitId);
Описание
Данная функция останавливает извлечение потоковых данных.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входное) - ИД модуля BioAPI, к которому обращаются для остановки до тех пор, пока не предложено обратное.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
A.6.4 Функция BioSFPI_Play
BioAPI_RETURN BioAPI BioSFPI_Play
(BioAPI_UNIT_ID UnitId);
Описание
Данная функция возобновляет сбор потоковых данных.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (см. 8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, к которому обращаются для сбора потоковых биометрических данных.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
Приложение B (обязательное). Модули биометрического датчика подписи
Приложение B
(обязательное)
B.1 Общие положения
Данное приложение описывает биометрические датчики, которые осуществляют сбор данных подписи.
B.1.1 Порядок следования битов и байтов
Все многобайтовые значения должны быть представлены в формате обратного порядка следования байтов (Big-Endian): старшие байты любого многобайтового значения записывают в память раньше младших байтов. В пределах байта: старшие биты записывают в память раньше младших битов. Все численные значения должны быть целочисленными и беззнаковыми величинами фиксированной длины.
B.1.2 Система координат
Система координат, используемая для описания положения пера, должна быть трехмерной декартовой системой координат. Существуют три канала, которые были определены для записи данных о позиции пера в трехмерном пространстве. Ось X должна соответствовать горизонтальной оси рабочей поверхности, при этом значение координаты X должно увеличиваться при перемещении пера вправо. Ось Y должна соответствовать вертикальной оси рабочей поверхности, при этом значение координаты Y должно увеличиваться при перемещении пера вверх. Ось Z должна быть перпендикулярна к плоскости рабочей поверхности, при этом значение координаты Z должно увеличиваться при подъеме пера; нулевое значение соответствует положению, когда перо касается рабочей поверхности. Горизонтальная и вертикальная позиции на рабочей поверхности записываются в X и Y каналах соответственно. Высота пера над поверхностью записывается через Z канал.
Горизонтальная и вертикальная скорости пера на рабочей поверхности записываются в каналах VX и VY соответственно.
Горизонтальное и вертикальное ускорения пера на рабочей поверхности записываются в каналах AX и AY соответственно.
Канал T определен для записи данных о времени.
Канал DT определен для записи данных о времени по отношению к предыдущему образцу.
Канал F определен для записи данных о силе (давлении) пера.
Канал S определен для записи данных о том, касается ли перо рабочей поверхности или нет. Значение 0 - отсутствие касания; 1 - касание.
Также определены 5 каналов для записи данных об ориентации пера: Az, El, TY, TY и R. Исполнителям предоставлен выбор использования одновременно угла азимута пера и угла возвышения пера либо угла наклона пера. Третья степень свободы в ориентации определена, как свобода вращения пера относительно его оси.
Использование каналов X и Y обязательно. Также либо канал T, либо канал DT должен присутствовать, или равномерное сэмплирование (постоянная разница во времени между смежными точками отбора проб) должно быть определено. Использование других каналов является необязательным (ИСО/МЭК 19794-7:2007).
B.1.3 Поле "Наличие каналов" (Сhannel inclusion)
Поле "Наличие каналов" (Сhannel inclusion) должно определять наличие или отсутствие каналов. Поле "Наличие каналов" (Сhannel inclusion) состоит из 2 байтов. Каждый бит должен соответствовать какому-либо каналу, как указано в таблице В.1. Значение бита 1 кодирует наличие соответствующего канала, значение бита 0 кодирует отсутствие соответствующего канала.
Таблица B.1 - Структура поля "Наличие каналов" (Сhannel inclusion)
Обозначение канала | Описание | Байт | Позиция бита |
X | X координата (горизонтальное положение пера) | 1 | 8 (старший разряд) |
Y | Y координата (вертикальное положение пера) | 1 | 7 |
Z | Z координата (высота пера над рабочей поверхностью) | 1 | 6 |
VX | Скорость пера в X направлении | 1 | 5 |
VY | Скорость пера в Y направлении | 1 | 4 |
AX | Ускорение пера в X направлении | 1 | 3 |
AY | Ускорение пера в Y направлении | 1 | 2 |
T | Время | 1 | 1 (младший разряд) |
DT | Дифференциал времени | 2 | 8 (старший разряд) |
F | Сила нажатия пера | 2 | 7 |
S | Состояние пера (касание/отсутствие касания рабочей поверхности) | 2 | 6 |
TX | Угол наклона пера к оси X | 2 | 5 |
TY | Угол наклона пера к оси Y | 2 | 4 |
Az | Угол азимута пера (отклонение) | 2 | 3 |
El | Угол возвышения пера (высота) | 2 | 2 |
R | Угол поворота пера | 2 | 1 (младший разряд) |
В качестве примера на рисунке B.1 приведено поле "Наличие каналов" (Сhannel inclusion) в записи для подписывания/данных подписи, включающей в себя каналы: X, Y, T, F, S, Az, El и R.
Рисунок B.1 - Поле "Наличие каналов" (Сhannel inclusion) (ИСО/МЭК 19794-7:2007)
Байт 1 | Байт 2 | ||||||||||||||
1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
Рисунок B.1 - Поле "Наличие каналов" (Сhannel inclusion) (ИСО/МЭК 19794-7:2007)
B.1.4 Последовательность точек отбора проб
Поле каждой точки отбора пробы должно начинаться со значения обязательного канала X, за которым должны следовать значения обязательного канала Y и последовательность значений необязательных каналов, как указано в поле "Наличие каналов" (Сhannel inclusion). Порядок описания каналов определяется порядком каналов, указанным в поле "Наличие каналов" (Сhannel inclusion) (таблица B.1).
Для каналов Z, T, DT, F, Az, El и R допустимы целочисленные значения в диапазоне от 0 до 65 535. Указанные значения кодируются в 2 байтах, как целые числа без знака.
Для каналов X, Y, VX, VY, AX, AY, TX и TY допустимы целочисленные значения в диапазоне от 32 768 до 32 767. Указанные значения кодируются в 2 байтах, как целые числа без знака, после добавления 32 768 к каждому значению.
Следовательно, для не отрицательных чисел бит 8 самого значительного байта имеет значение 1; для отрицательных чисел бит 8 самого значительного байта имеет значение 0.
Для канала S допустимы целочисленные значения в диапазоне от 0 до 1. Указанные значения кодируются одним байтом, как целые числа без знака (см. ИСО/МЭК 19794-7:2007).
B.1.5 Частота отбора образцов
Частота отбора образцов определяет частоту сэмплирования, которая используется биометрическими датчиками подписи.
B.1.6 Поле "Описание каналов" (Сhannel descriptions)
UnitSignaturePropertySchema содержит информацию об описании каналов. Так как каждый биометрический датчик подписи может иметь различные выходные значения (например, при одной и той же силе или угле вращения), необходимо учитывать информацию, касающуюся минимальных и максимальных значений, а также калибровочные коэффициенты.
Содержание поля "Описание каналов" (Сhannel descriptions) схоже с ИСО/МЭК 19794-7. Поле "Наличие каналов" (Сhannel inclusion) указывает на наличие описания каждого канала в убывающем порядке от старшего значащего бита (MSB) к младшему значащему биту (LSB) (см. B.1.3 и 7.3.4.1 в ИСО/МЭК 19794-7:2007).
Каждое описание канала должно начинаться с описания в соответствии с требованиями (см. B.1.3 и 7.3.4.1, 7.3.4.2 в ИСО/МЭК 19794-7:2007). За описанием следуют значения, определенные в описании. Закодированные значения и тип данных должны соответствовать требованиям ИСО/МЭК 19794-7:2007.
Таким образом, ChannelDescriptions представляет собой структуру данных различной длины, которая хранится в BSFP_UnitSignaturePropertySchema.
B.2 BioSFPI_BSFPSignaturePropertyID
BioSFPI_BSFPSignaturePropertyID определяет УУИД формата BioSFPI_BSFPSignaturePropertySchema. Если заявлено соответствие ПФБД настоящему стандарту, то он должен использовать параметр PropertySchema, как определено в данном приложении. Значение указанного УУИД будет использовано для предопределенного ИД элемента ПБУ в схеме ПБУ (см. 10.1.3 в ИСО/МЭК 19784-1:2006).
#define (BioSFPI_BSFPSignaturePropertyID, 0xcd02bde0, 0x800e, 0x11de, 0xb83, 0x26, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b);
Примечание - УУИД (cd02bde0-800e-11de-8326-0002a5d5c51b) был создан и зарегистрирован в соответствии с ИСО/МЭК 9834-8, с использованием генератора, предоставленного международным телекоммуникационным союзом.
B.3 BioSFPI_BSFPSignaturePropertySchema
BioSFPI_BSFPSignaturePropertySchema содержит информацию о возможностях поставщика функций, которые представлены в реестре компонентов BioAPI и в соответствующих функциональных вызовах. Возможности поставщика функций могут отличаться от возможностей биометрического датчика подписи. Возможности, используемые ПБУ или приложением BioAPI, находятся на пересечении возможностей ПФБД и модуля биометрического датчика.
typedef struct _biosfpi_BSFP_signature_property_schema { | ||
BioAPI_VERSION | BSFPSignatureVersion; | |
BioAPI_POWER_MODE | SupportedPowerModes; | |
BioAPI_BOOL | DataTransferSupported; | |
BioAPI_BOOL | GetPacketsSupported; | |
BioAPI_BIR_BIOMETRIC_DATA_FORMAT | *BDBFormatsSupportedList; | |
uint32_t | NumberOfElements; | |
void | AdditionalParameters; | |
uint32_t | AdditionalParametersSize; | |
} BioSFPI_BSFP_SIGNATURE_PROPERTY_SCHEMA, | *BioSFPI_BSFP_SIGNATURE_PROPERTY_SCHEMA_PTR; |
BSFPSignatureVersion - данное значение определяет версию ИПФБД. Версия, соответствующая настоящему стандарту, имеет целочисленное значение (десятичное) 16 либо (шестнадцатеричное) 10, соответствующее наибольшему значению - 1 и наименьшему значению - 0.
SupportedPowerModes - перечисление, определяющее типы режимов энергопотребления, которые ПБУ и присоединенные устройства (BioAPI_Units) могут использовать. Управление режимом мощности основывается на передаче соответствующих функциональных вызовов к модулю BioAPI в случае, когда он поддерживает такой режим, и возвращает код ошибки, связанного с результатом реакции модуля BioAPI.
DataTransferSupported - в случае истины, ПБУ поддерживает вызовы функции BioSFPI_DataTransfer.
GetPacketsSupported - в случае истины, ПБУ поддерживает вызовы функции BioSFPI_GetPackets.
BDBFormatsSupportedList - указатель на список пары (владелец формата и тип формата, определяющие форматы ББД).
NumberOfElements - предоставляет число элементов в BDBFormatsSupportedList.
AdditionalParameters - указатель на поле "Данные" (Data), которое описывается разработчиком ПФБД или другими стандартами.
AdditionalParametersSize - предоставляет размер инфраструктуры AdditionalParameters в битах.
Примечание - Могут использоваться любые зарегистрированные форматы ББД (стандартные либо определенные поставщиком). Установка ограничений на использование форматов ББД может быть произведена посредством профилирования.
B.4 BioSFPI_UnitSignaturePropertyID
BioSFPI_UnitSignaturePropertyID определяет УУИД формата BioSFPI_UnitSignaturePropertySchema для биометрических датчиков подписи.
Если заявлено, что ПФБД, поддерживаемый биометрическим датчиком подписи, соответствует настоящему стандарту, то он должен использовать параметр PropertySchema, как определено в настоящем стандарте.
#define (BioSFPI_UnitSignaturePropertyID, 0x84a898c0, 0x800f, 0x11de, 0xbd81, 0x0002a5d5c51b);
Примечание - УУИД (84a898c0-800f-11de-bd81-0002a5d5c51b) был сгенерирован и зарегистрирован в соответствии с ИСО/МЭК 9834-8, с использованием генератора, предоставленного международным телекоммуникационным союзом.
B.5 BioSFPI_UnitSignaturePropertySchema
BioSFPI_UnitSignaturePropertySchema содержит информацию, которую необходимо предоставить в соответствующих вызовах функций. Данная схема содержит информацию для идентификации самого модуля (SensorUuid и SensorName), а также информацию о возможностях модуля.
typedef struct _biosfpi_unit_signature_property_schema { | ||||
BioAPI_UUID | SensorType; | |||
BioAPI_UUID | SensorUuid; | |||
BioAPI_STRING | SensorName; | |||
BioAPI_STRING | SensorSerialNumber; | |||
uint32_t | MaxResponseTime; | |||
BioAPI_POWER_MODE | SupportedPowerModes; | |||
uint32_t | Org_X; | |||
uint32_t | Org_Y; | |||
uint32_t | Org_Z; | |||
uint32_t | Ext_X; | |||
uint32_t | Ext_Y; | |||
uint32_t | Ext_Z; | |||
uint32_t | SampleRate; | |||
uint16_t | ChannelInclusion; | |||
BioAPI_DATA | ChannelDescriptions; | |||
Boolean | RelativeMode | |||
BioAPI_BOOL | DataTransferSupported; | |||
BioAPI_BOOL | GetPacketsSupported; | |||
BioAPI_BIR_BIOMETRIC_DATA_FORMAT | *BDBFormatsSupportedList; | |||
uint32_t | NumberOfElements; | |||
uint32_t | EstimatedDataRate; | |||
uint32_t | MaxPacketsPerSecond; | |||
uint32_t | MaxFramesPerSecond; | |||
uint32_t | ||||
SuggestedMemoryForTransferSize;} | ||||
} | BioSFPI_UNIT_SIGNATURE_PROPERTY_SCHEMA, | |||
*BioSFPI_UNIT_SIGNATURE_PROPERTY_SCHEMA_PTR; |
SensorType - УУИД типа модуля биометрического датчика. Значение равно УУИД, определенному в 7.1.2.
SensorUuid - УУИД модуля биометрического датчика, заданный изготовителем.
SensorName - наименование биометрического датчика.
SensorSerialNumber - идентификатор устройства, заданный изготовителем. Значение 0 - отсутствие поддерживаемых идентификаторов устройств.
MaxResponseTime - значение определяет максимальное время (в миллисекундах), которое при вызове какой-либо функции к модулю BioAPI должно пройти до возврата функции. Значение 0 - информация о максимальном времени до возврата от модуля BioAPI не задана.
SupportedPowerModes - перечисление, определяющее типы режимов мощности, которые ПБУ и присоединенные устройства (BioAPI_Units) могут использовать. Управление режимом мощности основывается на передаче соответствующих функциональных вызовов к модулю BioAPI, когда он поддерживает такой режим, и на возврате кода ошибки, связанного с результатом реакции модуля BioAPI.
Org_X (выходной) - указатель для получения начала оси X.
Org_Y (выходной) - указатель для получения начала оси Y.
Org_Z (выходной) - указатель для получения начала оси Z.
Ext_X (выходной) - указатель для получения протяженности оси X.
Ext_Y (выходной) - указатель для получения протяженности оси Y.
Ext_Z (выходной) - указатель для получения протяженности оси Z.
SampleRate - значение определяет частоту отбора образцов, с которой работает биометрический датчик подписи. Если значение не 0, то это означает, что используется постоянная разница во времени между смежными точками отбора образцов. При значении 0 должен присутствовать либо канал T, либо канал DT.
ChannelInclusion - использование каналов указывает на наличие или отсутствие каналов.
ChannelDescriptions - блок данных, содержащий минимум или максимум для значений канала (см. B.1.6)
RelativeMode - определяет, что значения X и Y соотносятся со значениями Org_X и Org_Y, либо с абсолютной декартовой системой координат биометрического датчика подписи.
DataTransferSupported - в случае истины биометрический датчик подписи поддерживает вызовы функции BioSFPI_DataTransfer.
GetPacketsSupported - в случае истины биометрический датчик подписи поддерживает вызовы функции BioSFPI_GetPackets.
BDBFormatsSupportedList - указатель на список пары (владелец формата и тип формата, определяющие форматы ББД).
NumberOfElements - число элементов в BDBFormatsSupportedList.
EstimatedDataRate - среднее число килобит в секунду от устройства между активацией и последующей деактивацией такого интерфейса. Если значение данного параметра 0, то информация отсутствует.
MaxPacketsPerSecond - предоставляет максимальное число пакетов в секунду, которое BioAPI_Unit может создать. Данный параметр помогает ПБУ обеспечить эффективное управление памятью (например, множественные буферы). Если значение данного параметра 0, то информация отсутствует.
MaxFramesPerSecond - максимальное число фреймов в секунду, которое BioAPI_Unit может создать в потоковом режиме (при помощи BioSFPI_DataTransfer). Если значение данного параметра 0, то информация отсутствует.
SuggestedMemoryFor TransferSize - предоставляет ПФC наиболее точную оценку оптимального количества памяти для передачи посредством функций BioSFPI_GetPackets или BioSFPI_DataTransfer потоковых данных.
B.6 Функции биометрического датчика подписи
B.6.1 Функция BioSFPI_GetSignatureParameters
BioAPI_RETURN BioAPI BioSFPI_GetSignatureParameters
(BioAPI_UNIT_ID UnitId,
uint32_t *Org_X;
uint32_t *Org_Y;
uint32_t *Org_Z;
uint32_t *Ext_X;
uint32_t *Ext_Y;
uint32_t *Ext_Z;
uint32_t *SampleRate;
uint16_t *ChannelInclusion;
Boolean *RelativeMode);
Описание
Данная функция используется для извлечения фактических параметров биометрического датчика подписи. Все параметры, которые не поддерживаются модулем BioAPI_Unit или ПФБД, устанавливаются на ноль.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, к которому обращаются для установки параметров сбора биометрических данных.
Org_X (выходной) - указатель для получения начала оси X.
Org_Y (выходной) - указатель для получения начала оси Y.
Org_Z (выходной) - указатель для получения начала оси Z.
Ext_X (выходной) - указатель для получения протяженности оси X.
Ext_Y (выходной) - указатель для получения протяженности оси Y.
Ext_Z (выходной) - указатель для получения протяженности оси Z.
SampleRate (выходной) - указатель для получения частоты отбора образцов.
ChannelInclusion (выходной) - указатель для получения полей использования каналов из биометрического датчика подписи.
RelativeMode (выходной) - указатель для получения соответствующего режима, используемого биометрическим датчиком подписи.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
B.6.2 Функция BioSFPI_SetSignatureParameters
BioAPI_RETURN BioAPI BioSFPI_SetSignatureParameters
BioAPI_UNIT_ID UnitId,
uint32_t Org_X;
uint32_t Org_Y;
uint32_t Org_Z;
uint32_t End_X;
uint32_t End_Y;
uint32_t End_Z;
uint32_t SampleRate;
uint16_t ChannelInclusion;
Boolean RelativeMode);
Описание
Данная функция используется для установки фактических параметров биометрического датчика подписи. Все параметры, которые не поддерживаются BioAPI_Unit или ПФБД, не будут учтены.
Не существует каких-либо требований, чтобы значение ИД модуля, предоставляемого ПБУ в качестве входного к данной функции, совпадало со значением ИД модуля, который инфраструктура предоставляет ПБУ в исходном вызове функции BioSPI_BSPAttach при условии, что два значения ИД модуля определяют один и тот же модуль BioAPI (8.2.4).
Параметры
UnitId (входной) - ИД модуля BioAPI, к которому обращаются для установки параметров сбора биометрических данных.
Org_X (входной) - устанавливает начало оси X. Если устанавливаемое начало оси X отличается от значения по умолчанию биометрического датчика подписи и новое начало оси X не поддерживается биометрическим датчиком подписи, вызов функции будет возвращен с BioAPIERR_FUNCTION_NOT_SUPPORTED.
Org_Y (входной) - устанавливает начало оси Y. Если устанавливаемое начало оси Y отличается от значения по умолчанию биометрического датчика подписи и новое начало оси Y не поддерживается биометрическим датчиком подписи, вызов функции будет возвращен с BioAPIERR_FUNCTION_NOT_SUPPORTED.
Org_Z (входной) - устанавливает начало оси Z. Если устанавливаемое начало оси Z отличается от значения по умолчанию биометрического датчика подписи, и новое начало оси Z не поддерживается биометрическим датчиком подписи, вызов функции будет возвращен с BioAPIERR_FUNCTION_NOT_SUPPORTED.
Ext_X (входной) - устанавливает протяженность оси X. Если устанавливаемое начало протяженности X отличается от значения по умолчанию биометрического датчика подписи и новое начало протяженности X не поддерживается биометрическим датчиком подписи, то вызов функции будет возвращен с BioAPIERR_FUNCTION_ NOT_SUPPORTED.
Ext_Y (входной) - устанавливает протяженность оси Y. Если устанавливаемое начало протяженности Y отличается от значения по умолчанию биометрического датчика подписи и новое начало протяженности Y не поддерживается биометрическим датчиком подписи, то вызов функции будет возвращен с BioAPIERR_FUNCTION_ NOT_SUPPORTED.
Ext_Z (входной) - устанавливает протяженность оси Z. Если устанавливаемая протяженность оси Z отличается от значения по умолчанию биометрического датчика подписи и новое начало протяженности Z не поддерживается биометрическим датчиком подписи, то вызов функции будет возвращен с BioAPIERR_FUNCTION_NOT_ SUPPORTED.
SampleRate (входной) - устанавливает частоту отбора образцов. Если устанавливаемая частота отбора образцов отличается от значения по умолчанию и новая частота отбора образцов не поддерживается биометрическим датчиком подписи, вызов функции будет возвращен с BioAPIERR_FUNCTION_NOT_SUPPORTED.
ChannelInclusion (входной) - устанавливает поле "Наличие каналов" (Сhannel inclusion). Если устанавливаемое поле "Наличие каналов" (Сhannel inclusion) отличается от значения по умолчанию и новое поле "Наличие каналов" (Сhannel inclusion) не поддерживается биометрическим датчиком, вызов функции будет возвращен с BioAPIERR_FUNCTION_NOT_SUPPORTED.
RelativeMode (входной) - устанавливает соответствующий режим для использования биометрического датчика подписи. Если устанавливаемый соответствующий режим отличается от значения по умолчанию и новый соответствующий режим не поддерживается биометрическим датчиком подписи, вызов функции будет возвращен с BioAPIERR_FUNCTION_NOT_SUPPORTED.
Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
Ошибки
BioAPIERR_FUNCTION_NOT_SUPPORTED
Приложение C (справочное). Получение биометрических данных посредством ИПФБД
Приложение C
(справочное)
C.1 Общая функциональность
C.1.1 ПФБД поддерживает один из двух методов получения данных от BioAPI_Unit. Первый метод заключается в принятии ББД фиксированной длины, которые передаются сразу же или в пакетах. Второй метод подразумевает использование потоковых данных. Существует три способа, при помощи которых ПБУ может получить данные от биометрического датчика. В любом случае возвращенные данные обозначаются как ББД. Все форматы ББД, которые разрешены ПФБД для возврата, должны быть зарегистрированы в документе ИСО/МЭК СТК 1 ПК 37 СД 9. Зарегистрированные ББД могут быть любого типа данных, включая потоковые данные.
C.1.2 Первый аспект - использование BioSFPI_GetPackets. В данном случае ПБУ распределяет память для инфраструктуры BioAPI_DATA и устанавливает запрашиваемый формат ББД. ПФБД заполняет память ББД и возвращает их в качестве ответа на вызов функции. Память освобождается ПБУ, как только отпадает необходимость в памяти. ПБУ может либо проверить возвращенное содержание памяти на законченность данного ББД, либо, в случае неуверенности, периодически вызывать BioSFPI_GetPackets до тех пор, пока нулевой блок не выявит конец ББД в предыдущем вызове.
C.1.3 Второй аспект - использование ББД нефиксированной длины, состоящий из частей, передаваемых пакетами. Примерами данного метода могут служить биометрический сканер подписи (планшет для подписи) или биометрический сканер отпечатков пальцев. В указанных случаях ПБУ распределяет память для инфраструктуры BioAPI_DATA, устанавливает требуемый формат ББД и вызывает BioSFPI_GetPackets.
Впоследствии функции BioSFPI_GetPackets будут вызываться периодически до тех пор, пока ПФБД не возвратит блок NULL для обозначения конца ББД либо пока ПБУ, приняв достаточное количество пакетов, не примет решение остановиться. Контроль памяти осуществляется ПБУ.
C.1.4 Третий аспект заключается в создании ПБУ потока и передаче идентификационных данных через функцию BioSFPI_DataTransfer в ПФБД. В этом случае ПФБД заполняет идентифицированный поток доступными данными, которые будут асинхронно очищены ПБУ. Указанная форма передачи данных применяется в случаях, когда ПБУ отменяет поток. Данный механизм основывается на потоковой функциональности, которая предоставляется системным интегратором.
C.1.5 Все указанные области взаимодействия могут поддерживать ситуации, при которых биометрический датчик получает данные из модуля, который производит запись реальной деятельности. Если поток данных блокируется, данные о такой деятельности, подлежащие буферизации в ПФБД, будут утеряны.
Примечание - ПФБ может поддерживать множество устройств, и, следовательно, несколько независимых поступлений параметров передачи данных.
C.1.6 Примерами устройств, которые могут использовать указанные механизмы, является ПФД, поддерживающий видеокамеру или перо подписи/написания на планшете (не биометрический пример - движения координационно-указательного устройства (мыши)).
C.1.7 Биометрический датчик будет создавать данные по некоторой ожидаемой скорости (для любого модуля/устройства, которые он поддерживает), возможно, с некоторым средним отклонением изменения от ожидаемой скорости.
C.1.8 BioSFPI_Pause, выпущенная BioSFPI_Play, может быть использована для передачи биометрическому датчику информации о том, что надо прекратить передачу данных (в случае, если указанные функции не поддерживаются ПФД) для определенного модуля. Даже если реальная деятельность для данного модуля продолжает выполняться, она не будет больше записываться таким биометрическим датчиком между вызовом функций BioSFPI_Pause и BioSFPI_Play к такому модулю.
C.1.9 Данные передаются через интерфейс в ПБУ, который использует их многими возможными способами, но в целом сохраняет поддержку их дальнейшей обработки по ожидаемой скорости передачи данных (см. C.4).
C.1.10 Требования для ИПФБД по передаче данных заключаются в том, что он не должен производить блокировку потока данных от модуля через биометрический датчик к ПБУ. Для этого используется любой из механизмов, определенный в C.1.1-C.1.5.
C.2 Основные принципы интерфейсов передачи данных
Описание не требуется, так как вся механика описана в вызовах функции.
C.3 Управление памятью
C.3.1 Контроль и управление памятью относится к ПБУ. ПБУ получает соответствующую информацию о размерах памяти, которую использует модуль BioAPI_Unit, посредством восстановления параметра UnitPropertySchema после установления сессии присоединения. Распределенная ПБУ память будет передана в ПФБД в вызовах функций BioSFPI_DataTransfer и BioSFPI_GetPackets.
C.3.2 ПФБД использует указанную память в качестве рабочей памяти, при этом производя ББД в начале такой памяти и возвращая размер пакета в параметре вызова функции BioSFPI_GetPackets, либо копирует ББД из рабочей памяти в контролируемый ПБУ блок памяти. Очевидно, что второй способ менее производителен, чем первый.
C.3.3 Очистка памяти после того, как в ней отпала необходимость, относится к задачам ПБУ.
C.4 Параметры, формирующие интерфейс
C.4.1 Существуют два типа параметров для функции BioSFPI_UnitImagePropertySchema и BioSFPI_UnitSignaturePropertySchema, которые предоставляют информацию о характеристиках данных биометрических датчиков. Биометрический датчик обеспечивает данной информацией каждый поддерживаемый им модуль.
C.4.2 Существуют 32-битные числа, которые могут быть установлены на ноль для обозначения "Отсутствует значение" (No value available).
C.4.3 К первому типу параметров относятся параметры, предназначенные для оценки скорости передачи данных (EstimatedDataRate, MaxPacketsPerSecond, MaxFramesPerSecond). EstimatedDataRate является предоставляемой BioAPI_Unit оценкой количества килобайтов в секунду, которые производятся модулями в период между активацией и последующей деактивацией указанного интерфейса.
C.4.4 Второй тип параметров - SuggestedMemoryForTransferSize. Определяет число байтов, которые предлагаются ПБУ для размера памяти (предоставляемой ПБУ), которая будет использоваться в функции BioSFPI_Get-Packets для передачи пакетов через интерфейс к указанному модулю.
C.4.5 Третий тип параметров - вызов функции BioSFPI_GetPacket или TransferData или установление потока для заданного модуля, описание которого приведено в C.1.
C.5 Опции выполнения для использования интерфейса передачи данных
C.5.1 Если используется функция BioSFPI_GetPackets, существует вероятность того, что ПБУ (не в случае, если был сигнал "Последний пакет" ()) незамедлительно осуществит новый вызов функции BioSFPI_GetPackets к ПФC о заданном модуле.
C.5.2 Вышеописанное может быть выполнено либо путем опустошения пакета от инфраструктуры BioAPI_ DATA, либо путем предоставления новой позиции памяти для BioAPI_DATA.
C.5.3 Это обеспечивает ряд стратегий как для ПБУ, так и для ПФC.
C.5.4 Если ПБУ решит распределить память для нескольких пакетов, тогда при возврате от функции BioSFPI_GetPackets он просто изменит указатель для BioAPI_DATA и осуществит следующий вызов функции BioSF-PI_GetPackets. Это является наиболее быстрым из возможных ответов функции.
C.5.5 Он может обработать данные в инфраструктуре BioAPI_DATA (до возвращенного параметра PacketLength) и не предпринимать никаких действий по изменению положения BioAPI_DATA до следующего вызова BioSFPI_GetPackets.
C.5.6 ПФД помещает сколько ему необходимо данных (в зависимости от длины в BioAPI_DATA) в соответствующую структуру BioAPI_DATA и возвращает параметр PacketLength.
C.5.7 Любые данные, созданные биометрическим датчиком для заданного модуля в период между возвратом от функции BioSFPI_GetPacket до следующего вызова функции BioSFPI_GetPacket, должны быть либо сохранены в датчике либо отброшены.
C.5.8 Если используется поток, то наблюдается зависимость потока данных от поддержки определенного для платформы механизма.
Приложение ДА (справочное). Сведения о соответствии ссылочных международных стандартов национальным стандартам Российской Федерации
Приложение ДА
(справочное)
Таблица ДА.1
Обозначение ссылочного международного стандарта | Степень соответствия | Обозначение и наименование соответствующего национального стандарта |
ИСО/МЭК 19784-1 | IDT | ГОСТ Р ИСО/МЭК 19784-1-2007 "Автоматическая идентификация. Идентификация биометрическая. Биометрический программный интерфейс. Часть 1. Спецификация биометрического программного интерфейса" |
ИСО/МЭК 19794-7 | IDT | ГОСТ Р ИСО/МЭК 19794-7-2009 "Автоматическая идентификация. Идентификация биометрическая. Форматы обмена биометрическими данными. Часть 7. Данные динамики подписи" |
Примечание - В настоящей таблице использовано следующее условное обозначение степени соответствия стандартов: |
Библиография
[1] | ISO/IEC 9834-8 | Information technology - Open Systems Interconnection - Procedures for the operation of OSI Registration Authorities: Generation and registration of Universally Unique Identiiers (UUIDs) and their use as ASN.1 Object Identiier components |
[2] | ISO/IEC SC 37 | Standing Document 9 (SD 9) Information technology - Register of SC37 CBEFF RA namespaces |
УДК 004.93'1:006.354 | ОКС 35.040 | |
Ключевые слова: информационные технологии, биометрия, биометрический датчик, поставщик функции биометрического датчика, интерфейс поставщика функции биометрического датчика |
Электронный текст документа
и сверен по:
официальное издание
М.: Стандартинформ, 2016