Programmers Guide (en)
Programmers Guide (en)
Programmers Guide
RGVI.01.01.00 MZ
Regula 2024
Contents
CONTENTS
CONTENTS ..................................................................................................................................................................... 3
LIST OF ABBREVIATIONS ......................................................................................................................................... 9
INTRODUCTION ........................................................................................................................................................ 10
MINIMUM SYSTEM REQUIREMENTS ................................................................................................................. 11
1. SDK STRUCTURE .................................................................................................................................................. 12
2. SDK PERFORMANCE CAPABILITIES ............................................................................................................. 15
3. SDK INSTALLATION AND USE ....................................................................................................................... 16
4. HOW TO WORK WITH DOCUMENT READER ............................................................................................. 17
4.1. GENERAL INFORMATION ........................................................................................................................................ 17
4.2. WORKING WITH MCL ........................................................................................................................................... 18
4.3.DOCUMENT READER CONNECTION AND DISCONNECTION............................................................................................... 20
4.4.DETERMINING DOCUMENT READER’S PERFORMANCE CAPABILITIES ................................................................................... 22
4.5.CALIBRATION PROCEDURE........................................................................................................................................... 23
4.6.DATA SCANNING AND PROCESSING ............................................................................................................................. 25
4.6.1. Data Representation and Storing........................................................................................................ 25
4.6.2. Document Scanning and Obtaining Image Processing Results ...................................................... 25
4.6.3. Obtaining Results through Direct Query ........................................................................................... 27
4.6.4. Processing of the User-defined List of Images ................................................................................. 30
4.7.DATA PROCESSING FUNCTIONS AND THEIR APPLICATION DURING SCANNING AND PROCESSING CYCLE ........................................ 31
4.7.1. Obtaining Scanned Images .................................................................................................................. 31
4.7.2. Document Localization on Image ....................................................................................................... 32
4.7.3. Reading and Quality Control of MRZ Printing .................................................................................. 32
4.7.4. Determining Document Type .............................................................................................................. 33
4.7.5. Reading Document Filling Fields......................................................................................................... 36
4.7.6. Reading Bar-codes ................................................................................................................................ 37
4.7.7. Document Authenticity Check ............................................................................................................. 38
4.7.8. Comparative Lexical Analysis of Data ................................................................................................. 38
4.8.ADDITIONAL SETTINGS AND OPTIONS ............................................................................................................................ 39
4.8.1. Control of Document Reader Indicator Light Emitting Diodes (LEDs) .......................................... 39
4.8.2. Accumulator Battery Status when Working with Regula 83x3, 83х4............................................. 39
4.8.3. Control of Working Digital Camera Sensor Mode ............................................................................ 39
4.8.4. Define the Required Size of Images Retrieved by _CheckResult() and _CheckResultFromList()
Function.................................................................................................................................................. 39
4.8.5. Videochip Frequency Divider............................................................................................................... 40
4.8.6. Debug Mode.......................................................................................................................................... 40
4.9.WORKING WITH IRS ................................................................................................................................................... 41
5. SDK TOOLS ............................................................................................................................................................. 42
5.1. EXPORTED FUNCTIONS ........................................................................................................................................... 42
5.1.1. _Initialize() .............................................................................................................................................. 42
5.1.2. _Free() ..................................................................................................................................................... 42
5.1.3. _SetCallbackFunc() ................................................................................................................................ 43
5.1.4. _ExecuteCommand() ............................................................................................................................. 43
5.1.5. _ResultTypeAvailable() .......................................................................................................................... 43
5.1.6. _CheckResult() ....................................................................................................................................... 44
5.1.7. _CheckResultFromList() ........................................................................................................................ 45
5.1.8. _AllocRawImageContainer() ................................................................................................................. 46
LIST OF ABBREVIATIONS
SDK – Software Development Kit
OS – Operating System
INTRODUCTION
The “Programmers Guide” describes the order of the SDK use when developing user appli-
cations for further operation with “Regula” 70x3, 70x4, 70x7, 70x8, 4820, 83x3, 83x4, 8307
devices (see corresponding User’s Guide for interpretation of “x” symbols).
1. SDK STRUCTURE
\ProgramData\Regula\Document Reader SDK\:
RegulaReader.ini – SDK configuration file;
For SDK x86 - \Windows\SysWOW64\
For SDK x64 - \Windows\System32\
borlndmm.dll
cc32240mt.dll
libiomp5md.dll
ipp*7.0.dll
libeay32.dll
libcrypto-1_1.dll (or
libcrypto-1_1-x64.dll
for SDK x64)
libssl-1_1.dll (or
libssl-1_1-x64.dll
for SDK x64) – system libraries;
ssleay32.dll
opencv_*453.dll
rtl260.bpl
vcl260.bpl
vclimg260.bpl
vclx260.bpl
xmlrtl260.bpl
WltRS.dll (for SDK
x86)
mpir.dll
\Program Files\Regula\Drivers\ – device drivers;
BiolinkFPR.dll (installed
only with the ThirdParty
component in the SDK)
Bsdk6x.dll (installed – service libraries (Biolink sсaner support);
only with the ThirdParty
component in the SDK)
\Program Files\Regula\:
RegulaQS.url – link to Regula Quick Support;
\Program Files\Regula\Samples\Include\:
ATTENTION! Installation must be carried out by the OS user with the administrative rights.
Connect the device to an empty USB slot. The OS will report a new device and activate the
driver. If the system asks for location of some driver components it is necessary to specify
the path to \Program Files\Regula\Drivers\ or the corresponding folder of the in-
stallation media. If the driver activation is successful the LED indicator of the device state
will become orange (see User’s Guide).
The path to PasspR40.dll library is registered during the SDK installation in the Registry, in
Path string value of HKEY_LOCAL_MACHINE\SOFTWARE\Regula\ Document Reader SDK
key. SDK version number is noted in the Version string value of the same key.
As a result of MCL functioning, it stores some necessary data (calibration data, configura-
tion files, debug mode log files) inside directory \Users\[User Name]\AppData\Lo-
cal\Regula\Document Reader SDK.
The SDK tools support operation with the entire above mentioned document reader types
in full measure.
Documents readers may be equipped with a RFID-chip reader which must be operated
according to the RFID-chip reader SDK.
The functions operation is organized taking into account possible use of multithreaded
data processing. Call of any library function (with minor exceptions) may be done from dif-
ferent user application threads. This allows scanning and processing data in background
mode, leaving the main interface of the program free for operation.
PasspR40.dll library is developed for dynamic connection with the help of Windows API
LoadLibrary() function. Pointers to exported functions may be obtained with the help
of Windows API GetProcAddress() function.
After loading the library into memory it is necessary to execute _Initialize() initializa-
tion function. This function initializes system resources necessary for further operation,
searches and creates the list of all the document readers connected to the PC at a certain
moment of time.
The execution of all the commands by the control library is done synchronously. It means
that by the time of return from the _ExecuteCommand() to the user application the re-
quested action is complete and all the possible command execution results are obtained
and are valid.
To get detailed information on the actions taking place during the command execu-
tion, the callback-function mechanism is used. With the help of _SetCallback-
Func() exported function the user can initialize a pointer to a user application func-
tion of NotifyFunc type, that will be called at different stages of a command execu-
tion with providing event code and additional information in the context of the given
event. The _ExecuteCommand() function calling inside callback-function will block
The requested results of data scanning and processing are returned to the user application
through another callback-function having ResultReceivingFunc type which is also set
by calling _SetCallbackFunc().
All the results obtained during the latest document scanning cycle and subsequent pro-
cessing of retrieved images remain available for reading through _CheckResult() and
_CheckResultFromList() functions call up to the moment of beginning of the next
scanning cycle. It allows the applications developed in programming environments with
objective restrictions in operation with complex data types to gain access to the results us-
ing the simplified mechanism of data transfer (through clipboard, through a file, as text, in
XML or JSON format etc.).
After finishing working with MCL, it is necessary to call _Free() function and unload
the library from memory with the help of Windows API FreeLibrary() function.
SDK MCL can operate with any number of readers connected to the PC, but only one
reader at a time can be available for processing.
The corresponding index number in the general list is given to each separate device as an identi-
fier. To get the index of the currently active device RPRM_Command_Device_ActiveIndex com-
mand is used.
As document readers are USB-devices and can be connected to and disconnected from the
PC at any time, the list of connected devices may be out of date. To refresh this list
RPRM_Command_Device_RefreshList command is used. Unlike the procedure of
searching connected devices while executing _Initialize() function, this command
only checks the presence of devices from the list created before and if a device had been
disconnected it is removed from the list. To detect newly connected devices it is necessary
to reinitialize the MCL – to call sequentially _Free()/_Initialize().
All the reading commands and all messages about document getting into the reader work-
ing area will concern only the currently active device.
In case device calibration information is not available on PC, it is downloaded from device.
This process is indicated by call of NotifyFunc callback-function with RPRM_Notifica-
tion_DownloadingCalibrationInfo message code with the parameter containing
the calibration download progress value in percent.
To switch between readers the user application must first disconnect the current de-
vice by RPRM_Command_Device_Disconnect command and then execute
RPRM_Command_Device_Connect for another reader.
One of the stages of document reader connection is determining the set of image obtain-
ing and data processing functions available while working with this device.
Bit combination of flags that determines data processing performance capabilities for the active
reader may be obtained with the help of RPRM_Command_Options_GetSDKCapabilities com-
mand.
The set of image obtaining functions is determined by available reader lighting schemes.
To get the full list of them list of lighting schemes for scanning query commands are used.
While connecting the reader this list is filled with default values which are identifiers for all
available lighting schemes. For forced filling of the list with default values RPRM_Com-
mand_Device_Light_ScanList_Default command is used. To get the number of
elements in the list RPRM_Command_Device_Light_ScanList_Count command is
used. To get the value of an element of the list RPRM_Command_Device_Light_Scan-
List_Item command is used.
Thus, immediately after connecting the document reader, the user application must poll
the list of lighting schemes for scanning to get the full set of available lighting schemes.
In further operation, only these values may be specified for scanning, any other lighting
schemes identifiers will be ignored.
Calibration procedure is the most important stage in getting the document reader ready
for operation. It serves for determining the necessary parameters of digital camera opera-
tion (gain, exposure, white light balance) for each lighting scheme and prepares the data
which will be used for compensation of geometric distortions, lighting unevenness and color
balance in obtained images.
At the first stage of calibration the necessary digital camera parameters will be determined
for each lighting scheme – the device will sequentially turn on the corresponding lighters.
First, the full scanning cycle of a blank (white) test object will be performed, the images of
which will be used for compensation of lighting unevenness and color balance. After this,
the full scanning cycle of a chess board test object will be performed, the images of which
are necessary for compensation of geometric distortions.
The set of lighting schemes for calibration is determined by the default list of lighting
schemes for scanning.
The beginning and the end of the calibration procedure is indicated by call of NotifyFunc
callback-function with RPRM_Notification_Calibration message code with false pa-
rameter and true parameter correspondingly.
To give the user possibility to put into device test-object it is necessary to use NotifyFunc
call-back function with RPRM_Notification_CalibrationStep notification. The pa-
rameter keeps the stage of the calibration process:
0 – it is necessary to put inside test-object #1 (white);
1 – it is necessary to put inside test-object #2 (chess board).
Calibration data is saved into device memory and to disk in the following folder \Us-
ers\[User Name]\AppData\Local\Regula\Document Reader SDK \Calibra-
tion.
For storing different types of MCL operation results there is a set of the corresponding
data structures. Each of them may be placed in TResultContainer in order to be passed
to the user application.
The result data obtained in one scanning and data processing cycle are retained after re-
turn from _ExecuteCommand() function up to the moment of its next call for execution
of RPRM_Command_Process or RPRM_Command_ProcessImagesList command.
Before launching the cycle of image scanning and processing the following actions should
be taken:
• determine the data set which must be obtained as result;
• determine the set of lighting schemes for which it is necessary to obtain scanned
images of the document (if the corresponding type of the requested result –
RPRM_GetImage_Modes_GetImages is chosen);
• to obtain image for UV lighting scheme set the value of scanning exposure for it;
• for readers with Direct Show control set the value of scanning delay for switching between
lighting schemes (if it is necessary);
• if the set of the requested data includes MRZ filling quality check result
(RPRM_GetImage_Modes_OCR_TestMRZQuality) set the parameters of checking proce-
dure.
The set of the requested results is formed by the logical combination (OR operation) of values
from eRPRM_GetImage_Modes enumeration and is passed as RPRM_Command_Process com-
mand parameter. Only those chosen by this method results will be passed to the user ap-
plication during the command execution.
The set of the necessary lighting schemes is formed by filling the list of lighting schemes for
scanning.
In addition to lighting scheme, optional parameters for “Smart UV” processing and “Glare
compensation” can be set. This is done by calling RPRM_Command_Op-
tions_Set_SmartUV and RPRM_Command_Options_Set_GlareCompensation
commands respectively.
If the user application set ResultReceivingFunc callback-function for getting results it will be
called as scanning results are formed and the images are processed. As parameter this function
gets pointer to TResultContainer structure containing data of result of different types.
In the process of performing a cycle of scanning and data processing it is possible that
NotifyFunc callback-function will be called for passing informational messages to the
user application.
The beginning and the end of the image scanning is indicated by appearance of RPRM_No-
tification_Scanning message with false parameter at the beginning and true at the
end of the procedure.
The beginning and the end of the image processing is indicated by appearance of
RPRM_Notification_Proccessing message with false parameter at the beginning and
true at the end of the procedure.
To use the additional method of getting data reading results the following MCL exported
functions are used: _ResultTypeAvailable(), _CheckResult() and _CheckRe-
sultFromList().
the results using simple standard data types (Windows DIB, text) and data exchanging
methods (through clipboard, through file);
• for getting additional image processing results (for example, RPRM_Re-
sultType_ChosenDocumentTypeCandidate).
The total number (and correspondingly – the availability) of results of certain type formed
during the last scanning and data processing cycle is returned by _ResultTypeAvaila-
ble() function.
As input parameters _CheckResult() accepts the type of requested data (one of the
eRPRM_ResultType values in the type function parameter), index of the object in the
general list of available results of the requested type (idx parameter), format and mecha-
nism of data passing (OR-combination of eRPRM_OutputFormat values in the output
function parameter) and data passing parameters (param parameter, in the context
of output value).
In the first case param function parameter is ignored. In the second case it must contain
a pointer to the character string containing the filename. Writing format will correspond to
the currently set format of writing graphic files.
Thus, to get the contents of all text and graphic fields contained in list structures:
• call _CheckResult() specifying the corresponding requested result type;
• using the received result descriptor, call _CheckResultFromList() till the end of
the list is reached (RPRM_ResultStatus_EndOfList return code).
After the return from _CheckResultFromList(), the requested data are either placed in
the clipboard or written into a file with specified filename.
By default only previously obtained images from currently connected reader can be pro-
cessed. The RPRM_Capabilities_ProcessImages capability that allows processing
images from other sources is added to reader by separate request.
In order for this command to be executed successfully all the passed images must be raw
(not processed). This is achieved by obtaining them in the scanning cycle without specify-
ing any additional processing functions except RPRM_GetImage_Modes_GetImages.
In this case, images obtained in the container with RPRM_ResultType_RawImage
type will be the only result of performing the scanning cycle.
There are two SDK MCL exported functions responsible for correct memory allocation
for storing images as TRawImageContainer and for freeing this memory. They are
_AllocRawImageContainer() and _FreeRawImageContainer() functions cor-
respondingly. While creating a copy of obtained data for further use in RPRM_Com-
mand_ProcessImagesList command it is recommended that the user application
operate by these service functions for correct memory allocation.
As it was stated above, the set of image obtaining and data processing data functions
available when working with the document reader is determined at the stage of the device
connection.
Bit combination of flags that determines data processing performance capabilities for the active
reader may be obtained with the help of RPRM_Command_Options_GetSDKCapabilities
command.
The set of actions which must be taken in the process of data scanning and processing and,
correspondingly, the set of result data of these actions requested by the user application
is determined by RPRM_Command_Process (or RPRM_Command_ProcessImagesList) com-
mand parameter.
The description of each stage of obtaining and processing data in chronological order of
scanning cycle procedure is given below.
The set of lighting schemes for which images must be obtained is determined by the
content of the list of lighting schemes for scanning. Each of the corresponding images
will be represented as TRawImageContainer data structure and passed through
ResultReceivingFunc callback-function or may be obtained through call of
_CheckResult().
Besides lighting schemes specified in the list, images for lighting schemes which are not
included in the list may be required for execution of the declared processing functions. In
this case, they will be obtained but will not be included in the set of the formed results for
passing to the user application. The beginning and the end of the basic scanning is indi-
cated by RPRM_Notification_Scanning message (with false parameter at the beginning of
the scanning and true at the end of it).
The list of lighting schemes necessary for scanning may also be made precise after de-
termining the document type procedure. In this case the necessary images will be ob-
tained by additional scanning, after which the user application will receive RPRM_Noti-
fication_DocumentCanBeRemoved message. Receiving this very message indicates
that the document may be removed from the reader. Before this moment the presence of
a fixed document in the reader is obligatory.
Document images obtained during the further processing (cropped along the document bor-
der with lighting unevenness and color balance compensated) will be passed to the user appli-
cation after RPRM_Command_Process (or RPRM_Command_ProcessImagesList)
command is executed. The result type for these images will be set in RPRM_Re-
sultType_RawImage.
After the document borders are found, the additional analysis of the document format is
performed (according to ISO/IEC 7810). According to its results, additional rotation of the
image is possible.
After reading MRZ, depending on its location, additional rotation of the images is
possible.
MRZ text filling validity is determined in accordance with ICAO 9303 for machine readable
documents.
The text printing quality of the MRZ is checked in accordance with ISO 1831:1980 “Printing
Specifications for Optical Character Recognition”.
Determining the document type is based on the information stored in the documents da-
tabase which is included in the SDK and is copied to disk during SDK installation. The data-
base is located in \<installation folder_SDK>\Data\ by default.
Data on the document type contain different information including the set of necessary
lighting schemes for further document filling fields reading operations and document au-
thentication. On the basis of this data image obtaining by additional scanning is performed
(see paragraph 6.7.1).
1. STANDARD MODE. In this mode the document type is determined automatically by analy-
sis of the obtained document images and only on the basis of data from the documents
database.
Information on the found candidates for the required document type is passed in the
result parameter of ResultReceivingFunc callback-function as
TCandidatesListContainer list.
The user application must choose one of the candidates and place its identifier
(the value of ID field of TOneCandidate structure) into the returning parameter
of PostActionParameter callback-function. Another returning parameter –
PostAction – must contain RPRM_PostCalbackAction_ProcessCandidate value.
2. USER MODE. In this mode the document type is determined by the user application pri-
vately. This is possible if it, for example, has its own algorithm based on the analysis of
images (RPRM_ResultType_RawImage) obtained at the very beginning of the current
scanning and processing cycle.
In this mode, ResultReceivingFunc is called with an empty result parameter and the
user application must fill PostAction and PostActionParameter by its own with cer-
tain values with the same meaning as in the standard mode.
Here the specific thing is that document type identifier placed to PostActionParameter
must be the actual identifier of the document information on which is contained in the
documents database.
Thus, there must be some mechanism allowing the user application to establish corre-
spondence between the document type determined by private algorithm and a definite
document type described in the existing database.
One of the steps to establish such correspondence is to get information about all the doc-
ument types contained in the database. This is realized through calling RPRM_Com-
mand_Get_DocumentsInfoList command. The received list TListDocsInfo
contains array of elements TOCRDocInfo, each of which correspond to one regis-
tered document type.
Besides text title of the document, its format and other additional information,
TOCRDocInfo structure contains two identifiers: one – DocID – is numeric, the other –
DocTxtID – symbolic. Numeric identifier serves for specifying the document type when
returning from ResultReceivingFunc (in PostActionParameter parameter) and is
generated automatically when a new document description record is placed into the data
base. Symbolic identifier may be defined manually and may contain some additional infor-
mation (for example, some internal identifier), that allows to find connection between this
document type and the data used by the user application when privately determining the
document type.
Thus, after determining the document type on the basis of raw images and having its inter-
nal identifier, the user application may search it among all the documents of the database,
get the corresponding numeric identifier and use it for choosing the document type when
returning from callback-function.
3. MANUAL MODE. In this mode the document type which must be chosen for further data
reading operations is determined by setting a certain value of the symbolic identifier
(DocTxtID field of TOCRDocInfo structure).
In this case, if the current document type identifier is not found in the database, the execu-
tion of RPRM_Command_Process (or RPRM_Command_ProcessImagesList) command will
be stopped and the user information will receive RPRM_Notification_Error message with
RPRM_Error_CantRecognizeDocumentType code.
Manual mode has the highest priority among the modes of determining the document
type. It means that if the current document type symbolic identifier is not empty, the
search of the document type in the database will be performed only according to it.
To switch to standard or user mode set the text identifier empty using RPRM_Command_Op-
tions_Set_CurrentDocumentType command.
In this case, command execution will be stopped and _ExecuteCommand() will return
RPRM_Error_IncompleteImagesList error code.
To continue work it is necessary to get information on the document type which was de-
termined on the basis of analysis of the current images list with the help of _CheckRe-
sult() call requesting RPRM_ResultType_ChosenDocumentTypeCandidate type result.
TOneCandidate returned data structure will contain information on the necessary light-
ing schemes in NecessaryLights field. After this it is necessary to make the content of
list of lighting schemes for scanning precise, perform the scanning cycle to obtain the nec-
essary raw images and execute RPRM_Command_ProcessImagesList command with the
updated list of images.
The set and the properties of the readable document filling fields are determined on the
basis of the information for the chosen document type stored in the documents database.
In the case when the document type is not determined, data reading from the document
filling text fields is not carried out.
If the document geometric format determined at the stage of localization of the document
on the image corresponds to the ID3 document format but the document type is not de-
termined, selection of the photograph area according to the coordinates defined in
Doc 9303 ICAO document takes place. In this case, RPRM_ResultType_Graphics type
result will contain one graphic field.
The results are passed to the user application as structures of four different types:
• TDocBarCodeInfo (result type RPRM_ResultType_BarCodes), containing the full
set of bar-codes data in binary format;
• TDocVisualExtendedInfo (result type RPRM_ResultType_BarCodes_Text-
Data), containing text data logically divided according to its types;
• TDocGraphicsInfo (result type RPRM_ResultType_BarCodes_ImageData), con-
taining logically divided graphic data;
• Byte array (result type RPRM_ResultType_FingerprintTemplateISO), containing
binary ISO fingerprint template.
If the document type was determined at the earlier stage of document processing, only those
bar-codes for which the corresponding areas of document image are set as filling fields and
information on which is contained in the database will be read.
If the document type wasn’t determined, searching for bar-code areas on the image
and reading data from them will be carried out automatically.
For additional settings of format of bar-code modules readable data (mData array of
TIP_DECODE_MODULE structure) IPDecode.ini configuration file located in the SDK instal-
lation folder is used. ASCII character codes which will be placed in the resultant data array
instead of incorrectly read characters may be specified in its ErrorByteCode and Er-
rorTextCode fields (for bytes and text modules correspondingly).
Document authenticity check is performed on the basis of the processing and analysis of
the obtained document images for different lighting schemes.
MRZ reading text results, document filling areas and bar-code areas obtained during
the last data scanning and processing cycle are used as data for comparing. Data from
a RFID-chip memory may be passed as command parameter as a pointer to
TDocVisualExtendedInfo structure (see Radio Frequency Identification Chip
Reader. Software Development Kit. Programmers Guide).
The default light indication scheme is as follows (only the first indicator – device state –
is used):
• in the process of device connection, calibration and scanning the indicator flashes
orange;
• after a successful connection and after the scanning is complete the indicator turns
on green;
• after the device disconnection the indicator turns on orange.
ATTENTION! If you changed this parameter you must calibrate the device.
The next call of this command with the same value does not need the device calibration.
The necessity to change this parameter is very low. You need to do it if you have got
“shifted” images or get RPRM_Error_ScanAborted result very often. We recommend
increasing this value on 1 till you get images stably.
If you use Windows 7 you must set video chip frequency divider to 1 or more.
Logs containing detailed information about the performed actions will be dumped into de-
bug console. To view debug console output DebugView (Dbgview.exe) application is in-
cluded in SDK.
Additional logs may be enabled by setting registry parameter HKEY_CUR-
RENT_USER\SOFTWARE\Regula\Document Reader SDK\LogToDebugView to 1.
When loading the MCL, searching for the dynamic library of interaction with IRS –
FDS_Dll.dll – which must be present in the IRS installation folder is performed. By de-
fault this search is performed according to the path registered in the process of IRS in-
stallation in HKEY_LOCAL_MACHINE\SOFTWARE\Regula\FDS register key in Path
string value.
For displaying the information on the scanned document in IRS window, it is required to
call _FDSUser_SelectionDocument() procedure by passing to this procedure a three-
letter code of the document issuing country and two-letter document type code and
eFDS_Light lighting type as parameters.
Country and document type codes may be obtained, for example, from the results of reading of
MRZ or document filling area. When calling _FDSUser_SelectionDocument() it is accepta-
ble to specify NULL values for them. In this case, an image will be opened which corre-
sponds to lighting type for the currently selected in the IRS panel document passed in the
third function parameter.
Calling _FDSUser_Disconnect() procedure will disconnect IRS from the user application.
5. SDK TOOLS
5.1. EXPORTED FUNCTIONS
All exported functions are declared with extern “C” specifier.
5.1.1. _Initialize()
Type – typedef long (*_InitializeFunc)(void *lpParams, HWND
hParent)
Symbolic name – _Initialize
Designation: initialize the SDK MCL
Parameters:
lpParams – reserved
hParent – descriptor of user application window which will be parental for
all dialog windows displayed when working with the MCL, or
NULL
Calling this function will initialize all the system resources necessary for further operation,
search and creating the list of all the document readers currently connected to the PC.
5.1.2. _Free()
Type – typedef long (*_FreeFunc)()
Symbolic name – _Free
Designation: deinitialize the SDK MCL
Calling this function will disconnect the currently active document reader and deallo-
cate all of the MCL resources. To continue working with MCL it is necessary to call
_Initialize() again.
5.1.3. _SetCallbackFunc()
Type – typedef void (*_SetCallbackFuncFunc)(ResultReceiving
Func f1, NotifyFunc f2)
Symbolic name – _SetCallbackFunc
Designation: set callback-functions for getting results and
informational messages
There are 2 types of callback functions (user application functions) called from the MCL:
when certain events have been arisen (NotifyFunc) and when the results have been re-
ceived (ResultReceivingFunc).
5.1.4. _ExecuteCommand()
Type – typedef long (*_ExecuteCommandFunc)(long command,
void *params, void *result)
Symbolic name – _ExecuteCommand
Designation: request command execution
Parameters:
command – command code (one of eRPRM_Commands constants)
params – command input parameters
result – a pointer to the result receiving structure
Input parameter and result receiving structure data types are determined from the context
of each given command.
5.1.5. _ResultTypeAvailable()
Type – typedef uint32_t (*_ResultTypeAvailable-
Func)(long type)
Symbolic name – _ResultTypeAvailable
Designation: check the data availability for the requested data type
Parameter
Returned value – the general number of data for the specified type result formed in the
process of the previous data scanning and processing cycle.
5.1.6. _CheckResult()
Type – typedef HANDLE (*_CheckResultFunc)(long type,
long idx, long output, void *param)
Symbolic name – _CheckResult
Designation: obtain containing structure with data processing results of re-
quested type;
additional conversion of data to XML format;
save images and XML data into file
Parameters:
type – requested result type (one of eRPRM_ResultType data repre-
sentation types)
idx – index of the object in the general list of available results of the
requested type
output – additional result representation (OR-combination of
eRPRM_OutputFormat values)
param – parameters in the context of additional result representation value
Returned value: if it is > 0, then it is the descriptor of the structure containing data of the
requested type (TResultContainer *, cast to HANDLE type); if it is < 0, then it is one of
eRPRM_ResultStatus values.
To form additional XML or JSON representation of the returned data structure (also
for RPRM_ResultType_FileImage) it is necessary to specify ofrFormat_XML or
ofrFormat_JSON in type parameter respectively.
5.1.7. _CheckResultFromList()
Type – typedef long (*_CheckResultFromListFunc)(HANDLE
container, long output, void* param)
Symbolic name – _CheckResultFromList
Designation: access to separate fields of result structure which is a list
Parameters:
container – descriptor of the result obtained through _CheckResult()
output – additional result representation (one of eRPRM_OutputFormat)
param – parameter for additional result representation
5.1.8. _AllocRawImageContainer()
Type – typedef long (*_AllocRawImageContainerFunc)(TRaw Im-
ageContainer **cont, long w, long h, long
bits_cnt, long resolution)
Symbolic name – _AllocRawImageContainer
Designation: allocate memory for TRawImageContainer data structure for
storing images with set properties
Parameters:
cont – pointer address in the user application
w – image width in pixels
h – image height in pixels
bits_cnt – number of bits per color
resolution – images resolution (pixels per meter)
5.1.9. _FreeRawImageContainer()
Type – typedef long (*_FreeRawImageContainerFunc)(TRaw
ImageContainer *cont)
Symbolic name – _FreeRawImageContainer
Designation: free memory allocated by _AllocRawImageContainer()
function
Parameter
cont – pointer to the structure
5.1.10. _FDSUser_Connect()
Type – typedef long (*_FDSUser_ConnectFunc)(HWND hWnd)
Symbolic name – _FDSUser_Connect
Designation: connect IRS to the user application
Parameters:
hWnd – descriptor of the user application window in which IRS informa-
tional panels will be displayed
5.1.11. _FDSUser_Disconnect()
Type – typedef long (*_FDSUser_DisconnectFunc)()
Symbolic name – _FDSUser_Disconnect
Designation: disconnect IRS from the user application
5.1.12. _FDSUser_UpdateWindow()
Type – typedef long (*_FDSUser_UpdateWindowFunc)(long w,
long h, long show)
Symbolic name – _FDSUser_UpdateWindow
Designation: set new general sizes for IRS panels and their visibility
Parameters:
w – new width for IRS panels
h – new total height for displayed IRS panels
show – general visibility of IRS panels (“true” or “false”)
5.1.13. _FDSUser_UpdatePanel()
Type – typedef long(*_FDSUser_UpdatePanelFunc)(long panel,
long position, long height)
Symbolic name – _FDSUser_UpdatePanel
Designation: individual control of location, size and visibility of IRS panels
Parameters:
panel – panel identifier (one of eFDS_Panel values)
position – panel location and visibility (one of eFDS_Panel_Position
values)
height – new height of the panel
5.1.14. _FDSUser_SelectDocument()
Type – typedef long (*_FDSUser_SelectDocumentFunc)(char
*CountryCode, char *DocCode, long Light)
Symbolic name – _FDSUser_SelectDocument
Designation: display the document information in IRS panel
DocCode – two-letter code of the document type (the first two characters
in the first MRZ string)
Light – lighting type/security level code which must be activated in IRS
panel (one of eFDS_Light values)
5.1.15. _LibraryVersion()
Type – typedef uint32_t (*_LibraryVersionFunc)()
Symbolic name – _LibraryVersion
Designation: return the SDK MCL version:
HIWORD() – major version number,
LOWORD() – minor version number (for version 5.2 – 5 and 2
correspondingly).
5.2. CALLBACK-FUNCTIONS
Callback-function is a user application function called by the MCL during the opera-
tion process for getting messages about command execution status and changes
in the state of the device and for passing the results of data scanning and pro-
cessing cycle.
SetCallbackFunc(MyResultReceivingFunc, MyNotifyFunc);.
5.2.1. NotifyFunc()
Type – typedef void (__stdcall*NotifyFunc)( intptr_t code,
intptr_t value)
Designation: receive message about command execution status and changes
in the internal state of the library or the device
Parameters:
code – message code (eRPRM_NotificationCodes).
value – value (in the context of the code).
5.2.2. ResultReceivingFunc()
Type – typedef void (__stdcall*ResultReceivingFunc)(TResult
Container *result, uint32_t *PostAction,
uint32_t *PostActionParameter)
Designation: – obtain data scanning and processing results
Parameters:
result – pointer to the structure containing data scanning or processing
results
PostAction – one of eRPRM_PostCalbackAction values, filled by the user
application when returning from the callback-function
struct TResultContainerList
{
uint32_t Count;
TResultContainer *List;
};
Declaration: PasspR.h
Fields:
Count – number of List array elements
List – array of containers for data of different representation types
5.3.2. TResultContainer
TResultContainer structure is used for storing the results formed during the data scan-
ning and processing cycle and passing it to the user application.
struct TResultContainer
{
uint32_t result_type;
uint32_t light;
uint32_t buf_length;
void *buffer;
uint32_t XML_length;
BYTE *XML_buffer;
uint32_t list_idx;
uint32_t page_idx;
};
Declaration: PasspR.h
Fields:
result_type – result type stored in this container (one of eRPRM_ResultType
identifiers)
light – lighting scheme code for the given result (used only for images)
buf_length – size of data structure, which buffer points to
buffer – pointer to the structure containing data reading results. Definite
data type is determined by the value of result_type field
XML_length – XML_buffer array length in bytes
XML_length and XML_buffer fields are initialized only when _CheckResult() function is
called specifying ofrFormat_XML as the requested result type.
5.3.3. TRawImageContainer
TRawImageContainer structure is used for storing a graphic image in Windows DIB for-
mat without compression and passing it to the user application. The corresponding result
type – RPRM_ResultType_RawImage or RPRM_ResultType_RawUncroppedImage.
struct TRawImageContainer
{
BITMAPINFO *bmi;
BYTE *bits;
};
Declaration: PasspR.h
Fields:
bmi – Windows DIB header with 256 colors palette (if the image for-
mat provides for presence of palette)
bits – array of image pixels (with alignment along uint32_t bor-
der)
5.3.4. TDocVisualExtendedInfo
TDocVisualExtendedInfo structure serves for storing text results of MRZ, document filling
and bar-codes reading. Types of result – RPRM_ResultType_MRZ_OCR_Extended, RPRM_Re-
sultType_Visual_OCR_Extended and RPRM_ResultType_BarCodes_TextData cor-
respondingly.
struct TDocVisualExtendedInfo
{
int nFields;
TDocVisualExtendedField *pArrayFields;
};
Declaration: PasspR.h
Fields:
5.3.5. TDocVisualExtendedField
TDocVisualExtendedField structure is a basic for TDocVisualExtendedInfo list
containing structure and serves for storing information from one text data field.
struct TDocVisualExtendedField
{
union
{
int FieldType;
struct
{
WORD wFieldType;
WORD wLCID;
};
};
union
{
RECT FieldRect;
struct
{
long RFID_OriginDG;
long RFID_OriginDGTag;
long RFID_OriginTagEntry;
long RFID_OriginEntryView;
};
};
char FieldName[256];
int StringsCount;
TStringResultSDK *StringsResult;
intBuf_Length;
char *Buf_Text;
char *FieldMask;
int Validity;
int InComparison;
uint32_t Reserved2;
uint32_t Reserved3;
};
Declaration: PasspR.h
Fields:
FieldType – field logical type (one of eVisualFieldType values)
wFieldType – field logical type (one of eVisualFieldType values)
wLCID – ID of language-culture to differentiate one field of the same
type from another
FieldRect – field rectangular area coordinates on the image (for document filling
fields reading results RPRM_ResultType_Visual_OCR_Extended)
RFID_OriginDG – data group – text field source (eRFID_eRFDataGroupTypeTag)
RFID_OriginDGTag – not used (contains 0)
RFID_OriginTagEntry – record index of the text field source in the data group
RFID_OriginEntryView – not used (contains 0)
FieldName – field symbolic name (null-terminated string)
StringsCount – number of StringsResult array elements
StringsResult – array of separate strings of multiline text field recognition results
5.3.6. TStringResultSDK
TStringResultSDK structure describes a result of recognition of one line of the docu-
ment multiline text field.
struct TStringResultSDK
{
uint32_t SymbolsCount;
uint32_t Reserved;
TSymbolResult *StringResult;
};
Declaration: PasspR.h
Fields:
SymbolsCount – number of StringResult array elements
Reserved – for internal use
StringResult – array of separate characters recognition results
5.3.7. TSymbolResult
TSymbolResult structure describes the recognition result of one character from the doc-
ument text field.
struct TSymbolResult
{
RECT SymbolRect;
uint32_t CandidatesCount;
TSymbolCandidate ListOfCandidates[4];
uint32_t Reserved;
};
Declaration: PasspR.h
Fields:
SymbolRect – borders of area occupied by the symbol on the image
CandidatesCount – number of significant elements of ListOfCandidates array
ListOfCandidates – array of candidate symbols. Sorted by descending of probability
of recognition (the first element has the highest probability)
Reserved – not used
5.3.8. TSymbolCandidate
TSymbolCandidate structure describes one candidate for character recognition.
struct TSymbolCandidate
Declaration: PasspR.h
Fields:
SymbolCode – ASCII symbol code
SymbolProbability – symbol recognition probability (0–100, %)
Reserved – not used
5.3.9. TDocGraphicsInfo
TDocGraphicsInfo structure serves for storing graphic results of document filling area
and bar-codes reading. Types of result – RPRM_ResultType_Graphics and RPRM_Re-
sultType_BarCodes_ImageData correspondingly.
struct TDocGraphicsInfo
{
int nFields;
TDocGraphicField *pArrayFields;
};
Declaration: PasspR.h
Fields:
nFields – number of pArrayFields array elements
pArrayFields – array of images
5.3.10. TDocGraphicField
TDocGraphicField structure is a basic containing structure for TDocGraphicsInfo list
and contains information about one graphic field.
struct TDocGraphicField
{
int FieldType;
union
{
RECT FieldRect;
struct
{
long RFID_OriginDG;
long RFID_OriginDGTag;
long RFID_OriginTagEntry;
long RFID_OriginEntryView;
};
};
char FieldName[256];
TRawImageContainer image;
};
Declaration: PasspR.h
Fields:
FieldType – graphic field logical type (one of eGraphicFieldType values)
FieldRect – field area coordinates on the general image (for RPRM_Re-
sultType_Graphics document filling fields reading results)
RFID_OriginDG – data group – image field source (eRFID_eRFDataGroupTypeTag)
OriginDGTag – record index of the source of the image with biometric information
in the datagroup
RFID_OriginTagEntry – index of the sample in the biometric data record
RFID_OriginEntryView – index of the biometric data sample
FieldName – graphic field symbolic name
image – image
5.3.11. TDocMRZTestQuality
TDocMRZTestQuality structure serves for storing the information on document MRZ
printing quality check results. Type of result – RPRM_ResultType_MRZ_TestQuality.
struct TDocMRZTestQuality
{
long DOC_FORMAT;
long MRZ_FORMAT;
long TEXTUAL_FILLING;
long CHECK_SUMS;
long CONTRAST_PRINT;
long STAIN_MRZ;
long PRINT_POSITION;
long SYMBOLS_PARAM;
long StrCount;
TStrEstimation Strings[3];
};
Declaration: PasspR.h
Fields:
DOC_FORMAT – document geometric format according to ISO/IEC 7810 (one of
CDocFormat values)
MRZ_FORMAT – MRZ format according to Doc 9303 ICAO (one of CDocFormat
values)
TEXTUAL_FILLING – estimation of MRZ textual completion accuracy
CHECK_SUMS – estimation of all MRZ checksums accuracy
CONTRAST_PRINT – estimation of MRZ printing contrast
Estimation values for these and all the subordinate data structures (TStrEstimation and
TSymbolEstimation) are set according to eCheckResult.
5.3.12. TStrEstimation
TStrEstimation structure serves for storing information about MRZ individual lines
checks results.
struct TStrEstimation
{
long SymbolsCount;
float StringAngle;
RECT StringBorders;
long STRING_POSITION;
TSingleRect ErrorPOSITION;
long STRINGS_DISTANCE;
float SizeError_DISTANCE;
long STRINGS_INTERVAL;
float SizeError_INTERVAL;
long ALIGNMENT_SYMBOLS_IN_STRING;
float SizeError_ALIGNMENT;
long SYMBOLS_PARAM;
long STRING_FILLING;
long CHECK_SUMS;
long FieldCount;
TTestTextField Fields[12];
TSymbolEstimation SymbolsEstimations[44];
};
Declaration: PasspR.h
Fields:
SymbolsCount – number of processed symbols in the line
StringAngle – line angle in radians (“+” – clockwise, “–“ – counter-
clockwise)
StringBorders – line boundaries
STRING_POSITION – estimation of line position relative to document
edges
ErrorPOSITION – values of line position deviation relative to toler-
ance, mm
STRINGS_DISTANCE – estimation of line spacing
SizeError_DISTANCE – value of exceeding the line spacing tolerance, mm
STRINGS_INTERVAL estimation of line interval
5.3.13. TSingleRect
TSingleRect structure serves for storing information about MRZ line positioning error
value. All values in mm.
struct TSingleRect
{
float Left, Top, Right, Bottom;
};
Declaration: PasspR.h
Fields:
Left – value of line position deviation relative to tolerance to the left
Top – value of line position deviation relative to tolerance upwards
Right – value of line position deviation relative to tolerance to the right
Bottom – value of line position deviation relative to tolerance downwards
5.3.14. TTestTextField
TTestTextField structure serves for storing information about separate MRZ fields fill-
ing validity checks results.
struct TTestTextField
{
uint32_t TEST_RESULT;
uint32_t FieldType;
WORD FieldPos;
WORD FieldLength;
WORD ValidCheckSum;
WORD reserved;
};
Declaration: PasspR.h
Fields:
TEST_RESULT – field check result (combination of eTestTextField values)
FieldType – field logical type (one of eVisualFieldType values)
FieldPos – index (starting with 0) of the first symbol of the field in the
MRZ string
FieldLength – number of symbols in the field
ValidCheckSum – checksum value calculated over the checked field
5.3.15. TSymbolEstimation
TSymbolEstimation structure serves for storing information about the results of estima-
tion of one MRZ symbol printing parameters.
struct TSymbolEstimation
{
char CharSymbol;
RECT SymbolBounds;
uint32_t SYMBOL_PARAM;
uint32_t EMPTINESS;
uint32_t EDGE;
uint32_t STAIN;
uint32_t CONTRAST_PRINT;
uint32_t CONTRAST_SYMBOL;
uint32_t ALIGNMENT_NEAREST_SYMBOLS
float SizeErrorAlignWithPrev;
float SizeErrorAlignWithNext;
uint32_t SYMBOLS_INTERVAL;
float SizeErrorIntervWithPrev;
float SizeErrorIntervWithNext;
uint32_t SYMBOL_SIZE;
float SizeErrorSymbolHeight;
float SizeErrorSymbolWidth;
};
Declaration: PasspR.h
Fields:
CharSymbol – character recognition result
SymbolBounds – symbol bounds on the image
SYMBOL_PARAM – overall estimation of symbol printing parameters
EMPTINESS – estimation of symbol voids
EDGE – estimation of symbol stroke edge unevenness
STAIN – estimation of stain presence in a character cell
CONTRAST_PRINT – estimation of symbol printing contrast
CONTRAST_SYMBOL – estimation of symbol printing contrast variation
ALIGNMENT_NEAREST_SYMBOLS – estimation of vertical alignment of adjacent symbols
5.3.16. TCommandsMRZTestQuality
TCommandsMRZTestQuality structure serves for storing the parameters of MRZ printing
quality control.
struct TDocMRZTestQuality
{
uint32_t TEST_CLASS_QUALITY;
uint32_t EXEC_SYMBOLS_PARAM;
uint32_t EXEC_PRINT_POSITION;
uint32_t EXEC_TEXTUAL_FILLING;
uint32_t EXEC_CHECK_SUMS;
uint32_t RESERVED1;
uint32_t RESERVED2;
};
Declaration: PasspR.h
Fields:
TEST_CLASS_QUALITY – quality check class (one of eMRZClassQuality values)
EXEC_SYMBOLS_PARAM – TRUE or FALSE. Combines the tests as follows: printing con-
trast, contrast change in the symbol, unevenness of the sym-
bol stroke edge, voids in symbols, stain presence, symbols ar-
rangement in the line, symbols size
EXEC_PRINT_POSITION – TRUE or FALSE. Printing layout (lines position)
EXEC_TEXTUAL_FILLING – TRUE or FALSE. Accuracy of MRZ completion with text (this
test is set by default)
EXEC_CHECK_SUMS – TRUE or FALSE. MRZ checksums verification (this test is set
by default)
5.3.17. TCandidatesListContainer
TCandidatesListContainer structure serves for storing information on candidate
documents and passing it to the user application when performing the recognition of the
document type. Type of result – RPRM_ResultType_DocumentTypesCandidates.
struct TCandidatesListContainer
{
uint32_t RecResult;
uint32_t Count;
TOneCandidate *Candidates;
};
Declaration: PasspR.h
Fields:
RecResult – document type determining result (one of
eRPRM_RCTP_Result_RecType values)
Count – number of Candidates array elements
Candidates – array of candidates for recognition
5.3.18. TOneCandidate
TOneCandidate structure is a basic containing structure for TCandidatesListCon-
tainer list and contains information on one candidate document when determining the
document type.
struct TOneCandidate
{
char *DocumentName;
int ID;
double P;
WORD Rotated180;
WORD RotationAngle;
uint32_t NecessaryLights;
TRawImageContainer *preview;
uint32_t RFID_Presence;
uint32_t CheckAuthenticity;
uint32_t UVExp;
WORD OVIExp;
uint32_t AuthenticityNecessaryLights;
TFDSIDList *extendedInfo;
};
Declaration: PasspR.h
Fields:
DocumentName – document type name
ID – document type numeric code
P – estimation of correct recognition probability when analyz-
ing the given document type
5.3.19. TFDSIDList
TFDSIDList structure serves for storing additional document information and its link to
IRS document or documents.
struct TFDSIDList
{
char ICAOCode[4];
uint32_t Count;
uint32_t *List;
uint32_t dType;
uint32_t dFormat;
bool dMRZ;
char *dDescription;
char *dYear;
char *dCountryName;
char *dStateCode;
char *dStateName;
bool isDeprecated;
};
Declaration: PasspR.h
Fields:
ICAOCode – document issuing country ICAO code
Count – qualtity of elements in List array
List – array of IRS document identifiers
dType – document type, one of diDocType enumeration values
5.3.20. TListDocsInfo
TListDocsInfo structure serves for storing the full list of documents stored in the cur-
rent document database and passing it to the user application. Type of result – RPRM_Re-
sultType_DocumentsInfoList.
struct TListDocsInfo
{
uint32_t Count;
TOCRDocInfo *ArrayOfDocs;
};
Declaration: PasspR.h
Fields:
Count – number of ArrayOfDocs array elements
ArrayOfDocs – array of document descriptions
5.3.21. TOCRDocInfo
TOCRDocInfo structure is a basic containing structure for TListDocsInfo list and con-
tains information on one document.
struct TOCRDocInfo
{
char DocName[256];
uint32_t DocID;
char DocTxtID[256];
uint32_t DocFormat;
uint32_t NecessaryLights;
uint32_t nFields;
uint32_t RFID_Presence;
uint32_t reserved1;
uint32_t reserved2;
uint32_t reserved3;
};
Declaration: PasspR.h
Fields:
5.3.22. TDocBarCodeInfo
TDocBarCodeInfo structure serves for storing and passing to the user application of re-
sults of bar-codes areas search on the scanned document page and their reading in binary
non-formatted code. Type of result – RPRM_ResultType_BarCodes.
struct TDocBarCodeInfo
{
int nFields;
TDocBarCodeField *pArrayFields;
};
Declaration: PasspR.h
Fields:
nFields – number of pArrayFields array elements
pArrayFields – array of separate bar-codes reading results
5.3.23. TDocBarCodeField
TDocBarCodeField structure is a basic containing structure for TDocBarCodeInfo list
and contains bar-code reading data.
struct TDocBarCodeField
{
long bcCodeResult;
long bcType_DETECT;
RECT bcROI_DETECT;
float bcAngle_DETECT;
long bcType_DECODE;
long bcCountModule;
TIP_DECODE_MODULE *bcDataModule;
TIP_PDF417_INFO bcPDF417INFO;
long bcReserved1;
long bcReserved2;
long bcReserved3;
};
Declaration: PasspR.h
Fields:
bcCodeResult – bar-code reading result (one of eBarCodeResultCodes val-
ues or another value which is SDK internal error code)
bcType_DETECT – type of the detected bar-code (1 – linear, 2 – 2-dimensional:
PDF417)
bcROI_DETECT – bar-code area coordinates on the image
bcAngle_DETECT – bar-code rotation angle (in radians)
bcType_DECODE – decoded bar-code type (one of eBarCodeType values)
bcCountModule – number of read bar-code modules (number of bcDataModule
array elements)
bcDataModule – results of reading data from a bar-code modules
bcPDF417INFO – information on PDF417 code parameters (only for PDF417)
Reserved1 – not used
Reserved2 – not used
Reserved3 – not used
5.3.24. TIP_DECODE_MODULE
TIP_DECODE_MODULE structure is used for storing the results of one bar-code module
reading.
struct TIP_DECODE_MODULE
{
long mType;
long mLength;
BYTE *mData;
long mReserved1;
long mReserved2;
};
Declaration: PasspR.h
Fields:
mType – module type (one of eBarCodeModuleType values)
mLength – array of module data length (number of significant elements
of mData array)
mData – read module data
mReserved1 – not used
mReserved2 – not used
5.3.25. TIP_PDF417_INFO
TIP_PDF417_INFO structure is used for storing additional information on parameters
of PDF417 format bar-codes.
struct TIP_PDF417_INFO
{
long bcColumn;
long bcRow;
long bcErrorLevel;
float minX;
float minY;
float Angle;
};
Declaration: PasspR.h
Fields:
bcColumn – number of columns in the bar-code
bcRow – number of rows in a bar-code
bcErrorLevel – bar-code error correction level
minX – width of the minimum bar-code element on the image, in pixels
minY – height of the minimum bar-code element on the image, in pixels
Angle – code decoding rotation angle (in radians)
5.3.26. TListVerifiedFields
TListVerifiedFields structure serves for storing the results of comparing the MRZ
text data, document filling area data, bar-codes data and data retrieved from RFID-chip
memory (used together with RFID-Chip Reader SDK) and passing it to the user application.
Type of result – RPRM_ResultType_OCRLexicalAnalyze.
struct TListVerifiedFields
{
uint32_t Count;
TVerifiedFieldMap *pFieldMaps;
};
Declaration: PasspR.h
Fields:
Count – number of pFieldMaps array elements
pFieldMaps – array of results of document filling text fields’ data analysis
5.3.27. TVerifiedFieldMap
TVerifiedFieldMap is a basic containing structure for TListVerifiedFields list
and contains information on results of comparing data obtained from different sources for
the same logical type of field.
struct TVerifiedFieldMap
{
WORD FieldType;
WORD LCID;
char *Field_MRZ;
char *Field_RFID;
char *Field_Visual;
char *Field_Barcode;
BYTE Matrix[10];
};
Declaration: PasspR.h
Fields:
FieldType – text field logical type (one of eVisualFieldType values)
LCID – ID of language-culture to differentiate one field of the same
type from another
Field_MRZ – field data obtained through MRZ reading
Field_RFID – field data obtained through RFID-chip memory reading
Field_Visual – field data obtained through document filling text fields
reading
Field_Barcode – field data obtained through bar-codes reading
Matrix – result comparing matrix
day) and as “13 OCT 1968” in the document filling field will be converted to DD.MM.YY
(“13.10.68”) and placed into TVerifiedFieldMap in this form.
Note. Matrix representation in XML is 1-based.
5.3.28. TAuthenticityCheckList
TAuthenticityCheckList structure serves for storing the result of document authen-
ticity check using the images for different lighting schemes and passing it to the user ap-
plication. Type of result – RPRM_ResultType_Authenticity.
struct TAuthenticityCheckList
{
int Count;
TAuthenticityCheckResult **List;
};
Declaration: PasspR.h
Fields:
Count – number of List items
List – array of data structures with the results of performing of differ-
ent document authenticity checks
5.3.29. TAuthenticityCheckResult
TAuthenticityCheckResult structure serves for storing the results of a single type
document authenticity check.
struct TAuthenticityCheckResult
{
int Type;
int Result;
int Count;
void **List;
};
Declaration: PasspR.h
Fields:
Type – type of the preforemed check (eRPRM_Authenticity)
Result – overall checking result (eCheckResult)
Count – number of List items
List – array of results of checks
5.3.30. TFibersType
TFibersType structure serves for storing the result of checking of one fluorescent fibers
type for UV light image (for RPRM_Authenticity_UV_Fibers check).
struct TFibersType
{
union
{
WORD ErrorCode;
struct
{
WORD ElementResult;
WORD ElementDiagnose;
};
};
uint32_t RectCount;
RECT *RectArray;
uint32_t *Width;
uint32_t *Length;
uint32_t *Area;
BYTE ColorValues[3];
uint32_t ExpectedCount;
};
Declaration: PasspR.h
Fields:
ErrorCode – checking result (eCheckResult)
ElementResult – element-responsible-for the-results of the checks (eCheckResult)
ElementDiagnose – element with which errors are checked ElementResult
(eCheckDiagnose)
RectCount – number of RectArray, Width, Length, Area items
RectArray – coordinates of located areas for defined fibers type
Width – fibers’ width value for RectArray areas (in pixels)
Length – fibers’ length value for RectArray areas (in pixels)
Area – fibers’ area value for RectArray areas (in pixels)
ColorValues – fibers’ color (B, G, R)
ExpectedCount – expected fibers number
5.3.31. TSecurityFeatureCheck
TSecurityFeatureCheck structure serves for storing the result of a single security ele-
ment of following type checking:
• RPRM_Authenticity_IR_B900 – MRZ contrast checking using the image for IR light-
ing scheme;
Declaration: PasspR.h
Fields:
Result – checking result (eCheckResult)
ElementResult – element responsible for the results of the checks (eCheckResult)
ElementDiagnose – element with which errors are checked ElementResult
(eCheckDiagnose)
ElementType – element type (eRPRM_SecurityFeatureType)
ElementRect – element’s area
Visibility – element’s visibility (eIR_Visibility_Flag)
CriticalFlag – flag of element’s importance (eSecurityCriticalFlag)
5.3.32. TIdentResult
TIdentResult structure serves for storing the result of a single security element of fol-
lowing type checking:
• RPRM_Authenticity_IR_Visibility – blank element visibility checking for IR
light image;
• RPRM_Authenticity_Image_Pattern check – control of the presence of an
image pattern with a specified color, shape and brightness under white, UV and IR
light on a document page.
struct TIdentResult
{
union{
uint32_t Result;
struct
{
WORD ElementResult;
WORD ElementDiagnose;
};
};
uint32_t LightIndex;
RECT Area;
TRawImageContainer Image;
TRawImageContainer EtalonImage;
uint32_t PercentValue;
TAreaArray *AreaList;
union{
uint32_t ElementType;
struct
{
uint16_t elemType;
uint16_t elemID;
};
};
};
Declaration: PasspR.h
Fields:
Result – checking result (eCheckResult)
ElementResult – element responsible for the results of the checks (eCheckResult)
ElementDiagnose – element with which errors are checked ElementResult
(eCheckDiagnose)
LightIndex – lighting scheme identifier (eRPRM_Lights)
Area – checked fragment area coordinates
Image – located image fragment
EtalonImage – expected image pattern
PercentValue – identity percent of the etalon and sample image for RPRM_Au-
thenticity_Image_Pattern check or element’s visi-
bility (eIR_Visibility_Flag) for RPRM_Authentic-
ity_IR_Visibility
ElementType – element type (eRPRM_SecurityFeatureType)
elemType – element type (eRPRM_SecurityFeatureType)
elemID – element ID among other elements with the same elemType.
5.3.33. TOCRSecurityTextResult
TOCRSecurityTextResult serves for storing the result of a latent text OCR and its
comparison with an alternative source of corresponding textual data for a single image
fragment (for RPRM_Authenticity_OCRSecurityText check).
struct TOCRSecurityTextResult
{
union
{
uint32_t ResultCode;
struct
{
WORD ElementResult;
WORD ElementDiagnose;
};
};
uint32_t CriticalFlag;
uint32_t LightType;
RECT FieldRect;
uint32_t EtalonResultType;
uint32_t EtalonFieldType;
uint32_t EtalonLightType;
RECT EtalonFieldRect;
char SecurityTextResultOCR[256];
char EtalonResultOCR[256];
uint32_t Reserved1;
uint32_t Reserved2;
};
Declaration: PasspR.h
Fields:
ResultCode – checking result (eCheckResult)
ElementResult – element responsible for the results of the checks (eCheckRe-
sult)
ElementDiagnose – element with which errors are checked ElementResult
(eCheckDiagnose)
CriticalFlag – flag of element’s importance
LightType – light scheme (eRPRM_Light)
FieldRect – field area’s coordinates
EtalonResultType – alternative data source; allowed values from eRPRM_ResultType:
RPRM_ResultType_MRZ_OCR_Extended, RPRM_Re-
sultType_Visual_OCR_Extended, RPRM_ResultType_Bar-
Codes_TextData)
EtalonFieldType – pattern field type to compare with (eRPRMFieldType)
EtalonLightType – pattern field light scheme
EtalonFieldRect – pattern field area’s coordinates
SecurityTextResultOCR – field OCR result
EtalonResultOCR – pattern field OCR result
5.3.34. TPhotoIdentResult
TPhotoIdentResult serves for storing the result of invisible personal information em-
bedded image visualization (for RPRM_Authenticity_IPI check).
struct TPhotoIdentResult
{
union
{
int Result;
struct
{
WORD ElementResult;
WORD ElementDiagnose;
};
};
int LightIndex;
RECT Area;
TRawImageContainer SourceImage;
TRawImageContainerList ResultImages;
uint32_t FieldTypesCount;
uint32_t* FieldTypesList;
int Reserved1;
int Reserved2;
int Reserved3;
};
Declaration: PasspR.h
Fields:
Result – checking result (eCheckResult)
ElementResult – element-responsible-for the-results of the checks(eCheckRe-
sult)
5.3.35. TRegulaDeviceProperties
TRegulaDeviceProperties structure is used for storing information about the docu-
ment reader.
struct TRegulaDeviceProperties
{
uint32_t DeviceID;
uint32_t Lights;
uint32_t SerialNumber;
uint32_t Features;
uint32_t DeviceCtrl;
LPSTR DirectShowName;
LPSTR DirectShowUID;
LPSTR Name;
uint32_t VideoModes;
uint64_t LabelSerialNumber;
LPSTR LabelSerialNumberStr;
uint64_t CameraSerialNumber;
GUID CameraGuid;
uint32_t Capabilities;
uint32_t Authenticity;
uint32_t Database;
uint32_t Limitations;
time_t ValidUntil;
bool WillConnect;
};
Declaration: PasspR.h
Fields:
DeviceID – device model identifier (one of eRPRM_DeviceTypes values)
Lights – combination of all available lighting schemes identifiers (OR-
combination of eRPRM_Lights values)
SerialNumber – device serial number
Features – additional reader features (OR-combination of eRPRM_De-
viceAdditionalFeatures values)
DeviceCtrl – device control type (one of eRPRM_DeviceControlTypes val-
ues)
5.3.36. TIndicationLED
TIndicationLED structure serves for setting the reader indicator LEDs functioning
scheme.
struct TIndicationLED
{
WORD wColorLed;
WORD wFreq;
};
Declaration: PasspR.h
Fields:
wColorLed – selection of indicator LED and light color. Low byte (LOBYTE)
must contain one of eLED_Color values, which selects indica-
tor color, high byte (HIBYTE) – indicator index number, starting
with 0 (for readers with several indicator LEDs)
wFreq – selection of indicator LEDs functioning scheme mode. Low
and high bytes must contain values from 1 to 7. Low byte
value determines the time during which the indicator is
turned off, high byte determines the time during which the
indicator is turned on. 1 – the shortest time interval, 7 – the
5.3.37. TPointArray
TPointArray structure serves for storage areas.
struct TPointArray
{
int PointCount;
POINT *PointsList;
};
Declaration: PasspR.h
Fields:
PointCount – number of elements in PointsList
PointsList – array of coordinates of points
5.3.38. TAreaArray
TAreaArray structure serves for storage areas and contours.
struct TAreaArray
{
int Count;
RECT *List;
TPointArray *Points;
};
typedef TAreaArray* PAreaArray;
Declaration: PasspR.h
Fields:
Count – number of elements in List and Points
List – array of areas
Points – array of points
5.3.39. TIRVisibilityElement
TIRVisibilityElement structure serves for store the check result of IRVisibility.
struct TIRVisibilityElement
{
RECT Field;
long Visibility;
long CheckResult;
long ElementType;
long Reserved;
};
Declaration: PasspR.h
Fields:
Field – coordinates of the element
Visibility – flag visibility/invisibility
CheckResult – result of the test
ElementType – type of element tested
5.3.40. TDwordArray
TDwordArray structure serves to store array of uint32_t values.
struct TDwordArray
{
uint32_t Count;
uint32_t *List;
};
Declaration: PasspR.h
Fields:
Count – number of elements
List – array of elements
5.3.41. TLexDateFormat
TLexDateFormat structure serves to transfer date format using commands RPRM_Com-
mand_Options_Get_LexDateFormat and RPRM_Command_Options_Set_LexDate-
Format.
struct TLexDateFormat
{
uint32_t format;
char customFormatString[32];
};
Declaration: PasspR.h
Fields:
format – date format, one of eLexDateFormat values
customFormatString– custom format string, required for LDF_Custom
5.3.42. TBoundsResult
TBoundsResult structure is used for storing document bounds detection result.
struct TBoundsResult
{
int docFormat;
int Width;
int Height;
POINT Center;
float Angle;
POINT LeftTop;
POINT LeftBottom;
POINT RightTop;
POINT RightBottom;
int Inverse;
BYTE PerspectiveTr;
BYTE ResultStatus;
BYTE Reserve1;
BYTE Reserve2;
BYTE ObjArea;
BYTE ObjIntAngleDev;
int Dpi;
};
Declaration: PasspR.h
Fields:
docFormat – document format, one of CDocFormat values
Width – document width
Height – document height
Center – document center coordinates
Angle – document rotation angle
LeftTop – document left top corner coordinates
LeftBottom – document left bottom corner coordinates
RightTop – document right top corner coordinates
RightBottom – document right bottom corner coordinates
Inverse – internal use parameter
PerspectiveTr – internal use parameter
ResultStatus – internal use parameter
Reserve1 – internal use parameter
Reserve2 – internal use parameter
ObjArea – internal use parameter
ObjIntAngleDev – internal use parameter
Dpi – resolution in dots per inch
5.3.43. TImageQualityCheck
TImageQualityCheck structure is used for storing input image quality check result.
struct TImageQualityCheck
{
eImageQualityCheckType type;
eCheckResult result;
eRPRM_SecurityFeatureType featureType;
TAreaArray *areas;
float mean;
float std_dev;
int probability;
};
Declaration: PasspR.h
Fields:
type – check result type, one of eImageQualityCheckType values
result – check result, one of eCheckResult values
featureType – check result, one of eRPRM_SecurityFeatureType values
areas – anomalous image areas
mean – check mean value
std_dev – check deviation
probability – check probability
5.3.44. TImageQualityCheckList
TImageQualityCheckList structure is used for storing input image quality check re-
sults list.
struct TImageQualityCheckList
{
uint32_t Count;
eCheckResult result;
TImageQualityCheck ** List;
};
Declaration: PasspR.h
Fields:
Count – number of results in list
result – overall check result, one of eCheckResultvalues
List – array of single check result pointers
5.3.45. TVideodetectionNotification
TVideodetectionNotification structure is used for storing videodetection infor-
mation.
struct TVideodetectionNotification
{
uint32_t sensorState;
TRawImageContainer* image;
TBoundsResult* mrzPosition;
};
Declaration: PasspR.h
Fields:
sensorState – state of sensor
image – videodetection image
mrzPosition – location of MRZ on image
5.3.46. TStatus
TStatus structure is used for provision of document verification status.
struct TStatus
{
eCheckResult overallStatus;
TDetailsOptical detailsOptical;
eCheckResult optical;
TDetailsRFID detailsRFID;
eCheckResult rfid;
eCheckResult portrait;
eCheckResult stopList;
};
Declaration: PasspR.h
Fields:
overallStatus – overall status
detailsOptical – optical check details
optical - optical check
detailsRFID - RFID details
rfid - - RFID check
portrait - portrait check
stopList - stoplist check
5.3.47. TDetailsRFID
TDetailsRFID structure is used for provision of electronic document check details.
struct TDetailsRFID
{
eCheckResult overallStatus;
eCheckResult PA;
eCheckResult AA;
eCheckResult CA;
eCheckResult TA;
eCheckResult BAC;
eCheckResult PACE;
};
Declaration: PasspR.h
Fields:
overallStatus - overall status
PA - passive authentication status
AA - active authentication status
CA - chip authentication status
TA - terminal authentication status
BAC - Basics access control
PACE - Password Authenticated Connection Establishment
5.3.48. TDetailsOptical
TDetailsOptical is used for provision of optical check details.
struct TDetailsOptical
{
eCheckResult overallStatus;
eCheckResult mrz;
eCheckResult text;
eCheckResult docType;
eCheckResult security;
eCheckResult imageQA;
eCheckResult expiry;
uint32_t pagesCount;
eCheckResult vds;
};
Declaration: PasspR.h
Fields:
overallStatus - overall status
mrz - MRZ status
text - text status
docType - document type status. Document type recognition is consid-
ered carried out if all the document pages were recognized and
there was at least one recognized document in each input im-
age. The only exception is the ID1 format, for such cards there
may be unrecognized reverse sides, provided that the main
document is recognized, and it does not have subordinate doc-
uments (other pages) according to our description. If document
type recognition was not carried out (the request did not con-
tain an explicit or implicit requirement to identify the document
type), returns ch_Check_WasNotDone.
security - authenticity verification status
imageQA - input pictures quality status
expiry - expiry status
pagesCount - page count
vds - visible digital seal status
5.3.49. TTextResult
TTextResult structure is used for storing text result.
struct TTextResult
{
uint32_t status;
uint32_t validityStatus;
uint32_t comparisonStatus;
char* dateFormat;
uint32_t fieldCount;
TTextField* fieldList;
uint32_t availableSourceCount;
TTextSource* availableSourceList;
};
Declaration: PasspR.h
Fields:
status – status
validityStatus – validity status
comparisonStatus – comparison status
dateFormat – date format
fieldCount – fields count
fieldList – fields list
availableSourceCount – sources count
availableSourceList – sources list
5.3.50. TTextValidity
TTextValidity structure is used for storing specified source text field validity results.
struct TTextValidity
{
char* source;
uint32_t status;
};
Declaration: PasspR.h
Fields:
source – source name
status – validity status
5.3.51. TTextComparison
TTextComparison structure is used for comparison of text results.
struct TTextComparison
{
char* sourceLeft;
char* sourceRight;
uint32_t status;
};
Declaration: PasspR.h
Fields:
sourceLeft, sourceRight – source names
status – comparison status
5.3.52. TTextSource
TTextSource structure is used for description of text data source.
struct TTextSource
{
char* source;
uint32_t containerType;
uint32_t validityStatus;
};
Declaration: PasspR.h
Fields:
source – source name
containerType – container type
validityStatus – source validity status
5.3.53. TTextSymbol
TTextSymbol structure is used for storing symbol reading result.
struct TTextSymbol
{
uint32_t code;
RECT rect;
uint32_t probability;
};
Declaration: PasspR.h
Fields:
code – symbol code
rect – symbol rectangular area
probability – recognition probability
5.3.54. TTextFieldValue
TTextFieldValue structure is used for storing text field values.
struct TTextFieldValue
{
char* value;
char* originalValue;
uint32_t originalValidity;
char* source;
uint32_t containerType;
uint32_t pageIndex;
RECT fieldRect;
TRfidOrigin rfidOrigin;
uint32_t probability;
uint32_t originalSymbolsCount;
TTextSymbol* originalSymbols;
};
Declaration: PasspR.h
Fields:
value – field value in current provision of information format
originalValue – field original value
originalValidity – original validity
source – source
5.3.55. TTextField
TTextField structure is used for storing text field.
struct TTextField
{
uint16_t fieldType;
char* fieldName;
uint16_t lcid;
char* lcidName;
uint32_t status;
char* value;
uint32_t valueCount;
TTextFieldValue* valueList;
uint32_t validityStatus;
uint32_t validityCount;
TTextValidity* validityList;
uint32_t comparisonStatus;
uint32_t comparisonCount;
TTextComparison* comparisonList;
};
Declaration: PasspR.h
Fields:
fieldType – field type
fieldName – field name
lcid – LCID code
lcidName – LCID name
status – field status
value – field value
valueCount – values count
valueList – values list
validityStatus – validity status
validityCount – validity results count
validityList – validity results list
comparisonStatus – comparison status
comparisonCount – comparison results count
comparisonList – comparison results list
5.3.56. TImagesResult
TImagesResult structure is used for representation of all graphic results in one con-
tainer.
struct TImagesResult
{
uint32_t fieldCount;
TImageField* fieldList;
uint32_t availableSourceCount;
TImageSource* availableSourceList;
};
Declaration: PasspR.h
Fields:
fieldCount – fields count
fieldList – fields list
availableSourceCount – available sources count
availableSourceList – available sources list
5.3.57. TImageSource
TImageSource is used for graphic information source description.
struct TImageSource
{
char* source;
uint32_t containerType;
};
Declaration: PasspR.h
Fields:
source - source
containerType - container type
5.3.58. TImageField
TImageField is used for provision of one image or graphic field.
struct TImageField
{
uint32_t fieldType;
char* fieldName;
uint32_t valueCount;
TImageFieldValue* valueList;
};
Declaration: PasspR.h
Fields:
fieldType - field type
5.3.59. TImageFieldValue
TImageFieldValue is used for image representation.
struct TImageFieldValue
{
char* value;
char* originalValue;
char* source;
uint32_t containerType;
uint32_t pageIndex;
uint32_t lightIndex;
RECT fieldRect;
TRfidOrigin rfidOrigin;
uint32_t originalPageIndex;
};
Declaration: PasspR.h
Fields:
value - image file in Base64 representation
originalValue - original image file in Base64 representation
source - source
containerType - container type
pageIndex - page index
lightIndex - light index
fieldRect - field rectangular area
rfidOrigin - field source from electronic document
originalPageIndex - original page index
5.3.60. TRfidOrigin
TRfidOrigin structure is used for electronic document data source description.
struct TRfidOrigin
{
int32_t dg;
int32_t dgTag;
int32_t tagEntry;
int32_t entryView;
};
Declaration: PasspR.h
Fields:
Dg - data group
dgTag - DG tag
5.4.1. eRPRM_ResultType
eRPRM_ResultType enumeration contains a pool of constants which determine the type
of data stored in the TResultContainer container structure.
enum eRPRM_ResultType
{
RPRM_ResultType_Empty = 0,
RPRM_ResultType_RawImage = 1,
RPRM_ResultType_FileImage = 2,
RPRM_ResultType_MRZ_OCR_Extended = 3,
RPRM_ResultType_BarCodes = 5,
RPRM_ResultType_Graphics = 6,
RPRM_ResultType_MRZ_TestQuality = 7,
RPRM_ResultType_DocumentTypesCandidates = 8,
RPRM_ResultType_ChosenDocumentTypeCandidate = 9,
RPRM_ResultType_DocumentsInfoList = 10,
RPRM_ResultType_OCRLexicalAnalyze = 15,
RPRM_ResultType_RawUncroppedImage = 16,
RPRM_ResultType_Visual_OCR_Extended = 17,
RPRM_ResultType_BarCodes_TextData = 18,
RPRM_ResultType_BarCodes_ImageData = 19,
RPRM_ResultType_Authenticity = 20,
RPRM_ResultType_ExpertAnalyze = 21,
RPRM_ResultType_OCRLexicalAnalyzeEx = 22,
RPRM_ResultType_EOSImage = 23,
RPRM_ResultType_Bayer = 24,
RPRM_ResultType_MagneticStripe = 25,
RPRM_ResultType_MagneticStripe_TextData = 26,
RPRM_ResultType_FieldFileImage = 27,
RPRM_ResultType_DatabaseCheck = 28,
RPRM_ResultType_FingerprintTemplateISO = 29,
RPRM_ResultType_InputImageQuality = 30,
RPRM_ResultType_DeviceInfo = 31,
RPRM_ResultType_LivePortrait = 32,
RPRM_ResultType_Status = 33,
RPRM_ResultType_Portrait_Comparison = 34,
RPRM_ResultType_ExtPortrait = 35,
RPRM_ResultType_Text = 36,
RPRM_ResultType_Images = 37,
RPRM_ResultType_FingerPrints = 38,
RPRM_ResultType_FingerPrint_Comparison = 39,
RPRM_ResultType_BSI_XML_v2 = 73,
RPRM_ResultType_DocumentPosition = 85,
RPRM_ResultType_BSI_XML = 92,
RPRM_ResultType_Custom = 100,
};
These values are stored in result_type field of TResultContainer structure and de-
termine unequivocally the type of data structure which buffer field value points to:
5.4.2. eRPRM_DeviceAdditionalFeatures
eRPRM_DeviceAdditionalFeatures enumeration contains a pool of constants which
determine additional features of the document reader.
enum eRPRM_DeviceAdditionalFeatures
{
RPRM_DeviceAdditionalFeature_None = 0x00000000,
RPRM_DeviceAdditionalFeature_Accumulator = 0x00000001,
RPRM_DeviceAdditionalFeature_Indicators_Triple = 0x00000002,
RPRM_DeviceAdditionalFeature_VideoDetection = 0x00000004,
RPRM_DeviceAdditionalFeature_IRFilter = 0x00000008,
RPRM_DeviceAdditionalFeature_Indicators_Single = 0x00000010,
RPRM_DeviceAdditionalFeature_Indicators_Double = 0x00000020,
RPRM_DeviceAdditionalFeature_Indicators_Button = 0x00000040,
RPRM_DeviceAdditionalFeature_Indicators_Four = 0x00000080,
RPRM_DeviceAdditionalFeature_2SidedWhite = 0x00000100,
RPRM_DeviceAdditionalFeature_2SidedIR = 0x00000200,
RPRM_DeviceAdditionalFeature_2SidedUV = 0x00000400,
RPRM_DeviceAdditionalFeature_MagneticStripe = 0x00001000,
RPRM_DeviceAdditionalFeature_JPEGCompression = 0x00002000,
RPRM_DeviceAdditionalFeature_IntegratedDisplay = 0x00004000,
RPRM_DeviceAdditionalFeature_KeyboardLight = 0x00008000,
RPRM_DeviceAdditionalFeature_ExternalLight = 0x00010000,
RPRM_DeviceAdditionalFeature_RESERVED = 0x00020000,
RPRM_DeviceAdditionalFeature_DocumentSensor = 0x00040000,
RPRM_DeviceAdditionalFeature_DocSizeMode = 0x00080000,
RPRM_DeviceAdditionalFeature_LiveView = 0x00100000,
RPRM_DeviceAdditionalFeature_ExternalPower = 0x00200000,
};
Constant values:
• RPRM_DeviceAdditionalFeature_Accumulator Document reader is
equipped with an accumulator;
• RPRM_DeviceAdditionalFeature_Indicators_Triple Document
reader has got three indicators;
• RPRM_DeviceAdditionalFeature_Indicators_2SidedWhite Document
reader is capable of taking two white images of both sides of document simultaneously;
• RPRM_DeviceAdditionalFeature_Indicators_2SidedIR Document
reader is capable of taking two IR images of both sides of document simultaneously;
• RPRM_DeviceAdditionalFeature_Indicators_2SidedUV Document
reader is capable of taking two UV images of both sides of document simultaneously;
5.4.3. eRPRM_DeviceControlTypes
eRPRM_DeviceControlTypes enumeration contains a pool of constants which deter-
mine the type of document reader control.
enum eRPRM_DeviceControlTypes
{
RPRM_DeviceControlType_DirectShow = 1,
RPRM_DeviceControlType_DirectIO = 2,
RPRM_DeviceControlType_Virtual = 3
};
Constant values:
• RPRM_DeviceControlType_DirectShow Document reader is DirectShow
controlled
5.4.4. eRPRM_DeviceTypes
eRPRM_DeviceTypes enumeration contains a set of unique identifiers determining the
type of the document reader model.
enum eRPRM_DeviceTypes
{
RPRM_DeviceType_Unknown = 0x00000000, // Unknown device
RPRM_DeviceType_Virtual = 0xFFFFFFFF, // Virtual Device
// (Security Key)
// 83x3
RPRM_DeviceType_FX_8313_115 = 0x08313115, // OV 1.3
RPRM_DeviceType_FX_8333_115 = 0x08333115, // OV 3.0
RPRM_DeviceType_FX_8353_115 = 0x08353115, // OV 5.1
RPRM_DeviceType_FX_8383_115 = 0x08383115, // Micron 3.1
RPRM_DeviceType_FX_8883_115 = 0x08883115, // Micron 9.0
RPRM_DeviceType_FX_8853_115 = 0x08853115, // Micron 5.0
// 83x3M
RPRM_DeviceType_FX_8303_115 = 0x08323115, // Micron 3.1
// 83x4 (83x3 + Bottom light table)
RPRM_DeviceType_FX_8314_115 = 0x08314115, // OV 1.3
RPRM_DeviceType_FX_8334_115 = 0x08334115, // OV 3.0
RPRM_DeviceType_FX_8354_115 = 0x08354115, // OV 3.0
RPRM_DeviceType_FX_8384_115 = 0x08384115, // Micron 3.1
RPRM_DeviceType_FX_8884_115 = 0x08884115, // Micron 9.0
RPRM_DeviceType_FX_8854_115 = 0x08854115, // Micron 5.0
// 7007
RPRM_DeviceType_FX_7107_115 = 0x07107115, // OV 1.3
RPRM_DeviceType_FX_7117_115 = 0x07117115, // OV 1.3
// Modification 2
RPRM_DeviceType_FX_7307_115 = 0x07307115, // OV 3.0
RPRM_DeviceType_FX_7317_115 = 0x07317115, // OV 3.1
// Modification 2
RPRM_DeviceType_FX_7507_115 = 0x07507115, // OV 5.1
RPRM_DeviceType_FX_7517_115 = 0x07517115, // OV 5.1
// Modification 2
RPRM_DeviceType_FX_7387_115 = 0x07387115, // Micron 3.1
RPRM_DeviceType_FX_7397_115 = 0x07397115, // Micron 3.1
// Modification 2
RPRM_DeviceType_FX_7887_115 = 0x07887115, // Micron 9.0
RPRM_DeviceType_FX_7857_115 = 0x07857115, // Micron 5.0
// 8307
RPRM_DeviceType_FX_8307 = 0x08307000, // Micron 3.1 Mp
// (MRZ-only reader)
// 7024
RPRM_DeviceType_FX_7104_115 = 0x07104115, // OV 1.3
RPRM_DeviceType_FX_7304_115 = 0x07304115, // OV 3.0
RPRM_DeviceType_FX_7504_115 = 0x07504115, // OV 5.0
RPRM_DeviceType_FX_7384_115 = 0x07384115, // Micron 3.1
RPRM_DeviceType_FX_7884_115 = 0x07884115, // Micron 9.0
RPRM_DeviceType_FX_7854_115 = 0x07854115, // Micron 5.0
RPRM_DeviceType_FX_78A4_115 = 0x078A4115, // Micron 10.0
RPRM_DeviceType_FX_78E4_115 = 0x078E4115, // Micron 14.0
// 7024 Lite functionality
RPRM_DeviceType_FX_7104_Lite = 0x07104333, // OV 1.3
RPRM_DeviceType_FX_7304_Lite = 0x07304333, // OV 3.0
RPRM_DeviceType_FX_7504_Lite = 0x07504333, // OV 5.1
RPRM_DeviceType_FX_7384_Lite = 0x07384333, // Micron 3.1
RPRM_DeviceType_FX_7884_Lite = 0x07884333, // Micron 9.0
RPRM_DeviceType_FX_7854_Lite = 0x07854333, // Micron 5.0
RPRM_DeviceType_FX_78A4_Lite = 0x078A4333, // Micron 10.0
RPRM_DeviceType_FX_78E4_Lite = 0x078E4333, // Micron 14.0
// 70x3
RPRM_DeviceType_FX_7103_115 = 0x07103115, // OV 1.3
RPRM_DeviceType_FX_7303_115 = 0x07303115, // OV 3.0
RPRM_DeviceType_FX_7503_115 = 0x07503115, // OV 5.1
RPRM_DeviceType_FX_7383_115 = 0x07383115, // Micron 3.1
RPRM_DeviceType_FX_7883_115 = 0x07883115, // Micron 9.0
RPRM_DeviceType_FX_7853_115 = 0x07853115, // Micron 5.0
// 4820
RPRM_DeviceType_FX_4821 = 0x04821115, // OV 1.3
RPRM_DeviceType_FX_4823 = 0x04823115, // OV 3.0
RPRM_DeviceType_FX_4825 = 0x04825115, // OV 5.1
5.4.5. eRPRM_Lights
eRPRM_Lights enumeration contains a set of identifiers used for identifying document
reader possibilities, specifying lighting schemes for scanning etc.
enum eRPRM_Lights
{
RPRM_Light_OFF = 0x00000000,
RPRM_Light_OVI = 0x00000001,
RPRM_Light_White_Top = 0x00000002,
RPRM_Light_White_Side = 0x00000004,
RPRM_Light_White_Front = 0x00800000,
RPRM_Light_IR_Top = 0x00000008,
RPRM_Light_IR_Side = 0x00000010,
RPRM_Light_IR_Front = 0x01000000,
RPRM_Light_ White_Gray = 0x02000000,
RPRM_Light_OVD = 0x04000000,
RPRM_Light_Videodetection = 0x08000000,
RPRM_Light_IR_870_Obl = 0x10000000,
RPRM_Light_UV = 0x00000080,
RPRM_Light_IR_Luminescence = 0x000000100,
RPRM_Light_AXIAL_White_Left = 0x00000400,
RPRM_Light_AXIAL_White_Right = 0x00000800,
RPRM_Light_AXIAL_White_Front = 0x00000200,
RPRM_Light_IR_720 = 0x00001000,
RPRM_Light_IR_940 = 0x00002000,
RPRM_Light_White_Full = RPRM_Light_White_Top|
RPRM_Light_White_Side,
RPRM_Light_IR_Full = RPRM_Light_IR_Top|RPRM_Light_IR_Side,
RPRM_Light_AXIAL_White_Full = RPRM_Light_AXIAL_White_Left|
RPRM_Light_AXIAL_White_Right,
RPRM_Light_RAW_Data = 0x80000000,
RPRM_Light_RAW_Data_GRBG = 0x90000000,
RPRM_Light_RAW_Data_GBGR = 0xA0000000,
RPRM_Light_RAW_Data_RGGB = 0xB0000000,
RPRM_Light_RAW_Data_BGGR = 0xC0000000,
RPRM_Light_Transmitted = 0x00000020,
RPRM_Light_Transmitted_IR = 0x00000040,
RPRM_Light_AntiStokes = 0x00010000,
RPRM_Light_Transmitted_IR940= 0x00004000
RPRM_Light_OVD_Right = 0x00040000,
RPRM_Light_OVD_Left = 0x00020000,
RPRM_Light_IR_700 = 0x00008000,
RPRM_Light_IR_870 = RPRM_Light_IR_Front, // Light IR 870
(mod. 8803),
RPRM_Light_Holo = RPRM_Light_OVD, // Light OVD (holo-
gram visualization) - 8850,
RPRM_Light_IR_Bottom = RPRM_Light_Transmitted_IR, // Light
IR Bottom (mod. 8304),
RPRM_Light_White_Bottom = RPRM_Light_Transmitted, // Light
White Bottom (mod. 8304)
RPRM_Light_UVC = 0x00080000, // Light UVС 254 (88X0
devices)
RPRM_Light_UVB = 0x00100000, // Light UVB 313 (88X0
devices)
RPRM_Light_White_Obl = 0x00200000, // Light oblique white
RPRM_Light_White_Special = 0x00400000,
};
Constant values:
• RPRM_Light_IR_Luminescence IR luminescence;
• RPRM_Light_IR_720 IR720;
• RPRM_Light_IR_940 IR940;
• RPRM_Light_Transmitted transmitted;
• RPRM_Light_IR_700 IR700;
If the reader is equipped with white and IR light with matrix control schemes, the following
constants determine the position of the activated light sources. To specify the lighting
scheme (white or IR light) to which they will be applied it is necessary to use them in com-
bination with one of the above mentioned values.
5.4.6. eRPRM_VideoModes
eRPRM_VideoModes enumeration contains a set of identifiers determining the obtained
images sizes supported by device camera.
enum eRPRM_VideoModes
{
RPRM_VM_UNDEFINED = 0,
RPRM_VM_1MP = 0x00000001,
RPRM_VM_3MP = 0x00000002,
RPRM_VM_5MP = 0x00000004,
RPRM_VM_3MP_MRZ = 0x00000010,
RPRM_VM_9MP_2 = 0x00000020,
RPRM_VM_9MP = 0x00000040,
RPRM_VM_5MP_1_3 = 0x00000080,
RPRM_VM_50MP = 0x01000000,
RPRM_VM_50MP_3 = 0x02000000,
RPRM_VM_24MP = 0x04000000,
RPRM_VM_24MP_1_5 = 0x08000000,
RPRM_VM_20MP = 0x00100000,
RPRM_VM_80MP = 0x00200000,
RPRM_VM_ID1xx_600 = 0x10000000,
RPRM_VM_300DPI = 0x20000000,
RPRM_VM_5MP_EOS = 0x40000000,
RPRM_VM_14MP = 0x00000100,
RPRM_VM_FULL_HD = 0x00000200,
RPRM_VM_10MP = 0x00000400,
RPRM_VM_10MP_2_5 = 0x00000800,
RPRM_VM_18MP = 0x00001000,
RPRM_VM_18MP_SB = 0x00002000,
RPRM_VM_18MP_4X = 0x00004000,
RPRM_VM_13MP = 0x00008000,
RPRM_VM_13MP_Q = 0x00010000,
RPRM_VM_13MP_H = 0x00020000,
RPRM_VM_MAX = RPRM_VM_14MP
};
Constant values:
• RPRM_VM_UNDEFINED – mode is not defined;
• RPRM_VM_1MP – obtaining frames of 1280×1024 or 1024×768 size support;
• RPRM_VM_3MP – obtaining frames of 2048×1536 size support;
• RPRM_VM_5MP – obtaining frames of 2592 x 1944 size support;
• RPRM_VM_3MP_MRZ – RPRM_DeviceType_FX_8307 device working mode
(1536×500);
• RPRM_VM_9MP_2 – obtaining frames of 1744 x 1308 size support;
• RPRM_VM_9MP – obtaining frames of 3488 x 2616 size support;
• RPRM_VM_5MP_1_3 – obtaining frames of 1296 x 972 (1296 x 968 for 7017 and
72x3 in JPEG mode) size support;
• RPRM_VM_50MP – obtaining frames of 50 Мp resolution support;
• RPRM_VM_50MP_3 – obtaining frames, reduced to 3 Мp support;
• RPRM_VM_24MP – obtaining frames of 24 Мp resolution support;
• RPRM_VM_24MP_1_5 – obtaining frames, reduced to 1,5 Мp support;
• RPRM_VM_20MP – obtaining frames of 20 Мp resolution support;
• RPRM_VM_80MP – obtaining frames of 80 Мp resolution support;
• RPRM_VM_ID1xx_600 – obtaining frames of 600 DPI from ID1 scanners;
• RPRM_VM_300DPI – obtaining frames of 300 DPI from ID1 scanners;
• RPRM_VM_5MP_EOS – obtaining frames of 2592 x 1728 size support;
• RPRM_VM_14MP – obtaining frames of 4384 x 3288 size support;
• RPRM_VM_FULL_HD – obtaining frames of 1920 x 1080 size support;
• RPRM_VM_10MP – obtaining frames of 3664 x 2744 size support;
• RPRM_VM_10MP_2_5 – obtaining frames of 1832 x 1372 size support;
5.4.7. CDocFormat
CDocFormat enumeration contains a set of identifiers determining document geometric
format according ISO/IEC 7810.
enum CDocFormat
{
dfID1 = 0,
dfID2 = 1,
dfID3 = 2,
dfNON = 3,
dfA4 = 4,
dfID3_x2 = 5,
dfID2_Turkey= 6,
dfID1_90 = 10,
dfID1_180 = 11,
dfID1_270 = 12,
dfID2_180 = 13,
dfID3_180 = 14,
dfCustom = 1000,
dfPhoto = 1001,
dfFlexible = 1002
dfUnknown = -1
};
Constant values:
• dfID1 – ID1 format document;
• dfID2 – ID2 format document;
• dfID3 – ID3 format document;
• dfNON – document format not determined;
• dfA4 – A4 format document;
• dfID3_x2 – double ID3 format document;
• dfID2_Turkey– Turkey ID2 card;
• dfID1_90 – ID1 format document, rotated by 90 degrees;
• dfID1_180 – ID1 format document, rotated by 180 degrees;
• dfID1_270 – ID1 format document, rotated by 270 degrees;
• dfID2_90 – ID2 format document, rotated by 90 degrees;
• dfID3_180 – ID3 format document, rotated by 180 degrees;
• dfCustom – custom format, for internal use;
• dfPhoto – photograph;
• dfFlexible – non-format document, for internal use;
• dfUnknown – unknown format document.
5.4.8. eRPRM_Capabilities
eRPRM_Capabilities enumeration contains identifiers determining the data obtaining
and processing capabilities of SDK MCL.
enum eRPRM_Capabilities
{
RPRM_Capabilities_Empty = 0x00000000,
RPRM_Capabilities_Scan = 0x00000001,
RPRM_Capabilities_SaveFiles = 0x00000002,
RPRM_Capabilities_LocateDocument = 0x00000004,
RPRM_Capabilities_MRZ_OCR = 0x00000008,
RPRM_Capabilities_Visual_OCR = 0x00000010,
RPRM_Capabilities_BarCodes = 0x00000020,
RPRM_Capabilities_MRZ_TestQuality = 0x00000040,
RPRM_Capabilities_FDS = 0x00000080,
RPRM_Capabilities_ImageDistortionCompensation = 0x00000100,
RPRM_Capabilities_OCR_Analyze = 0x00000200,
RPRM_Capabilities_Authenticity = 0x00000400,
RPRM_Capabilities_RAW_ImageData = 0x00000800,
RPRM_Capabilities_RAW_CustomDemosaic = 0x00001000,
RPRM_Capabilities_DocumentType = 0x00002000,
RPRM_Capabilities_Visual_Graphics = 0x00004000,
RPRM_Capabilities_Expert_Analyze = 0x00008000,
RPRM_Capabilities_ColorCompensation = 0x00010000,
RPRM_Capabilities_BarcodesExtended = 0x00020000,
RPRM_Capabilities_GlareCompensation = 0x00040000,
RPRM_Capabilities_RFID = 0x00080000,
RPRM_Capabilities_BankCard = 0x00100000,
RPRM_Capabilities_LiveFaceComparison = 0x00200000,
RPRM_Capabilities_ProcessImages = 0x10000000,
RPRM_Capabilities_Custom2 = 0x20000000,
RPRM_Capabilities_Custom3 = 0x40000000,
RPRM_Capabilities_Custom4 = 0x80000000,
RPRM_Capabilities_Max = 0xFFFFFFFF,
RPRM_Capabilities_ServerSideRFID = 0x02000000
};
Constant values:
• RPRM_Capabilities_Empty The set of functional capabilities is empty
5.4.9. eRPRM_GetImage_Modes
eRPRM_GetImage_Modes enumeration contains identifiers determining combination of
functions for obtaining and processing images which should be fulfilled while scanning
and processing as well as data set which should be received as final result.
enum eRPRM_GetImage_Modes
{
RPRM_GetImage_Modes_Empty = 0x00000000,
RPRM_GetImage_Modes_GetUncroppedImages = 0x00000001,
RPRM_GetImage_Modes_ReceiveAllScannedImages = 0x00000002,
RPRM_GetImage_Modes_OCR_Visual_Graphics = 0x00000004,
RPRM_GetImage_Modes_GetImages = 0x00000008,
RPRM_GetImage_Modes_LocateDocument = 0x00000010,
RPRM_GetImage_Modes_DocumentType = 0x00000020,
RPRM_GetImage_Modes_OCR_MRZ = 0x00000040,
RPRM_GetImage_Modes_OCR_Visual_Text = 0x00000080,
RPRM_GetImage_Modes_OCR_Visual =
RPRM_GetImage_Modes_OCR_Visual_Graphics|
RPRM_GetImage_Modes_OCR_Visual_Text,
RPRM_GetImage_Modes_OCR_BarCodes = 0x00000100,
RPRM_GetImage_Modes_Authenticity = 0x00000200,
RPRM_GetImage_Modes_OCR_TestMRZQuality = 0x00000400,
RPRM_GetImage_Modes_RAW_Data = 0x00000800,
RPRM_GetImage_Modes_RAW_Data_Only = 0x00001000,
RPRM_GetImage_Modes_NoColorCompensation = 0x00002000,
RPRM_GetImage_Modes_NoDistortionCompensation
= 0x00004000,
RPRM_GetImage_Modes_DetectDocument = 0x00008000,
RPRM_GetImage_Modes_ImageQA = 0x00010000,
RPRM_GetImage_Modes_Holo = 0x00020000,
RPRM_GetImage_Modes_FaceDetect = 0x00040000,
RPRM_GetImage_Modes_Reserved11 = 0x00080000,
RPRM_GetImage_Modes_Reserved12 = 0x00100000,
RPRM_GetImage_Modes_Reserved13 = 0x00200000,
RPRM_GetImage_Modes_Reserved14 = 0x00400000,
RPRM_GetImage_Modes_Reserved15 = 0x00800000,
RPRM_GetImage_Modes_Reserved16 = 0x01000000,
RPRM_GetImage_Modes_Reserved17 = 0x02000000,
RPRM_GetImage_Modes_Reserved18 = 0x04000000,
RPRM_GetImage_Modes_Reserved19 = 0x08000000,
RPRM_GetImage_Modes_Custom1 = 0x10000000,
RPRM_GetImage_Modes_Custom2 = 0x20000000,
RPRM_GetImage_Modes_Custom3 = 0x40000000,
RPRM_GetImage_Modes_Custom4 = 0x80000000
};
Constant values:
• RPRM_GetImage_Modes_Empty “Empty” scanning cycle, with-
out getting any results;
• RPRM_GetImage_Modes_Holo Reserved.
5.4.10. eRPRM_FieldVerificationResult
eRPRM_FieldVerificationResult enumeration contains identifiers determining veri-
fication and comparison of text fields.
enum eRPRM_FieldVerificationResult
{
RCF_Disabled = 0,
RCF_Verified = 1,
RCF_Not_Verified = 2,
RCF_Compare_True = 3,
RCF_Compare_False = 4
};
5.4.11. eVisualFieldType
eVisualFieldType enumeration contains identifiers determining the logical type of the
text data obtained while reading MRZ, document filling fields and bar-codes.
enum eVisualFieldType
{
ft_Document_Class_Code = 0,
ft_Issuing_State_Code = 1,
ft_Document_Number = 2,
ft_Date_of_Expiry = 3,
5.4.12. eGraphicFieldType
eGraphicFieldType enumeration contains identifiers determining the logical type of
the graphic data obtained while reading document filling fields or bar-codes.
enum eGraphicFieldType
{
gf_Portrait = 201,
gf_Fingerprint = 202,
gf_Eye = 203,
gf_Signature = 204,
gf_BarCode = 205,
gf_Proof_Of_Citizenship = 206,
gf_Document_Front = 207,
gf_Document_Rear = 208,
gf_ColorDynamic = 209,
gf_GhostPortrait = 210,
gf_Stamp = 211,
gf_Portrait_Of_Child = 212,
gf_ContactChip = 213,
gf_Other = 250,
gf_Finger_LeftThumb = 300,
gf_Finger_LeftIndex = 301,
gf_Finger_LeftMiddle = 302,
gf_Finger_LeftRing = 303,
gf_Finger_LeftLittle = 304,
gf_Finger_RightThumb = 305,
gf_Finger_RightIndex = 306,
gf_Finger_RightMiddle = 307,
gf_Finger_RightRing = 308,
gf_Finger_RightLittle = 309
};
5.4.13. eBarCodeType
eBarCodeType enumeration contains identifiers determining bar-codes type.
enum eBarCodeType
{
bct_Unknown = 0,
bct_Code128 = 1,
bct_Code39 = 2,
bct_EAN8 = 3,
bct_ITF = 4,
bct_PDF417 = 5,
bct_STF = 6,
bct_MTF = 7,
bct_IATA = 8,
bct_CODABAR = 9,
bct_UPCA = 10,
bct_CODE93 = 11,
bct_UPCE = 12,
bct_EAN13 = 13,
bct_QRCODE = 14,
bct_AZTEC = 15,
bct_DATAMATRIX = 16,
bct_ALL_1D = 17,
bct_CODE11 = 18,
bct_JABCODE = 19,
eBarCodeType_END
};
Bar-codes type determined by the constants:
• bct_Unknown – unknown type;
• bct_Code128 – one-dimensional bar-code, ISO 15417 (ANSI/AIM BC4-1999 Code 128);
• bct_Code39 – one-dimensional bar-code, ISO 16388 (ANSI/AIM BC1-1995 Code 39);
• bct_EAN8 – one-dimensional bar-code, EAN8, ISO 15418;
• bct_ITF – one-dimensional bar-code, Interleaved 2 of 5, ISO 16390 (ANSI/AIM
BC2-1995 Interleaved 2 of 5);
• bct_PDF417 – two-dimensional bar-code, ISO 15438 (AIM USS PDF417);
• bct_STF – one-dimensional bar-code, Standard 2 of 5 (Industrial);
• bct_MTF – one-dimensional bar-code, Matrix 2 of 5;
• bct_IATA – one-dimensional bar-code, IATA 2 of 5 (Airline);
• bct_CODABAR – one-dimensional bar-code, (ANSI/AIM BC3-1995, USS - Codabar);
• bct_UPCA – one-dimensional bar-code, UPC-A;
• bct_CODE93 – one-dimensional bar-code, (ANSI/AIM BC5-1995, USS - Code 93);
• bct_UPCE – one-dimensional bar-code, UPC-E;
• bct_EAN13 – one-dimensional bar-code, EAN13, ISO 15418;
• bct_QRCODE – two-dimensional QRCODE bar-code;
• bct_AZTEC – two-dimensional AZTEC bar-code;
• bct_DATAMATRIX – two-dimensional DATAMATRIX bar-code;
• bct_ALL_1D – type for internal use;
• bct_CODE11 – one-dimensional bar-code CODE11;
• bct_JABCODE – JAB code;
• eBarCodeType_END – for internal use.
5.4.14. eBarCodeResultCodes
eBarCodeResultCodes enumeration contains identifiers determining bar-codes data
reading result.
enum eBarCodeResultCodes
{
bcrc_NoErr = 0,
bcrc_NullPtrErr = –6001,
bcrc_BadArgErr = –6002,
bcrc_SizeErr = –6003,
bcrc_RangeErr = –6004,
bcrc_InternalErr = –6005,
bcrc_TryExceptErr = –6006,
bcrc_BarCodeNotFound = –6008,
bcrc_BarCodeDecodeErr = –6010,
bcrc_NoUserDLLFound = –6019,
bcrc_NoIPPDLLFound = –6020,
bcrc_IppExecErr = –6024,
bcrc_IppTryExceptErr = –6025,
bcrc_BARCODE_ERROR_Inputparam = –11001,
bcrc_BARCODE_ERROR_FInit = –11006,
bcrc_BARCODE_ERROR_NotLoadIpDecodedll = –11012,
bcrc_BARCODE_ERROR_InnerProblem = –11100,
bcrc_BARCODE_ERROR_Decode_1D_BadDecode = –11200,
bcrc_BARCODE_ERROR_FindRowOrColumn = –11201,
bcrc_BARCODE_ERROR_Find3X8_2D_X = –11202,
bcrc_BARCODE_ERROR_Find3X8_2D_Y = –11203,
bcrc_BARCODE_ERROR_2D_UgolMax = –11204,
bcrc_BARCODE_ERROR_INDEFINITELY_DECODED = –11210,
bcrc_BARCODE_ERROR_Dllnotinit = –11300,
bcrc_BARCODE_ERROR_IPDECODE_DLL_Try_Except = –11400,
bcrc_IPDECODE_ERROR_LARGEERRORS = –4503,
bcrc_IPDECODE_ERROR_FAULTCOLUMNS = –4504,
bcrc_IPDECODE_ERROR_FAULTROWS = –4505,
bcrc_IPDECODE_ERROR_INCORRECT_ERROR_LEVEL = –4511,
bcrc_IPDECODE_ERROR_LOADING_DEV_TABLE = –4512
};
Constant values:
• bcrc_NoErr – no error;
errors RegCodes.dll:
• bcrc_NullPtrErr – null pointer of input arg/param error;
• bcrc_BadArgErr – function arg/param is bad;
• bcrc_SizeErr – wrong value of data size;
• bcrc_RangeErr – bad values of any parameter range;
• bcrc_InternalErr – internal program error;
• bcrc_TryExceptErr – try-except process;
• bcrc_BarCodeNotFound – barcode detection error;
• bcrc_BarCodeDecodeErr – barcode decoding error;
errors ImagProcess.dll:
• bcrc_BARCODE_ERROR_Inputparam – input data error;
• bcrc_BARCODE_ERROR_FInit – initialization error;
• bcrc_BARCODE_ERROR_NotLoadIpDecodedll – “IpDecode.dll” connec-
tion error;
• bcrc_BARCODE_ERROR_InnerProblem – internal program error;
• bcrc_BARCODE_ERROR_Decode_1D_BadDecode – 1D-barcode decoding error;
• bcrc_BARCODE_ERROR_FindRowOrColumn – Row or Column count compu-
tational error (PDF417);
• bcrc_BARCODE_ERROR_Find3X8_2D_X – MinX computational error
(PDF417);
• bcrc_BARCODE_ERROR_Find3X8_2D_Y – MinY computational error
(PDF417);
• bcrc_BARCODE_ERROR_2D_UgolMax – invalid barcode angle (> 3 de-
gree);
• bcrc_BARCODE_ERROR_INDEFINITELY_DECODED – the result may contain decod-
ing errors;
• bcrc_BARCODE_ERROR_Dllnotinit – Dll initialization error;
• bcrc_BARCODE_ERROR_IPDECODE_DLL_Try_Except – try-except in IPDECODE-
function;
errors IPDecode.dll:
• bcrc_IPDECODE_ERROR_LARGEERRORS – too many invalid code words;
• bcrc_IPDECODE_ERROR_FAULTCOLUMNS – invalid number of columns;
• bcrc_IPDECODE_ERROR_FAULTROWS – invalid number of rows;
• bcrc_IPDECODE_ERROR_INCORRECT_ERROR_LEVEL – correction Level error;
• bcrc_IPDECODE_ERROR_LOADING_DEV_TABLE – loading “DevTable.bin”
error.
5.4.15. eBarCodeModuleType
5.4.16. eTestTextField
enum eTestTextField
{
tr_OK = 0x00000000,
tr_Process_Error = 0x00000001,
tr_Invalid_Checksum = 0x00000002,
tr_Syntax_Error = 0x00000004,
tr_Logic_Error = 0x00000008,
tr_SourcesComparison_Error = 0x00000010,
tr_FieldsComparison_LogicError = 0x00000020,
tr_UnknownStatus = 0x00000040,
tr_GlaresOnField = 0x00000080
};
Constant values:
• tr_OK – no filling errors;
• tr_Process_Error – check performance error;
• tr_Invalid_Checksum – invalid checksum. Used only for “check digit” fields
(for example, ft_Document_Number_CheckDigit).
The field for which checksum is calculated is deter-
mined by the corresponding type, i. e. for ft_Doc-
ument_Number_CheckDigit it will be field of
ft_Document_Number type;
• tr_Syntax_Error – syntax error (for example, unallowable symbol is
used);
• tr_Logic_Error – logic error (invalid field filling format, document
validity term is expired etc.);
• tr_SourcesComparison_Error – reserved for internal used;
• tr_FieldsComparison_LogicError – reserved for internal used;
• tr_UnknownStatus – reserved for internal used;
• tr_GlaresOnField – glares on field.
5.4.17. eMRZClassQuality
eMRZClassQuality enumeration contains identifiers determining the parameters
of document MRZ printing quality check.
enum eMRZClassQuality
{
mrz_CLASS_QUALITY_X = 21,
mrz_CLASS_QUALITY_Y = 22,
mrz_CLASS_QUALITY_Z = 23,
mrz_CLASS_QUALITY_CUSTOM = 24,
};
Setting the checks parameters is carried out for two different classes of printing quality ac-
cording to ISO 1831:1980 “Printing Specifications for Optical Character Recognition”:
• mrz_CLASS_QUALITY_X – checks parameters for printing quality class X;
• mrz_CLASS_QUALITY_Y – checks parameters for printing quality class Y;
• mrz_CLASS_QUALITY_Z – checks parameters for printing quality class Z;
• mrz_CLASS_QUALITY_CUSTOM – default check parameters.
5.4.18. eCheckResult
eCheckResult enumeration contains identifiers determining the result of a single docu-
ment security check.
enum eMRZCheckResult
{
ch_Check_Error = 0,
ch_Check_OK = 1,
ch_Check_WasNotDone = 2,
};
Constant values:
• ch_Check_Error – check not passed, the controlled parameter is not per-
mitted;
• ch_Check_OK – check passed, the controlled parameter is permitted;
• ch_Check_WasNotDone – check was not carried out.
5.4.19. ePhotoEmbedType
ePhotoEmbedType enumeration contains identificators of the photo insert process into
the document.
enum ePhotoEmbedType
{
PhotoEmbedType_AnyType = 0,
PhotoEmbedType_strPrinted = 1,
PhotoEmbedType_strSticked = 2
};
Constant values:
• PhotoEmbedType_AnyType – photo can be printed or pasted;
• PhotoEmbedType_strPrinted – photo is printed;
• PhotoEmbedType_strSticked – photo is pasted.
5.4.20. eCheckDiagnose
eCheckDiagnose enumeration contains identificators which determinate the result of the
text field comparasing from the different sources.
enum eCheckDiagnose
{
chd_Unknown = 0,
chd_Pass = 1,
chd_InvalidInputData = 2,
chd_InternalError = 3,
chd_ExceptionInModule = 4,
chd_UncertainVerification = 5,
chd_NecessaryImageNotFound = 7,
chd_PhotoSidesNotFound = 8,
chd_InvalidChecksum = 10,
chd_SyntaxError = 11,
chd_LogicError = 12,
chd_SourcesComparisonError = 13,
chd_FieldsComparisonLogicError = 14,
chd_InvalidFieldFormat = 15,
chd_TrueLuminiscenceError = 20,
chd_FalseLuminiscenceError = 21,
chd_FixedPatternError = 22,
chd_LowContrastInIRLight = 23,
chd_IncorrectBackgroundLight = 24,
chd_BackgroundComparisonError = 25,
chd_IncorrectTextColor = 26,
chd_PhotoFalseLuminiscence = 27,
chd_TooMuchShift = 28,
chd_ContactChipTypeMismatch = 29,
chd_FibersNotFound = 30,
chd_TooManyObjects = 31,
chd_SpecksInUV = 33,
chd_TooLowResolution = 34,
chd_InvisibleElementPresent = 40,
chd_VisibleElementAbsent = 41,
chd_ElementShouldBeColored = 42,
chd_ElementShouldBeGrayscale = 43,
chd_PhotoWhiteIRDontMatch = 44,
chd_UVDullPaper_MRZ = 50,
chd_FalseLuminiscenceInMRZ = 51,
chd_UVDullPaper_Photo = 52,
chd_UVDullPaper_Blank = 53,
chd_UVDullPaperError = 54,
chd_FalseLuminiscenceInBlank = 55,
chd_BadAreaInAxial = 60,
chd_FalseIPIParameters = 65,
chd_FieldPosCorrector_Highlight_IR = 80,
chd_FieldPosCorrector_GlaresInPhotoArea = 81;
chd_FieldPosCorrector_PhotoReplaced = 82;
chd_FieldPosCorrector_LandmarksCheckError = 83,
chd_FieldPosCorrector_FacePresenceCheckError = 84,
chd_FieldPosCorrector_FaceAbsenceCheckError = 85,
chd_OVI_IR_Invisible = 90,
chd_OVI_InsufficientArea = 91,
chd_OVI_ColorInvariable = 92,
chd_OVI_BadColor_Front = 93,
chd_OVI_BadColor_Side = 94,
chd_OVI_Wide_Color_Spread = 95,
chd_OVI_BadColor_Percent = 96,
chd_HologramElementAbsent = 100,
chd_Hologram_Side_Top_Images_Absent = 101,
chd_HologramElementPresent = 102,
chd_Hologram_Frames_IsAbsent = 103,
chd_Hologram_HoloField_IsAbsent = 104,
chd_PhotoPattern_Interrupted = 110,
chd_PhotoPattern_Shifted = 111,
chd_PhotoPattern_DifferentColors = 112,
chd_PhotoPattern_IR_Visible = 113,
chd_PhotoPattern_Not_Intersect = 114,
chd_PhotoSize_Is_Wrong = 115,
chd_PhotoPattern_InvalidColor = 116,
chd_PhotoPattern_Shifted_Vert = 117,
chd_PhotoPattern_PatternNotFound = 118,
chd_PhotoPattern_DifferentLinesThickness = 119,
5.4.21. eRPRM_PostCalbackAction
eRPRM_PostCalbackAction enumeration contains identifiers determining the variants
of continuation of document filling fields reading after the return from the callback-func-
tion in which candidates for scanned document type recognition were passed to the user
application.
enum eRPRM_PostCalbackAction
{
RPRM_PostCalbackAction_Continue = 0,
RPRM_PostCalbackAction_Cancel = 1,
RPRM_PostCalbackAction_ProcessCandidate = 2
};
Constant values:
• RPRM_PostCalbackAction_Continue – continue reading data from the doc-
ument which is determined by the
first element from the list;
• RPRM_PostCalbackAction_Cancel – cancel the further operations that re-
quire document type determining;
• RPRM_PostCalbackAction_ProcessCandidate – continue reading data from the
document which is determined by
5.4.22. eRPRM_RCTP_Result_RecType
eRPRM_RCTP_Result_RecType enumeration contains identifiers determining the result
of document type determining.
enum eRPRM_RCTP_Result_RecType
{
RPRM_RCTP_Result_Ok = 0,
RPRM_RCTP_Result_RecognClassConflict = 14,
RPRM_RCTP_Result_RecognClassUnknown = 15,
RPRM_RCTP_Result_Need_Other_Image = 29
};
Constant values:
• RPRM_RCTP_Result_Ok Document type is determined and the first element of the
list of candidates for document type recognition contains the result;
• RPRM_RCTP_Result_RecognClassConflict Document type is not determined
and the user application must select one of the candidates;
• RPRM_RCTP_Result_RecognClassUnknown
Document type is not determined and further data reading is impossible;
• RPRM_RCTP_Result_Need_Other_Image
Additional images required to complete document type recognition.
5.4.23. eRFID_Presence
eRFID_Presence enumeration contains identifiers determining the presence and the lo-
cation of a RFID-chip in the document of a definite type.
enum eRFID_Presence
{
rfpNone = 0,
rfpMainPage = 1,
rfpBackPage = 2,
};
Constant values:
• rfpNone – no RFID-chip in the document;
• rfpMainPage – RFID-chip is located in holder’s data page;
• rfpBackPage – RFID-chip is located in the back leaf of the document.
5.4.24. eRPRM_Authenticity
eRPRM_Authenticity enumeration contains identifiers determining the possibility of
performing different authenticity control procedures using the images for definite lighting
schemes.
enum eRPRM_Authenticity
{
RPRM_Authenticity_None = 0x00000000,
RPRM_Authenticity_UV_Luminescence = 0x00000001,
RPRM_Authenticity_IR_B900 = 0x00000002,
RPRM_Authenticity_Image_Pattern = 0x00000004,
RPRM_Authenticity_Axial_Protection = 0x00000008,
RPRM_Authenticity_UV_Fibers = 0x00000010,
RPRM_Authenticity_IR_Visibility = 0x00000020,
RPRM_Authenticity_OCRSecurityText = 0x00000040,
RPRM_Authenticity_IPI = 0x00000080,
RPRM_Authenticity_IR_Photo = 0x00000100,
RPRM_Authenticity_Photo_Embed_Type = 0x00000200,
RPRM_Authenticity_OVI = 0x00000400,
RPRM_Authenticity_IR_Luminescence = 0x00000800,
RPRM_Authenticity_Holograms = 0x00001000,
RPRM_Authenticity_Photo_Area = 0x00002000,
RPRM_Authenticity_UV_Background = 0x00004000,
RPRM_Authenticity_Portrait_Comparison = 0x00008000,
RPRM_Authenticity_BarcodeFormatCheck = 0x00010000,
RPRM_Authenticity_Kinegram = 0x00020000,
RPRM_Authenticity_Letter_Screen = 0x00040000,
RPRM_Authenticity_Holograms_Detection = 0x00080000,
RPRM_Authenticity_Fingerprint_Comparison = 0x00100000,
RPRM_Authenticity_Liveness = 0x00200000,
RPRM_Authenticity_Ocr = 0x00400000,
RPRM_Authenticity_Mrz = 0x00800000,
RPRM_Authenticity_StatusOnly = 0x80000000,
RPRM_Authenticity_UV = RPRM_Authenticity_UV_
Luminescence| RPRM_Authenticity_Image_Pattern | RPRM_Authenticity_
UV_Fibers,
};
Constant values:
• RPRM_Authenticity_None – no authenticity control procedure;
• RPRM_Authenticity_UV_Luminescence – UV luminescence control of document
material;
In the production of most documents, manufacturers use materials that do not luminesce in UV
light, unlike regular paper. Moreover, many adhesive substances have luminescent properties.
This authenticity check is aimed at detecting forged documents, which were made using paper.
It checks the entire document page as well as the MRZ area separately. For documents where
the holder's photo is not luminescent, the photo area is also checked to detect photo
substitution. In addition, each of the MRZ symbols is analyzed in order to detect the presence of
adhesive residues. This check is used to identify fraudulent documents, in which separate
characters have been replaced.
In accordance with ICAO requirements, MRZ characters shall have a certain contrast in IR
light. This authenticity check controls the compliance with these requirements. It checks each
character, thus helping to identify cases of alteration of MRZ parts, such as dates and check
digits.
As protection against counterfeiting, most documents have unique patterns, elements of the
document sheet or images on the laminate, which can appear or change their shape in
different types of light. This authenticity check compares the shape, size, color and location of
such objects (patterns) with the reference ones. The check is performed in white, IR and UV
light. This check may also control OVI objects, which change their color depending on
illumination conditions. Some documents have the holder's personal data printed in special ink
luminescent in UV light. In such documents, the color of the luminescence and its presence for
each of the fields is checked. As a rule, one and the same security feature is checked
separately on the document sheet and on the photo in order to detect partial forgery. For some
documents, unique pattern verification algorithms are used, which are aimed at detecting
forgeries using solely a document image in white light.
This authenticity check is used for the documents that are produced using a special laminate
film that breaks when trying to separate it from the document. To visualize this type of
protection, a special illumination scheme is used, in which the angle of observation and the
angle of illumination coincide. In those document parts where the laminate has been peeled off,
dark areas appear. This authenticity check detects such areas on documents.
In the process of document production, special flexible fibers are added to the paper mixture.
These fibers can be both visible and invisible in white light and have luminescent properties in
UV light. The number of fibers and their locations are unique for each document sample, but
the color of luminescence and physical sizes remain constant within one document type. This
authenticity check searches for fibers of a specified color and assessing their shape and size.
Objects that imitate fibers are also controlled: if they are detected, the user receives a
corresponding notification.
Elements of the document page, holder's photo or personal data can be both transparent
(invisible) and opaque (visible), or partially visible in IR light. In forged documents, these
requirements may not be met. This authenticity check analyzes the contrast of all these
elements in IR light. Special attention is paid to the photo. In some documents (more often on a
polycarbonate base), the photo in IR light completely matches the photo in white light ‒ this is
also controlled by this check. In the documents, where the holder's photo is partially visible,
those parts of the photo that shall be visible according to the results of image statistical
analysis (for example, black hair or clothes) are checked. In addition, in some documents, the
outlines of the images in white and IR light are checked, which helps to identify cases where a
fake photo has been applied over the original one.
In certain documents, some text data are duplicated in UV light. This authenticity check reads
and performs a cross-comparison of these data. In addition, the color of UV-luminescence is
checked. Besides, in certain documents, certain fields are not black, but blue, red, or other
colors. These properties are also controlled by this authenticity check.
This authenticity check is used to visualize the personal data that were applied on the holder's
photo during the personalization of the document. As a rule, it is either the document number
or the holder's name/surname. If these data are missing, it is a sign of forgery.
The description of each document included in the document template database contains
information about the method of embedding the holder's image: affixed or printed. If the photo
has been glued to the document where it should have been printed, this authenticity check will
detect the boundaries of the glued photo and will notify the user of this.
This check can be performed on a static image, where only the presence of holograms is
controlled.
In this case the check is performed on a series of frames received from a mobile device. It
verifies the presence of holographic effect and, for some documents, verifies the shape of the
hologram image.
It is a special check intended to protect the photo in Russian internal passports having an
ornament along its borders from being substituted. It checks the shape, color and width of the
strokes of this ornament. In addition, the absence of gaps along the borders of the photo is
checked, as well as the location of ornament parts in the photo and on the document page -
there shall be no misalignment.
This check compares the holder's photos taken from the document data page in white light and
from the RFID chip. If the faces do not match, a corresponding error notification is given, and
both images of the face are displayed in the results on the screen for visual control.
Two types of this check are implemented. Since the document description specifies the number
and type of barcodes, it checks that all barcodes from the description have been found and
successfully read. The second type is a more detailed analysis of the result of decoding two-
dimensional barcodes. Within one document type, the number of rows and columns of a two-
dimensional barcode varies within a small range. The barcode is considered fake if the number
of rows and columns does not correspond to statistically valid values. The decoded data are
also analyzed. If, for some reason, all the required text and/or graphic fields could not be
extracted from these data, an error message will be generated.
Some documents have an additional security element in the form of a hologram produced in
accordance with the Kinegram technology. This check is intended to compare the hologram
with the reference value using a special algorithm and determine whether this hologram is
authentic or not.
Some documents have an additional holder's photo, formed by lines with personal data in
accordance with the LetterScreen technology. This check is intended to control the parameters
used to form the current additional holder's photo.
This check is possible only if special equipment for fingerprint scanning is used. If it is
available, the fingerprints are scanned and compared with those stored in the RFID chip.
It is a special authenticity check carried out on mobile devices. It is used to ensure that the
document verification is performed by the document holder rather than using his or her photo.
A special algorithm reads the parameters of the face at different distances, evaluates its
geometric changes and distortions, compares it with the facial image from the document, and
based on all this information provides the final decision.
This is the authenticity check that returns only the status of the document verification without
any details.
5.4.25. eRPRM_SecurityFeatureType
eRPRM_SecurityFeatureType enumeration contains identifiers determining types of
elements for a document authenticity checking.
enum eRPRM_SecurityFeatureType
{
SecurityFeatureType_Blank = 0,
SecurityFeatureType_Fill = 1,
SecurityFeatureType_Photo = 2,
SecurityFeatureType_MRZ = 3,
SecurityFeatureType_FalseLuminescence = 4,
SecurityFeatureType_HoloSimple = 5,
SecurityFeatureType_HoloVerifyStatic = 6,
SecurityFeatureType_HoloVerifyMultiStatic = 7,
SecurityFeatureType_HoloVerifyDinamic = 8,
SecurityFeatureType_Pattern_NotInterrupted = 9,
SecurityFeatureType_Pattern_NotShifted = 10,
SecurityFeatureType_Pattern_SameColors = 11,
SecurityFeatureType_Pattern_IRInvisible = 12,
SecurityFeatureType_PhotoSize_Check = 13,
SecurityFeatureType_Portrait_Comparison_vsGhost = 14,
SecurityFeatureType_Portrait_Comparison_vsRFID = 15,
SecurityFeatureType_Portrait_Comparison_vsVisual = 16,
SecurityFeatureType_Barcode = 17,
Constant values:
• SecurityFeatureType_Blank – blank element;
• SecurityFeatureType_Fill – personalization element;
• SecurityFeatureType_Photo – photo;
• SecurityFeatureType_MRZ – MRZ;
• SecurityFeatureType_FalseLuminescence – photo surrounding area;
• SecurityFeatureType_HoloSimple - reserved for internal use;
• SecurityFeatureType_HoloVerifyStatic - reserved for internal use;
• SecurityFeatureType_HoloVerifyMultiStatic - reserved for internal use;
• SecurityFeatureType_HoloVerifyDinamic - reserved for internal use;
• SecurityFeatureType_Pattern_NotInterrupted - reserved for internal use;
• SecurityFeatureType_Pattern_NotShifted - reserved for internal use;
• SecurityFeatureType_Patter_SameColors - reserved for internal use;
• SecurityFeatureType_Pattern_IRInvisible - reserved for internal use;
• SecurityFeatureType_PhotoSize_Check - reserved for internal use;
• SecurityFeatureType_Portrait_Comparison_vsGhost – main portrait
and ghost portrait comparison;
• SecurityFeatureType_Portrait_Comparison_vsRFID – main portrait and
RFID portrait comparison;
• SecurityFeatureType_Portrait_Comparison_vsVisual - main portrait
and other page portrait compari-
son;
5.4.26. eSecurityCriticalFlag
eSecurityCriticalFlag enumeration contains identifiers determining the critical fea-
ture of the security element.
enum eSecurityCriticalFlag
{
CheckFeatureNotCritical = 0,
CheckFeatureIsCritical = 1
};
Constant values:
• CheckFeatureNotCritical – security element could not be present in a valid doc-
ument;
• CheckFeatureIsCritical – security element must be present in a valid docu-
ment.
5.4.27. eIR_Visibility_Flag
eIR_Visibility_Flag enumeration contains a flag of visibility of the security element in
IR range.
enum eIR_Visibility_Flag
{
ElementInvisible = 0,
ElementVisible = 1 ,
ElementColored = 2,
ElementGrayscale = 4,
};
Constant values:
• ElementInvisible – invisible;
• ElementVisible – visible;
• ElementColored – colored;
• ElementGrayscale – grayscale.
5.4.28. eLED_Color
eLED_Color enumeration contains identifiers determining the color of the document
reader indicators.
enum eLED_Color
{
ledNone = 0,
ledRed = 1,
ledGreen = 2,
ledOrange = 3,
};
Constant values:
• ledNone – indicator is off;
• ledRed – red color;
• ledGreen – green color;
• ledOrange – orange color.
5.4.29. eFDS_Light
eFDS_Light enumeration contains identifiers determining the type of document security
the image for which must be displayed in the main IRS information panel.
enum eFDS_Light
{
fdsWhite = 1,
fdsUV365 = 2,
fdsIR = 4,
fdsMaterial = 6
};
Constant values:
5.4.30. eFDS_Panel
eFDS_Panel enumeration contains identifiers determining the IRS panel type.
enum eFDS_Panel
{
FDS_Panel_Main = 0,
FDS_Panel_Countries = 1,
FDS_Panel_Documents = 2,
FDS_Panel_Caption = 3,
FDS_Panel_Description = 4,
FDS_Panel_Illumination = 5,
FDS_Panel_PageType = 6,
};
Constant values:
• FDS_Panel_Main – panel with document image;
• FDS_Panel_Countries – panel with the list of countries;
• FDS_Panel_Documents – panel with the list of documents of a chosen country;
• FDS_Panel_Caption – information panel;
• FDS_Panel_Description – panel with general description of the document;
• FDS_Panel_Illumination – panel with buttons corresponding to different types of
protection;
• FDS_Panel_PageType – panel with buttons activating images for different
pages of the document.
5.4.31. eFDS_Panel_Position
eFDS_Panel_Position enumeration contains identifiers determining the position and
the visibility of the IRS panel.
enum eFDS_Panel_Position
{
FDS_Panel_Hide = 0,
FDS_Panel_Show = 1,
FDS_Panel_ShowTop = 2,
FDS_Panel_ShowBottom = 3,
};
Constant values:
• FDS_Panel_Hide – hide panel;
• FDS_Panel_Show – show panel;
• FDS_Panel_ShowTop – place panel at the top of the parent window;
• FDS_Panel_ShowBottom – place panel at the bottom of the parent window.
5.4.32. eRPRM_OutputFormat
eRPRM_OutputFormat enumeration contains identifiers determining the format of data
representation and the mechanism of passing it to the user application when requesting
the results of scanning and processing cycle through _CheckResult() function.
enum eRPRM_OutputFormat
{
ofrDefault = 0,
ofrTransport_Clipboard = 0x00000002,
ofrTransport_File = 0x00000004,
ofrFormat_XML = 0x00010000,
ofrFormat_FileBuffer = 0x00020000,
ofrFormat_ImagesXML = 0x00040000,
ofrFormat_JSON = 0x00080000,
ofrFileBuffer_File = ofrTransport_File | ofrFormat_FileBuffer,
ofrXML_Clipboard = ofrTransport_Clipboard | ofrFormat_XML,
ofrXML_File = ofrTransport_File | ofrFormat_XML,
ofrFileBuffer_XML_Clipboard
= ofrXML_Clipboard | ofrFormat_FileBuffer,
ofrFileBuffer_XML_File = ofrXML_File | ofrFormat_FileBuffer,
ofrJSON_Clipboard = ofrTransport_Clipboard | ofrFormat_JSON,
ofrJSON_File = ofrTransport_File | ofrFormat_JSON,
ofrFileBuffer_JSON_Clipboard
= ofrJSON_Clipboard | ofrFormat_FileBuffer,
ofrFileBuffer_JSON_File = ofrJSON_File | ofrFormat_FileBuffer
};
Constant values:
• ofrDefault – default mode. Only the pointer to the result contain-
ing structure will be returned;
• ofrTransport_Clipboard – either formed XML-representation of the result or a
graphic image will be additionally placed into the OS
clipboard;
• ofrTransport_File – either formed XML-representation of the result or a
graphic image will be additionally written into a file;
• ofrFormat_XML – form XML-representation of the result containing
structure;
• ofrFormat_FileBuffer – form an image of the graphic file containing the re-
quested image;
• ofrFormat_ImagesXML – form XML-representation of image of the graphic
file containing the requested image;
• ofrFormat_JSON – form JSON-representation of the result containing
structure.
5.4.33. eLexAnalysisDepth
eLexAnalysisDepth enumeration contains possible values of lexical analysis settings
for RPRM_Command_Options_Get_LexAnalysisDepth and RPRM_Command_Op-
tions_Set_LexAnalysisDepth commands.
enum eLexAnalysisDepth
{
eLAD_Default = 0x0000,
eLAD_ShowAllData = 0x0001,
eLAD_ShowDataAndResults = 0x0002,
eLAD_CheckStopListOFF = 0x0004,
eLAD_CheckDocNumZeroOFF = 0x0008,
eLAD_ICAOConvertionOFF = 0x0010,
eLAD_ConvertToCyrillicON= 0x0020,
eLAD_GenerateRussiaMRZStrings = 0x0040
eLAD_CompareRussiaAuthority = 0x0080,
eLAD_CheckLowProbabilityEnable = 0x0100
};
Constant values:
• eLAD_Default – default mode, fields and results with low probabil-
ity are not exposed, fields are checked for pres-
ence in "stop-list", document number should not
be zero;
• eLAD_ShowAllData – show all read data, but disable comparison/verifi-
cation results;
• eLAD_ShowDataAndResults – show all read data and results regardless of prob-
ability;
• eLAD_CheckStopListOFF – disable "stop-list" fields check;
• eLAD_CheckDocNumZeroOFF – disable zero document number check;
• eLAD_ICAOConvertionOFF – disable conversion of text field values to latin al-
phabet for comparison with MRZ according to
ICAO 9303;
• eLAD_ConvertToCyrillicON – enable conversion of fields in Latin to Cyrillic;
• eLAD_GenerateRussiaMRZStrings – enable ft_MRZ_Strings field genera-
tion for Russian non-MRZ passports;
• eLAD_CompareRussiaAuthority - compare generated fields ft_Author-
ity_RUS with ft_Authority in Russia's national passport;
• eLAD_CheckLowProbabilityEnable - check low probability enable.
5.4.34. eLexDateFormat
NOT USED.
Constant values:
• LDF_DefaultShort – default mode, current user short date format;
• LDF_DefaultLong – current user long date format;
• LDF_SystemShort – OS short date format;
• LDF_SystemLong – OS long date format;
• LDF_Universal – ISO 8601 universal date format “YYYY-MM-DD”;
• LDF_Custom – date format is specified manually.
5.4.35. eImageQualityCheckType
eImageQualityCheckType enumeration contains possible values of input image qual-
ity check result type.
enum eImageQualityCheckType
{
IQC_ImageGlares = 0,
IQC_ImageFocus = 1,
IQC_ImageResolution = 2,
IQC_ImageColorness = 3,
IQC_Perspective = 4,
IQC_Bounds = 5,
IQC_ScreenCapture = 6,
IQC_Portrait = 7,
IQC_Handwritten = 8
};
Constant values:
• IQC_ImageGlares – glares presence check;
• IQC_ImageFocus – focus quality check;
• IQC_ImageResolution – image resolution check;
• IQC_ImageColorness – image colorness check;
• IQC_Perspective - image perspective check;
• IQC_Bounds - image quality check if the whole document page is
completely within the image;
• IQC_ScreenCapture - image quality check if the image is captured from
screen;
• IQC_Portrait - image quality check if the portrait is present;
• IQC_Handwritten - image quality check (visual OCR) if the document
contains handwritten text in the scanned fields;
5.4.36. diDocType
diDocType enumeration contains possible values of document types.
enum diDocType
{
dtNotDefined = 0,
dtPassport = 11,
dtIdentityCard = 12,
dtDiplomaticPassport = 13,
dtServicePassport = 14,
dtSeamanIdentityDocument = 15,
dtIdentityCardForResidence = 16,
dtTravelDocument = 17,
dtOther = 99,
dtVisaID2 = 29,
dtVisaID3 = 30,
dtNationalIdentityCard = 20,
dtSocialIdentityCard = 21,
5.4.37. eRPRM_ResultStatus
eRPRM_ResultStatus enumeration contains possible return codes from _CheckResult()
and _CheckResultFromList() functions.
enum eRPRM_ResultStatus
{
RPRM_ResultStatus_NotAvailable = 0xffffffff,
RPRM_ResultStatus_EndOfList = 0xfffffffe,
RPRM_ResultStatus_InvalidParameter = 0xfffffffd,
Constant values:
• RPRM_ResultStatus_NotAvailable – the requested result type is not
available;
• RPRM_ResultStatus_EndOfList – at the previous stage of obtaining
data from result fields represented as
list structures the end of list was
reached and there are no new data in
the processed list;
• RPRM_ResultStatus_InvalidParameter – invalid function call parameter;
• RPRM_ResultStatus_IOError – file output error;
• RPRM_ResultStatus_InvalidFilename – invalid filename;
• RPRM_ResultStatus_ClipboardError – operation with the OS clipboard can
not be executed;
• RPRM_ResultStatus_NotEnoughMemory – not enough memory for operation ex-
ecution;
• RPRM_ResultStatus_NotSupported – the specified data representation
mechanism or the mechanism of its
passing is not available for the speci-
fied result type.
5.4.38. eRPRM_NotificationCodes
eRPRM_NotificationCodes enumeration contains possible message codes received by
the user application through NotifyFunc callback-function.
enum eRPRM_NotificationCodes
{
RPRM_Notification_Error = 0x00000000,
RPRM_Notification_DeviceDisconnected = 0x00000001,
RPRM_Notification_DocumentReady = 0x00000002,
RPRM_Notification_Scanning = 0x00000004,
RPRM_Notification_Calibration = 0x00000008,
RPRM_Notification_CalibrationProgress = 0x00000009,
RPRM_Notification_EnumeratingDevices = 0x0000000C,
RPRM_Notification_ConnectingDevice = 0x0000000D,
RPRM_Notification_DocumentCanBeRemoved = 0x0000000E,
RPRM_Notification_LidOpen = 0x0000000F,
RPRM_Notification_Processing = 0x00000010,
RPRM_Notification_DownloadingCalibrationInfo = 0x00000011,
RPRM_Notification_LicenseExpired = 0x00000012,
RPRM_Notification_OperationProgress = 0x00000013,
RPRM_Notification_LatestAvailableSDK = 0x00000014,
RPRM_Notification_LatestAvailableDatabase = 0x00000015,
RPRM_Notification_VideoFrame = 0x00000016,
RPRM_Notification_CompatibilityMode = 0x00000017,
};
Constant values:
5.4.39. eRPRM_ErrorCodes
eRPRM_ErrorCodes enumeration contains possible codes returned by the SDK MCL func-
tions and received through NotifyFunc callback-function with appearance of RPRM_No-
tification_Error message.
enum eRPRM_ErrorCodes
{
RPRM_Error_NoError = 0x00000000,
RPRM_Error_AlreadyDone = 0x00000001,
RPRM_Error_NoGraphManager = 0x00000002,
RPRM_Error_CantRegisterMessages = 0x00000003,
RPRM_Error_NoServiceManager = 0x00000004,
RPRM_Error_CantConnectServiceManager = 0x00000006,
RPRM_Error_CantCreateDeviceLibraryEvent = 0x00000009,
RPRM_Error_InvalidParameter = 0x0000000C,
RPRM_Error_NotInitialized = 0x0000000D,
RPRM_Error_Busy = 0x0000000E,
RPRM_Error_NotEnoughMemory = 0x00000011,
RPRM_Error_BadVideo = 0x00000014,
RPRM_Error_ScanAborted = 0x00000015,
RPRM_Error_CantRecognizeDocumentType = 0x00000016,
RPRM_Error_CantSetupSensor = 0x00000018,
RPRM_Error_NotTrueColorDesktop = 0x00000019,
RPRM_Error_NotAvailable = 0x0000001A,
RPRM_Error_DeviceError = 0x0000001B,
RPRM_Error_DeviceDisconnected = 0x00000020,
RPRM_Error_WrongThreadContext = 0x00000030,
RPRM_Error_COMServers = 0x00000031,
RPRM_Error_NoDocumentReadersFound = 0x00000032,
RPRM_Error_NoTranslationMngr = 0x00000033,
RPRM_Error_NoActiveDevice = 0x00000034,
RPRM_Error_ConnectingDevice = 0x00000035,
RPRM_Error_Failed = 0x00000036,
RPRM_Error_LightIsNotAllowed = 0x00000037,
RPRM_Error_ImageIOError = 0x00000038,
RPRM_Error_CantStoreCalibrationData = 0x00000039,
RPRM_Error_DeviceNotCalibrated = 0x0000003A,
RPRM_Error_CantCompensateDistortion = 0x0000003B,
RPRM_Error_OperationCancelled = 0x0000003C,
RPRM_Error_CantLocateDocumentBounds = 0x0000003D,
RPRM_Error_CantRefineImages = 0x0000003E,
RPRM_Error_CantCropRotateImages = 0x0000003F,
5.4.40. eRPRM_Commands
eRPRM_Commands enumeration contains the set of SDK MCL commands.
enum eRPRM_Commands
{
RPRM_Command_Device_Count = 0x00000001,
RPRM_Command_Device_Features = 0x00000002,
RPRM_Command_Device_RefreshList = 0x00000003,
RPRM_Command_Device_ActiveIndex = 0x00000004,
RPRM_Command_Device_Connect = 0x00000005,
RPRM_Command_Device_Disconnect = 0x00000006,
RPRM_Command_Device_Light_ScanList_Clear = 0x00000007,
RPRM_Command_Device_Light_ScanList_AddTo = 0x00000008,
RPRM_Command_Device_Light_ScanList_Default = 0x00000016,
RPRM_Command_Device_Light_ScanList_Count = 0x00000017,
RPRM_Command_Device_Light_ScanList_Item = 0x00000018,
RPRM_Command_Device_Light_TurnOn = 0x00000009,
RPRM_Command_Device_LED = 0x0000000B,
RPRM_Command_Device_PlaySound = 0x0000000F,
RPRM_Command_Device_Set_ParamLowLight = 0x0000000C,
RPRM_Command_Device_Get_ParamLowLight = 0x0000000D,
RPRM_Command_Device_Calibration = 0x00000015,
RPRM_Command_Process = 0x00000019,
RPRM_Command_Options_GraphicFormat_Count = 0x0000001A,
RPRM_Command_Options_GraphicFormat_Name = 0x0000001B,
RPRM_Command_Options_GraphicFormat_Select = 0x0000001C,
RPRM_Command_Options_GraphicFormat_ActiveIndex = 0x00000020,
RPRM_Command_Options_GetSDKCapabilities = 0x0000001E,
RPRM_Command_Options_GetSDKAuthCapabilities = 0x00000035,
RPRM_Command_Options_Set_MRZTestQualityParams = 0x00000022,
RPRM_Command_Options_Get_MRZTestQualityParams = 0x00000023,
RPRM_Command_ProcessImagesList = 0x00000024,
RPRM_Command_Options_Set_CurrentDocumentType = 0x00000027,
RPRM_Command_Options_Get_CurrentDocumentType = 0x00000028,
RPRM_Command_Options_Set_CustomDocTypeMode = 0x00000029,
RPRM_Command_Options_Get_CustomDocTypeMode = 0x0000002A,
RPRM_Command_Get_DocumentsInfoList = 0x0000002B,
RPRM_Command_OCRLexicalAnalyze = 0x0000002C,
RPRM_Command_Device_IsCalibrated = 0x0000002D,
RPRM_Command_Options_Set_CheckResultHeight = 0x0000002E,
RPRM_Command_Device_Set_WorkingVideoMode = 0x00000030,
RPRM_Command_Device_Get_WorkingVideoMode = 0x00000031,
RPRM_Command_Options_Set_AuthenticityCheckMode = 0x00000032,
RPRM_Command_Options_Get_AuthenticityCheckMode = 0x00000033,
5.4.41. eDocumentStatus
eDocumentStatus enumeration contains possible document statuses in videodetection
mode.
enum eDocumentStatus
{
eDS_BadImage,
eDS_DocumentAbsent,
eDS_DocumentMoving,
eDS_DocumentFix,
eDS_DocumentFixWait,
eDS_DocumentPresent
};
Constant values:
• eDS_BadImage – bad input image;
• eDS_DocumentAbsent – document is absent;
• eDS_DocumentMoving – document is being moved;
• eDS_DocumentFix – for internal use;
• eDS_DocumentFixWait – for internal use;
• eDS_DocumentPresent – document is present.
5.4.42. eDeviceLimitations
eDeviceLimitations enumeration contains device limitations.
enum eDeviceLimitations
{
DL_NONE = 0x00000000,
DL_USB2 = 0x00000001,
DL_32bit = 0x00000002,
};
Constant values:
• DL_NONE – device has no limitations;
• DL_USB2 – device is connected to USB 2.0 Port;
• DL_32bit – device uses a 32-bit platform.
The description of each command is given below according to the following pattern:
Command code
Input parameter:
Output parameter:
Designation:
<Brief description>
5.5.1. RPRM_Command_Device_Count
Input parameter – not used
Output parameter – long *
Designation: determine the total number of the document readers currently
connected to the PC
5.5.2. RPRM_Command_Device_Features
Input parameter – long
Output parameter – TRegulaDeviceProperties **
Designation: get information on document reader properties
Document reader index in the general list is specified in the input parameter of the command.
Memory for TRegulaDeviceProperties is allocated by the MCL and does not require
freeing in the user application.
5.5.3. RPRM_Command_Device_RefreshList
Input parameter – not used
Output parameter – not used
Designation: refresh the general list of the document readers currently con-
nected to the PC
Deprecated.
To build a list of connected devices, it is necessary to reinitialize the MCL by calling first
_Free() then _Initialize() functions.
5.5.4. RPRM_Command_Device_ActiveIndex
Input parameter – not used
Output parameter – long *
Designation: definition of the index of the currently active document reader
5.5.5. RPRM_Command_Device_Connect
Input parameter – long
Output parameter – not used
Designation: activation of a certain reader from the general list
The index of the device in the general list is specified in the command input parameter.
In case of specifying –1 value instead of the device index, two variants of continuing work
are possible:
• if there is only one reader in the general list of devices connected to the PC, it will be
activated by default;
• if there are several readers in the general list of devices connected to the PC the first
reader from the list will be connected.
5.5.6. RPRM_Command_Device_Disconnect
Input parameter – not used
Output parameter – not used
Designation: disconnect the currently active document reader
5.5.7. RPRM_Command_Device_Light_ScanList_Clear
Input parameter – not used
Output parameter – not used
Designation: clear the list of lighting schemes for scanning
5.5.8. RPRM_Command_Device_Light_ScanList_Default
Input parameter – not used
Output parameter – not used
Designation: fill the list of lighting schemes for scanning with default values
5.5.9. RPRM_Command_Device_Light_ScanList_Count
Input parameter – not used
Output parameter – long *
5.5.10. RPRM_Command_Device_Light_ScanList_Item
Input parameter – long
Output parameter – long *
Designation: read the value of a certain element from the list of lighting
schemes for scanning
The index of the requested element in the list is specified in the command input parameter.
5.5.11. RPRM_Command_Device_Light_ScanList_AddTo
Input parameter – long
Output parameter – not used
Designation: add a new element to the list of lighting schemes for scanning
In the input parameter a lighting scheme identifier (or a combination of identifiers) is specified.
Only the values from the default list of lighting schemes for scanning filled are accepted.
5.5.12. RPRM_Command_Device_Light_TurnOn
Input parameter – long
Output parameter – not used
Designation: turn on a lighting scheme
In the input parameter the lighting scheme identifier (or a combination of identifiers)
which must be activated is specified. Any valid identifier combination is accepted.
This command may be used for testing purposes and does not influence the data scanning
and processing cycle performance.
5.5.13. RPRM_Command_Device_LED
Input parameter – TIndicationLED *
Output parameter – not used
Designation: set the reader indicator LEDs functioning scheme
5.5.14. RPRM_Command_Device_Set_ParamLowLight
Input parameter – long
Output parameter – not used
Designation: set the camera exposure value for getting images for UV light-
ing scheme
5.5.15. RPRM_Command_Device_PlaySound
Input parameter – not used
Output parameter – not used
Designation: сontrol device beeper
5.5.16. RPRM_Command_Device_Get_ParamLowLight
Input parameter – not used
Output parameter – long *
Designation: read the camera exposure value for getting images for UV light-
ing scheme
5.5.17. RPRM_Command_Device_Calibration
Input parameter – not used
Output parameter – not used
Designation: perform the calibration of the active document reader
5.5.18. RPRM_Command_Process
Input parameter – long
Output parameter – not used
Designation: perform the cycle of data scanning and processing for the active
document
The input parameter must contain a combination of values from eRPRM_GetImage_Modes enu-
meration, which determines the set of functions of obtaining and processing data for the
given cycle and, correspondingly, the set of the requested results.
5.5.19. RPRM_Command_ProcessImagesList
Input parameter – TResultContainerList *
Output parameter – long
Designation: performing data processing cycle for the list of images
The list of images for to be processed is passed in the params parameter. The user appli-
cation is responsible for allocating memory for this list and its elements.
result parameter, which is usually used for getting results, is used in this command for
passing a combination of values from eRPRM_GetImage_Modes enumeration, which de-
termines the set of functions of obtaining and processing data for the given cycle and, cor-
respondingly, the set of the requested results.
5.5.20. RPRM_Command_Options_GraphicFormat_Count
Input parameter – not used
Output parameter – long *
Designation: determine the general number of image saving graphic formats
5.5.21. RPRM_Command_Options_GraphicFormat_Select
Input parameter – long
Output parameter – not used
Designation: select the image saving graphic format
In the input parameter the index of the graphic format in the general list is specified.
5.5.22. RPRM_Command_Options_GraphicFormat_Name
Input parameter – long
Output parameter – char **
Designation: get the symbolic name of one of the available image saving
graphic format
In the input parameter the index of the graphic format in the general list is specified.
Memory for storing the passed character string is allocated by the MCL and does not re-
quire freeing in the user application.
The returned character string contains the file extension of the requested format (for ex-
ample “.BMP”).
5.5.23. RPRM_Command_Options_GraphicFormat_ActiveIndex
Input parameter – not used
Output parameter – long *
Designation: get the index of the current image saving graphic format
5.5.24. RPRM_Command_Options_GetSDKCapabilities
Input parameter – not used
Output parameter – long *
Designation: determine the set of MCL performance capabilities when work-
ing with the currently active document reader
5.5.25. RPRM_Command_Options_GetSDKAuthCapabilities
Input parameter – not used
Output parameter – long *
Designation: determine the set of MCL authenticity checks when working
with the currently active document reader
5.5.26. RPRM_Command_Options_Set_MRZTestQualityParams
Input parameter – TCommandsMRZTestQuality *
Output parameter – not used
Designation: set the parameters of document MRZ printing quality control
5.5.27. RPRM_Command_Options_Get_MRZTestQualityParams
Input parameter – not used
Output parameter – TCommandsMRZTestQuality **
Designation: get the current parameters of document MRZ printing quality
control
Memory for TCommandsMRZTestQuality is allocated by the MCL and does not require
freeing in the user application.
5.5.28. RPRM_Command_Options_Get_CurrentDocumentType
Input parameter – not used
Output parameter – char **
Designation: get the current value of the symbolic identifier of the document
type selected by default for further recognition operations
5.5.29. RPRM_Command_Options_Set_CurrentDocumentType
Input parameter – char *
Output parameter – not used
Designation: set the symbolic identifier of the document type selected by de-
fault for further recognition operations
Memory for storing the passed character string is allocated by the MCL and does not re-
quire freeing in the user application.
5.5.30. RPRM_Command_Options_Set_CustomDocTypeMode
Input parameter – long
Output parameter – not used
Designation: activate the mode when user detects the document type
5.5.31. RPRM_Command_Options_Get_CustomDocTypeMode
Input parameter – not used
Output parameter – long *
Designation: get the current mode of the document type detection
5.5.32. RPRM_Command_Get_DocumentsInfoList
Input parameter – not used
Output parameter – not used
Designation: get the full list of documents stored in the connected document
database
5.5.33. RPRM_Command_OCRLexicalAnalyze
Input parameter – TDocVisualExtendedInfo *
Output parameter – not used
Designation: carry out lexical analysis of text data obtained through reading
MRZ, document filling fields, bar-codes and data from a RFID-
chip memory
If there are no data from the RFID-chip in the input parameter 0 (NULL) value may be passed.
5.5.34. RPRM_Command_Device_IsCalibrated
Input parameter – not used
Output parameter – long *
Designation: determine whether the active device was calibrated
The returned value (TRUE or FALSE) shows whether the active device was calibrated or the
calibration must be performed again.
5.5.35. RPRM_Command_Device_Set_WorkingVideoMode
Input parameter – long
Output parameter – not used
Designation: switching between available digital camera sensor resolution
modes
The input parameter must contain a value from eRPRM_VideoModes (a combination of al-
lowed values provided in TRegulaDeviceProperties.
5.5.36. RPRM_Command_Device_Get_WorkingVideoMode
Input parameter – not used
Output parameter – long *
Designation: get the current digital camera sensor resolution mode
5.5.37. RPRM_Command_Options_Set_CheckResultHeight
Input parameter – long
Output parameter – not used
Designation: define required height (in pixels) for images retrieved by
_CheckResultFromList() or _CheckResult()
When retrieving images as a result of scanning cycle with the help of _CheckResult-
FromList() or _CheckResult(), images will be scaled according to the provided di-
mension value (height). To retrieve non-scaled images set this parameter to 0.
This parameter is ignored in _CheckResult() call in the following cases:
• retrieving RPRM_ResultType_RawImage without output parameter set to ofrFor-
mat_XML and/or ofrFormat_FileBuffer;
• retrieving RPRM_ResultType_EOSImage.
5.5.38. RPRM_Command_Options_Set_AuthenticityCheckMode
Input parameter – long
5.5.39. RPRM_Command_Options_Get_AuthenticityCheckMode
Input parameter – not used
Output parameter – long *
Designation: get the current combination of established authenticity checks
5.5.40. RPRM_Command_Options_Get_BatteryStatus
Input parameter – long
Output parameter – long *
Designation: retrieve the current status of accumulator battery with specified
index of the mobile versions of the document reader. If reader
has no RPRM_DeviceAdditionalFeature_Accumulator feature re-
turns error code RPRM_ResultStatus_NotAvailable
5.5.41. RPRM_Command_Options_BuildExtLog
Input parameter – long
Output parameter – not used
Designation: switch on/off the logging
5.5.42. RPRM_Command_Device_SetFrequencyDivider
Input parameter – long
Output parameter – not used
Designation: set video chip frequency divider
If you use Windows 7 or low powerful computer set videochip frequency divider from 1 to
5 while the SDK works stable.
5.5.43. RPRM_Command_Device_Get_DriverVersion
Input parameter – not used
Output parameter – long *
Designation: get driver version
5.5.44. RPRM_Command_Device_APM_Mode
Input parameter – long
Output parameter – not used
Designation: set working mode of the document reader
Set this parameter to 1 if you want to decrease the electro-magnetic clutter or want to in-
crease the working time for the mobile document reader.
5.5.45. RPRM_Command_Device_UseVideoDetection
Input parameter – long
Output parameter – not used
Designation: reserved for internal used
5.5.46. RPRM_Command_ExpertAnalyze
Input parameter – TDocVisualExtendedInfo *
Output parameter – not used
Designation: reserved for internal used
5.5.47. RPRM_Command_ClearResults
Input parameter – not used
Output parameter – not used
Designation: clearing memory allocated by previous results document pro-
cessing
5.5.48.RPRM_Command_Options_GraphicFormat_SetCompressionRatio
Input parameter – long
Output parameter – not used
Designation: set image compress rate for some graphics format (for example,
JPEG). Parameter value from 0 to 10
5.5.49.RPRM_Command_Options_GraphicFormat_GetCompressionRatio
Input parameter – not used
Output parameter – long *
Designation: get image compress rate for some graphics format (for exam-
ple, JPEG)
5.5.50. RPRM_Command_Process_Cancel
Input parameter – not used
Output parameter – not used
Designation: cancel scan process or calibration process
5.5.51. RPRM_Command_ExcludeCapabilities
Input parameter – long
Output parameter – not used
Designation: setting list of eRPRM_Capabilities to be excluded from fur-
ther processing. Should be executed prior to connecting device
5.5.52. RPRM_Command_ExcludeAuthCapabilities
Input parameter – long
Output parameter – not used
Designation: setting list of eRPRM_Capabilities to be excluded from fur-
ther processing. Should be executed prior to connecting device
5.5.53. RPRM_Command_MakeSingleShot
Input parameter – long
Output parameter – long (used as input parameter)
Designation: making single shot with eRPRM_Lights in input parameter and
in mode eRPRM_GetImage_Modes (long) in output parameter
5.5.54. RPRM_Command_Device_GetFrequencyDivider
Input parameter – not used
Output parameter – long *
Designation: get video chip frequency divider
5.5.55. RPRM_Command_ComplexAuthenticityCheck
Input parameter – not used
5.5.56. RPRM_Command_Options_Set_GlareCompensation
Input parameter – long
Output parameter – not used
Designation: turn white and IR image glare compensation mode on (input
parameter != 0) or off (input parameter == 0)
5.5.57. RPRM_Command_Options_Set_ExtendProcessingModes
Input parameter – long
Output parameter – not used
Designation: turn automatic enabling of required processing modes on (in-
put parameter != 0) or off (input parameter == 0)
5.5.58. RPRM_Command_Options_Get_AppendVisa
Deprecated
5.5.59. RPRM_Command_Options_Set_AppendVisa
Deprecated
5.5.60. RPRM_Command_Options_Set_MultiPageProcessingMode
5.5.61. RPRM_Command_Device_Get_Calibration_FrequencyDivider
5.5.62. RPRM_Command_PortraitGraphicalAnalyze
Input parameter – TResultContainerList *
Output parameter – not used
Designation: graphical comparison of portraits received on document scan-
ning and from RFID (in input parameter).
5.5.63. RPRM_Command_Options_Set_SmartUV
Input parameter – long
Output parameter – not used
Designation: turn enhanced UV mode on (input parameter != 0) or off (input
parameter == 0).
5.5.64. RPRM_Command_Options_Set_RotateResultImages
Input parameter – long
Output parameter – not used
Designation: turn result images rotation according to portrait orientation
mode on (input parameter != 0) or off (input parameter == 0).
5.5.65. RPRM_Command_BSIDocCheckXML
Input parameter – TResultContainerList *
Output parameter – char **
Designation: create result XML according to BSI Technical Guideline TR-
03135 v1.
5.5.67. RPRM_Command_Options_Get_QuickBoardingPassProcessing
5.5.68. RPRM_Command_Options_Set_QuickBoardingPassProcessing
5.5.69. RPRM_Command_Options_Set_QuickMrzProcessing
5.5.70. RPRM_Command_Options_Get_QuickMrzProcessing
5.5.71. RPRM_Command_Device_SetVideoDetectionDivider
5.5.72. RPRM_Command_Device_GetVideoDetectionDivider
5.5.73. RPRM_Command_Device_SetRequiredOcrFields
5.5.74. RPRM_Command_Device_GetRequiredOcrFields
5.5.75. RPRM_Command_Options_Set_WaitForReadingComplete
5.5.76. RPRM_Command_ReadingComplete
5.5.77. RPRM_Command_Options_Get_LexAnalysisDepth
Deprecated.
5.5.78. RPRM_Command_Options_Set_LexAnalysisDepth
Deprecated.
5.5.79. RPRM_Command_Options_Get_LexDateFormat
Deprecated.
5.5.80. RPRM_Command_Options_Set_LexDateFormat
Deprecated.
5.5.81. RPRM_Command_Device_Get_GetJpegImages
5.5.82. RPRM_Command_Device_Set_GetJpegImages
5.5.83. RPRM_Command_BSIDocCheckXMLv2
5.5.84. RPRM_Command_Device_Get_TrustDPI
5.5.85. RPRM_Command_Device_Set_TrustDPI
5.5.86. RPRM_Command_Options_Get_LexParams
5.5.87. RPRM_Command_Options_Set_LexParams
5.5.88. RPRM_Command_Options_Get_StopOnBadInputImage
5.5.89. RPRM_Command_Options_Set_StopOnBadInputImage
5.5.90. RPRM_Command_Set_ProcessParametersJson
5.5.91. RPRM_Command_Options_Set_VideodetectionLowSensibility
5.5.92. RPRM_Command_Options_Set_TrustVideodetectionResult
5.5.93. RPRM_Command_Device_Get_LED
5.5.94. RPRM_Command_Get_DatabaseInfo
5.5.95. RPRM_Command_Device_Fingerprints_Scan
5.5.96. RPRM_Command_Fingerprints_Compare
5.5.97. RPRM_Command_Add_External_Containers
5.5.98. RPRM_Command_Fingerprints_Search
5.6.1. Trivia
Regula SW uses the following format for creating UUIDs for the XML log:
00000004-0007-0000-0000-000032BF7CC1
With the Regula Document Reader SDK 6.1 hotfix and starting from the Regula Document
Reader SDK 6.2 release, this UUID forming approach allows to identify documents and
their individual checks. The measures were taken to minimize the possibility that
dco:BasicCheckResult UUID changes with templates database update and/or SDK up-
date.
For example:
{
"processParam":
{
"authSafeMode": true,
"config":
[
{
"docID":
[
851410113,
-2033442960
],
"docUUID":
[
"00000000-0000-0000-0000-000032BF7CC1",
"00000000-0000-0000-0000-000086CC1F70"
],
"excludeAuthChecks": 3
}
]
},
"bsiTr03135":
{
"version": 3,
"evaluationChecks":
{
"patternsVis": true,
"patternsIr": true,
"patternsFalseLum": true,
"irVisPhoto": true,
"ids":
[
"00000004-000E-0000-0000-0000ACCCB9BB"
],
"types":
[
16
]
}
},
"dePersonalize":
[
{
"allTextFields": true,
"allGraphicFields": true
}
],
"processParameters":
{
"extPortrait":
{
"url": "http://localhost:41101",
"threshold": 50,
"proxy": "",
"proxy_userpwd": "",
"proxy_type": 0,
"mode": "service",
"serviceTimeout": 3000
}
}
}
This setting changes the way the authenticity checks are performed. The changes in this
mode include:
1. Disabled patterns checks in IR and visible spectrum.
The disabled checks are not performed, so no statistics can be gathered with this ap-
proach.
It allows to disable authenticity checks for specific document template IDs. IDs can be
specified either as signed integers OR as document UUIDs as displayed in TR log XML. The
disabled checks are not performed, so no statistics can be gathered with this approach.
This is the recommended approach. It allows to perform all the document validations and
gather statistics, but to specify individual document-specific checks or check groups not to
be considered when calculating overall document pass/fail status.
• bsiTr03135 – root section of JSON file related to XML log creation. Will be ex-
tended in the following versions.
o version - currently only version 3 is supported, this is for future use.
o evaluationChecks - section describing which protection element checks
have to be marked as "evaluation", thus not affecting overall document suc-
cess/failure status.
▪ patternsVis - (bool) – patterns in visible light.
▪ patternsIr - (bool) – patterns in IR
Full-page document images can be depersonalized. Specified areas of the document will
be blurred. Areas can be specified as text or graphic field types or as rectangle in millime-
ters. Also, a filter can be applied to specify exact document template ID (docId), document
issuing country and/or type (“D”, “P” as country and docType), or document format (ar-
eas.format).
• dePersonalize – array of objects describing which graphic and text fields and
document areas to hide
o allTextFields – (bool) – all text fields in both MRZ and visual zone are to
be blurred.
o textFieldTypes – (array of unsigned integers) – one of eVisual-
FieldType.
o allGraphicFields – (bool) – all graphic fields in document visual inspec-
tion zone are to be blurred.
o graphicFieldTypes – (array of unsigned integers) – one of
eGraphicFieldType.
o docId – (signed integer) – document template ID as signed integer. Can be
used to identify specific document type to be depersonalized. Rarely used.
o country – (string) – issuing state code. To be used with docType. Rarely
used.
o docType – (string) – document class code (first two MRZ symbols “<” re-
moved). To be used with country. Rarely used.
o areas – (array of objects) – specific areas to blur for specific document for-
mats. Rarely used.
▪ format – (unsigned integer) – document format, one of CDocFor-
mat values. Used as a filter flag if this document is to be depersonal-
ized.
Portrait comparison can be done either internally or externally by the dedicated service.
By default, failed stop-list checks (both against an SQL text database and portrait database)
do not affect the overall processing status TStatus. To make them influence the overall
status, set the respectStopList parameter in processParam:
{
"processParam":
{
"respectStopList": true
}
}
If you need to add documents from all countries, use the value ALL:
{
"processParam":
{
"customParams": {
"extendedStopList": {
"ALL": [
{
"8": "VZOREC",
"9": "ANA",
"5": "02.01.1981"
}
],
}
}
}
}
The integration of Face SDK to Document Reader adds an automatic face match and
search by a portrait taken from the document (visual zone and RFID-chip) or a live owner
photo (selfie).
{
"processParam":
{
"useFaceApi": true
}
}
Settings for the Face SDK can be defined either via JSON or environment variables. Note
that values specified in JSON take priority. For example, if one service address is specified
in the REGULA_FACEAPI_URL environment variable, and another address is specified
in processParam.faceApi.url, the address in processParam.faceApi.url will be
used.
The JSON settings and environment variables are described in the online documentation:
By default, only the match functionality is performed. To add search, you need to set
match+search in the mode field.
Below you will find the parameters that can be used for performing a complete identifica-
tion in a single request, i.e., read and verify the document and at the same time compare
facial images. Note that useFaceApi should be enabled in all cases.
5.6.8.1. livePortrait
To add a live photo of the document owner (selfie) for comparison with the photo from
the visual zone of the document, use livePortrait:
{
"processParam":
{
"useFaceApi": true
},
"List": [],
"livePortrait": "base64image"
}
5.6.8.2. extPortrait
To add a photo from an external source, for example, a database, use extPortrait:
{
"processParam":
{
"useFaceApi": true
},
"List": [],
"extPortrait": "base64image"
}
5.6.8.3. oneShotIdentification
To crop a selfie from the same frame as the document and send it to Face API as a live
portrait, set oneShotIdentification to true:
{
"processParam":
{
"useFaceApi": true,
"oneShotIdentification": true
}
}
To enable the detection of the Card Access Number (CAN) when using scenarios that in-
volve document location and MRZ reading (such as the MrzAndLocate scenario), invoke
the following:
{
"processParam":
{
"doDetectCan": true
}
}