1. Operating Environment CPU Pentium 4 (Recommend above 2GHz) OS Windows 2000 / XP/Vista, Linux(kernel ver. 2.6.X) RAM About 2Mbytes, and storage for enrollment database Sensor See customer-specific document. (Usually SB1000U)
2. Specification Item spec. Engine version SmackFinger V3.0 Module File Format Dynamic Link(Shared) Library Module File Name SFE.dll(for Windows) / sfe.so(for Linux) Database Capacity See customer-specific document. (5K / 10K / 100K / 300K / 1000K fingerprints) Number of inputs for a fingerprint enrollment 3 times Size 1404 Bytes Fingerprint Template Endianness Little-endian Image Dimension 256 256 pixels (403 dpi) Speed See customer-specific document. (It depends on database capacity and doesnt exceed 1 second on the case of 1000K enrollment, P4 2.4GHz) FRR < 0.01% Accuracy FAR < 0.00001%
Function fp int FuncNo IN Function number long Param1 IN/OUT Parameter 1 long Param2 IN/OUT Parameter 2 Parameter long Param3 IN/OUT Parameter 3 Return int Description All functions of the engine are called through this function. According to the function, the meaning of every parameter is different. For the meaning of every parameter of a function, refer to the description about the function. In case that a parameters type isnt long, its type must be changed to long.
Description Open 1 Initialization. Close 2 Completion. GetEnrollCount 5 Get the count of enrolled fingerprints (in the internal database). GetEmptyPos 6 Get the empty position (in the internal database) for a new enrollment. IsEnrolledPos 7 Check whether a position has been used or not. SetFpdata 11 Set fingerprint feature data (template) into the internal database. GetFpdata 12 Read fingerprint feature data (template) from the internal database. Convert256 13 Convert raw image to 256*256 image FpCheck256 14 Check whether the 256*256 image is a fingerprint image or not. Process256 22 Process 256x256 fingerprint image, get the fingerprint feature data.
Copyright 2004-2008 Beijing Smackbio Technology Co., Ltd. Smack Finger SDK3.0 Specification 1.3 - - 6 EnrollStart 31 Start an enrollment by three fingerprints. EnrollNth256 33 Process Nth 256x256 fingerprint image and set Nth fingerprint enroll data for the enrollment. EnrollNthFpdata 34 Set Nth fingerprint enroll data for the enrollment. EnrollMerge 35 Compound three fingerprints enroll data to a fingerprint feature data (one template). IdentifyFpdata 43 1 to N matching between a fingerprint feature data and the internal database. VerifyFpdata 44 1 to 1 matching between a fingerprint feature data and the specified fingerprint data in the internal database. IdentifyImage256 45 1 to N matching between the 256x256 fingerprint image and the internal database. VerifyImage256 46 1 to 1 matching between the 256x256 fingerprint image and the specified fingerprint data in the internal database. Delete 51 Delete a fingerprint data from the
Copyright 2004-2008 Beijing Smackbio Technology Co., Ltd. Smack Finger SDK3.0 Specification 1.3 - - 7 internal database. DeleteAll 52 Delete all fingerprint data from the internal database. ConvertFpdata Endian 56 Reverse the endianness of a fingerprint feature data (a template). SenAdjust 60 Adjust the sensors brightness. SenCapture 61 Capture an image using SB1000U. SenIsFinger 62 Check whether the captured image is a fingerprint image or not. SenGetImg 63 Read the captured image from SB1000U. SenGetFeature 64 Get the fingerprint feature data of the captured image from SB1000U. SenSetImg 69 Send 256x256 fingerprint image to SB1000U. GetLibraryVersion 100 Get the version number of the library. GetMatchData 1000 Get the buffer address of the internal database.
Error Value Description IMAGE_ERR -1 Error occurred in processing an image. FPDATA_ERR -2 The buffer for the feature among parameters is NULL. ID_ERR -3 ID or Position is invalid. OVER_ERR -4 Internal database overflow. BUFFER_ERR -6 The parameter for a buffer is NULL. SENSOR_ERR -7 Error occurred in capturing or communicating with the device. NTH_ERR -8 EnrollNth256 or EnrollNthFpData (Function No 33, 34) is called in invalid order. MERGE_ERR -9 Error occurred in compounding the three fingerprint enroll data by EnrollMerge(Function No 35). NOT_FINGER -11 A fingerprint isnt being placed. DEV_ERR -100 Device (SB1000U or dongle) error.
FuncNo 1 Alias Open Param1 Param2 Param3 See customer-specific document. If there isnt any attention, all three parameters havent special meaning and call with zero value. 0 Success. Return < 0 Error. Description Initialize the engine, the device and clear the internal database. Before using other functions, you have to call this function.
FuncNo 2 Alias Close Param1 0 No meaning Param2 0 No meaning Param3 0 No meaning 0 Success. Return < 0 Error.
Description Finalize the engine and the device. When the application finishes using of the library, you should call this function.
FuncNo 5 Alias GetEnrollCount Param1 0 No meaning Param2 0 No meaning Param3 0 No meaning >= 0 The count of fingerprint data enrolled in the internal database. Return < 0 Error.
Description Get the count of fingerprint data enrolled in the internal database.
FuncNo 6 Alias GetEmptyPos Param1 0 No meaning Param2 0 No meaning Param3 0 No meaning 0 ~ Database capacity - 1 The empty position in the internal database. Return < 0 Error.
Description Get the empty (no fingerprint data is enrolled) position in the internal database. The position has the value between 0 to Database capacity - 1.
FuncNo 7 Alias IsEnrolledPos Param1(IN) nPos A position value Param2 0 No meaning Param3 0 No meaning 1 Yes, the position has been used. 0 No, the position hasnt been used.. Return ID_ERR nPos value is invalid.
Description Check whether a position has been used or not.
FuncNo 11 Alias SetFpdata Param1(IN) pFpData Buffer address of the fingerprint feature data to be set. Param2(IN) nPos Setting position in the internal database. Param3 0 No meaning. 0 Success. Return < 0 Error.
Description Set a fingerprint feature data into the internal database. If another one exists already in the position, it is overwritten.
FuncNo 12 Alias GetFpdata Param1(OUT) pFpData Buffer address for the fingerprint feature data to be gotten. Param2(IN) nPos Getting position in the internal database. Param3 0 No meaning. 0 Success. Return < 0 Error. Description Get a fingerprint feature data from the internal database. Buffer size must be greater than 1404 bytes.
FuncNo 13 Alias Convert256 Param1(IN) pImageRaw Address of the raw fingerprint image data. Param2(OUT) pImage256 Address of the 256x256 fingerprint image data. Param3 0 No meaning 0 Success. Return <0 Error. Description Convert raw image to 256x256 image..
FuncNo 14 Alias FpCheck256 Param1(IN) pImage256 Address of the 256x256 fingerprint image data. Param2 0 No meaning. Param3 0 No meaning >=0 Percent of the fingerprint area in the image. Return NOT_FINGER A fingerprint isnt being placed. Description Check whether a fingerprint is placed or not in an image.
FuncNo 22 Alias Process256 Param1(IN) pImage256 Address of the 256x256 fingerprint image data. Param2(OUT) pFpData Buffer address for fingerprint feature data to be extracted. Param3 0 No meaning. 0 Success. Return < 0 Error. Description Process the 256x256 fingerprint image, extract the fingerprint feature data.
FuncNo 31 Alias EnrollStart Param1 0 No meaning. Param2 0 No meaning. Param3 0 No meaning. Return 0 Success. Description Start an enrollment by three fingerprints.
FuncNo 33 Alias EnrollNth256 Param1(IN) pImage256 Address of the 256x256 fingerprint image data. Param2(IN) Nth Enroll order. Param3 0 No meaning. 0 Success. < 0 Error. Return > 0 The position of the duplicated fingerprint data in the internal database, 1~Database capacity. Description Process Nth 256x256 fingerprint image and set fingerprint enroll data for an enrollment. For calculating of a fingerprint enrollment data (one template), three successful calls of this function (with setting Param2 to 1, 2 and 3) are required in order. If a duplicated data is detected in the internal database, return its position. This position is (real position + 1) to distinguish from the success return value 0.
FuncNo 34 Alias EnrollNthFpData Param1(IN) pFpData Buffer address of the fingerprint feature data. Param2(IN) Nth Enroll order. Param3 0 No meaning. 0 Success. < 0 Error. Return > 0 The position of the duplicated fingerprint data in the internal database. 1~Database capacity Description Set Nth fingerprint enroll data for an enrollment. For calculating of a fingerprint enrollment data (one template), three successful calls of this function (with setting Param2 to 1, 2 and 3) are required in order. If a duplicated data is detected in the internal database, return its position. This position is (real position + 1) to distinguish from the success return value 0.
FuncNo 35 Alias EnrollMerge Param1(OUT) pFpData Address of the buffer, which the calculated (merged) fingerprint feature data will be stored into. Param2 0 No meaning. Param3 0 No meaning. 0 Success. Return < 0 Error. Description Compound (merge) three fingerprints enroll data into one.
FuncNo 43 Alias IdentifyFpdata Param1(IN/OUT) pFpData Buffer address of the fingerprint feature data to be matched. Param2(OUT) pnSimilarity Address of the similarity variable (long). Param3 0 No meaning. > 0 Success, the position of the matched fingerprint data in the internal database. This value is (real position + 1), that is, 1~Database capacity. 0 Matching failure. Return < 0 Error. Description 1 to N matching with the internal database. Because our engine uses adaptation procedure, the fingerprint feature data returned after successful 1:1 or 1:N matching(Function Number 43, 44, 45, 46) must be saved into the database for the next matching.
FuncNo 44 Alias VerifyFpdata Param1(IN/OUT) pFpData Buffer address of the fingerprint feature data to be matched. Param2(IN) nPos Position of fingerprint data in the internal database. Param3 0 No meaning. 1 Success. 0 Matching failure. Return < 0 Error. Description 1 to 1 matching of the fingerprint feature data with the specified fingerprint data in the database.
FuncNo 45 Alias IdentifyImage256 Param1(IN) pImage256 Address of the 256x256 fingerprint image data. Param2(OUT) pFpData Buffer address for the matched fingerprint feature data. Param3(OUT) pnSimilarity Address of the similarity variable (long). > 0 Success, the position of the matched fingerprint data in the internal database. This value is (real position + 1), that is, 1~Database capacity 0 Matching failure. Return < 0 Error. Description 1 to N matching of the 256x256 fingerprint image.
FuncNo 46 Alias VerifyImage256 Param1(IN) pImage256 Address of the 256x256 fingerprint image data. Param2(IN) nPos Position of fingerprint data in the internal database. Param3(OUT) pFpData Buffer address for the matched fingerprint feature data. 1 Success. 0 Matching failure. Return < 0 Error. Description 1 to 1 matching of the 256x256 fingerprint image with the specified fingerprint data in the database.
FuncNo 51 Alias Delete Param1(IN) nPos Position of a fingerprint feature data to be deleted in the internal databases. Param2 0 No meaning. Param3 0 No meaning. 0 Success. Return < 0 Error. Description Delete the specified fingerprint data from the internal database.
FuncNo 52 Alias DeleteAll Param1 0 No meaning. Param2 0 No meaning. Param3 0 No meaning. Return 0 Success. Description Delete all the fingerprint data from the internal database.
FuncNo 56 Alias ConvertFpdataEndian Param1 pFpdataSrc The address of the source template. Param2 pFpDataDst The address of the destination template. Param3 0 No meaning. Return 0 Success Description Reverse the endianness of the template.
FuncNo 60 Alias SenAdjust Param1 0 No meaning. Param2 0 No meaning. Param3 0 No meaning. 0 Success. Return < 0 Error. Description Adjust the sensor (of SB1000U)s brightness. Adjusted brightness value is saved in persistent storage of SB1000U. After then, SB1000U uses the adjusted brightness value.
The manufacturer must adjust the sensor just before packing. The customer shouldnt adjust the sensor, but if he (she) changes the sensor, the sensor must be adjusted.
Before adjustment, the user must clean the sensor, place the sensor in dark environment (obstruct any lights). This is important.
If the sensor wasnt adjusted, SB1000U uses standard brightness value.
FuncNo 61 Alias SenCapture Param1 0 No meaning. Param2 0 No meaning. Param3 0 No meaning. 0 Success. Return < 0 Error. Description Capture an image. (The captured image is stored in the internal memory of SB1000U.)
FuncNo 62 Alias SenIsFinger Param1 0 No meaning. Param2 0 No meaning. Param3 0 No meaning. >= 0 Percent of the fingerprint area in the image. Return < 0 Error. Description Check whether a fingerprint is being placed in the image (captured by SenCapture) or not. If a fingerprint is being placed, return its percent in the image. Strong recommended minimum percent value is 30%. If the percent value is greater than 50%, the image is a good fingerprint image.
FuncNo 63 Alias SenGetImg Param1(OUT) pImg256 The address of the buffer, which the 256256 image to be stored into. Param2 0 No meaning. Param3 0 No meaning. 0 Success. Return < 0 Error. Description Read the image (captured and stored in the internal memory of SB1000U by SenCapture) and store into the specified buffer. Buffer size must be greater than 256256bytes.
FuncNo 64 Alias SenGetFeature Param1(OUT) pFeature The address of the buffer, witch the fingerprint feature to be stored into. Param2 0 No meaning. Param3 0 No meaning. 0 Success. Return < 0 Error. Description Extract a fingerprint feature from the image (captured and stored in the internal memory of SB1000U by SenCapture) and store into the specified buffer. Buffer size must be greater than 1404bytes.
FuncNo 69 Alias SenSetImg Param1(OUT) pImg256 The address of the buffer of 256256 image. Param2 0 No meaning. Param3 0 No meaning. 0 Success. Return < 0 Error. Description Send the image (256x256) to SB1000U. Buffer size must be greater than 256256bytes.
This function is useful only in SB1000U-based mode. See 9.Limitation
FuncNo 100 Alias GetLibVersion Param1 pdwReleaseDate 0-No get release date, otherwise the address of DWORD variable to get library release date. Param2 pdwLibCapacity 0-No get the library capacity, otherwise (LSB) 30-0 bits represents database capacity. (MSB) 31 bit represents mode. 0 PC-based fingerprint processing. 1 SB1000U-based fingerprint processing. Param3 0 No meaning. Return dwVer Unsigned long type value that represents the library version. Description Get the version number of the library. The customer-specific document specifies the values of the version, the release date and the library capacity.
FuncNo 1000 Alias GetMatchData Param1 0 No meaning Param2 0 No meaning Param3 0 No meaning Return The address of the enrollment database.
Description Get the address of the enrollment database. This function is useful for advanced operations of the database. See demo application source.
Note: Because our engine uses adaptation procedure, the fingerprint feature data returned after 1:1 or 1:N matching must be saved into the database for the next matching.
Start End SaveFpData No SenCapture SenIsFinger ? Yes Yes No VerifyFpdata/ IdentifyFpdata
SB1000U is used to capture images and protect the SFE library, so that this device must be connected to PC before using the library. Otherwise, that is, if the application uses other sensor, the hardware dongle must be connected to PC before using the library.
Because SB1000U has a small internal memory, the captured (by SenCapture) image data in the memory is invalid after call of SenGetFeature. So the functions SenIsFinger and SenGetImg perform valid actions only from a successful calling of SenCapture until calling of SenGetFeature. SenGetImg is needed to read the image (in the SB1000Us internal memory) and doesnt affect SenGetFeature function. And internally SenGetFeature checks whether a fingerprint is presented or not in the image, so the feature extraction can be performed by SenCapture and following SenGetFeature. But, from starting to press his(her) finger on the sensor, the percent of the fingerprint area in the image is increased for a while. Therefore, for the better performance, its recommended to check the quality of the image by SenIsFinger prior to SenGetFeature.
9. Limitation If the database capacity is 1, the application has to use the module only for scanning and extracting of the feature data. Forbidden functions are IdentifyFpdata and IdentifyImage256, that is, the application cannot use 1:N matching functions.
If the application uses other sensor (no SB1000U), SenAdjust, SenCapture, SenIsFinger, SenGetImg, SenGetFeature, SenSetImg are forbidden.
If the mode of library is SB1000U-based, most fingerprint processing operations take place in SB1000U hardware. In this case, forbidden functions are FpCheck256, Process256, EnrollNth256, IdentifyImage256, VerifyImage256. That is, in SB1000U-based mode, if the application is going to operate an image, the application must send the image to SB1000U by SenSetImg, and then get the template by SenGetFeature. After then, the application should operate with the gotten template. See demo sources.
The calling of forbidden functions returns DEV_ERR.