Beruflich Dokumente
Kultur Dokumente
1. Introduction
Thank you for your using Union Community products.
UFOM (Union Community Fingerprint OEM Module) includes module products of Union Community Co., Ltd. (FM-20FP, FM-30FP, FM-70FP, and FAS02NL). For inquiries regarding the module products, please get in touch with the following address;
This document contains explanation on the Protocol to operate the module products and how to use those products. Refer to this document to apply more accurate and diversified functions to your product. In addition, you can test most of the functions explained in this document by using the test program (DvKitUtil.exe) included in the UFOM DvKit with the use of your PC.
The Copyright of this document belongs to Union Community. Therefore the contents introduced by this document may neither be reproduced nor used without prior permission.
UNION COMMUNITY Co.,Ltd. 3F, Hyundai Topics bldg., 44-3, Bango-dong, Songpa-gu, Seoul, 138-050, Korea Tel) +82-2-6488-3000 Fax) +82-2-6488-3099 http://www.unioncomm.co.kr http://www.virditech.com sales@unioncomm.co.kr
FMFM-70FP, FM-20FP has been discontinued. For the FM-70FP, its sensor shall be replaced into FCS023 depending on sales situation. situation.
All Command Packet are sent from main controller to UFOM. UFOM receiving the Command Packet executes the operation according to the command and then sends the Ack Packet again. In this case, Ack Packet is used in the same type. When sending an ACK packet, UFOM sets the result of command execution to ErrorCode field. When a command is executed normally without an error, ErrorCode value is 0 (M2ERROR_ NONE).
1Byte Start
1Byte Command
2Byte wParam
4Byte Param1
4Byte Param2
4Byte exDatalen
2Byte ErrorCode
1Byte Checksum
1Byte Exchecksum
Start of packet (0x02) command field System Id The first parameter where data to be transmitted if any the second parameter where data to be transmitted if any when more data transmitted, here comes the value of the length of the extradata the execution result of the command used for communication error detection used for communication error detection(extradata)
In Command field, commands to be executed by UFOM are written. For more details about how to use each command, see Appendix A Protocol Reference. Some commands need parameters to transmit. If there are any parameters to transmit, data is transmitted with wParam, Param1 and Param2. When there are more data to be transmitted other than wParam, Param1, and Param2, that is, when it is necessary to transmit more than 10 byte data, ExDatlen field is used. On ExDatlen, length of data to be transmitted rather than the data itself is written. Checksum field is used for detecting communication error, on which the value adding up each byte of the packet (Start ~ ErrorCode, 18byte) and exChecksum field is used for detecting communication error in extradata, on which the value adding up each byte of the extra packet is written.
The following shows the packet format for verifying a user whose ID is 0x12345678 using the command CMD_FP_VERIFY(0x55). As shown below, when 0x12345678 is sent, lower bytes are transmitted first (of which 0x55 is command and 0x12345678 is Param1).
1Byte Start
0x02
1Byte Command
0x55
2Byte wParam
0x0000
4Byte Param1
0x12345678
4Byte Param2
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
ExChksum
The following is the actual byte sequence when the above packet is transmitted: 0x55 0x02 0x55 0x00 0x00 0x78 0x56 0x34 0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Chksum exChksum Most functions available by UFOM are performed by one command packet respectively. In other words, those functions are accomplished by sending one command packet. Some commands, however, are accomplished by several command packets. The latter requires authentication by master, which includes master registration, user registration, user fingerprint change, user deletion, and system user mode change. But, these commands can also be used alone without authentication, if master authentication option is disabled. For master authentication option, see Chapter 3.
1. 2. 3. 4.
[e.g.] CMD_IS_ROOT_MASTER
This command is used to check if there is a master registered to UFOM. To check this, main controller transmits the following command packet:
Command Packet from the Main Controller (Little Endian) 1Byte Start
0x02
1Byte Command
0x06 0x06
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
Upon receiving CMD_IS_ROOT_MASTER, UFOM returns ACK packet with the same structure as that of the command packet, with setting CMD_IS_ ROOT_ MASTER to Command field and M2ERROR_NONE to ErrorCode field. UFOM sends the following ACK packet:
1Byte Command
0x06 0x06
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0015
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
10
This command is used to instruct ON/OFF of UFOM relay. Main controller sends a command packet to UFOM, with setting the corresponding relay number to Param1 and the relay ON/OFF state to Param2. Receiving the command packet, UFOM performs the command and returns ACK packet with an error value in ErrorCode field of the packet.
1Byte Command
0x1a 0x1a
2Byte wParam
0x0000
4Byte Param1
0x00000001
4Byte Param2
0x00000001
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x1a 0x1a
2Byte wParam
0x0000
4Byte Param1
0x00000001
4Byte Param2
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
11
Getting a parameter refers to having UFOM sending an ACK packet with setting the information asked by main controller to Param1 or Param2 field of the packet.
[e.g.] CMD_GET_SYSTEM_INFO
CMD_GET_SYSTEM_INFO is used for main controller to get system values set in UFOM. The following shows an example of getting the current system security level: If the main controller sends a command packet to UFOM with setting CMD_ GET_SYSTEM_INFO(0x30) to Command field and SI_SECURITY_ LEVEL to Param1, UFOM sends an ACK packet with setting the current security level to Param2 field of the ACK packet. With the ACK packet, you can see that the current security level is Normal (0x05).
1Byte Command
0x30 0x30
2Byte wParam
0x0000
4Byte Param1
0x00000002
4Byte Param2
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x30 0x30
2Byte wParam
0x0000
4Byte Param1
0x00000002
4Byte Param2
0x00000005
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
12
When it is necessary to exchange 8-byte or larger data, exDatalen field is used. The value in extraData field indicates that there is extra data following the current packet, which is as large as the size specified in exDatalen field. Therefore, main controller or UFOM should receive as more data as the specified size.
[e.g.] CMD_GET_IMAGE
This command is used to get the images captured from UFOM to main controller. Set to Param1 field a value to get the desired image from UFOM. Available settings are VIEW_NORMAL (0x01, normal image size), VIEW_HALF (0x02, half of normal image size) and VIEW_QUARTER (0x04, quarter of normal image). Amount of data to get depends on the selected image size. The main controller reads the extra data size from extraData field of ACK packet from UFOM, and gets as large image as the selected size.
1Byte Command
0x43 0x43
2Byte wParam
0x0000
4Byte Param1
0x00000001
4Byte Param2
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x43 0x43
2Byte wParam
0x0000
4Byte Param1
0x01580130
4Byte Param2
0x00000000
4Byte exDatalen
0x00019880
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
After sending the above ACK packet, UFOM sends the corresponding image data to the main controller.
13
1Byte Command
0x05 0x05
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x05 0x05
2Byte wParam
0x0000
4Byte Param1
0x00000001
4Byte Param2
0x00000002
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x10 0x10
2Byte wParam
0x0000
4Byte Param1
0x00000003
4Byte Param2
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x10 0x10
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Exchecksum
0x00
14
With the above command, you can set whether to or not to use master authentication for user registration. Default is not to use master authentication. The following shows an example of using master authentication. Set CMD_SET_SYSTEM_INFO (0x20) to Command field, SI_USING_ MASTER _AUTHENTICATION (0x00) to Param1, and 1 to Param2. In case 0 is set to Para m2, the commands that require master authentication can be used without master authentication and thus can be performed immediately.
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000001
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000001
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
When designating whether or not to select master authentication, adjustment of security level is executed only once. If you want to correct security level N times, you must execute CMD_FP_VERIFY_MASTER(0x57) in advance. The following shows an example that enables to set security level two times. Set CMD_FP_VERIFY_MASTER(0x57) to Command field, and then designate your desired frequency in Param1. That is, set 0x02 to Param1 when you want to execute two times. (Caution: Master should be registered without fail)
Command Packet (Little Endian) 1Byte 1Byte 2Byte 4Byte 4Byte 4Byte 2Byte 1Byte 1Byte
15
Command
0x57 0x57
wParam
0x0000
Param1
0x00000002
Param2
0x00000000
exDatalen
0x00000000
ErrorCode
0x0000
Checksum
Chksum
Exchecksum
0x00
1Byte Command
0x57 0x57
2Byte wParam
0x0000
4Byte Param1
0x00000001
4Byte Param2
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
If you want to stop further revision regardless of the frequency of security level adjustment, execute CMD_FP_VERIFY_MASTER_END(0x58). The following shows the designation that now enables any further use of security level.
1Byte Command
0x58 0x58
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x58 0x58
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
For event list, please refer to Appendix D. Constant. Constant. This Command is used to set the record of event that occurs in registration, authentication, deletion, and revision in the log data. The following shows an example of activating the log data record. Set CMD_SET_SYSTEM_INFO(0x20) to Command field, set SI_SAVE_LOGEVENT (0x01) to Param1, and set 1 to Param2.
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000001
4Byte Param2
0x00000001
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
16
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000001
4Byte Param2
0x00000001
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
This command is used to set the system security level. Default is SLEVEL_ NORMAL (0x05). This security level is used only for verification. But, the security level for identification should be set with SI_SECURITY_LEVEL_IDENTIFY.
The following is an example of setting the security level to one level higher than normal level. Set CMD_SET_SYSTEM_INFO (0x20) to Command field, SI_ SECURITY_LEVEL (0x02) to Param1, and
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000002
4Byte Param2
0x00000006
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
By setting SI_COMM_SPEED to Param1 in CMD_SET_SYSTEM_INFO, you can change the communication speed of UFOM. At present, UFOM supports 9600bps to 115200bps. Upon receiving this command, UFOM changes the communication speed of the current communication channel and returns ACK. When ErrorCode in the ACK is M2ERROR_ NONE, main controller resets its communication port to the changed speed, to communicate with UFOM. For constants about the communication speed, see Appendix B.
The following shows an example of changing the communication channel speed to 57600bps (0x0003). Command Packet (Little Endian) 1Byte Start
0x02
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000004
4Byte Param2
0x00000003
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
17
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000004
4Byte Param2
0x00000003
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
This command is used for setting the system security level for identification. Default is SLEVEL_HIGHER (0x08). In general, the security level for identification requires to be higher than the security level for verification. Therefore, you cannot set this parameter value lower than SLEVEL_ABOVE_NORMAL (0x06).
The following is an example of setting the security level to one level higher than normal level. Set CMD_SET_SYSTEM_INFO (0x20) to Command field, SI_SECURITY_ LEVEL_IDENTIFY (0x08) to Param1, and SLEVEL_HIGHEST (0x09) to Param2.
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000008
4Byte Param2
0x00000009
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000008
4Byte Param2
0x00000009
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
This Command is used to set the Format of Wiegand Protocol. Supported Formats are as follow; Default is WIEGAND_FMT_26BIT. 0x0000 WIEGAND_NOT_USED 0x012c WIEGAND_FORMAT_26BIT 0x012e WIEGAND_FORMAT_34BIT The following shows an example of setting to WIEGAND_FORMAT_34BIT. Set CMD_SET_SYSTEM_INFO (0x20) to Command field, set SI_WIEGAND_FORMAT(0x09) to Param1, and set WIEGAND_FORMAT_34BIT (0x012E) to Param2.
Command Packet (Little Endian) 1Byte 1Byte 2Byte 4Byte 4Byte 4Byte 2Byte 1Byte 1Byte
18
Command
0x20 0x20
wParam
0x0000
Param1
0x00000009
Param2
0x0002E01
exDatalen
0x00000000
ErrorCode
0x0000
Checksum
Chksum
Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000009
4Byte Param2
0x0002E01
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
This Command is used to set the site code of Wiegand Protocol. 8bit is used when Wiegand format is WIEGAND_FORMAT_26BIT, whereas 16bit is used when it is WIEGAND_FORMAT_34BIT. Command Packet (Little Endian) 1Byte Start
0x02
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000000A
4Byte Param2
Sitecode
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000000A
4Byte Param2
Sitecode
4Byte exDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
This Command is used to determine the function of identifying fake fingerprint when capturing the fingerprint. The level of fake fingerprint identifying function is divided into three types (OFF = 0x00, NORMAL = 0x01, HIGH = 0x02). You can set Off to Param2 if you dont want to use the fake fingerprint identifying function. The following shows an example of setting LFD_LEVEL value to HIGH. Set CMD_SET_SYSTEM_INFO (0x20) to Command field, SI_LFD_LEVEL (0x1a) to Param1, and HIGH that is the highest level to Param2.
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000001A
4Byte Param2
0x00000002
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Exchecksum
0x00
Ack Packet (Little Endian) 1Byte 1Byte 2Byte 4Byte 4Byte 4Byte 2Byte 1Byte 1Byte
19
Command
0x20 0x20
wParam
0x0000
Param1
0x0000001A
Param2
0x00000002
ExDatalen
0x00000000
ErrorCode
0x0000
Checksum
Chksum
Exchecksum
0x00
This Command is used to determine whether or not to use the image of captured fingerprint rotated by 180 degrees.
The following shows an example of rotating the fingerprint image by 180 degrees by setting SI_ROTATE_CAPTURE value to 1. Set CMD_SET_SYSTEM_INFO (0x20) to Command field, set SI_ROTATE_CAPTURE (0x1b) to Param1, and set 1 to Param2. Default value is 0.
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000001B
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000001B
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
Setting
authentication authentication
of
rotating
the
image
by
180
degrees degrees
This Command is used to select whether or not to authenticate when using SI_ROTATE_CAPTURE (0x1b) that is the command for determining the use or non-use of the captured fingerprint image rotated by 180 degrees. When using SI_ROTATE_CAPTURE (0x1b), if SI_ROTATE_MATCHING (0x1c) is applied, authentication is performed regardless of the image rotated by 180 degrees. If it is not in use, authentication is not performed. Use 0 when not in use, whereas use 1 when in use. Default value is 0. The following shows an example of using fingerprint image for authentication by setting SI_ROTATE_MATCHING value to 1. Set CMD_SET_SYSTEM_INFO (0x20) to Command field, set SI_ROTATE_MATCHING (0x1c) to Param1, and set 1 to Param2.
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000001C
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
20
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000001C
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
21
This Command is used to activate or deactivate the Auto Sensing function of fingerprint sensor, performing FLASH SAVE regardless of the users option and in spite of the same function as CMD_AUTO_ONOFF(0x1a). When in use, this Command performs FLASH SAVE. Therefore it is deactivated when not in use.
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000001D
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000001D
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
This Command is used to designate communication speed of Comm0(RS232) channel. Saved in flash memory, this function enables to communicate in the applied communication speed even if UFOM is reset. The following shows an example of changing the current communication channel speed into 57600bps(0x03). doesn FM(Note : It doesnt support FAS02NLC and FM-70FP)
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000001E
4Byte Param2
0x00000003
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000001E
4Byte Param2
0x00000003
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
22
This Command is used to designate the communication speed of Comm1(RS485) channel. Saved in flash memory, this function enables to communicate in the applied communication speed even if UFOM is reset. The following shows an example of changing the current communication channel speed into 57600bps(0x03) doesn FAS02NLC FM-70FP) (Note : It doesnt support FAS02NLC and FM-70FP)
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000001F
4Byte Param2
0x00000003
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x0000001F
4Byte Param2
0x00000003
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
This Command is used to designate the communication speed of Comm2. Saved in flash memory, this function enables to communicate in the applied communication speed even if UFOM is reset. The following shows an example of changing the current communication channel speed into 57600bps(0x03) doesn FM-70FP) (Note : It doesnt support FAS02NLC and FM-70FP)
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000020
4Byte Param2
0x00000003
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000020
4Byte Param2
0x00000003
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
23
This Command is used to display On and Off regarding the success or failure of image authentication when fingerprint is captured.
The following shows an example of changing the display of success or failure of authentication into On.
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000021
4Byte Param2
0x00000003
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000021
4Byte Param2
0x00000003
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
This Command is used to reduce the time for fingerprint registration. When using SI_FAST_MODE, the rate of authentication is decreased.
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000022
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000022
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
24
During
Auto
Sensing
activation,
this
Command
is
used
to
select
CMD_FP_IDENTIFY(0x56)
or
CMD_GET_MINUTIAE(0x40) when the user authenticates fingerprint. CMD_GET_MINUTIAE(0x40) is applied when 1 is selected, whereas CMD_FP_IDENTIFY(0x56) is applied when 0 is selected. Dafault is 0. The following shows an example of activating CMD_GET_MINUTIAE.
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000025
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000025
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
SI_LFD_WHITE_MODE LFD_WHITE_MODE) Option on the use of fake fingerprint color changes inspection (SI_LFD_WHITE_MODE)
This is the option that determines whether to use or not the SI_LFD_WHITE_MODE(0x23) fake fingerprint color changes inspection. You can turn Off if you want to increase the speed of authentication related with module authentication speed. If the security level should be higher, you can use it with ON. The following shows an example of activating SI_LFD_WHITE_MODE(0x23). only) (Note : It supports FAS02NLC only)
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000023
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000023
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
25
This Option is used to improve the speed of registration by reducing the fingerprint image when registering SI_CAPTURE_OLD_SIZE (0x24) fingerprint. When this option is used, the speed of registration becomes faster, but the rate of authentication can worsen as the image gets reduced. The following shows an example of activating SI_CAPTURE_OLD_SIZE (0x24). only) (Note : It supports FAS02NLC only)
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000024
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20 0x20
2Byte wParam
0x0000
4Byte Param1
0x00000024
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
Setting Template type (SI_TEMPLATE_TYPE) SI_TEMPLATE_TYPE (0x26) can set template type as following Param2s option Template type 0x00 : Union[Fixed](400byte) 0x01 : ISO[Fixed](500byte) 0x02 : ISO[Fixed](600byte) 0x03 : ANSI378[Variable] 0x04 : ISO[Variable]
Here is example when it uses ANSI378 [Variable] Command Packet (Little Endian) 1Byte Start
0x02
1Byte Command
0x20
2Byte wParam
0x0000
4Byte Param1
0x00000026
4Byte Param2
0x00000003
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x20
2Byte wParam
0x0000
4Byte Param1
0x00000026
4Byte Param2
0x00000003
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
26
The following is an example of getting the current system security level. With the ACK packet, you can see that the current security level is set to SLEVEL_ ABOVE_NORMAL.
1Byte Command
0x30 0x30
2Byte wParam
0x0000
4Byte Param1
0x00000002
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x3 0x30
2Byte wParam
0x0000
4Byte Param1
0x00000002
4Byte Param2
0x00000006
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
27
The following is an example of getting an image in its normal size. Right after returning ACK packet, UFOM sends as large image data as the size designated in ExtraData field to main controller.
1Byte Command
0x43 0x43
4Byte Param1
0x00000001
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x43 0x43
2Byte wParam
0x0000
4Byte Param1
0x01580130
4Byte Param2
0x00000000
4Byte ExDatalen
0x00019880
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0xE1
28
4. User Registration
Master refers to a user who is authorized to access the information about user registration / deletion and other important information. When UFOM is delivered from factory, nothing has been registered in flash memory. Therefore, master fingerprint should be registered first. If master fingerprint has not been registered, commands the require master authentication return the error code M2ERROR_MASTERFP_NOT_FOUND. Maximum 5 masters can be registered. . Commands for which master authentication is indispensable (But, can be used alone if master authentication option is disabled)
CMD_SET_SYSTEM_INFO CMD_FP_REGISTER_START CMD_FP_DELETE CMD_DB_GET_RECCOUNT CMD_DB_ADD_REC CMD_DB_DELETE_REC CMD_DB_GET_REC CMD_DB_GET_FIRSTREC CMD_DB_GET_NEXTREC CMD_DB_GET_CURRENTREC CMD_DB_DELETE_ALL CMD_LOG_GET_RECCOUNT CMD_LOG_GET_REC CMD_LOG_DELETE_ALL CMD_RECOVER_MASTER
When the system is first used after delivery from factory, master should be registered first. The master that is registered first is called root master. Registering the root master does not require master authentication.
CMD_GET_MASTER_COUNT is used to check whether there are masters registered to the system and to register masters. Upon receiving this command, UFOM returns ACK packet with setting the number of masters currently registered to the system to Param1 field. When the number of masters is 0, UFOM registers masters.
29
Registering a fingerprint requires master authentication and also requires to enter the same fingerprint twice for confirmation. User registration process is outlined below.
CMD_FP_VERIFY_MASTER
// Verify the user with master fingerprint. (Omitted if master authentication option is disabled)
CMD_FP_REGISTER_START CMD_FP_REGISTER_END
// Get the fingerprint to be registered. // Get the second input of the same fingerprint for confirmation.
1. CMD_FP_VERIFY_MASTER
This command is used to verify a user with the master fingerprint before registering the user. First, the user should put the master fingerprint on the Fingerprint Input window. Then, main controller sends this command to UFOM.
After the user puts the master fingerprint on the Fingerprint Input window, the main controller sends CMD_FP_VERIFY_MASTER to UFOM. UFOM compares the fingerprint put on the Fingerprint Input window and the one registered to the system, and returns ACK packet with setting M2ERROR_NONE to ErrorCode field if they are matched or setting an error value if they are not matched. When the ErrorCode set to ACK packet is M2ERROR_NONE, the master controller proceeds to the next step. Param1 of ACK packet carries the user ID of the verifying master.
30
This is a process for input Users ID and Users FP again. Main Controller displays the message about remove and place finger to user. It will be completed done normal register if it remove finger on the sensor.. Main Controller input User ID from CMD_FP_REGISTER_START to Param1, input 1 to Param2 and then send the order about CMD_FP_REGISTER_END to UFOM In case of Non existed User ID or capture is succssful, then after compare to inputted FP in previous step, If it shoud be correct. And then afther saves User ID and FP to Database in UFOM, return M2ERROR_NONE. However if not, it return Error code.. [e.g.] Registering a user
The following shows examples of the packets used for registering a master whose user ID is '0x12345678' under the authentication of another master whose ID is 0x00001111.
1Byte Command
0x57 0x57
4Byte Param1
0x00000000
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
31
1Byte Command
0x57 0x57
2Byte wParam
0x0000
4Byte Param1
0x00001111
4Byte Param2
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x50 0x50
2Byte wParam
0x0000
4Byte Param1
0x12345678
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Exchecksum
0x00
1Byte Command
0x50 0x50
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x51 0x51
2Byte wParam
0x0000
4Byte Param1
0x12345678
4Byte Param2
0x00000001
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x51 0x51
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
Values set to Param1 and Param2 of CMD_FP_REGISTER_START and CMD_FP_REGISTER_END must be the same.
Root Master Registration Process Root master registration process is the same as the above master registration process, except that it does not require master authentication as there is no master registered to the system. In other words, registering the first user to the system, that is root master, does not require the first process of master registration CMD_FP_ VERIFY _MASTER. To register root master, main controller sends commands to UFOM in the following sequence:
32
registered. // Get the second input of the same fingerprint for confirmation.
33
Upon receiving the user ID input, main controller displays a message to put the fingerprint on the Input window. The main controller sends CMD_FP_VERIFY to UFOM, together with the user ID. Wait for ACK from UFOM. UFOM returns M2ERROR_NONE to the main controller if the fingerprint saved with the received user ID is matched with the one in the current Fingerprint Input window. Otherwise, it returns the corresponding error code.
1Byte Command
0x55 0x55
2Byte wParam
0x0000
4Byte Param1
0x00001234
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x55 0x55
2Byte wParam
0x0000
4Byte Param1
0x00001234
4Byte Param2
0x00001234
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
34
CMD_FP_VERIFY_MASTER 1. CMD_FP_VERIFY_MASTER
This command is used to verify with the master fingerprint whether a user to be deleted is actually registered, before deleting the user. Main controller should ask the master to put his fingerprint on the Fingerprint Input window and then send this command to UFOM.
The main controller displays on the panel a message asking the master to put his fingerprint. The master puts his fingerprint on the Input window. The main controller sends CMD_FP_VERIFY_MASTER to UFOM. UFOM verifies if the fingerprint put on the Fingerprint Input window is the master fingerprint registered to the system. If so, it returns ACK packet with setting M2ERROR_NONE to ErrorCode field. Otherwise, it returns the corresponding error code. When the ErrorCode of ACK packet is M2ERROR_NONE, the main controller proceeds to the next step.
2. CMD_FP_DELETE
When master authentication process is succeeded, the main controller sends to UFOM the user ID to be deleted from database, by setting the user ID to Param1.
The main controller receives the input of an user ID to be deleted. It sends CMD_FP_DELETE to UFOM, together with the user ID. UFOM deletes the user ID. When the error code of ACK packet is M2ERROR_NONE, it means that the user is deleted.
35
For example, the content of packets for deleting a user whose user ID is 1234 under authentication by the master whose ID is 00000001 is given below:
1Byte Command
0x57 0x57
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x57 0x57
2Byte wParam
0x0000
4Byte Param1
0x00000001
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x54 0x54
2Byte wParam
0x0000
4Byte Param1
0x00001234
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x54 0x54
2Byte wParam
0x0000
4Byte Param1
0x00001234
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
36
1. CMD_FP_CHANGE_START
1) In case of chaning 1 template per 1 finger It orders to capture first FP to UFOM Main controller asks placing next FP then it sends order about CMD_FP_CHANGE_START to UFOM , Main controller displays the message to place new FP for register to User Main controller send the order about CMD_FP_CHANGE_START with User ID in Packets Param1. If it does not register User ID, it will return M2ERROR_DB_WRONG_USERID If it rigsters FP successfully in UFOM, it will return M2ERROR_NONE. If not, it will return error code 2) In case of changing 2 template per 1 finger It orders to capture first FP to UFOM Main Controller asks placking next FP then it sens order about CMD_FP_CHANGE_START to UFOM , Main controller displays the message to place new FP for register to User Main controller send the order about CMD_FP_CHANGE_START with User ID in Packets Param1. If it does not register User ID, it will return M2ERROR_DB_WRONG_USERID If it rigsters FP successfully in UFOM, it will return M2ERROR_NONE. If not, it will return error code. If ACK Packet error code is M2ERROR_NONE, it will proceed with next step.
This Command is used to complete FP change after inputting FP again. Main controller send the order about CMD_FP_CHANGE_END after remove and place users FP to UFOM Main controller displays the message that remove and place users FP Main controller send the order about CMD_FP_CHANGE_END with User ID into Param1 to UFOM If it change FP successfully in UFOM, it will returnM2ERROR_NONE. If not, it will return error code
37
1Byte Command
0x52 0x52
2Byte wParam
0x0000
4Byte Param1
0x00001234
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x52 0x52
2Byte wParam
0x0000
4Byte Param1
0x00001234
4Byte Param2
0x00000064
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x53 0x53
2Byte wParam
0x0000
4Byte Param1
0x00001234
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
2Byte wParam
0x0000
4Byte Param1
0x00001234
4Byte Param2
0x00000064
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
38
It is same as the user registration process, but differs in that the users ID registered in Param1 should be entered without fail.
Host displays a message asking the user to put his fingerprint on the Fingerprint Input window. The host sends CMD_FP_IDENTIFY to UFOM. If the captured fingerprint is the one registered to database, UFOM returns ACK packet with setting the retrieved user ID to Param1 together with M2ERROR NONE. Otherwise, it returns the corresponding error code.
1Byte Command
0x56 0x56
2Byte wParam
0x0000
4Byte Param1
0x00000000
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
1Byte Command
0x56 0x56
2Byte wParam
0x0000
4Byte Param1
0x00001234
4Byte Param2
0x00000000
4Byte ExDatalen
0x00000000
2Byte ErrorCode
0x0000
1Byte Checksum
Chksum
1Byte Exchecksum
0x00
39
This is the explanation on the protocol of sending extra data divided into small blocks during the transmission of extra data between Host and Module.
1.
Packet (1) is the packet that includes Command Packet in 20 byte, whereas Packet (2) ~ Packet (n) are the packets that include the extra data divided. Transmission can be done to each Packet with Header Packet attached as follow. Header Packet is in the same structure as that of the basic protocol.
0xA0 0x80, Ack(0x06) Number of total data packet. Number of Packet (1) ~ packet (n) Index of data packet. It starts from 0 when sending Packet (1), whereas 1 when sending Packet 2. Data packet length. 20 when sending Packet (1). It is the length of data packet to be divided and transmitted from Packet 2. It should be the same as Param2.
40
In this case, Ack Packet simply sends Command in 0x06 to header packet (20byte) without any data packet.
At the time of sending Packet (1), checksum out of Command Packet 20byte and the checksum of extra data can be disregarded. However, the extra data length should be equal to the sum of the length of extra data to be transmitted. Therefore the structure of normal protocol is sent with the structure divided.
Normal
Host
Module
Command
Extra
Extra
Extra
Command
Ack Packet
Extended
Ack Packet
Packet(n)
Ack Packet
Command
41
This is the case when the Host divides extra data into 150-byte blocks for transmission. When the command is executed, the extra data in 400byte is required.
Host sends the command packet to packet1, sends the divided 150-byte block data packet to packet 2~packet 3, and then sends the other 100-byte block data packet to packet 4.
UFOM executes the Command and transmits Ack Packet about the Command when it receives all the data.
packet2 <S> A0 80 04 00 01 00 00 00 96 00 00 00 96 00 00 00 00 00 51 41 55 4E 49 4F 4E 05 5A 00 03 3C 78 00 14 63 87 28 D0 B7 9F 36 EF 86 7F 1C 52 91 03 FA 68 37 C5 47 DF 36 F0 51 1E 5F 3E A0 C3 8F DA 49 CB 70 64 25 3D C1 B8 B8 C9 BA BA 58 19 86 0A 0E 26 36 F4 5A CC 3A B5 5A 50 35 86 29 F3 83 C6 4A 0A 06 FE 0B D2 D2 08 0C C3 81 56 D9 83 B6 32 BD E9 29 C4 A4 C2 32 D5 00 6F ED A2 EA 61 91 9D 79 2E 5C 39 C1 98 2A 3B 23 AD E7 D7 9E 0C A5 6A 8A AC BD 03 76 71 65 29 3B 2C 45 18 A0 4D 22 0B F5 0B 37 0B E1 0B DD 44 73 6E 88
42
43
Packet (1) is the packet that includes Header Packet in 20byte and Command Packet. Packet (2) ~ Packet (n) are Ack Packets. The only purpose of Ack Packet is to transmit Header Packet.
Host -> Module Start : Command : Wparam : Param1 : Param2 : 0xA0 0x82, Ack(0x06) Ack(0x06) 0x0000 0x00000000 Length of data packet to be separated and sent Extra data length 0x14 in case of Packet 1; 0x00 in case of Ack 0x0000 codes Start ~ Sum of error codes 1; Sum of data packet in case of Packet 1; 0x00 in case of Ack 0xA0 0x82
Num of total data packet (n) NIndex of data packet (0 ~ N-1) data Length of data packet
Same as Param2
In this case, at the time of Host sending Packet 1, checksum of Command Packet 20byte and ext checksum can be disregarded. Therefore, like 1.1, it simply sends the structure of Normal Protocol separately.
44
Host
Command
Module
Command Packet
Command Extended
Extra
Extra
Extra
Header Packet
Command
Ack Packet Packet(3) Ack Packet Packet(n) Header Packet (index Divided extra data(n) Header Packet (index extra Divided extra data(2)
This is the case where the Host receives extra data divided into 150-byte blocks.
When the Command is executed, the extra data in 400 Byte is created. UFOM sends Ack packet about command packet to packet1, sends the divided block data packet in 150 Byte to packet2~packet3, and sends the other 100-byte block data packet to packet 4.
45
46
47
There are two booting modes in FAS02NLC. It enables to identify if the booting mode is being performed in the boot area or in the main area. After connecting the module with the power source and serial port, set the existing Baud rate previously set in DvKiUtil, and then click Init Port. When the module is reset, data is displayed on the Tracer window. When resetting it with the module under normal operation, E2 is exported in the Command Packet. The following example shows the data available on the Tracer window when booted with E2. <R> 02 E2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E4 00 If the user fails to check Tracer, packet cannot be identified.
There are two pins in the name of SW1 at the backside of FAS02NLC. When the module is not operated normally or firmware is not upgraded due to exceptional problems, the user can do the same thing as mentioned above. After setting the Baud rate in DvKiUtil to 115200, and resetting the module in the same way as above with the part in the name of SW1 short-circuited, the following will be displayed on the Tracer window. <R> 02 E1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E3 00
Once the booting with E1 mode is recognized, it requires releasing the short circuit of two Pins in the SW1. In case of booting with E1 mode, all other functions dont work. It only supports the firmware upgrade function. After the firmware is upgraded and reset, it automatically boots with E2.
48
Start
Command
WParam
If this parameter is 0, all commands are executed. If this parameter is larger than 0, the command is executed only when this parameter value is the same as the system ID. - Ack : Returns the current system ID.
Param1
Param2
Used when there is extra data to be used other than Param1. Used when there is extra data to be transmitted other than Param1 and Param2. This field does not carry data but only carries the data length. UFOM sets the result of executing the command requested by host or main
ExDatalen
ErrorCode
controller to this field. When the command is successfully executed, it returns M2ERROR_NONE (0x00). ErrorCode field is used only for ACK packet. Checksum field is used to detect communication errors, which is set as the
Checksum
remnant of dividing the sum of byte values of the packet (Start ~ ErrorCode, 18 bytes) by 256.
exChecksum
exChecksum field is used to detect communication errors, which is set as the remnant of dividing the sum of byte values of the extra packet by 256.
49
This command is used to get the current protocol version. ACK packet is returned with major version in Param1 and minor version in Param2. Error code is always M2ERROR_NONE.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0x02 0x05
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum M2ERROR_NONE Version Major Number Version Minor Number 0x02 0x05
50
This command is used to check whether there is a root master registered to the system. When a master has been registered, UFOM returns M2ERROR_NONE.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum 0 0x02 0x06
exCheckSum
ErrorCode
M2ERROR_NONE There is a root master registered. M2ERROR_MASTERFP_NOT_FOUND There is no root master registered.
CheckSum exCheckSum
51
This command is used to get the current system ID. UFOM returns ACK packet with setting the current system ID to Param1. Error code is always M2ERROR_NONE.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0x02 0x0e
ACK: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum M2ERROR_NONE Being executed normally system id 0x02 0x0e
exCheckSum
52
This command is used to set a new system ID. System ID to be set is set to Param1 of the command packet.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 system id 0x02 0x0f
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum M2ERROR_NONE Being executed normally M2ERROR_INVALID_PARAM - When Param1 value is wrong System id 0x02 0x0f
exCheckSum
53
This command is used to test if a hardware device is normally operating. Device number to be tested should be specified in Param1. Available device numbers are as follows:
If the error value for DEVICE_ALL is not M2ERROR_NONE, execute DEVICE_ SENSOR and DEVICE_FLAHMEM to get the corresponding device state.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 Device Number 0x02 0x10
0x00 0x10
ErrorCode
M2ERROR_FLASH_OPEN There is an error in the flash memory. M2ERROR_SENSOR_OPEN There is an error in the image sensor.
CheckSum exCheckSum
54
This Command is the reset instruction that releases the currently designated or selected function and returns to the original stand-by state.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0x00 0x11
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 M2ERROR_NONE Device is operating in a normal condition 0x00 0x10
55
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum 0 0 On/Off(On 1, Off 0) 0x02 0x14
exCheckSum
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum 0 M2ERROR_NONE The command has been executed normally. 0x02 0x14
exCheckSum
56
This command is used to activate Auto sensing function on the optical sensor.
Command: Start Command WParam 0x02 0x1a 0 0=Disable auto sensing 1= Enable auto sensing 0=do not save Param1 value to flash 1=save Param1 value to flash 0x0000 0x0000
Param1
Param2
exCheckSum
ACK: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum M2ERROR_NONE The command has been executed normally. 0 0x02 0x1a
exCheckSum
57
SI_COMM_SPEED(0x04) This selector is used to set the communication speed of the current communication channel. Upon receiving ACK for this command, UFOM can communicate at the changed communication speed. Supported communication speeds are as follows. Default is (FAS02NLC: 0x01 BAUD_115200, FM-30FP: 0x17 BAUD_19200) But, as the value changed with this command is not saved in flash memory, the default is restored when UFOM is reset.
58
SI_SECURITY_LEVEL_IDENTIFY(0x08) This selector is used to set the security level for identification. In general, the security level for identification should be managed to be higher than that for verification. The security level for identification can be set only within the range of 3~9, but lower security levels cannot be set. Default is 4
SI_WIEGAND_FORMAT(0x09) This selector is used to set Wiegand Protocol format. Supported formats are as follows. Default is WIEGAND_FMT_26BIT. 0x0000 WIEGAND_NOT_USED 0x012c WIEGAND_FORMAT_26BIT 0x012e WIEGAND_FORMAT_34BIT
SI_WIEGAND_SITECODE(0x0a) This selector is used to set the sitecode of Wiegand Protocol. If Wiegand format is WIEGAND_FORMAT_26BIT, an 8-bit sitecode is used and if it is
59
SI_ROTATE_ SI_ROTATE_CAPTURE (0x1b) ROTATE This command is for using 180 rotation image when capturing fingerprint image - for use, 1 and for nonuse, 0. Default is set to 0.
SI_ROTATE_ SI_ROTATE_MATCHING (0x1c) ROTATE This Command is used to select whether or not to authenticate when using the Command SI_ROTATE_CAPTURE (0x1b) that determines the use or non-use of the image rotated by 180 degrees when capturing the fingerprint. When using the Command SI_ROTATE_CAPTURE (0x1b), if the user applies Command SI_ROTATE_MATCHING (0x1c), it performs authentication regardless of the image being rotated to 180 degrees, whereas it doesnt perform authentication when not in use. 0 when not in use whereas 1 when in use. Default value is 0.
SI_AUTO SI_AUTO_ONOFF(0x1d) UT This is the same function as CMD_AUTO_ONOFF (0x1a) but it performs FLASH SAVE regardless of user option. This is the Command SI_AOUT_ONOFF (0x1d) that activates or deactivates the function of Auto Sensing of the fingerprint sensor. When using this Command, it performs FLASH SAVE and therefore it deactivates when not in use.
SI_COMM0_SPEED (0x1e) RS232 This Command is used to designate the communication speed of Comm0 channel. Saved in flash memory, it enables to communicate at the applied communication speed although UFOM is reset. (Note: It doesnt support FAS02NLC and FM-70FP)
SI_COMM1_SPEED (0x1f) RS485 This Command is used to designate the communication speed of Comm1 channel. Saved in flash memory, it enables to communicate at the applied communication speed although UFOM is reset. (Note: It doesnt support FAS02NLC and FM-70FP)
SI_COMM1_SPEED (0x20) RS232 This Command is used to designate the communication speed of Comm2 channel. Saved in flash memory, it enables to communicate at the applied communication speed although UFOM is reset. (Note: It doesnt support FAS02NLC and FM-70FP)
60
SI_FAST_MODE (0x22) This is the function that reduces the time in the registration of fingerprint. However, the rate of authentication drops when SI_FAST_MODE is used.
This Command is used to select CMD_FP_IDENTIFY(0x56) or CMD_GET_MINUTIAE(0x40) if the user performs fingerprint authentication when activating SI_ROTATE_MINUTIAE Auto Sensing. CMD_GET_MINUTIAE(0x40) is applied when 1 is selected, whereas CMD_FP_IDENTIFY(0x56) is applied when 0 is selected. Default is 0.
SI_LFD_WHITE_MODE (0x23) This option is used to determine whether or not to use the inspected part of fake fingerprint color changes. With regards to the module authentication speed, if you want to increase authentication speed, simply set it to OFF. If the security level is required to be increased, use it after setting to ON. Default is 1. only) (Note: It supports FAS02NLC only)
SI_CAPTURE_OLD_SIZE (0x24) This option is used to reduce the image of fingerprint at the time of registering fingerprint and then increase the registration speed. If this option is used, the speed of registration can be faster but the rate of authentication can worsen as much as the image is reduced. only) (Note: It supports FAS02NLC only)
SI_ROTATE_MINUTIAE (0x25 SI_ROTATE_MINUTIAE (0x25) This Command is used to select CMD_FP_IDENTIFY(0x56) or CMD_GET_MINUTIAE(0x40) when the user performs fingerprint authentication when activating auto sensing. CMD_GET_MINUTIAE(0x40) is applied when 1 is selected, whereas CMD_FP_IDENTIFY(0x56) is applied when 0 is selected. Default is 0.
61
62
This commend is used to set the speed of existed communication channel. After receiving ACK, the speed is changed. The supported communication speed is the same as SI_COMM_SPEED which is belong to
However this commend has the same function of SI_COMM_SPEED, the value of Param2 is 1, it save the value at the flash memory so that even thought UFOM is reset it has the same commend speed.
FMThe version of FM-20FP are more then 3.1, the default communication speed is 19200bps if it use the initialize s/w.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Communication speed (BAUD_1200 ~ BAUD_115200) 1 = save at the flash, 0 = dose not save at the flash 0 0 0x02 0x21
ACK: Start Command wParam Param1 Param2 ExDatalen Communication speed (BAUD_1200 ~ BAUD_115200) 0 0 M2ERROR_NONE The command has been executed normally M2ERROR_INVALID_PARAM it has wrong Param1 value 0x02 0x21
ErrorCode
CheckSum exCheckSum
63
This command is used to set time by adjusting the clock in UFOM. UFOM should send the size of TimeInfo by setting it to ExtraDat field, and then send time in the order of year, month, day, hour, minute and second. It returns ACK after receiving ExtraData from host.
UFOM time is not accurate and when UFOM is reset, the time is also reset. Therefore, when UFOM is reset, reset, the time should be set accordingly. Even when it is not reset, it is recommended to set correct time once in several days.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Sizeof(TimeInfo) 0x02 0x24
Subsequent data sequence is the same as TimeInfo. Year 2Byte Month 1Byte Day 1Byte Hour 1Byte Min 1Byte Sec 1Byte reserved 1Byte
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum 0 M2ERROR_NONE The command has been executed normally M2ERROR_TIME_ERROR Set to wrong time value 0x02 0x24
64
65
This Command is for setting the timeout at the time UFOM captures the fingerprint. Timeout value set by this Command is equally applied to all the commands requiring fingerprint capture. Timeout value should be set to 3~25 seconds.
Command: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0x02 0x28 0 Timeout value (3~25) 0=do not save Param1 value to flash 1=save Param1 value to flash 0 0
ACK: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 M2ERROR_NONE The command has been executed normally. M2ERROR_INVALID_PARAM it has wrong Param1 value Timeout value 0x02 0x28
66
This Command is used for determining the use or non-use of the analogous fingerprint of UFOM and setting the value of fingerprint level. Under this Command, it means non-use when 0 is set to Param1 whereas use when 1 is set to Param1. In case of Param2, the value between 5 and 9 can be used in designating the analogous fingerprint level. With level 5 or less, it can be judged as no analogous fingerprint, and therefore the user is prohibited to use at level 5 or less.
Command: Start Command WParam Param1 0x02 0x28 0 0= Not used 1= Used Value between 5~9 is designated 0 0
ACK: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum 0= Not used 1= Used Acknowledge the value designated between 5~9. 0 M2ERROR_NONE The command has been executed normally. M2ERROR_INVALID_PARAM it has wrong Param1 value 0x02 0x28
67
68
This command is used to get the current system settings of UFOM. Set an item (Selector) to get to Param1. Upon receiving this command, UFOM returns ACK packet with setting the current system setting for the item to Param2.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum Item 0 0 0 0x02 0x30
exCheckSum
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum Selector Current setting corresponding to the selector 0 M2ERROR_NONE The command has been executed normally M2ERROR_INVALID_PARAM it has wrong Param1 value 0x02 0x30
exCheckSum
69
This Command is used for obtaining the information of the OEM module in use. It enables to obtain more information than CMD_GET_VERSION (0x05). CMD_GET_VERSION may obtain the information of F/W Major, Minor version only. When sending the Command Packet, UFOM transmits the following information in the ACK PACKET. - Param1 : Full version information of module firmware (In case of 0x00205217, it becomes 20.52.23)
- Param2 : Module Firmware Checksum 4 Byte. - ExData : Module Name (9 byte) + String on full version information of module firmware (8 byte). V20BU(FM-20FP), FAS02NL2(FAS02NL) Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x38 V30BU(FM-30FP), V70BU(FM-70FP), FAS02NLC(FAS02NLC),
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum The order of data to be sent thereafter is as follow; Full version information of module firmware Module firmware checksum 0x11 M2ERROR_NONE Being executed normally 0x02 0x38
70
This Command is used for obtaining the ID of the OEM module in use. When sending the Command Packet, UFOM sends the following information in the ACK PACKET. - Param1 : MANUFACTURE ID of Module (0x00005543) - Param2 : Product ID of Module FM-20FP FM-30FP FM-70FP FAS02NL FAS02NLC 0x464D0002 0x464D0003 0x464D0007 0x46410002 0x46410003
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x3F
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum MANUFACTURE ID (0x00005543) Product ID 0 M2ERROR_NONE The command has been executed normally 0x02 0x3F
71
This Command is used to receive the fingerprint from the optical device and then extract the characteristics from such fingerprint. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0 0x02 0x40
ACK: Start Command wParam Param1 Param2 ExDatalen 0x190 ( = 400bytes) M2ERROR_NONE The command has been executed normally ErrorCode M2ERROR_TIMEOUT There is no fingerprint in the Fingerprint Input window, or fingerprint input is wrong, There is an error in the image sensor. CheckSum exCheckSum 0x02 0x40
72
ACK: Start Command wParam Param1 Param2 ExDatalen Data length to be sent M2ERROR_NONE The command has been executed normally. ErrorCode M2ERROR_TIMEOUT - There is no fingerprint in the Fingerprint Input window, or
fingerprint input is wrong
0x02 0x43
M2ERROR_INVALID_PARAM it has wrong Param1 value CheckSum exCheckSum Subsequent data sequence is as follows: Image data as long as ExtraData length
73
This command is used to get time information from the clock in UFOM. UFOM should send the size of TimeInfo by setting it to ExtraDat field, and then send time in the order of year, month, day, hour, minute and second.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x44
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Sizeof(TimeInfo) M2ERROR_NONE The command has been executed normally. 0x02 0x44
Subsequent data sequence is the same as TimeInfo. Year 2Byte Month 1Byte Day 1Byte Hour 1Byte Min 1Byte Sec 1Byte reserved 1Byte
74
This command is used to get the number of users registered to the system.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum 0 0 0x02 0x46
exCheckSum
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum 0 M2ERROR_NONE The command has been executed normally. Number of users registered to the system 0x02 0x46
exCheckSum
75
This command is used to get the number of masters registered to the system.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum 0 0 0x02 0x47
exCheckSum
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum 0 M2ERROR_NONE The command has been executed normally. Number of masters registered (0-5) 0x02 0x47
exCheckSum
76
This commend is used to get the timeout when fingerprints are captured by UFOM.
Command: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum 0 0 0x02 0x48
exCheckSum
ACK: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum M2ERROR_NONE The command has been executed normally. Timeout value 0x02 0x48
exCheckSum
77
This Command is used for finding out whether or not using the analogous fingerprint of UFOM. It is also used for obtaining the value of fingerprint level.
Command: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum 0 0 0x02 0x48
exCheckSum
ACK: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum M2ERROR_NONE The command has been executed normally. Use/Non-use Current set level value 0x02 0x48
exCheckSum
78
This Command is used for obtaining the number of registered fingerprints of User ID from the database. When User ID is sent in the Command Packet Param1, UFOM sends the number of fingerprints in the ACK PACKET Param2. If Param2 is 0, it means that there is no registered fingerprint.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 User ID 0x02 0x4e
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum User ID Number of registered fingerprints 0 M2ERROR_NONE The command has been executed normally. 0x02 0x4e
79
This Command is used for obtaining the number of registered fingerprints from the database. When the Command Packet is sent, UFOM transmits the following information in the ACK PACKET. - Param1 : Number of fingerprints registered in the module - Param2 : Number of total fingerprints of module (Upper 16Byte), Number of fingerprints that can be registered additionally in the module (Lower 16Byte) Accordingly, (Param2 Upper 16 Byte) = Param1 + (Param2 Lower 16 Byte). Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x4F
ACK: Start Command wParam Param1 Number of fingerprints registered in the module Number of total fingerprints of module (Upper 16 Byte), Param2 Number of fingerprints that can be registered additionally in the module (Lower 16 Byte) ExDatalen ErrorCode CheckSum exCheckSum 0 M2ERROR_NONE Being executed normally 0x02 0x4F
80
ErrorCode
CheckSum exCheckSum
81
CMD_FP_REGISTER_END. If the user keeps putting his fingerprint on the Fingerprint Input window without taking it from the window, his fingerprint is not registered. This command cannot accomplish its function on its own, but should be accompanied by the following commands in due order to complete fingerprint registration. When 0x1 is set to CMD_FP_VERIFY_MASTER Param1, it conducts only once. Therefore, CMD_FP_ REGISTER _START and CMD_FP_ REGISTER _END can be used when 0x2 is imported without fail. CMD_FP_VERIFY_MASTER CMD_FP_REGISTER_START CMD_FP_REGISTER_END But, when master authentication is disabled with CMD_SET_SYSTEM_INFO, CMD_FP_VERIFY_MASTER is omitted. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum ACK: Start Command wParam Param1 Param2 ExDatalen 0 0x02 0x51 User ID 1 Master, 0 Ordinary User 0 0 0x02 0x51
82
83
CMD_FP_CHANGE_START and CMD_FP_CHANGE_END can be used when 0x2 is imported without fail. CMD_FP_VERIFY_MASTER CMD_FP_CHANGE_START CMD_FP_CHANGE_END But, when master authentication is disabled with CMD_SET_SYSTEM_INFO, CMD_ FP _VERIFY_MASTER is omitted. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 User ID 0x02 0x52
ACK: Start Command wParam Param1 Param2 ExDatalen 0 M2ERROR_NONE The command has been executed normally ErrorCode M2ERROR_TIMEOUT There is no fingerprint on the Fingerprint Input window, or
fingerprint input is wrong.
0x02 0x52
84
This is a command to complete changing the fingerprint by capturing the fingerprint put on the current Fingerprint Input window and then comparing it with the one captured with CMD_FP_CHANGE_START. The same as with CMD_FP_REGISTER_END, this process requires the user to take off his hand from the Fingerprint Input window and then put it back to the window between two fingerprint inputs. When 0x1 is set to CMD_FP_VERIFY_MASTER Param1, it conducts only once. Therefore, CMD_FP_CHANGE_START and CMD_FP_CHANGE_END can be used when 0x2 is imported without fail. CMD_FP_VERIFY_MASTER CMD_FP_CHANGE_START CMD_FP_CHANGE_END But, when master authentication is disabled with CMD_SET_SYSTEM_INFO, CMD_FP_VERIFY_MASTER is omitted. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 User ID 0x02 0x53
ACK: Start Command wParam Param1 Param2 ExDatalen 0 M2ERROR_NONE The command has been executed normally. M2ERROR_TIMEOUT There is no fingerprint on the Fingerprint Input window, or ErrorCode
fingerprint input is wrong.
0x02 0x53
85
86
This is a command to delete a registered user. In order to delete a registered user from flash memory, the user should first be verified by master. Deleting the fingerprint of a user should be done in the following order: CMD_FP_VERIFY_MASTER CMD_FP_DELETE But, when master authentication is disabled with CMD_SET_SYSTEM_INFO, CMD_FP _VERIFY_MASTER can be omitted. Param2 of ACK tells whether the deleted user was a master or not.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 User ID 0x02 0x54
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum User ID Master Flag 0 M2ERROR_NONE The command has been executed normally. 0x02 0x54
87
This is a command to verify a user. The system compares the fingerprint put on the current Fingerprint Input window with the one stored in database, and returns the result. Param2 of ACK tells whether the verified user was a master or not.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 User ID 0x02 0x55
ACK: Start Command wParam Param1 Param2 ExDatalen User ID Master Flag 0 M2ERROR_NONE The command has been executed normally. M2ERROR_TIMEOUT - There is no fingerprint on the Fingerprint Input window, or ErrorCode
fingerprint input is wrong.
0x02 0x55
88
This is a command to identify a user without a user ID by capturing the fingerprint put on the current Fingerprint Input window and comparing it with all fingerprints registered to database. The system returns the result. When the user is a registered user, the error code of ACK is M2ERROR_NONE. Param1 field of ACK contains the user ID, and Param2 field contains a value indicating whether the user is a master or not.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x56
ACK: Start Command wParam Param1 Param2 ExDatalen User ID Master Flag 0 M2ERROR_NONE The command has been executed normally. M2ERROR_TIMEOUT - There is no fingerprint on the Fingerprint Input window, or ErrorCode
fingerprint input is wrong.
0x02 0x56
CheckSum exCheckSum
89
CMD_DB_VERIFY_MASTER_END. When this command is executed successfully, Param1 of ACK contains the ID of the master who verified the command. Command: Start Command Wparam Param1 Param2 ExDatalen ErrorCode CheckSum ExCheckSum 0 0 0 - All the subsequent commands are verified. For a number larger than 1, as many subsequent commands as the number are deemed to be verified. 0x02 0x57
ACK: Start Command Wparam Param1 Param2 ExDatalen 0 M2ERROR_NONE The command has been executed normally. M2ERROR_TIMEOUT There is no fingerprint on the Fingerprint Input window, or the fingerprint input is wrong. M2ERROR_MASTERFP_NOT_FOUND No root master has been registered. M2ERROR_VERIFY_FAIL No master fingerprint User ID of the master who verified the command 0x02 0x57
ErrorCode
CheckSum exCheckSum
90
This is a command to nullify the remaining number of commands for verification designated with CMD_FP_VERIFY_MASTER or CMD_DB_VERIFY_MASTER. For example, if this command is instructed when five commands have been verified with
CMD_FP_VERIFY_MASTER and there are three more commands to be verified, the deemed verification for the remaining commands is nullified. In other words, in order to execute a command that requires verification after this command, the command should be verified by master with CMD_FP_VERIFY_ MASTER.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x58
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 M2ERROR_NONE The command has been executed normally 0x02 0x58
91
This command functions the same as CMD_FP_IDENTIFY does, except that it can specify the section to be identified so that it can get the desired result faster when identifying a fingerprint among certain IDs. If an user ID with the matching fingerprint is found within the specified section, Error Code field of ACK contains M2ERROR_NONE; Param1 contains the user ID; and Param2 contains a value that tells whether the identified user is a master or not.
command As this command retrieves fingerprint images only from the specified section, the matched fingerprint image may not be identified even though it exist in database, if a wrong section is designated.
Command: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Start ID of the section to be retrieved End ID of the section to be retrieved 0 0 0x02 0x59
ACK: Start Command WParam Param1 Param2 ExDatalen User ID Master Flag 0 M2ERROR_NONE The command has been executed normally. M2ERROR_TIMEOUT There is no fingerprint on the Fingerprint Input window, or fingerprint ErrorCode input is wrong. M2ERROR_IDENTIFY_FAILED There is no fingerprint in database of the specified section, which is matched with the one in the current Fingerprint Input window. CheckSum exCheckSum 0x02 0x59
92
CMD_FP_ADD performs the function of registering the fingerprint in the User ID. This is used to register N fingers of the user in one User ID although only one fingerprint is registered in the User ID. For example, at the time of fingerprint authentication, if the middle finger is registered using this function, when the user wants to enter with the middle finger or index finger although the registration is made for the index finger in the User ID, it enables to authenticate the fingerprints of both fingers.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 User ID 0x02 0x5b
ACK: Start Command wParam Param1 Param2 ExDatalen 0 M2ERROR_NONE Being executed normally M2ERROR_TIMEOUT When fingerprint is not in the fingerprint import window or fingerprint is wrongly imported M2ERROR_VERIFY_FAILED - Captured fingerprint doesnt correspond with the registered ErrorCode fingerprint M2ERROR_SIMILAR_FP_EXIST - Analogous fingerprint is registered when analogous fingerprint is used. M2ERROR_REGISTER_FAILED Two fingerprints are not in accord. M2ERROR_DB_NO_DATA There is no user with ID to be registered User ID 0x02 0x5b
93
94
This is a command to verify users fingerprint. After captured fingerprint and the fingerprint from ExData are compared, its result returns. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Size of Minutiae 0 0x02 0x55
ACK: Start Command wParam Param1 Param2 ExDatalen 0 M2ERROR_NONE The command has been executed normally. M2ERROR_TIMEOUT There is no fingerprint on the fingerprint input window, or fingerprint ErrorCode input is wrong. M2ERROR_VERIFY_FAILED There is no match between captured fingerprint and registered fingerprint. CheckSum exCheckSum 0x02 0x55
95
This commend is used for cancelling the command while fingerprint is registered or access a fingerprint at the fingerprint sensor. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0x02 0x5d
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 M2ERROR_NONE The command has been executed normally 0x02 0x5d
96
CMD_FP_VERIFY_MASTER processing
97
This is a command to complete adding the fingerprint of a registered user by capturing the fingerprint put on the current Fingerprint Input window and comparing it with the one captured with
CMD_FP_ADD_START. The same as with CMD_FP_REGISTER_END, this process requires the user to take off his hand from the Fingerprint Input window and then put it back to the window between two fingerprint inputs. Adding the fingerprint of a user should be done in the following order: CMD_FP_VERIFY_MASTER CMD_FP_ADD_START CMD_FP_ADD_END But, when master authentication is disabled with CMD_SET_SYSTEM_INFO, CMD_FP _VERIFY_MASTER is omitted. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0x0000 0x0000 User ID 0x00 0x5f
98
ErrorCode
M2ERROR_FUNCTION_FAIL Fingerprint registration failed M2ERROR_FLASH_WRITE_ERROR Failed to write on flash memory M2ERROR_SIMILAR_FP_EXIST - Analogous fingerprint is registered when analogous fingerprint is used.
CheckSum exCheckSum
99
This is a command to see whether a user has been registered or not. With Param2 of ACK, you can also tell whether the user is a master or not.
Command: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 User ID 0x02 0x60
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum User ID Master Flag 0 M2ERROR_NONE Registered user M2ERROR_DB_WRONG_USERID Not registered user 0x02 0x60
100
This is a command to get the password of a user. With Param2 of ACK, you can tell whether the user is a master or not.
Command: Start Command Wparam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 User ID 0x02 0x6c
ACK: Start Command WParam Param1 Param2 ExDatalen User ID Master Flag Sizeof password M2ERROR_NONE User with a registered password ErrorCode M2ERROR_USER_NOT_FOUND - ID imported by the user is not registered. M2ERROR_DB_WRONG_USERID - User without a registered password CheckSum exCheckSum 0x02 0x6c
101
This is a command to verify the password of a user. With Param2 of ACK, you can tell whether the user is a master or not.
Command: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 Sizeof password User ID 0x02 0x6d
ACK: Start Command wParam Param1 Param2 ExDatalen User ID Master Flag 0 M2ERROR_NONE The command has been executed normally. ErrorCode M2ERROR_VERIFY_FAILED Password verification failed. M2ERROR_DB_WRONG_USERID Not registered user M2ERROR_USER_NOT_FOUND - ID imported by the user is not registered. CheckSum exCheckSum 0x02 0x6d
102
This is a command to add the password of a user. With Param2 of the command packet, you can designate whether the user is a master or an ordinary user.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum User ID w (lower 2 bytes) = 1 Master, 0 Ordinary User hw (higher 2 bytes) = Overwrite flag Sizeof password 0 0x02 0x6e
ACK: Start Command wParam Param1 Param2 ExDatalen User ID 1 Master, 0 Ordinary User 0 M2ERROR_NONE The command has been executed normally M2ERROR_ALREADY_REGISTERED_USER When hw is 0, it means that the user has ErrorCode
already been registered.
0x02 0x6e
M2ERROR_DB_FULL There is no space in database to add any more user M2ERROR_MASTER_COUNT_EXCEED Maximum master count is exceeded (applied only
when the user is registered as a master).
CheckSum exCheckSum
103
This is a command to delete the password of a user. With Param2 of ACK, you can tell whether the user of the deleted password was a master or not.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 User ID 0x02 0x6f
ACK: Start Command wParam Param1 Param2 ExDatalen User ID Master Flag 0 M2ERROR_NONE The command has been executed normally ErrorCode M2ERROR_USER_NOT_FOUND - ID imported by the user is not registered. M2ERROR_DB_WRONG_USERID Not registered user CheckSum exCheckSum 0x02 0x6f
104
This is a command to get the number of users registered to database. It functions the same as CMD_GET_RECCOUNT.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x70
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 M2ERROR_NONE The command has been executed normally. Number of registered users 0x02 0x70
105
106
This is a command to delete a registered user from database. With Param2 of ACK, you can tell whether the deleted user was a master or not.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 User ID 0x02 0x72
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum User ID Master Flag 0 M2ERROR_NONE The command has been executed normally M2ERROR_DB_WRONG_USERID Not registered user 0x02 0x72
107
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Here is following order of data. - In case of 1 FP or Param 2 is not 0 : TUserRecord(56Byte) + TFPRecord(803Byte) - In case of n FP: TUserRecord(56Byte) + TFPRecord(803Byte) + TFPRecord(803Byte) + Sizeof(TUserRecord) + Sizeof(TFPRecord) *the number of M2ERROR_NONE nomarl operation M2ERROR_DB_WRONG_USERID Unregisted user M2ERROR_DB_NO_DATA In case of no FP data for FP number Registered FP 0x02 0x73 User ID FP Numer (1 ~ 10) or Total FP (0) 0 0 0x02 0x73
108
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Sizeof(fdb_rec_user) + Sizeof(fdb_rec_fp) * the number of registered FP M2ERROR_NONE Normal operation M2ERROR_DB_WRONG_USERID There is no registered user in database 0x02 0x74
Here is following order of data - User with 1 FP: fdb_rec_user (32Byte) + fdb_rec_fp (24Byte) * template len - User with 2 FPs: fdb_rec_user(32Byte) + (fdb_rec_fp (24Byte) * template len)) + (fdb_rec_fp (24Byte) * template len)
109
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Sizeof(fdb_rec_user) + Sizeof(fdb_rec_fp) * the number of registered FP M2ERROR_NONE Normal operation M2ERROR_DB_WRONG_USERID there is no registrer user in database 0x02 0x75
Here is following order of data. - User with 1 FP: fdb_rec_user (32Byte) + fdb_rec_fp (24Byte) * template len - User with 2 FPs: fdb_rec_user (32Byte) + (fdb_rec_fp (24Byte) * template len)) + (fdb_rec_fp (24Byte) * template len)
110
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x76
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 M2ERROR_NONE The command has been executed normally 0x02 0x76
111
ACK: Start Command wParam Param1 Param2 ExDatalen Sizeof(fdb_rec_user) + Sizeof(fdb_rec_fp) * the number of registered FP M2ERROR_NONE Normal operation ErrorCode M2ERROR_DB_WRONG_USERID There is no registered user in database M2ERROR_DB_NO_DATA There is no registered user in database CheckSum exCheckSum 0x02 0x77
Here is following order of data. - User with 1 FP: fdb_rec_user (32Byte) + fdb_rec_fp (24Byte) * template len - User with 2 FPs: fdb_rec_user (32Byte) + (fdb_rec_fp (24Byte) * template len)) + (fdb_rec_fp (24Byte) * template len)
112
This is a command to verify a user with fingerprint data. Upon receiving this command, UFOM compares the fingerprint sent from host with the one stored in database and then returns the result. This command functions almost the same as CMD_FP_VERIFY does, except that CMD_FP_VERIFY gets the fingerprint input through the Fingerprint Input window while CMD_DB_VERIFY gets it from host.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum ExCheckSum 0x0190(=400Byte) 0 User ID 0x02 0x78
ACK: Start Command wParam Param1 Param2 ExDatalen 0 M2ERROR_NONE The command has been executed normally. M2ERROR_VERIFY_FAILED The received fingerprint is not matched with the registered ErrorCode
fingerprint
0x02 0x78
M2ERROR_DB_WRONG_USERID Not registered user M2ERROR_INSUFFICIENT_DATA Fingerprint data has not been sent normally. CheckSum exCheckSum
113
Upon receiving this command, UFOM compares fingerprint data without user ID with all fingerprint data registered to database and then returns the result. This command functions almost the same as CMD_FP_IDENTIFY does, except that CMD_FP_IDENTIFY gets the fingerprint input through the Fingerprint Input window while CMD_DB_IDENTIFY gets it from host. For the registered user, ErrorCode field of ACK contains M2ERROR_NONE; Param1 contains the user ID; and Param2 contains the value that tells whether the user is a master or not.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0x0190(=400Byte) 0 0x02 0x79
ACK: Start Command wParam Param1 Param2 ExDatalen User ID Master Flag 0 M2ERROR_NONE The command has been executed normally. ErrorCode M2ERROR_IDENTIFY_FAIL There is no fingerprint data in database that is matched with the received one. M2ERROR_INSUFFICIENT_DATA Fingerprint data has not been sent normally. CheckSum exCheckSum 0x02 0x79
114
This command functions the same as CMD_DB_IDENTIFY does, except that it can get the desired result faster as it can designate a section to be identified.
When a user ID with the matching fingerprint is found within the designated section, ErrorCode field of ACK contains M2ERROR_NONE; Param1 field contains the user ID; and Param2 contains a value that tells whether the user is a master or not.
As this command retrieves fingerprint data only from the designated section, the matched section fingerprint may not be identified even though it exist in database, if a wrong section is designated.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Start ID of the section to be retrieved End ID of the section to be retrieved 0x0190(=400Byte) 0 0x02 0x7a
ACK: Start Command WParam Param1 Param2 ExDatalen User ID Master Flag 0 M2ERROR_NONE The command has been executed normally. ErrorCode M2ERROR_IDENTIFY_FAIL There is no fingerprint in database of the specified section, which is matched with the one in the current Fingerprint Input window. M2ERROR_INSUFFICIENT_DATA Fingerprint data has not been sent normally. CheckSum ExCheckSum 0x02 0x7a
115
This is a command to verify a master using the given fingerprint data. This command functions almost the same as CMD_FP_VERIFY_MASTER does except that CMD_FP_ VERIFY_MASTER gets the fingerprint input through the Fingerprint Input window while CMD_DB_VERIFY_MASTER gets it from host. The same as CMD_FP_VERIFY_ MASTER, Param1 is set with a value that tells how many commands this master verification will cover. 0 : Commands following this command are deemed to be verified by master. 1 : Only one command following this command is deemed to be verified by master. n : n commands following this command are deemed to be verified by master. The number of commands deemed to be verified can be reset with CMD_FP_VERIFY_ MASTER as well as with CMD_FP_VERIFY_MASTER_END. For more details about this information, see CMD_FP_VERIFY_MASTER. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Subsequent data sequence is as follows: Fingerprint data 400Byte 0x0190(=400Byte) 0 0 All the subsequent commands are verified. For a number larger than 1, as many subsequent commands as the number are deemed to be verified. 0x02 0x7b
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 M2ERROR_NONE The command has been executed normally. M2ERROR_AUTHENTICATION_FAILED The given fingerprint data is not that of a master. M2ERROR_INSUFFICIENT_DATA Fingerprint data has not been sent normally User ID of the master who verified the command 0x02 0x7b
116
This is a command to nullify the remaining number of commands for verification designated with CMD_DB_VERIFY_MASTER or CMD_FPB_VERIFY_MASTER. As it functions completely the same as CMD_FP_VERIFY_MASTER_END does, refer to the description of CMD_FP_VERIFY_MASTER_END. .Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x7c
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 M2ERROR_NONE The command has been executed normally 0x02 0x7c
117
This is a command used to get only the user ID list from database. It is useful for getting only the user IDs fast. UFOM sends the user ID list immediately following ACK. It enables to designate the starting point where User ID is called in Param1 while the number of IDs designated by the user is called in Param2. The user ID list length is (total number of users * size of (user ID )).. (Total number User = Param2).
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum User ID starting number (1 ~ N) Number of User IDs designated 0 0 0x02 0x7d
ACK: Start Command wParam Param1 Param2 ExDatalen Total number of User * Sizeof(UserID) M2ERROR_NONE The command has been executed normally ErrorCode M2ERROR_DB_NO_DATA There is no registered user. M2ERROR_INVALID_PARAM Param value is wrongly imported CheckSum exCheckSum Total number of User 0x02 0x7d
4Byte UserID
4Byte UserID
.. ..
4Byte UserID
4Byte UserID
118
This is a command used to get only the master ID list from database. It is useful for getting only the master IDs fast. UFOM sends the master ID list immediately following ACK. The master ID list length is (total number of masters * size of (user ID )).
Command: Start Command Wparam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x7e
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Total number of Master * Sizeof(UserID) M2ERROR_NONE The command has been executed normally Total number of Master 0x02 0x7e
4Byte UserID
.. ..
4Byte UserID
119
120
M2ERROR_REGESTER_FAILED Matching failure of FP minutiae M2ERROR_FLASH_WRITE_ERROR Register failure in Flash memory M2ERROR_INSUFFICIENT_DATA It does not reach the data from ExtraData CheckSum exCheckSum
121
This is a command to get the log record count stored in the system. With the result of this command, you can get all log records stored in the system using CMD_LOG_GET_REC.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x80
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 M2ERROR_NONE The command has been executed normally. Log data count stored in the system 0x02 0x80
122
This is a command to get a log record. UFOM sends the log record immediately following ACK.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0~(logRecCount-1) Log record count 0x02 0x81
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Sizeof(TLogRecord) M2ERROR_DB_NO_DATA No log record 0x02 0x81
123
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x82
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 M2ERROR_NONE The command has been executed normally 0x02 0x82
124
This Command is used to retrieve the log data. This has the same function as CMD_LOG_GET_REC(0x81), but differs in that it designages the range of log and gathers all the data belonging to such range of log. It is the function that retrieves the log data. It can be used after the range of log number is designated in Param1 and Param2.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0~(logRecCount-1) Number of log starting data 0~(logRecCount-1) Number of log ending data 0 0 0x02 0x83
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum Sizeof(TLogRecord) M2ERROR_NONE The command has been executed normally 0x02 0x83
125
CMD_LOG_SET_REC(0x84 CMD_LOG_SET_REC(0x84) SET_REC(0x8 THIS COMMAND IS USED TO MANUALLY SAVE THE LOG INTO UFOM. For the structure of Log Data to be sent to exData, please refer to TLogRecord. In addition, it can be used for special applications such as mode out of log data structure, type, reason that log is recorded in the result area (3 Byte), etc. Data of the reserved area (1 Byte) is disregarded. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum exData Log Data 16Byte 0x10 0 0x02 0x84
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum M2ERROR_NONE The command has been executed normally M2ERROR_INSUFFICIENT_DATA - ExtraData is not sent normally. 0x02 0x84
126
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 1~(logRecCount) Number of log selected 0x02 0x85
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum M2ERROR_NONE The command has been executed normally M2ERROR_INVALID_PARAM Param1 is wrongly imported. 0x02 0x83
127
This Command is used to acknowledge the channel value to send the ACK packet when authenticating the fingerprint by Auto On and executing the command to GPIO Input ports according to the designated event. The designated value of channel should be called using CMD_SELECT_ACK_CHANNEL.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x86
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum M2ERROR_NONE The command has been executed normally 0x02 0x86
128
This Command is used to receive the fingerprint data saved in the card and then perform user authentication. This enables to compare the fingerprint existing in the current fingerprint import window with that imported to ExData, and then return the result. Fingerprint data supports the ISO Standard Format and the unique format of the Company (UNION COMMUNITY). The Companys fingerprint data receives one or two data and then processes it. Fingerprint data size should be either 256 or 400 Byte. When the number of fingerprint data is two, the size of each fingerprint data should be equal. However, ISO Standard fingerprint data receives only one data and processes it. The size of ISO Standard fingerprint data is not fixed, but it should be 2048 Byte or less. User ID should be sent to Param1 for log recording. User should send the type of format to Param2 Upper 16bit (ISO Standard Format:1, Companys Format: 0) whereas the one fingerprint data size to Lower 16 bit. If the number of fingerprint data of the Companys format is 2, ExDatalen (Param2 Lower 16bit * 2) should be equal. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum User ID Upper 16bit (1:ISO Standard Format, 0:Companys Format) Lower 16bit (Size of each Minutiae) Size of ExData 0 0x02 0x87
The order of data to be sent thereafter is as follow; Fingerprint data as much as ExDatalen Byte
129
130
This Command is used to initialize all the data saved such as set value of UFOM, user DB, log DB, etc.
Special care is required as UFOM is designed to execute the communication speed in 19200bps as default after this Command is executed.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0 0 0x02 0x88
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0 M2ERROR_NONE The command has been executed normally 0x02 0x88
131
This command is for selecting a channel for sending Ack packet when getting authenticated by Auto On and executing a command by GPIO Input port event. If Param2 is 1, it is saved in flash memory.
Therefore, it sends Ack packet to the selected channel even after reset.
FM-20FP. 0, This command is used for FM-20FP. The channel 0, channel 2 is RS 232 port and channel 1 is RS 485 port
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Channel number (0 or 2) 1 = Save in flash memory, 0 = Dose not save at the flash memory 0 0 0x02 0x89
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Channel number (0 or 2) 0 0 M2ERROR_NONE The command has been executed normally 0x02 0x89
132
This command is for receiving unprocessed data of user and fingerprint DB saved by UFOM in the Sector level as Ack packet. UFOMs flash memory is composed of 64KB sectors and it achieves 1 Sector data If UFOMs memory flash is 2MB and Sector number can be achieved from 8 UFOM sends ExData Max. 8KB at once so for
achieving all data saved by one Sector, Param2s offset should be set from 0 to 8192 and this command should be executed repeatedly. If offset value is larger than 57344, ExData is sent for (65536-offset).
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Sector number (8~) offset address (0~65535) 0 0 0x02 0x8a
ACK: Start Command wParam Param1 Param2 ExDatalen Sector number (8~) offset address (0~65535) 8192 or (65536-offset) M2ERROR_NONE The command has been executed normally ErrorCode M2ERROR_INVALID_USERDATA_ADDRESS Wrong setting of sector number or offset CheckSum exCheckSum Subsequent data sequence is the same as following. Data from offset in ACK Sector to ExDatalen 0x02 0x8a
133
This command is for saving a certain Sector data from CMD_GET_SECTORDATA again in the same Sector. UFOMs flash memory is composed of 64KB sectors and it achieves 1 Sector data by repeating this command.
If UFOMs memory flash is 2MB and Sector number can be achieved from 8 to 30 and if 4MB, it can be achieved from 8 to 62. UFOM sends ExData Max. 8KB at once and time out while transmitting is different for each communication speed. This below is Max ExData length for each BAUD communication speed.
(BAUD)
Therefore, in order to save data in one Sector, offset should be from 0 to 65535 in order and ExDatalen should not be more than the above and be sent repeatedly. 64KB for one Sector data is sent. UFOM is saved in flash memory when all
Sector number from CMD_GET_SECTORDATA should be assigned the same Sector number. If not, it may not work properly.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum ExCheckSum Sector number (8~) offset address (0~65535) Max 8192 0 0x02 0x8b
Subsequent data sequence is the same as following. Data content to be recorded as assigned length in ExDatalen
134
135
This Command is used to import the fingerprint in the current fingerprint import window to save the fingerprint data in the card, and then extract the characteristics of such fingerprint. Fingerprint data obtained through this Command can be authenticated using CMD_FP_CARD_MIN_VERIFY Command. ACK packet fingerprint data supports the ISO Standard Format and the unique format of the Company (UNION COMMUNITY). In order to obtain the fingerprint data, it requires to send the type of Format (ISO Standard Format:1, Companys Format: 0) to the upper 16 bit of Param2, whereas the size of fingerprint data is sent to the lower 16 bit of Param2. Size of fingerprint data should be selected from either 500 or 600 in case of ISO Standard Format, whereas from either 256 or 400 in case of the Companys Format. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 Upper 16bit (1:ISO Standard Format, 0:Companys Format) Lower 16bit (Size of each Minutiae) 0x00 0x8c
ACK: Start Command wParam Param1 Param2 ExDatalen Size of Minutiae M2ERROR_NONE The command has been executed normally M2ERROR_INVALID_PARAM When wrong value is transmitted to Param1 M2ERROR_TIMEOUT When fingerprint is not in the fingerprint import window or fingerprint is ErrorCode wrongly imported M2ERROR_CONVERT_FPDATA_ENCRYPTION Failed in fingerprint data encryption M2ERROR_CONVERT_FPDATA_DECRYPTION Failed in fingerprint data decryption M2ERROR_CONVERT_FPDATA_CHECKSUM Fingerprint data checksum error Upper 16 bit (1:ISO Standard Format, 0:Companys Format) Lower 16bit (Size of Minutiae) 0x00 0x8c
136
137
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Sizeof(fdb_rec_user) M2ERROR_NONE Normal Operation M2ERROR_DB_WRONG_USERID Unregisterd User 0x02 0x8d
138
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Sizeof(fdb_rec_user) 0 0x02 0x8e
ACK: Start Command wParam Param1 Param2 ExDatalen 0 M2ERROR_NONE Normal Operation ErrorCode M2ERROR_DB_WRONG_USERID Unregistered User M2ERROR_REGISTER_FAILED Register failure CheckSum exCheckSum USER ID 0x02 0x8d
139
UFOM allocates a certain area of its memory for user data, and the host uses this area to store necessary data. This command is used to set the size of this area. As maximum 8160 bytes can be allocated for host to use, available size is between 0~8160. It is recommended to keep this area as small as possible so as to help UFOM work faster and longer. You can also use this command to completely remove the user data area.
Storing data that is much too frequently updated may adversely affect the life of UFOM.
Command: Start Command WParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0~8160 (User data area size to be used by host) 0x02 0x90
ACK: Start Command WParam Param1 Param2 ExDatalen 0 M2ERROR_NONE The command has been executed normally ErrorCode M2ERROR_INVALID_USERDATA_SIZE The designated user data area size exceeds 1024. CheckSum exCheckSum 0x02 0x90
140
This is a command to get the size of the user data area set with CMD_SET_ USERDATA_ LENGTH. If 0 is returned, it means that the user data area is not used.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0x02 0x91
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 User data area size being used by host (0~8160) 0x02 0x91
141
Once you set a user data area using CMD_SET_USERDATA_LENGTH, you can record user data on UFOM memory using this command. In order to record user data, set the address and length to record and send as ExtraData the data to be recorded. If the user data area size is 10, the user data area is filled with 0, the default of user data area. Recorded data content: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Later, if you want to change the data in Addresses 3 to 6 to 1, set 2 to Param1 and 4 to Param2, and send 1, 1, 1, 1 (4Bytes) as ExtraData.
Recorded data content: [0, 0, 1, 1, 1, 1, 0, 0, 0, 0 ] Later, if you want to change the data in Addresses 6 to 0 to 2, set 4 to Param1 and 6 to Param2, and send 2, 2, 2, 2, 2, 2 (6Bytes) as ExtraData. Recorded data content: [0, 0, 1, 1, 2, 2, 2, 2, 2, 2 ] In this way, you can change the values of the selected area with keeping the existing data. At this time, remember the index value set to Param1 starts with 0. Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum ExCheckSum 0~ (User data area size1) Data length to be recorded Data length to be recorded (the same as Param2) 0 0x02 0x92
Subsequent data sequence is as follows: Content of data to be recorded, as long as set to Param2
ACK: Start Command wParam Param1 Param2 ExDatalen 0x0000 0x0000 0x02 0x92
142
143
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum ACK: Start Command wParam Param1 Param2 ExDatalen Data address to be sent Data length to be received (may different from the value set to Param2 of Command) Data length to be received (the same as Param2) 0x02 0x93 0 ~ (User data area size 1) : Data address to be received Data length to be received Data length to be received (the same as Param2) 0 0x02 0x93
144
Subsequent data sequence is as follows: Content of user data as long as set to Param2 of ACK
This is a command that Each GPIO Input port sets an event and depending on each ports level, assigned event can be performed. Event for each port will be assigned only once. The below is event type that
can be assigned. (Note: It doesnt support FAS02NLC and FM-70FP) doesn FM-70FP)
Event GPI_NO_ACTION GPI_ENROLL GPI_IDENTIFY GPI_DELETE GPI_DELETE_ALL GPI_CANCEL GPI_RESET_MODULE GPI_TEMPER_SW GPI_OUTPUT
Event number 0 1 2 3 4 5 6 7 8
Action No event CMD_FP_ENROLL command CMD_FP_IDENTIFY command CMD_FP_IDELETE command CMD_DB_DELETE_ALL command CMD_FP_CANCEL command CMD_DEVICE_RESET command CMD_SET_TEMPER command Only, GPO_INPUT1~ GPO_INPUT4 event may be executed.
The port level to be checked can be assigned as below. Level GPI_EVENT_ACTIVE_LOW Level number 0 Action Event is performed once when Active low level maintains assigned delay Event is performed once when Active high level maintains assigned delay Event is performed once for Falling edge level. Event is performed once for Rising edge level.
1 2 3
145
Event structure to be assigned in Param2 is as below. (Unit: bit) 31~16 Delay time (10~10000) 15~8 Level number 7~0 Event number
146
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum GPIO Input port number (1~4) Event 0 0 0x02 0x94
ACK: Start Command wParam Param1 Param2 ExDatalen GPIO Input port number (1~4) Event 0 M2ERROR_NONE The command has been executed normally M2ERROR_INVALID_PARAM Wrong value sent to Param1 and ErrorCode Param2 0x02 0x94
CheckSum exCheckSum
147
This commend is used for importing the event from each of GPIO Input ports. Event structure for bringing Ack packet to Param 2 is the same as Param 2 by CMD_SET_GPIO_IN command. (Note: It doesnt support FAS02NLC and FM-70FP) doesn FM-70FP)
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum GPIO Input port number (1~4) 0 0 0 0x02 0x95
ACK: Start Command wParam Param1 Param2 ExDatalen GPIO Input port number (1~4) Event 0 M2ERROR_NONE The command has been executed normally ErrorCode M2ERROR_INVALID_PARAM Wrong value sent to Param1 0x02 0x95
CheckSum exCheckSum
148
Each GPIO Output port sets an event and when executing this event, this command is used for wave output depending on each assigned GPIO Output port. CMD_SET_GPIO_OUT is for GPIO Output port 1~4 and CMD_SET_GPIO_OCOUT is for GPIO Open Collector Output port 1~4. It is possible to set the several events on each ports and also possible to set the same event on several ports. It is possible to set the output as High(1) and Low(0) on Normal status on each ports. The value is set the upper 16 bit of Param 2. (Note: It doesnt support FAS02NLC and FM-70FP) doesn FM-70FP)
Here is the events that can be assigned as below. Event GPO_NO_ACTION GPO_ENROLL_WAIT_FING ER GPO_ENROLL_PROCESSIN G GPO_ENROLL_BAD_FINGE R GPO_ENROLL_SUCCESS GPO_ENROLL_FAIL GPO_VERIFY_WAIT_FINGE R GPO_VERIFY_PROCESSING Event number 0 1
No event is performed. Awaiting fingerprint input of CMD_FP_ENROLL Performing enrolling and processing captured fingerprint image of CMD_FP_ENROLL When not processing captured fingerprint image of CMD_FP_ENROLL or TimeOut CMD_FP_ENROLL is successful CMD_FP_ENROLL is failed Awaiting fingerprint input of CMD_FP_VERIFY Performing enrolling and processing captured fingerprint image of CMD_FP_VERIFY When not processing captured fingerprint image of CMD_FP_VERIFY or TimeOut CMD_FP_VERIFY is successful CMD_FP_VERIFY is failed Awaiting fingerprint input of CMD_FP_IDENTIFY Performing enrolling and processing captured fingerprint image of CMD_FP_IDENTIFY When not processing captured fingerprint image of CMD_FP_IDENTIFY or TimeOut
Action
3 4 5 6
8 9 10 11
12
13
149
17
18 19 20 21 22 23 24 25 26
27
In Param1, GPIO Output port number to be set is assigned and lower 16bit of Param2 decides whether to use or not for the assigned port. Here is the event structure for each port. Range start signal 0 or 1 Action If the value is 0, it process Delay then do High If the value is 1 it process Delay then do Low. After perform the event, it will decide the status of Port. idle state 0 or 1 If the value is 0, it will process the same output like Normal level, But if the value is 1 it will process the opposite output from Normal level. delay high low count 0~65535 0~65535 0~65535 0~65535 Maintains low status as delay ms that has been assigned in advance Maintains high status as assigned high ms Maintains low status as assigned low ms Repeats to perform high low state as assigned count and maintains idle state after finishing.
150
Ex) the below diagram is explain that the output of Normal status is high and the first event is start signal 1, idle state 1, delay 0ms, high 1ms, low 1ms, count 2. And the second event is start signal signal 0, idle state 0, delay 2ms, high 1ms, low 1ms, count 3.
151
If there are several events to be assigned, send each 12 Byte event as below. (Unit: Byte) 0~11 Event1 12~23 Event2 24~35 Event3
FMThis command is for over FM-20FP V. 3.0. Each port event setting by this command is saved in flash memory so it applies even after reset.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum GPIO Output port number (1~4) Upper 16bit (normal state level 1:high, 0:low) Lower 16bit (1: Use , 0: No use) (Event number * 12) 0 0x02 0x96 or 0x98
Subsequent data sequence is the same as below. Event data to be recorded as the assigned length in ExDatalen ACK: Start Command wParam Param1 Param2 ExDatalen GPIO Output port number (1~4) 0 0 M2ERROR_NONE The command has been executed normally ErrorCode M2ERROR_INVALID_PARAM Wrong value sent to Param1 and Param2 M2ERROR_INSUFFICIENT_DATA When ExDatalen is not 12Byte CheckSum exCheckSum 0x02 0x96 or 0x98
152
This is a command for bringing assigned event in each GPIO Output port. CMD_GET_GPIO_OUT is for bringing assigned event in GPIO Output port 1~4 and
CMD_GET_GPIO_OCOUT CMD_GET_GPIO_OCOUT is for bringing assigned event in GPIO Open Collector Output port 1~4. The event structure for bringing ExData of Ack packet is same as CMD_SET_GPIO_OUT command one. doesn FM-70FP) (Note: It doesnt support FAS02NLC and FM-70FP)
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum GPIO Output port number (1~4) 0 0 0 0x02 0x97 or 0x99
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum GPIO Output port number (1~4) Upper 16bit (normal state level 1:high, 0:low) Lower 16bit (1: Use , 0: No use) (Event number * 12) M2ERROR_NONE The command has been executed normally M2ERROR_INVALID_PARAM Wrong value sent to Param1 0x02 0x97 or 0x99
Subsequent data sequence is the same as below. Event data to be recorded as the assigned length in ExDatalen
153
This is a command for event initialization of all events of GPIO Input and Output ports. doesn FAS02NLC FM-70FP) (Note: It doesnt support FAS02NLC and FM-70FP)
FMThis command is for over FM-20FP V. 3.0. Each port event setting by this command is saved in flash memory so it applies even after reset.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0 0 0x02 0x9A
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0 M2ERROR_NONE The command has been executed normally 0x02 0x9A
154
This command is for combination of CMD_FP_REGISTER_START and CMD_FP_REGISTER_END. sending this command, it will capture a fingerprint twice and if successful, user can be enrolled.
When
If upper
16bit value is 1 in Param2, user ID is ignored in Param1 and unique user ID will be automatically created. It will enroll master or normal user depending on Lower 16 bit value. If this command is performed based on GPIO Input port Event, user ID will be automatically created and enrolled as a normal user.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum User ID upper 16bit (1:Automatic ID create), lower16bit(1: master, 0: normal user) 0 0 0x02 0x9B
ACK: Start Command wParam Param1 Param2 ExDatalen User ID 0 0 M2ERROR_NONE The command has been executed normally M2ERROR_TIMEOUT No fingerprint in fingerprint input window or wrong fingerprint input M2ERROR_SIMILAR_FP_EXIST Analogous fingerprint is registered ErrorCode M2ERROR_ALREADY_REGISTERED_USER Already registered user M2ERROR_DB_FULL No space for adding a new user in database M2ERROR_MASTER_COUNT_EXCEED Over max master (Only when enrolling masters) M2ERROR_REGISTER_FAILED Enrollment failed M2ERROR_FLASH_WRITE_ERROR Writing failed in flash memory CheckSum exCheckSum 0x02 0x9B
155
This command is for deleting the user after searching for fingerprint user registered with 1:N authentication as CMD_FP_IDENTIFY.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 0 0 0 0x02 0x9C
ACK: Start Command wParam Param1 Param2 ExDatalen Deleted user ID 0 0 M2ERROR_NONE The command has been executed normally M2ERROR_TIMEOUT - No fingerprint in fingerprint input window or wrong ErrorCode fingerprint input M2ERROR_IDENTIFY_FAILED - No matching fingerprint data in database with the fingerprint on current fingerprint input window CheckSum exCheckSum 0x02 0x9C
156
This command is for recording Log data of On or Off in Temper switch. Log data user ID is recorded as 0, Mode for 6 and Type for 0. The result is recorded as EVT_TEMPER_SWITCH_ON(0x13) for Temper On and
EVT_TEMPER_SWITCH_OFF (0x14) for Temper Off. If this command is performed by GPIO Input port event, it is considered as Temper Off when each port is converted as opposite level.
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 1:Temper s/w On, 0: Temper s/w Off 0 0 0 0x02 0x9D
ACK: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 1:Temper s/w On, 0: Temper s/w Off 0 0 M2ERROR_NONE The command has been executed normally 0x02 0x9D
157
ErrorCode
CheckSum exCheckSum
158
159
CMD_FP_ADD_TEMP_START (0xA7) This order used to add FP of the registed user with template data by ExData. Here is changing users FP as following order . CMD_FP_VERIFY_MASTER CMD_FP_ADD_START CMD_FP_ADD_END However, In case of setting Not authenticated by CMD_SET_SYSTEM_INFO, there is no need for CMD_FP_VERIFY_MASTER processing Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum ACK: Start Command wParam Param1 Param2 ExDatalen 0x0000 M2ERROR_NONE Normal Operation ErrorCode M2ERROR_TIMEOUT There is no FP on the sensor or inputting wrong FP M2ERROR_DB_NO_DATA There is no USER to change M2ERROR_FPCOUNT_EXCEED The number of registed FP is full. CheckSum exCheckSum 0x00 0xA7 USER ID In case of Quality = MAX(100) UNION Format USER ID upper : 1 -Template 1 0-Template 2 Template Sze 0x0000 0x00 0xA7
160
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum ACK: Start Command wParam Param1 Param2 ExDatalen USER ID In case of Quality = MAX(100) UNION Format 0 M2ERROR_NONE Normal Operation M2ERROR_TIMEOUT There is no FP on the sensor or inputting wrong FP ErrorCode M2ERROR_FUNCTION_FAIL Register failure M2ERROR_FLASH_WRITE_ERROR Writing Flash memory failure M2ERROR_SIMILAR_FP_EXIST When it uses same FP it already registered same FP , CheckSum exCheckSum 0x00 0xA8 USER ID Upper : 1 -Template 1 0-Template 2 Template Size 0x0000 Lower : 1 Master, 0 Normal user 0x00 0xA8
161
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Template Size 0 USER ID 0x02 0xA9
ACK: Start Command wParam Param1 Param2 ExDatalen USER ID Master Flag 0 M2ERROR_NONE Normal Operation ErrorCode M2ERROR_TIMEOUT - There is no FP on the sensor or inputting wrong FP M2ERROR_VERIFY_FAILED It does not match between captured FP and registered FP M2ERROR_USER_NOT_FOUND The unregisted User CheckSum exCheckSum 0x02 0xA9
162 162
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Template Size 0 0x02 0xAA
ACK: Start Command wParam Param1 Param2 ExDatalen USER ID Master Flag 0 M2ERROR_NONE Normal Operation ErrorCode M2ERROR_TIMEOUT - There is no FP on the sensor or inputting wrong FP M2ERROR_IDENTIFY_FAILED There is no matched FP in current inputted FP in database CheckSum exCheckSum 0x02 0xAA
163
ACK: Start Command wParam Param1 Param2 ExDatalen Deleted User ID 0 0 M2ERROR_NONE Normal Operation ErrorCode M2ERROR_TIMEOUT - There is no FP on the sensor or inputting wrong FP M2ERROR_IDENTIFY_FAILED - There is no matched FP in current inputted FP in database CheckSum exCheckSum 0x02 0xAB
164
ACK: Start Command wParam Upper : Template size Param1 Lower : Format 0- union[Fixed] 1- ISO[Fixed]500 2 ISO[Fixed]600 3 ANSI378[Variable] 4 ISO[Variable] Param2 ExDatalen 0 Template size M2ERROR_NONE Normal Operation ErrorCode M2ERROR_TIMEOUT - There is no FP on the sensor or inputting wrong FP M2ERROR_IDENTIFY_FAILED - There is no matched FP in current inputted FP in database CheckSum exCheckSum 0x02 0xAC
165
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum 0 User ID Sub ID 0x02 0xAD
ACK: Start Command wParam Param1 Param2 ExDatalen Template Count Offset Template size M2ERROR_NONE Normal Operation ErrorCode M2ERROR_TIMEOUT - There is no FP on the sensor or inputting wrong FP M2ERROR_IDENTIFY_FAILED - There is no matched FP in current inputted FP in database CheckSum exCheckSum 0x02 0xAD
166
CMD_DB_NEW_ADD_REC_EX (0xaf) Please refer to appendix F as DB structure change. This Command used to register additional user from current UFOM databases server suchcas CMD_DB_ADD_REC_EX(0x7f)
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Sizeof(fdb_rec_user) + Sizeof(fdb_rec_fp) * The number of the registered FP 0 0x02 0xAF
Here is following order of data - User with 1 FP : fdb_rec_user(32Byte) + fdb_rec_fp(16Byte)+(template size) - User with n FP : fdb_rec_user(32Byte) + fdb_rec_fp(16Byte)+(template size) + fdb_rec_fp(16Byte) + (template size)+
167
Command: Start Command wParam Param1 Param2 ExDatalen ErrorCode CheckSum exCheckSum Sizeof(fdb_rec_user) + Sizeof(fdb_rec_fp) * The number of the registered FP 0 0x02 0x7f
Here is following order of data - User with 1 FP : fdb_rec_user(32Byte) + fdb_rec_fp(16Byte)+(template size) - User with 2 FPs: fdb_rec_user(32Byte) + fdb_rec_fp(16Byte)+(template size) + fdb_rec_fp(16Byte) + (template size)
168
Param1
Param2
ExDatalen
169
170
Command: CMD_FP_DELETE (0x54) ACK: Command: CMD_FP_VERIFY (0x55) ACK: CMD_FP_IDENTIFY (0x56) CMD_FP_VERIFY_MAST ER (0x57) ACK: CMD_FP_VERIFY_END (0x58) CMD_FP_IDENTIFY_EX (0x59) ACK: Command: CMD_FP_ADD (0x5b) ACK: CMD_FP_MIN_VERIFY (0x5c) CMD_FP_CANCEL (0x5d) CMD_GET_ACK_CHANN EL ACK: (0x86) Command: ACK: Command: ACK: Command: Command: ACK: Command: ACK: Command:
MasterFlag
Size of minutiae
Command: ACK:
UserID
(format),(Size of Command: CMD_GET_FP_CARD_MI N (0x8c) ACK: each minutiae) CMD_FP_ADD_START (0x5e) CMD_FP_ADD_END (0x5f) CMD_IS_REGISTERED_U Command: ACK: Command: ACK: Command: UserID UserID UserID each minutiae) (format),(Size of
171
172
Param1
Param2
ExDatalen
Size of TUserRecord
Command: CMD_DB_ADD_REC (0x71) Overwrite Flag
Size
of
TFPRecord
No.
of
fingerprints
ACK: CMD_DB_DELETE_REC (0x72) Command: ACK: Command: CMD_DB_GET_REC (0x73) ACK: UserID UserID UserID MasterFlag FP Number
CMD_DB_GET_NEXTREC
Size of fdb_rec_user
(0x75) CMD_DB_DELETE_ALL (0x76) ACK:
Size of fdb_rec_user
CMD_DB_GET_CURRENTR EC (0x77) ACK: Command: CMD_DB_VERIFY (0x78) ACK: Command: CMD_DB_IDENTIFY (0x79) ACK: CMD_DB_IDENTIFY_EX (0x7a) CMD_DB_VERIFY_MASTER (0x7b) ACK: UserID Command: ACK: Command: authentication UserID Start UserID UserID Number of valid MasterFlag End UserID MasterFlag UserID Command:
400Byte
400Byte
400Byte
400Byte
173
CMD_DB_ADD_REC_EX (0x7f)
Command:
Overwrite Flag
Size
of
TFPRecord
No.
of
fingerprints
ACK:
Command: ACK: Command: ACK: Command: ACK: Start number Command: data ACK: data End number Log count Log number
CMD_LOG_SET_REC (0x84)
Command: ACK:
Number CMD_LOG_DELETE (0x85) ACK: CMD_DB_GET_REC_USER_ RECORD (0x8d) CMD_DB_SET_REC_USER_ RECORD (0x8e) Command: ACK: Command: ACK: UserID UserID Command: selected
of
log
Size of fdb_rec_user
174
Param1
Data length
Param2
ExDatalen
Param1
Sector number Sector number Sector number Sector number
Param2
offset offset offset offset Length
ExDatalen
8192 or (65536-offset)
Param1
(offset)
Param2
Length (Length )
ExDatalen
175
Param1
Port number
Param2
Event
ExDatalen
176
177
178
// Command packet typedef struct tagCmdPacket { UINT8 UINT8 UINT16 UINT32 UINT32 UINT32 UINT16 UINT8 UINT8 } TCmdPacket; Channel; Command; wParam; Param1; Param2; exDatalen; ErrorCode; Checksum; exChecksum;
// Time structure typedef struct tagTimeInfo { UINT16 Year; UINT16 UINT16 UINT16 UINT16 UINT16 } TimeInfo; Month; Day; Hour; Min; Sec; // 1999~ // 1 ~ 12 // 1 ~ 31 // 00 - 23 // 0 - 59 // 0 59
179
pwd[8]; cardnum[20];
* User Flag : 1-byte length field indicating the master or not, and the method of verification (Master using fingerprint: 0xC1, User using fingerprint: 0x41) 7 Bit Master 6 Bit Identifiable 3 Bit Use of Card 2 Bit Use of Password 0 Bit Use of Fingerprint
// Fingerprint Record typedef { UINT8 UINT16 UINT8 UINT8 } TFPRecord; type; len; // 0x01 // Fingerprint data length (800) packed struct tagTFPRecord
Minutiae1[400]; Minutiae2[400];
// Log Record typedef struct tagLogRecord { TimeInfo UINT16 UINT16 Time; UserId; EventNum;
} TLogRecord;
180
Appendix D. Constant
Event list
#define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define EVT_ADD_USER EVT_DEL_USER EVT_VERIFY_USER EVT_VERIFY_FAIL EVT_IDENTIFY_USER EVT_IDENTIFY_FAIL EVT_CHANGE_USER_FP EVT_DB_ADD_USER EVT_DB_DEL_USER EVT_DB_DEL_ALL EVT_DB_VERIFY_USER EVT_DB_VERIFY_FAIL EVT_DB_IDENTIFY_USER EVT_DB_IDENTIFY_FAIL EVT_ADD_FP EVT_ADD_PW EVT_DEL_PW EVT_TEMPER_SWITCH_ON EVT_TEMPER_SWITCH_OFF 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x10 0x11 0x12 0x13 0x14
Security level
#define SLEVEL_LOWEST #define SLEVEL_LOWER #define SLEVEL_LOW #define SLEVEL_BELOW_NORMAL #define SLEVEL_NORMAL #define SLEVEL_ABOVE_NORMAL #define SLEVEL_HIGH #define SLEVEL_HIGHER #define SLEVEL_HIGHEST 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09
ImageView
#define VIEW_NORMAL #define VIEW_HALF #define VIEW_QUARTER 0x01 0x02 0x04
181
182
The command received from main controller or host has been executed without an error. The command received from main controller or host, which
M2ERROR_FLASH_OPEN(0x01)
requires accessing flash memory, has not been executed due to an error in flash memory.
M2ERROR_SENSOR_OPEN(0x02) M2ERROR_REGISTER_FAILED(0x03) M2ERROR_VERIFY_FAILED(0x04) M2ERROR_ALREADY_REGISTERED_USER M2ERROR_ALREADY_REGISTERED_USER (0x05) M2ERROR_USER_NOT_FOUND(0x06) M2ERROR_INVALID_PASSWORD(0x07) M2ERROR_TIMEOUT(0x08) M2ERROR_DB_FULL(0x09)
There is an error in the optical unit. Fingerprint registration failed. Verification failed. Registered user ID
User ID entered for verification has not been registered to UFOM database. Invalid password User fingerprint was not captured within the specified time. UFOM database is full, so that there is no more space to register. User ID to be deleted or verified was found to be not registered to database There is no data in database. Failed to extract minutiae from the captured image. Memory allocation failed. Impossible to communicate with main controller or host via serial port. The function has not been implemented. Failed to call the function. As much data as set to ExtraData has not been received. Failed to write on flash memory. Failed to read from flash memory. Invalid parameter of packet Master fingerprint is not found. This error occurs when it
M2ERROR_DB_WRONG_USERID(0x0A) M2ERROR_DB_NO_DATA(0x0B) M2ERROR_DB_NO_DATA(0x0B) M2ERROR_EXTRACT_FAIL(0x0C) M2ERROR_MEMALLOC_FAILED(0x0D) M2ERROR_SERIAL_OPEN(0x0E) M2ERROR_NOT_IMPLEMENTED(0x0F) M2ERROR_FUNCTION_FAIL(0x10) M2ERROR_INSUFFICIENT_DATA(0x11) M2ERROR_FLASH_WRITE_ERROR(0x12) M2ERROR_FLASH_WRITE_ERROR(0x12) M2ERROR_FLASH_READ_ERROR(0x13) M2ERROR_INVALID_PARAM(0x14)
M2ERROR_MASTERFP_NOT_FOUND(0x15)
is tried to execute a command without registering a master. Master count is exceeded. Maximum 5 masters can be
M2ERROR_MASTERCOUNT_EXCEED(0x16)
registered as of now. This error occurs when it is tried to register more masters than the allowable master count.
M2ERROR_AUTHENTICATION_FAIL(0x17)
183
User fingerprint change failed. There is no fingerprint in database that is matched with the one on the current Fingerprint Input window. Failed to erase flash memory. Fingerprint data to be verified is the same as the one
M2ERROR_VERIFY_FAKE (0x1D)
verified just before. This error occurs when a user tries to verify or register fingerprints consecutively without taking off his hand.
M2ERROR_TIME_ERROR (0x1E)
This error occurs when a user tries to set time an with incorrect value. UFOM sends ACK containing this error once in identifying
M2ERROR_SEARCHING_FOR_IDENTIFY (0x1F)
every 100 users (as it may take too long to search). Precisely speaking, this is not an error. Upon receiving ACK containing this error, host ACK. should wait for the next
M2ERROR_INVALID_USERDATA_SIZE (0x20) M2ERROR_INVALID_USERDATA_ADDRESS (0x21) M2ERROR_MUST_BE_SET_DATA_LENGTH (0x22) (0x28 0x28) M2ERROR_CHECKSUM_ERROR (0x28) M2ERROR_SIMILAR_FP_EXIST (0x2A) M2ERROR_CONVERT_FPDATA_ENCRYPTIO M2ERROR_CONVERT_FPDATA_ENCRYPTIO N (0x30) M2ERROR_CONVERT_FPDATA_DECRYPTIO N (0x31) M2ERROR_CONVERT_FPDATA_CHECKSUM (0x32) M2ERROR_CONVERT_FPDATA_NOEXTEND (0x33) M2ERROR_CONVERT_FPDATA_OTHERTYPE (0x34) M2ERROR_FPCOUNT_EXCEED (0x80) M2ERROR_UNKNOWN_COMMAND(0xFF)
The size of data to be recorded exceeds the user area when the user tries to write the value in the user area for the host. The size of data to be recorded exceeds the user area when the user tries to write the value in the user area for the host.
Size of the user data area for host has not been set.
Checksum error of the received packet Analogous fingerprint is registered when analogous fingerprint is used. Failed to encrypt fingerprint data
When the ISO standard format fingerprint data is used, it can not be processed due to lack of data. When the ISO standard format fingerprint data is used, it can not be processed because the data is not our standard, it is prepared by other company. Number of fingerprints that can be registered is full. UFOM FAILS TO ACKNOWLEDGE THE COMMAND.
184
Ex) CMD_FP_REGISTER_START (In case of 1Template) In case of Upper is 1, it registers 1 template after by CMD_FP_REGISTER_START (0x50). It is not use CMD_FP_REGISTER_END (0x51) When register Master Lower | | Upper
S> 02 50 00 00 01 00 00 00 01 00 01 00 00 00 00 00 00 00 55 00 Lower (2byte)= Master or General User, Upper (2byte) = 1template or 2template // Type define #define UINT32 #define UINT16 #define UINT8 unsigned int unsigned short unsigned char
Struct fdb_marker{ UINT16 UINT16 }; // Time structure struct systime { UINT16 UINT8 UINT8 UINT8 year; month; date; hour; mark; sor;
185
struct systime }; struct fdb_rec_fp { UINT16 UINT8 UINT8 USER_ID uid; UINT16 UINT16 UINT8 UINT8 UINT8 UINT8* UINT8* };
char pwd[MAX_PW_SIZE];
sor; count; order; len1; len2; uflag; adapt; rsvd[2]; min1; min2;
186