U.are.U SDK Platform Guide For Windows
U.are.U SDK Platform Guide For Windows
INSTALLATION 5
I n s t a l l i n g o n t h e D e v e l o p m e n t a n d T a r g e t S y s t e m s . . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . . . . 5
S t e p 1 : I n s t a l l in g o n t h e D e v e l o p m e n t S y s t e m ( S D K I n s t a ll a t i o n ) . . .. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 5
S t e p 2 : I n s t a l l in g o n t h e T a r g e t H a r d w a r e ( R T E I n s t a l l a t i o n ) . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 6
D i g i t a l P e r s o n a A u t h e n t ic a t i o n S e r v ic e . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 7
U n i n s t a l l i n g t h e S D K o r R T E . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . . . . 7
This manual describes how to use the DigitalPersona U.are.U® SDK to develop applications for devices based on
Microsoft Windows. The U.are.U SDK is available for multiple platforms and this document describes issues specific
to developing applications for devices based on Microsoft Windows.
Introduction (this chapter) describes how to get the latest version of this documentation.
Installation provides instructions for installing on your development system and on the target machine.
Developing Applications with C/C++ lists system requirements for developing and running applications in C/C++ and
describes the sample application.
Developing Applications with .NET lists system requirements for developing and running applications with .NET and
describes the .NET sample applications for VB.NET and C#.
Developing Applications with ActiveX / .NET lists system requirements for developing and running applications using
ActiveX, and other ActiveX information.
Developing Applications with Java lists system requirements for developing and running applications using Java,
provides additional installation instructions and describes the Java sample application.
Developing Applications with JavaPOS provides information on using the JavaPOS-compliant API built on the
U.are.U framework.
Developing Applications with OPOS provides information on using the JavaPOS-compliant API built on the U.are.U
framework.
Redistribution describes the merge modules that are provided to help you redistribute applications built using the
U.are.U SDK.
For a detailed description of the SDK, consult the U.are.U SDK Developer Guide.
Except as noted in the language-specific chapters, the installation process is the same for development on all Windows
systems.
I n s t a l l i n g o n t h e D e ve l o p m e n t a n d Ta rg e t S y s t e m s
There are two steps to the installation:
1 Installing on the development system
2 Installing on the Windows device (the target hardware)
These steps are described below. Note that the same distribution file is used for installing on both development and
test/target systems -- during installation, different files are copied to the product folder depending on how you install.
Folder Contents
Include Header files for C/C++ API.
Windows\Docs End user license agreement (EULA) plus documentation:
SDK Developer Guide - describes all APIs
Platform Guide for Windows - Windows-specific details
C_API - Doxygen for C/C++ API
Java_API - Javadoc for Java API
.NET_ActiveX_API - Doxygen for .NET and ActiveX APIs
Windows\Lib Runtime files:
.NET - libraries and controls for .NET and ActiveX
x64 - libraries for 64-bit processes
Win32 - libraries, OPOS libraries
Java - Java and JavaPOS JAR files
Folder Contents
Windows\Samples\ Compiled sample applications:
Bin
Java - Java sample
JavaPOS - JavaPOS sample
OPOS - OPOS sample
.NET - .NET sample
x64 - C/C++ sample for 64-bit processes
Win32 - C/C++ sample
Source files for sample applications:
Include - WTL80 files for C/C++ sample
UareUSample - C/C++ sample
UareUSampleJava - Java sample
UareUSampleJavaPOS - JavaPOS sample
UareUSampleOPOS - OPOS sample
UareUSampleVBNET - .NET /VBNET sample
UareUSmapleVBNET_CaptureOnly - .NET/VBNet sample
that demonstrates only capture
UareUSampleCSharp - .NET /C# sample
UareUSampleCSharp_CaptureOnly - .NET/C# sample that
demonstrates only capture
Folder Contents
U n i n s t a l l i n g t h e S D K o r RTE
If you need to uninstall the SDK or RTE, use the installation applet in the Control Panel.
P re - R e q u i s i t e s
This chapter assumes that you have a working knowledge of C/C++ and that you know how to develop for Microsoft
Windows machines.
S y s t e m R e q u i re m e n t s
Development System
• Microsoft Windows XP Professional or higher, 32-bit or 64-bit
• Microsoft Visual Studio 2008 or later
The application demonstrates the features of the SDK. When you launch the application, you see the main screen as
shown below.
Click on Reader Selection to open a reader. All available readers will be displayed, as shown on the screen below.
Clicking on the Get reader capabilities button will display additional information about the selected reader, as shown
below.
Click OK to return to the previous screen. Click OK to select the reader. At this point, you are returned to the main
screen and all of the buttons are enabled.
Click on the Capture button to select capture mode. Place your finger on the reader to capture a fingerprint and display
it on the screen as shown below.
To see a demonstration of the streaming feature, click on the Streaming button to select streaming mode. Place your
finger on the reader to capture a fingerprint and display it on the screen as shown below.
After you click on Back, you can click on the Verification button next. You will be prompted to place your finger on
the reader. Then you can place a second finger on the reader. If you use the same finger, you will see a message that the
fingerprints matched, as shown below.
When you click on Back you will return to the main screen.
Click on Identification to test the next component of the sample program. You will be prompted to place a thumb,
index finger, etc. on the reader. Then you will be prompted to provide another finger and you will receive a message
indicating if there was a match and which finger was detected, as shown in the image below.
This feature simply captures a fingerprint, creates a FMD, and displays a message on the screen to confirm that it was
successful.
Note that if you unplug the reader, you will receive an error message and the associated error code.
P re - R e q u i s i t e s
This chapter assumes that you have a working knowledge of .NET and that you know how to develop for Microsoft
Windows machines. You must also have tools and knowledge for your target language, typically C# or Visual Basic
(VB.NET).
S y s t e m R e q u i re m e n t s
Development System
• Microsoft Windows XP Professional or higher, 32-bit or 64-bit
• Microsoft Visual Studio 2008 or later
• .NET Framework 2.0
S t a t i c l i b ra r i e s a n d D L L s
The SDK installation installs
• DPCtlUruNet.dll - .Net GUI controls
• DPUruNet.dll - .Net API Library
The interfaces for the VB.NET and C# sample applications are identical, except for the text on the title bar of the
opening screen.
The sample application demonstrates the features of the SDK. When you launch the application, you see the main
screen as shown below.
Selecting a Reader
Click on Reader Selection to open a device. All available devices will be displayed in the pull-down list, as shown on
the screen below.
If you choose a reader from the list and click on the Capabilities button the application will display additional
information about the selected reader, as shown below.
Click Close to return to the previous screen. Click Select to select the device. At the point, you are returned to the main
screen and all of the buttons are enabled.
Capturing a Fingerprint
Click on the Capture button to select capture mode. Place your finger on the reader to capture a fingerprint and display
it on the screen as shown below.
While the reader is in capture mode, you can capture repeatedly by placing a finger onto the reader. Click on the Back
button to return to the main screen.
While the reader is in streaming mode, you can capture repeatedly by placing a finger on the reader. Click on the Back
button to return to the main screen.
Enrolling a Finger
Click on Enrollment to begin enrolling the first test subject.
You will be prompted to scan the first finger for enrollment, as shown below.
After that finger is successfully scanned, you will be prompted to scan a second finger. The sample application will
prompt you to scan additional fingers until a sufficient number of high quality scans are complete. (The number of
fingers requested will vary depending on the image scans - the enrollment functions will continue to request scans until
an acceptable enrollment record has been created.)
Once the enrollment is complete, you will see confirmation that the enrollment process is finished, as shown in the
screen below. In this case, four fingerprint scans were sufficient.
Note that the enrollment FMD that is created is stored in memory only and will be deleted when you click the Back
button.
Identifying a Fingerprint
To test the identification feature, click on the Identification button. Recall that identification is a 1-to-many
comparison where the application would normally search through all of the enrolled fingers to find a match. For this
sample, we don’t have any enrolled fingers, so you will be prompted to provide a finger. Then you will be prompted to
provide another finger and you will receive a message indicating if there was a match, as shown in the image below
Verifying a Fingerprint
To test the verification feature, click on the Verification button. Recall that verification is a 1-to-1 comparison where
the application matches against a specified fingerprint. When you click the Verification button, you will be prompted
to place your finger on the reader. In the screen below, we have tried to verify a finger.
If you click on a finger, for example the index finger of the right hand, you will be prompted to scan your finger.
As you scan your finger, you can see the events and status information on the right, as shown below.
If you click on the window’s Cancel button, it will cancel the enrollment of the current finger.
Once the enrollment process is complete, you will be returned to the opening screen of the enrollment process. Note
that the finger you enrolled now shows in green and you can click on another finger to enroll another fingerprint.
To delete an enrolled fingerprint, click on an enrolled finger in this dialog and you will be prompted to confirm that
you wish to delete the fingerprint for the finger that you clicked on.
The enrollment record created by the control is stored in memory until you exit from the sample application.
To return to the sample application, click Close.
(Note that the identification is performed against the fingerprints enrolled through the Enrollment GUI feature
previously. When you exit from the sample application, all enrollment records are deleted.)
If the identification succeeds, you will see the details in the status box at the right. The example below shows the result
of a successful identification.
Note that if you unplug the device, you will receive an error message and the associated error code.
To exit the sample application, click on the Close button.
P re - R e q u i s i t e s
This chapter assumes that you have a working knowledge of .NET and ActiveX and that you know how to develop for
Microsoft Windows machines. You must also have tools and knowledge for your target language (typically C# or
Visual Basic).
Over view
The ActiveX option has the same requirements and installation as the .NET components. The file sizes are
approximately 15K larger than the .NET files.
Note that ActiveX does not work with Mozilla Firefox and Google Chrome browsers.
P re - R e q u i s i t e s
This chapter assumes that you have a working knowledge of Java and that you know how to develop for Microsoft
Windows machines.
S y s t e m R e q u i re m e n t s
Development System
• Microsoft Windows XP Professional or higher, 32-bit or 64-bit
• Microsoft Visual Studio 2008 or later
• Java SE 6 (JDK 6) or newer
E x t ra I n s t a l l a t i o n S t e p s
After installing as described in Installing on the Development and Target Systems on page 5, you must do the
following additional steps on both the development and target machines:
1 Copy the files in these two folders: U.are.U SDK\Windows\Lib\Java and U.are.U SDK\Windows\Lib\
<x86 or x64> to the location of your choice.
2 Make sure that dpuareu.jar is in the classpath and dpuareu_jni.dll is accessible by JVM. For example:
T h e Java S a m p l e A p p l i c a t i o n
The U.are.U SDK includes a sample application to demonstrate the features of the SDK when using the Java API. The
sample application is located in the Samples folder. The compiled file, UareUSampleJava.exe can be downloaded
to your machine for testing or you can compile it for yourself using the source files provided.
The application demonstrates the features of the SDK. When you launch the application, you see the main screen as
shown below.
Selecting a Reader
To choose the reader, click on the Select new reader button. You will see a list of available readers and you can
choose the desired device, as shown below:
Enrolling a Finger
Click on Run enrollment to begin enrolling a test subject.
You will see a series of prompts to scan fingers for enrollment, as shown below.
After the first finger is successfully scanned, you will be prompted to scan additional fingers until a sufficient number
of high quality scans are complete. The number of fingers requested will vary depending on the image scans - the
enrollment functions will continue to request scans until an acceptable enrollment record has been created.
When enrollment is complete, click Back to return to the main screen. (Note that enrollment FMDs that are created are
not stored.)
Identifying a Fingerprint
To test the identification feature, click on the Run identification button. Recall that identification is a 1-to-many
comparison where the application searches through all of the enrolled fingers to find a match. For this example, we do
not have a stored database, so the sample application first prompts you to place a few fingers on the reader so that the
application has some fingerprints to check against.
After the application scans four fingers, you will be prompted to place any finger on the reader to identify against the
fingers that were just scanned. If you place a finger that was previously scanned on the reader, you will see that a match
Verifying a Fingerprint
To test the verification feature, click on the Run verification button. Recall that verification is a 1-to-1 comparison
where the application matches against a specified fingerprint. When you click the Run verification button, you will be
prompted to place your finger on the reader. Then you will be prompted to place the same finger or another finger, to
verify against the first finger. In the screen below, we have successfully verified a user.
This places the reader into capture/streaming mode and immediately the results are displayed in the window. For
streaming mode, the window then becomes like a live window on the reader as it streams results. Placing a finger on
the reader displays the streamed fingerprint, as shown below.
P re - R e q u i s i t e s
This chapter assumes that you have a working knowledge of JavaPOS and that you know how to develop for Microsoft
Windows machines.
S y s t e m R e q u i re m e n t s
Development System
• Microsoft Windows XP Professional or higher, 32-bit or 64-bit
• Microsoft Visual Studio 2008 or later
• Java SE 6 (JDK 6) or newer
E x t ra I n s t a l l a t i o n S t e p s
After installing as described in Installing on the Development and Target Systems on page 5, you must do the
following additional steps on target machines:
1 In your config path, find the jpos.properties folder and update the file’s last line to contain the location of your
JPOSUareU.xml file.
2 Copy the files in these two folders: U.are.U SDK\Windows\Lib\Java and U.are.U SDK\Windows\Lib\
<x86 or x64> to the location of your choice.
3 Make sure that dpuareu.jar is in the classpath and dpuareu_jni.dll is accessible by JVM. For example:
R e g i s t e r i n g yo u r D e v i c e a f t e r I n s t a l l a t i o n
To enable DigitalPersona U.are.U support in your JavaPOS environment, you may need to register the DigitalPersona
U.are.U Device Service.
U p g ra d i n g f ro m P re v i o u s Ve r s i o n s o f t h e Java P O S A P I
To upgrade your existing applications, be sure to do the following steps:
1 Add a reference to <install directory>/U. are. U SDK/Windows/Lib/Java/dpuareu.jar in your
classpath. This change is often done in a build or run script.
2 Replace the old dpjavapos.jar with the newest one, located in <install directory>/U. are. U SDK/
Windows/Lib/Java.
T h e Java P O S S a m p l e A p p l i c a t i o n
This section describes the functionality of the sample application, which is located in the <Install Directory>\
U.are.U SDK\Windows\Samples directory. For more information about the sample application and the sample
code, particularly button functionality, refer to the readme.txt file located in the same directory.
IMPORTANT:To run the sample application, Java runtime environment® (JRE) 1.5 or higher must be installed on
your complaceer.
The DigitalPersona U.are.U SDK window is made up of the following distinct areas:
• Buttons area
This area is located at the left of the window and contains buttons that initiate calls to various methods for
interacting with the fingerprint reader and for performing fingerprint enrollment, verification, and identification
operations.
• Messages area
This area is located above the Buttons area and displays messages that inform the developer of system activity,
invite them to perform actions such as touching the fingerprint reader, or advise them of system errors. The
message that appears when you start the application is “Click to open the device...”.
• Log area
This area is located in the middle of the window and displays a log of system activity, including method calls and
error codes.
• Properties area
This area is located at the right of the window and displays a list of properties, both common and specific (in the
Property name column), and their current values (in the Value column).
Once the connection with the fingerprint reader has been opened, it must be claimed.
To claim the fingerprint reader
• Click Claim.
The claim method of the Device Control is called, the claimed property is set to true, and “Exclusive accessed”
appears in the Messages area.
Once the connection with the fingerprint reader has been claimed, it must be enabled.
To enable the fingerprint reader
• Click Device Enable.
The deviceEnabled property is set to true and “Physical Device Operational” appears in the Messages area.
Enrolling a fingerprint consists of capturing four fingerprint images, converting them into fingerprint pre-
enrollment templates, and then creating an enrollment template from these templates.
To perform fingerprint enrollment
1 Click Begin Enroll Capture.
The beginEnrollCapture method of the Device Control is called and “Touch the sensor four times” appears in the
Messages area.
2 Touch the fingerprint reader four times. Follow the instructions that appear in the Messages area to guide you.
If the method call succeeds, an enrollment template is created and “Total enrollment completed: N” appears in the
Messages area, where N is the number of total enrollments.
If the method call fails, a failure message appears in the box in the Messages area. If an error occurs, appropriate
messages appear in the Messages area, and error codes are displayed in the Log area.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate messages
appear in the Messages area, and error codes are displayed in the Log area.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate messages
appear in the Messages area, and error codes are displayed in the Log area.
If the method call succeeds, a match is performed using the latest enrollment template available and the verification
template that was created in step 2, and “Verification success!” or “Verification failed!” appears in the Messages
area.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate messages
appear the Messages area, and error codes are displayed in the Log area.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate messages
appear in the Messages area, and error codes are displayed in the Log area.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate messages
appear in the Messages area, and error codes are displayed in the Log area.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate messages
appear in the Messages area, and error codes are displayed in the Log area.
If the method call fails, a failure message appears in the Messages area. If an error occurs, appropriate messages
appear in the Messages area, and error codes are displayed in the Log area.
To clear the enrollment template array set and the verification template
• Click Clear Data.
The clearInplace method of the Device Control is called and “Clear data to start enrolling again” appears in the
Messages area.
If the method call succeeds, the enrollment template array set and the verification template are cleared. A new
verification template and a set of enrollment templates can now be created.
If the method call fails, a failure message appears in the Messages area, and error codes are displayed in the Log
area.
Here is a demonstration of a sample sequence, showing the log area and messages.
In the screenshot below, the sample application window shows the following sequence of actions:
• Open
• Claim,
• Device enable,
• Begin enroll capture,
• Captured 4 fingers,
• Begin verify capture,
• Captured 1 finger,
• Verify match,
• Returns a success notification (final message at top left)
P re - R e q u i s i t e s
This chapter assumes that you have a working knowledge of OPOS and that you know how to develop for Microsoft
Windows machines.
S y s t e m R e q u i re m e n t s
Development System
• Microsoft Windows XP Professional or higher, 32-bit or 64-bit
• Microsoft Visual Studio 2008 or 2010 OR Visual Basic 6
U p g ra d i n g f ro m P re v i o u s Ve r s i o n s o f t h e O P O S A P I
To upgrade your existing applications, be sure to do the following steps:
1 Replace your previous dpServiceObject.dll and OPOSBiometrics.ocs with the new versions supplied in the
product directory.
2 Run install.bat in the same directory (default is Windows/Lib/Win32).
NOTE:As each method is called, any properties that change are displayed in the Common Properties and
Specific Properties tabs.
If the method call fails, a failure message appears in the box at the bottom of the window, and error codes are
displayed in the Result Code and Extended Result Code boxes.
Once the connection with the fingerprint reader has been opened, it must be claimed.
To claim the fingerprint reader
• Click Claim().
The Claim method of the CO is called, and the Claimed property is set to true. Then the DeviceEnabled and
DataEventEnabled properties are set to true, and “Device Claimed” appears in the area under the Specific
Methods control box.
If the method call fails, a failure message appears in the box at the bottom of the window, and error codes are
displayed in the Result Code and Extended Result Code boxes.
Once you have opened and claimed the device, the application will look like the screenshot below.
Enrolling a fingerprint consists of capturing four fingerprint images, converting them into fingerprint pre-enrollment
templates, and then creating an enrollment template from these templates.
To perform fingerprint enrollment
1 Click Begin Enroll Capture.
The beginEnrollCapture method of the CO is called, and “Waiting for fingerprint scan” appears in the area under
the Specific Methods control box.
2 Touch the fingerprint reader four times. Follow the instructions that appear in the area under the Specific Methods
control box to guide you.
If the method call succeeds, an enrollment template is created and “Fingerprint Image Scanned” appears in the area
under the Specific Methods control box.
If the method call fails, a failure message appears in the area under the Specific Methods control box. If an error
occurs, appropriate messages appear in the box at the bottom of the window, and error codes are displayed in the
Result Code and Extended Result Code boxes.
If the method call fails, a failure message appears in the area under the Specific Methods control box. If an error
occurs, appropriate messages appear in the box at the bottom of the window, and error codes are displayed in the
Result Code and Extended Result Code boxes.
If the method call succeeds, a match is performed using the latest enrollment template available and the verification
template that was created in step 2. The result appears in the area under the Specific Methods control box:
“Fingerprint matches” or “Fingerprint does not match.”
If the method call fails, a failure message appears in the area under the Specific Methods control box. If an error
occurs, appropriate messages appear in the box at the bottom of the window, and error codes are displayed in the
Result Code and Extended Result Code boxes.
If the method call fails, a failure message appears in the area under the Specific Methods control box. If an error
occurs, appropriate messages appear in the box at the bottom of the window, and error codes are displayed in the
Result Code and Extended Result Code boxes.
On completion of the verify match and identification match, the screen will look similar to the image below.
The verify method of the CO is called, and “Waiting for fingerprint scan” appears in the area under the Specific
Methods control box.
If you do not place your finger on the fingerprint reader within the stipulated time (10 seconds in this sample), the
operation times out and “Timeout error…” appears in the area under the Specific Methods control box.
If the method call fails, a failure message appears in the area under the Specific Methods control box. If an error
occurs, appropriate messages appear in the box at the bottom of the window, and error codes are displayed in the
Result Code and Extended Result Code boxes.
If you do not place your finger on the fingerprint reader within the stipulated time (10 seconds in this sample), the
operation times out and “Timeout error…” message appears in the area under the Specific Methods control box.
If the method call fails, a failure message appears in the area under the Specific Methods control box. If an error
occurs, appropriate messages appear in the box at the bottom of the window, and error codes are displayed in the
Result Code and Extended Result Code boxes.
M e rg e M o d u l e s
The table below shows the merge modules in the Redist folder that are required for each platform.
Merge Module File Description C/C++ .NET ActiveX Java JavaPOS OPOS
x86 x64 x86 x64 x86 x64 x86 x64 x86 x64 x86 x64
DPDevices Device x x x x x
DPDevices64 components x x x x x
DpDrivers x x x x x x x x x x
DPFingerJet PIV-certified x x x x x
DPFingerJet64 FingerJet Engine x x x x x
DPFPApi Device APIs x x x x x
DPFPApi64 x x x x x
DPFPCapture Fingerprint x x x x x
DPFPCapture64 capture x x x x x
DPHostServiceSDK Host Service x x x x x
DPHostServiceSDK64 SDK x x x x x
DPWorkstationPro DigitalPersona x x x x x
DPWorkstationPro64 Workstation Pro x x x x x
components
DPProUtils x x x x x
DPProUtils64 x x x x x
Merge Module File Description C/C++ .NET ActiveX Java JavaPOS OPOS
x86 x64 x86 x64 x86 x64 x86 x64 x86 x64 x86 x64
DPPIVDrivers PIV drivers x x x x x
DPPIVDrivers64 x x x x x
DPJavaPOS JavaPOS libraries x x
DPUareUJava Java libraries x x x x
DPUareUJni Native libraries x x
and JIN wrapper
DPUareUJni64 x x
DPUareUX ActiveX libraries x x
DPUareUNET .NET libraries x x
DPOpos OPOS libraries x x