186
UFOM (UnionCommunity FP OEM Module) SDK Developer’s Manual version 5.0 (2012.07)

UFOM SDK Developer's Manual_v5.0_eng

  • Upload
    brnyza

  • View
    204

  • Download
    7

Embed Size (px)

Citation preview

Page 1: UFOM SDK Developer's Manual_v5.0_eng

UFOM

(UnionCommunity FP OEM Module)

SDK Developer’s Manual

version 5.0 (2012.07)

Page 2: UFOM SDK Developer's Manual_v5.0_eng

Document Revision HistoryDocument Revision HistoryDocument Revision HistoryDocument Revision History

Version Date Comments

5.0 2012.7 � V3.0 DB Structure Modification

� Applying the additional protocal for FM-30FP, FAS02NLC

� Additional protocal explanation and delete useless protocal

2012.07

- Additional Protocal

CMD_FP_REGISTER_TEMP_START(0xA5)

CMD_FP_REGISTER_TEMP_END(0xA6)

CMD_FP_ADD_TEMP_START(0xA7)

CMD_FP_ADD_TEMP_START(0xA8)

CMD_FP_VERIFY_TEMP(0xA9)

CMD_FP_IDENTIFY_TEMP(0xAA)

CMD_FP_IDELETE_TEMP(0xAB)

CMD_GET_FP_MIN_SAVE(0xAC)

CMD_GET_FP_USER_TEMP(0xAD)

CMD_FP_EXALL(0xAE)

CMD_DB_NEW_ADD_REC_EX(0xAF)

CMD_DB_NEW_ADD_REC(0xB0)

- Modified Protocal

CMD_FP_REGISTER_START (0x50)

CMD_FP_REGISTER_END(0x51)

CMD_FP_CHANGE_START(0x52)

CMD_FP_CHANGE_END(0x53)

CMD_FP_ADD_START(0x5E)

CMD_FP_ADD_END(0x5F)

- Additional function

- Add function for Extraction and Matching about ANSI378(Variable)

- Add function for Extraction and Matching about ISO(Variable).

- Register 1template per 1 finger. Increasing 1,000 user capacity.

- Enhancing fast speed

- Interfacing with previous protocal

Page 3: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

3333

[Table of Contents][Table of Contents][Table of Contents][Table of Contents]

Document Revision History ..............................................................................................2

1. IntroductionIntroductionIntroductionIntroduction ..............................................................................................................4

1111----1.1.1.1. UFOM SpecificationsUFOM SpecificationsUFOM SpecificationsUFOM Specifications ............................................................................................ 5

2. CommCommCommCommunication between UFOM and Main Controllerunication between UFOM and Main Controllerunication between UFOM and Main Controllerunication between UFOM and Main Controller..................................................7

2.1 Packet Structure2.1 Packet Structure2.1 Packet Structure2.1 Packet Structure ........................................................................................................ 8

2.2 Using Packets2.2 Using Packets2.2 Using Packets2.2 Using Packets............................................................................................................ 9

[e.g.] using the command packet......................................................................................9

2.3 Commands that can be used alone2.3 Commands that can be used alone2.3 Commands that can be used alone2.3 Commands that can be used alone.............................................................................. 10

2.4 Commands that cannot be use2.4 Commands that cannot be use2.4 Commands that cannot be use2.4 Commands that cannot be used aloned aloned aloned alone ......................................................................... 13

3. Setting the SystemSetting the SystemSetting the SystemSetting the System..................................................................................................14

3.1 Getting the Version3.1 Getting the Version3.1 Getting the Version3.1 Getting the Version .................................................................................................. 14

3333.2 Getting Device State.2 Getting Device State.2 Getting Device State.2 Getting Device State................................................................................................. 14

3.3 Setting System Information3.3 Setting System Information3.3 Setting System Information3.3 Setting System Information........................................................................................ 15

3.4 Getting System Information3.4 Getting System Information3.4 Getting System Information3.4 Getting System Information ....................................................................................... 27

3.5 Getting Fingerprint Image3.5 Getting Fingerprint Image3.5 Getting Fingerprint Image3.5 Getting Fingerprint Image.......................................................................................... 28

4. User Registration4. User Registration4. User Registration4. User Registration.........................................................................................................29

4.1 Registering a User4.1 Registering a User4.1 Registering a User4.1 Registering a User ................................................................................................... 30

4.2 Verifying a User4.2 Verifying a User4.2 Verifying a User4.2 Verifying a User ...................................................................................................... 34

4.3 Deleting a User4.3 Deleting a User4.3 Deleting a User4.3 Deleting a User........................................................................................................ 35

4.4 4.4 4.4 4.4 Changing the fingerprint daChanging the fingerprint daChanging the fingerprint daChanging the fingerprint datatatata..................................................................................... 37

4.5 4.5 4.5 4.5 Adding the fingerprint dataAdding the fingerprint dataAdding the fingerprint dataAdding the fingerprint data ........................................................................................ 39

4.6 Identifying a User4.6 Identifying a User4.6 Identifying a User4.6 Identifying a User..................................................................................................... 39

5555.... Distributed transmission of dataDistributed transmission of dataDistributed transmission of dataDistributed transmission of data (Extended Data Transfer Protocol) (Extended Data Transfer Protocol) (Extended Data Transfer Protocol) (Extended Data Transfer Protocol).....................................40

6666.... Switching to boot modeSwitching to boot modeSwitching to boot modeSwitching to boot mode (FAS02NLC) (FAS02NLC) (FAS02NLC) (FAS02NLC)..............................................................................48

Appendix A. Appendix A. Appendix A. Appendix A. Protocol ReferenceProtocol ReferenceProtocol ReferenceProtocol Reference........................................................................................49

Appendix B. Command SummaryAppendix B. Command SummaryAppendix B. Command SummaryAppendix B. Command Summary.................................................................................169

B.1 Basic CommandB.1 Basic CommandB.1 Basic CommandB.1 Basic Command................................................................................................ 169

B.2 Database Access CommandB.2 Database Access CommandB.2 Database Access CommandB.2 Database Access Command.............................................................................. 173

B.3 User Data Access CommandB.3 User Data Access CommandB.3 User Data Access CommandB.3 User Data Access Command ............................................................................ 175

B.4 DB Sector Access CommandB.4 DB Sector Access CommandB.4 DB Sector Access CommandB.4 DB Sector Access Command............................................................................ 175

B.5 F/W Download CommandB.5 F/W Download CommandB.5 F/W Download CommandB.5 F/W Download Command ................................................................................. 175

B.6 GPIO CommandB.6 GPIO CommandB.6 GPIO CommandB.6 GPIO Command ................................................................................................ 176

Appendix C. Data typeAppendix C. Data typeAppendix C. Data typeAppendix C. Data type ................................................................................................179

Appendix D. ConstantAppendix D. ConstantAppendix D. ConstantAppendix D. Constant .................................................................................................181

Appendix E. Error Code ListAppendix E. Error Code ListAppendix E. Error Code ListAppendix E. Error Code List .......................................................................................183

Page 4: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

4444

1.1.1.1. IntroductionIntroductionIntroductionIntroduction

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

[email protected]

Page 5: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

5555

1111----1.1.1.1. UFOM SpecificationsUFOM SpecificationsUFOM SpecificationsUFOM Specifications

Items FMFMFMFM----30FP30FP30FP30FP FMFMFMFM----20FP20FP20FP20FP

CPU 32Bit RISC CPU 400MHz 32Bit RISC CPU 266MHz

Template Capacity 5000 templates (2MB)

10,000 templates (4MB)

3,360 templates (2MB),

8,160 templates (4MB)

Template Size 400 Bytes / Template 400 Bytes / Template

FRR(False Rejection Rate) < 0.1% < 0.1%

FAR(False Acceptance Rate) < 0.0001% < 0.0001%

Enrollment Time < 0.7 sec < 1 sec

Verification Time < 0.7 sec < 1 sec

Host Communication RS-232, RS-232(TTL Level), RS-485 RS-232, RS-232(TTL Level), RS-485

Wiegand Interface Input Port:1, Output Port:1 Input Port:1, Output Port:1

Programmable I/O Input Port:4, Output Port:8 Input Port:4, Output Port:8

Power Consumption (mA)

(Stanby / Operation)

Normal : Max 220mA

Operation : Max 450mA

Normal : Max 200mA

Operation : Max 350mA

Supply Voltage DC 5V±0.2V DC 5V±0.2V

Operation Environment -20 ~ 70℃ / Lower Than 90% RH

(Non – Condensing)

-20 ~ 70℃ / Lower Than 90% RH

(Non – Condensing)

Event Capacity 12,287 12,287

Encryption Seed Seed

Sensor Type

(Sensor Name, Image Size) Optical (FCS023, 304x344) Optical (FOS02NL, 256x292)

Dimension 43mm(W) x 60mm(H) x 8mm(D) 43mm(W) x 60mm(H) x 8mm(D)

Items FAS02NLFAS02NLFAS02NLFAS02NL FMFMFMFM----70FP70FP70FP70FP

CPU 32Bit RISC CPU 192MHz 32Bit RISC CPU 266MHz

Template Capacity 1000 templates 3,360 templates (2MB),

8,160 templates (4MB)

Template Size 400 Bytes / Template 400 Bytes / Template

FRR(False Rejection Rate) < 0.1% < 0.1%

FAR(False Acceptance Rate) < 0.0001% < 0.0001%

Enrollment Time < 1 sec < 1 sec

Verification Time < 1 sec < 1 sec

Host Communication RS-232(TTL Level) RS-232(TTL Level)

Wiegand Interface N/A N/A

Programmable I/O N/A N/A

Power Consumption (mA)

(Stanby / Operation)

Stanby : Max 25uA

Operation : Max 175mA

Stanby : Max 32uA

Operation : Max 350mA

Page 6: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

6666

Supply Voltage S5(DC 5V±0.2V),S3(DC 3.3V±0.2V) DC 3.3V±0.2V

Operation Environment -20 ~ 70℃ / Lower Than 90% RH

(Non – Condensing)

-20 ~ 70℃ / Lower Than 90% RH

(Non – Condensing)

Event Capacity 12,287 12,287

Encryption Seed Seed

Sensor Type

(Sensor Name, Image Size) All-in-one Optical (FCS023, 304x344) Optical (FOS02NL, 256x292)

Dimension 21mm(W) x 53mm(H) x 27mm(D) 43mm(W) x 60mm(H) x 8mm(D)

※※※※ FM FM FM FM----20FP20FP20FP20FP has been discontinued. has been discontinued. has been discontinued. has been discontinued. For the For the For the For the FMFMFMFM----70FP70FP70FP70FP, its sensor shall be replaced into , its sensor shall be replaced into , its sensor shall be replaced into , its sensor shall be replaced into FFFFCCCCS023S023S023S023 depending on sales depending on sales depending on sales depending on sales

situationsituationsituationsituation....

Page 7: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

7777

2.2.2.2. Communication between UFOM and Main ControllerCommunication between UFOM and Main ControllerCommunication between UFOM and Main ControllerCommunication between UFOM and Main Controller

UFOM contains FM-20FP, FM-30FP, FM-70FP and FAS02NL.

The communication between UFOM and main controller is used the serial port.

FM-20FP, FM-30FP have 3 serial ports and it is called as 0 channel(RS-232 or RS-232 TTL Level), 1 channel(RS-

485), and 2 channel(RS-232).

However, FM-70FP has 1 serial ports, which are called as 0 channel (RS 232 or TTL level).

FAS02NL has 1 serial ports, which are called as 0 channel (RS 232 or TTL level).

For the channel communication speed of FM-20FP, FM-30FP, and FM-70FP, each default value is set to 19200 bps,

but for 0 channel communication speed of FAS02NL, its default value is set to 115200 bps.

UFOM can be communicated through 0 channel by default, and all the channel communication speeds are subject to

change.

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).

Page 8: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

8888

2.2.2.2.1111 Packet StructurePacket StructurePacket StructurePacket Structure

Communication between main controller and UFOM is executed with a 20-byte packet. In case a field is composed of

2 bytes, the lower byte becomes the first byte of the field and the higher byte becomes the second byte (Little Endian).

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

StartStartStartStart Start of packet (0x02)

CommandCommandCommandCommand command field

wParamwParamwParamwParam System Id

Param1Param1Param1Param1 The first parameter where data to be transmitted if any

Param2Param2Param2Param2 the second parameter where data to be transmitted if any

ExDatalenExDatalenExDatalenExDatalen when more data transmitted,

here comes the value of the length of the extradata

ErrorCodeErrorCodeErrorCodeErrorCode the execution result of the command

ChecksumChecksumChecksumChecksum used for communication error detection

ExChecksumExChecksumExChecksumExChecksum 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.

Page 9: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

9999

2.22.22.22.2 Using PacketsUsing PacketsUsing PacketsUsing Packets

All commands are sent from main controller to UFOM. Upon receiving a command, UFOM sends acknowledgement of

the command to the main controller. Both command and acknowledgement use the same command packet format

(Hereinafter, however, the packets from the main controller to UFOM are referred to as command packets and those

from UFOM to the main controller are referred to as ACK packets). When sending an ACK packet, UFOM sets the result

of command execution to ErrorCode. When a command is executed normally without an error, ErrorCode value is 0

(M2ERROR_ NONE).

[e.g.] using the command packet[e.g.] using the command packet[e.g.] using the command packet[e.g.] using the command packet

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).

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x550x550x550x55 0x0000 0x123456780x123456780x123456780x12345678 0x00000000 0x00000000 0x0000 Chksum ExChksum

The following is the actual byte sequence when the above packet is transmitted:

0x02 0x02 0x02 0x02 →→→→ 0x55 0x55 0x55 0x55→ 0x00 → 0x00 → 0x78 0x78 0x78 0x78 →→→→ 0x56 0x56 0x56 0x56 →→→→ 0x34 0x34 0x34 0x34 →→→→ 0x12 0x12 0x12 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.

Page 10: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

10101010

2.32.32.32.3 Commands that can be used aloneCommands that can be used aloneCommands that can be used aloneCommands that can be used alone

Commands that can be used alone are classified into the following four types depending on the concerned parameterparameterparameterparameter: : : :

1. 1. 1. 1. No parameterNo parameterNo parameterNo parameter

2. 2. 2. 2. Transmitting a parameterTransmitting a parameterTransmitting a parameterTransmitting a parameter

3.3.3.3. Getting a parameterGetting a parameterGetting a parameterGetting a parameter

4.4.4.4. Exchanging 8Exchanging 8Exchanging 8Exchanging 8----byte or larger databyte or larger databyte or larger databyte or larger data

� Commands without ParameterCommands without ParameterCommands without ParameterCommands without Parameter

[e.g.] CMD_IS_ROOT_MASTER[e.g.] CMD_IS_ROOT_MASTER[e.g.] CMD_IS_ROOT_MASTER[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 ControllerCommand Packet from the Main ControllerCommand Packet from the Main ControllerCommand Packet from the Main Controller (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x06060606 0x0000 0x00000000 0x00000000 0x00000000 0x0000 Chksum 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:

ACK Packet of ACK Packet of ACK Packet of ACK Packet of UFOMUFOMUFOMUFOM (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x06060606 0x0000 0x00000000 0x00000000 0x00000000 0x0015 Chksum 0x00

Page 11: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

11111111

� Transmitting a ParameterTransmitting a ParameterTransmitting a ParameterTransmitting a Parameter

[e.g[e.g[e.g[e.g.] CMD_.] CMD_.] CMD_.] CMD_AUTOAUTOAUTOAUTO_ONOFF_ONOFF_ONOFF_ONOFF

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.

The following is the command packet to turn Relay 1 ON (0x0001).

Command Packet of the main controllerCommand Packet of the main controllerCommand Packet of the main controllerCommand Packet of the main controller (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x1a1a1a1a 0x0000 0x00000001 0x00000001 0x00000000 0x0000 Chksum 0x00

ACK Packet of UFOMACK Packet of UFOMACK Packet of UFOMACK Packet of UFOM (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x1a1a1a1a 0x0000 0x00000001 0x00000000 0x00000000 0x0000 Chksum 0x00

Page 12: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

12121212

� Getting a ParameterGetting a ParameterGetting a ParameterGetting a Parameter

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[e.g.] CMD_GET_SYSTEM_INFO[e.g.] CMD_GET_SYSTEM_INFO[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).

Command Packet of the main controllerCommand Packet of the main controllerCommand Packet of the main controllerCommand Packet of the main controller (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x30303030 0x0000 0x00000002 0x00000000 0x00000000 0x0000 Chksum 0x00

ACK Packet of UFOMACK Packet of UFOMACK Packet of UFOMACK Packet of UFOM (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x30303030 0x0000 0x00000002 0x00000005 0x00000000 0x0000 Chksum 0x00

Page 13: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

13131313

� Exchanging 8Exchanging 8Exchanging 8Exchanging 8----byte or Larger Databyte or Larger Databyte or Larger Databyte or Larger Data

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[e.g.] CMD_GET_IMAGE[e.g.] CMD_GET_IMAGE[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.

Command Packet of the main controllerCommand Packet of the main controllerCommand Packet of the main controllerCommand Packet of the main controller (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4B4B4B4Byteyteyteyte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x43434343 0x0000 0x00000001 0x00000000 0x00000000 0x0000 Chksum 0x00

ACK Packet of UFOMACK Packet of UFOMACK Packet of UFOMACK Packet of UFOM (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1By1By1By1Bytetetete

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x43434343 0x0000 0x01580130 0x00000000 0x00019880 0x0000 Chksum 0xE1

After sending the above ACK packet, UFOM sends the corresponding image data to the main controller.

2.42.42.42.4 Commands that cannot be used aloneCommands that cannot be used aloneCommands that cannot be used aloneCommands that cannot be used alone

Most commands that require master fingerprint, such as significant option change, user

registration/deletion and fingerprint change, cannot be used alone but needs several commands to

accomplish the required function. If master authentication option is disabled, however, these commands

can also be used alone without authentication. For more details on how to use these commands, see

Chapter 3.

Page 14: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

14141414

3.3.3.3. Setting the SystemSetting the SystemSetting the SystemSetting the System

3333.1 .1 .1 .1 Getting the VersionGetting the VersionGetting the VersionGetting the Version

To get UFOM protocol version, CMD_GET_VERSION command is used.

The following shows an example of getting the current protocol version that is 1.0, using

CMD_GET_VERSION command.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x05050505 0x0000 0x00000000 0x00000000 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x05050505 0x0000 0x00000001 0x00000002 0x00000000 0x0000 Chksum 0x00

3333.2 .2 .2 .2 Getting Device StateGetting Device StateGetting Device StateGetting Device State

Using CMD_DEVICE_TEST command, you can test UFOM sensor and flash memory states.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4444ByteByteByteByte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x10101010 0x0000 0x00000003 0x00000000 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1By1By1By1Bytetetete 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x10101010 0x0000 0x00000000 0x00000000 0x00000000 0x0000 Chksum 0x00

Page 15: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

15151515

3333.3 .3 .3 .3 Setting System InformationSetting System InformationSetting System InformationSetting System Information

Using CMD_SET_SYSTEM_INFO command, you can change system information. Set an item to change to

Param1 and a new value for the item to Param2.

Setting whether or not to use master authenticationSetting whether or not to use master authenticationSetting whether or not to use master authenticationSetting whether or not to use master authentication

(SI_USING_MASTER_AUTHENTICATION)(SI_USING_MASTER_AUTHENTICATION)(SI_USING_MASTER_AUTHENTICATION)(SI_USING_MASTER_AUTHENTICATION)

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.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000000 0x00000001 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000000 0x00000001 0x00000000 0x0000 Chksum 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 PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Verifying Master AuthenticationVerifying Master AuthenticationVerifying Master AuthenticationVerifying Master Authentication ( ( ( (CMD_FP_VERIFY_MASTERCMD_FP_VERIFY_MASTERCMD_FP_VERIFY_MASTERCMD_FP_VERIFY_MASTER))))

Page 16: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

16161616

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x57575757 0x0000 0x00000002 0x00000000 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x57575757 0x0000 0x00000001 0x00000000 0x00000000 0x0000 Chksum 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.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x58585858 0x0000 0x00000000 0x00000000 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x58585858 0x0000 0x00000000 0x00000000 0x00000000 0x0000 Chksum 0x00

For event list, please refer to Appendix D. ConstantFor event list, please refer to Appendix D. ConstantFor event list, please refer to Appendix D. ConstantFor event list, please refer to Appendix D. 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.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000001 0x00000001 0x00000000 0x0000 Chksum 0x00

Closing verification of Master AuthenticationClosing verification of Master AuthenticationClosing verification of Master AuthenticationClosing verification of Master Authentication ( ( ( (CMD_FP_VERIFY_MASTER_ENDCMD_FP_VERIFY_MASTER_ENDCMD_FP_VERIFY_MASTER_ENDCMD_FP_VERIFY_MASTER_END))))

Setting the existence of logSetting the existence of logSetting the existence of logSetting the existence of log datadatadatadata recordrecordrecordrecord ( SI_SAVE_LOGEVENT)( SI_SAVE_LOGEVENT)( SI_SAVE_LOGEVENT)( SI_SAVE_LOGEVENT)

Page 17: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

17171717

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000001 0x00000001 0x00000000 0x0000 Chksum 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

SLEVEL_ABOVE_NORMAL (0x06) to Param2.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1111ByteByteByteByte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000002 0x00000006 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byt4Byt4Byt4Byteeee 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000000 0x00000000 0x00000000 0x0000 Chksum 0x00

Changing communication speed Changing communication speed Changing communication speed Changing communication speed (SI_COMM_SPEED)(SI_COMM_SPEED)(SI_COMM_SPEED)(SI_COMM_SPEED)

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 PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000004 0x00000003 0x00000000 0x0000 Chksum 0x00

Setting security levelSetting security levelSetting security levelSetting security level (SI_SECURITY_LEVEL)(SI_SECURITY_LEVEL)(SI_SECURITY_LEVEL)(SI_SECURITY_LEVEL)

Page 18: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

18181818

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000004 0x00000003 0x00000000 0x0000 Chksum 0x00

Setting the security leSetting the security leSetting the security leSetting the security level for identification vel for identification vel for identification vel for identification (SI_SECURITY_LEVEL_IDENTIFY)(SI_SECURITY_LEVEL_IDENTIFY)(SI_SECURITY_LEVEL_IDENTIFY)(SI_SECURITY_LEVEL_IDENTIFY)

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.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000008 0x00000009 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000008 0x00000009 0x00000000 0x0000 Chksum 0x00

This Command is used to set the Format of Wiegand Protocol.

Supported Formats are as follow; Default is WIEGAND_FMT_26BIT.

0x00000x00000x00000x0000 WIEGAND_NOT_USEDWIEGAND_NOT_USEDWIEGAND_NOT_USEDWIEGAND_NOT_USED

0x012c0x012c0x012c0x012c WIEGAND_FORMAT_26BITWIEGAND_FORMAT_26BITWIEGAND_FORMAT_26BITWIEGAND_FORMAT_26BIT

0x012e0x012e0x012e0x012e WIEGAND_FORMAT_34BITWIEGAND_FORMAT_34BITWIEGAND_FORMAT_34BITWIEGAND_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 PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Setting Wiegand FormatSetting Wiegand FormatSetting Wiegand FormatSetting Wiegand Format (SI_ (SI_ (SI_ (SI_WIEGAND_FORMATWIEGAND_FORMATWIEGAND_FORMATWIEGAND_FORMAT))))

Page 19: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

19191919

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000009 0x0002E01 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4444ByteByteByteByte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000009 0x0002E01 0x00000000 0x0000 Chksum 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 PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000000A Sitecode 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000000A Sitecode 0x00000000 0x0000 Chksum 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 don’t 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.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1By1By1By1Bytetetete 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001A 0x00000002 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Setting WiegandSetting WiegandSetting WiegandSetting Wiegand SiteSiteSiteSite CCCCodeodeodeode (SI_(SI_(SI_(SI_WIEGAND_SITECODEWIEGAND_SITECODEWIEGAND_SITECODEWIEGAND_SITECODE))))

Setting the function of identifying Setting the function of identifying Setting the function of identifying Setting the function of identifying fakefakefakefake fingerprintfingerprintfingerprintfingerprint (SI_ (SI_ (SI_ (SI_LFD_LEVELLFD_LEVELLFD_LEVELLFD_LEVEL))))

Page 20: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

20202020

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001A 0x00000002 0x00000000 0x0000 Chksum 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.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001B 0x00000001 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001B 0x00000001 0x00000000 0x0000 Chksum 0x00

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.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001C 0x00000001 0x00000000 0x0000 Chksum 0x00

Setting Capture Image RotationSetting Capture Image RotationSetting Capture Image RotationSetting Capture Image Rotation (SI_ (SI_ (SI_ (SI_ROTATE_CAPTUREROTATE_CAPTUREROTATE_CAPTUREROTATE_CAPTURE))))

Setting auSetting auSetting auSetting authentication of rotating the image by thentication of rotating the image by thentication of rotating the image by thentication of rotating the image by 180180180180 degree degree degree degreessss

(SI_(SI_(SI_(SI_ROTATE_ROTATE_ROTATE_ROTATE_MATCHINGMATCHINGMATCHINGMATCHING))))

Page 21: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

21212121

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001C 0x00000001 0x00000000 0x0000 Chksum 0x00

Page 22: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

22222222

This Command is used to activate or deactivate the Auto Sensing function of fingerprint sensor,

performing FLASH SAVE regardless of the user’s 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.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001D 0x00000001 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001D 0x00000001 0x00000000 0x0000 Chksum 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).

((((NoteNoteNoteNote : : : : It doesn It doesn It doesn It doesn’’’’t supportt supportt supportt support FAS02NLC FAS02NLC FAS02NLC FAS02NLC andandandand FM FM FM FM----70FP)70FP)70FP)70FP)

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001E 0x00000003 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001E 0x00000003 0x00000000 0x0000 Chksum 0x00

Setting use of auto sSetting use of auto sSetting use of auto sSetting use of auto sensingensingensingensing ( ( ( (SI_AUTO_ONOFFSI_AUTO_ONOFFSI_AUTO_ONOFFSI_AUTO_ONOFF))))

Change Communication SpeedChange Communication SpeedChange Communication SpeedChange Communication Speed COMM0COMM0COMM0COMM0 ( ( ( (SI_COMM0_SPEEDSI_COMM0_SPEEDSI_COMM0_SPEEDSI_COMM0_SPEED))))

Page 23: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

23232323

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)

((((Note : It doesnNote : It doesnNote : It doesnNote : It doesn’’’’t support FASt support FASt support FASt support FAS02NLC and FM02NLC and FM02NLC and FM02NLC and FM----70FP70FP70FP70FP))))

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001F 0x00000003 0x00000000 0x0000 Chksum 0x00

AckAckAckAck Packet Packet Packet Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x0000001F 0x00000003 0x00000000 0x0000 Chksum 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)

((((Note : It doesnNote : It doesnNote : It doesnNote : It doesn’’’’t support FAS02NLC and FMt support FAS02NLC and FMt support FAS02NLC and FMt support FAS02NLC and FM----70FP70FP70FP70FP))))

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000020 0x00000003 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000020 0x00000003 0x00000000 0x0000 Chksum 0x00

Change Communication SpeedChange Communication SpeedChange Communication SpeedChange Communication Speed COMM1COMM1COMM1COMM1 ( ( ( (SI_COMM0_SPEEDSI_COMM0_SPEEDSI_COMM0_SPEEDSI_COMM0_SPEED))))

Change Communication SpeedChange Communication SpeedChange Communication SpeedChange Communication Speed COCOCOCOMM2MM2MM2MM2 ( ( ( (SI_COMM0_SPEEDSI_COMM0_SPEEDSI_COMM0_SPEEDSI_COMM0_SPEED))))

Page 24: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

24242424

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.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000021 0x00000003 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000021 0x00000003 0x00000000 0x0000 Chksum 0x00

This Command is used to reduce the time for fingerprint registration.

When using SI_FAST_MODE, the rate of authentication is decreased.

The following shows an example of activating the FAST_MODE.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000022 0x00000001 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000022 0x00000001 0x00000000 0x0000 Chksum 0x00

Set the export of display whether authenticated or not Set the export of display whether authenticated or not Set the export of display whether authenticated or not Set the export of display whether authenticated or not ((((SI_SEND_CAPTURE_SUCCESSSI_SEND_CAPTURE_SUCCESSSI_SEND_CAPTURE_SUCCESSSI_SEND_CAPTURE_SUCCESS))))

Setting quickSetting quickSetting quickSetting quick fingerprintfingerprintfingerprintfingerprint registration registration registration registration (SI_FAST_MODE)(SI_FAST_MODE)(SI_FAST_MODE)(SI_FAST_MODE)

Page 25: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

25252525

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.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000025 0x00000001 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000025 0x00000001 0x00000000 0x0000 Chksum 0x00

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).

((((NoteNoteNoteNote : : : : It supports It supports It supports It supports FAS02NLC FAS02NLC FAS02NLC FAS02NLC only only only only))))

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000023 0x00000001 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000023 0x00000001 0x00000000 0x0000 Chksum 0x00

Change into auto sensing function (Change into auto sensing function (Change into auto sensing function (Change into auto sensing function (SI_ROTATE_SI_ROTATE_SI_ROTATE_SI_ROTATE_MINUTIAEMINUTIAEMINUTIAEMINUTIAE))))

Option on the use of Option on the use of Option on the use of Option on the use of fakefakefakefake fingerprintfingerprintfingerprintfingerprint color changes color changes color changes color changes inspectioninspectioninspectioninspection ((((SI_SI_SI_SI_LFD_WHITE_MODELFD_WHITE_MODELFD_WHITE_MODELFD_WHITE_MODE))))

Page 26: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

26262626

This Option is used to improve the speed of registration by reducing the fingerprint image when registering This Option is used to improve the speed of registration by reducing the fingerprint image when registering This Option is used to improve the speed of registration by reducing the fingerprint image when registering This Option is used to improve the speed of registration by reducing the fingerprint image when registering

SI_CAPTURE_OLD_SIZESI_CAPTURE_OLD_SIZESI_CAPTURE_OLD_SIZESI_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_SIZESI_CAPTURE_OLD_SIZESI_CAPTURE_OLD_SIZESI_CAPTURE_OLD_SIZE (0x24).

((((NoteNoteNoteNote : : : : It supports It supports It supports It supports FAS02NLC FAS02NLC FAS02NLC FAS02NLC only only only only))))

CommanCommanCommanCommand Packetd Packetd Packetd Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000024 0x00000001 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1B1B1B1Byteyteyteyte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x20202020 0x0000 0x00000024 0x00000001 0x00000000 0x0000 Chksum 0x00

SI_TEMPLATE_TYPE (0x26) can set template type as following Param2’s 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 1Byte 2Byte 4Byte 4Byte 4Byte 2Byte 1Byte 1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x02 0x20 0x0000 0x00000026 0x00000003 0x00000000 0x0000 Chksum 0x00

Ack Packet (Little Endian)

1Byte 1Byte 2Byte 4Byte 4Byte 4Byte 2Byte 1Byte 1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x02 0x20 0x0000 0x00000026 0x00000003 0x00000000 0x0000 Chksum 0x00

Reduce Reduce Reduce Reduce fingerprintfingerprintfingerprintfingerprint image sizeimage sizeimage sizeimage size ((((SI_CAPTURE_OLD_SIZE)SI_CAPTURE_OLD_SIZE)SI_CAPTURE_OLD_SIZE)SI_CAPTURE_OLD_SIZE)

Setting Template type (SI_TEMPLATE_TYPE)

Page 27: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

27272727

3.43.43.43.4 Getting System InformationGetting System InformationGetting System InformationGetting System Information

With CMD_GET_SYSTEM_INFO command, you can get the current system setting. Set an item to get to Param1. Upon

receiving this command, UFOM returns ACK with setting the current setting of the item to Param2 field.

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.

Command PacketCommand PacketCommand PacketCommand Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x30303030 0x0000 0x00000002 0x00000000 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x33330000 0x0000 0x00000002 0x00000006 0x00000000 0x0000 Chksum 0x00

Page 28: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

28282828

3.53.53.53.5 Getting Fingerprint ImageGetting Fingerprint ImageGetting Fingerprint ImageGetting Fingerprint Image

In order to get a fingerprint image in the current Fingerprint Input window from UFOM, use CMD_GET_IMAGE.

When using this command, set the image size to get to Param1 field.

The smaller the image size is, the lower the image quality and the shorter the time to get the image will be. Available

settings are VIEW_NORMAL (0x01, normal image size), VIEW_HALF (0x02, half of normal image) and

VIEW_QUARTER (0x04, quarter of normal image size). Amount of data to get depends on the selected image size. Main

controller reads the image size from lwExtraData and hwExtraData fields of ACK packet of UFOM, and gets as large

image as the selected size (in bytes).

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.

Command PacketCommand PacketCommand PacketCommand Packet of the main controller of the main controller of the main controller of the main controller (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byt2Byt2Byt2Byteeee 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x43434343 0x0000 0x00000001 0x00000000 0x00000000 0x0000 Chksum 0x00

Ack PacketAck PacketAck PacketAck Packet of UFOM of UFOM of UFOM of UFOM (Little Endian)

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x43434343 0x0000 0x01580130 0x00000000 0x00019880 0x0000 Chksum 0xE1

Page 29: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

29292929

4444. . . . User RegistrationUser RegistrationUser RegistrationUser 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 indispensableCommands for which master authentication is indispensableCommands for which master authentication is indispensableCommands 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

� WhatWhatWhatWhat’’’’s root master?s root master?s root master?s root 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.

� Checking if there are masters registeredChecking if there are masters registeredChecking if there are masters registeredChecking if there are masters registered

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.

Page 30: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

30303030

CMD_IS_ROOT_MASTERCMD_IS_ROOT_MASTERCMD_IS_ROOT_MASTERCMD_IS_ROOT_MASTER is also available for checking if there are masters registered.is also available for checking if there are masters registered.is also available for checking if there are masters registered.is also available for checking if there are masters registered.

4444.1 .1 .1 .1 Registering a UserRegistering a UserRegistering a UserRegistering a User

Users are classified into ordinary users and masters. Master refers to a user who has the right to

register new users and/or delete other users. Commands to register a master and an ordinary user are

the same except the parameter values.

Registering a fingerprint requires master authentication and also requires to enter the same fingerprint

twice for confirmation. User registration process is outlined below.

� Summary of User Registration ProcessSummary of User Registration ProcessSummary of User Registration ProcessSummary of User Registration Process

CMD_FP_VERIFY_MASTER

CMD_FP_REGISTER_START

CMD_FP_REGISTER_END

// Verify the user with master fingerprint.

(Omitted if master authentication option is disabled)

// Get the fingerprint to be registered.

// Get the second input of the same fingerprint for confirmation.

4444.1.1 .1.1 .1.1 .1.1 Master Registration ProcessMaster Registration ProcessMaster Registration ProcessMaster Registration Process

1.1.1.1. CMD_FP_VERIFY_MASTERCMD_FP_VERIFY_MASTERCMD_FP_VERIFY_MASTERCMD_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.

Page 31: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

31313131

2. CMD_FP_REGISTER_START

1) In case of storing 1 template per 1 finger

This is a process to register user’s FP with user’s ID

After place user’s FP, input User’ID into Param1, input ‘1’ into upper 2 byte and input ’1’ into lower 2byte in Param2.

then after sending order about CMD_FP_REGISTER_START to UFOM, it will register User.

� If UFOM ‘s User ID is correct and capture is success, it will show M2ERROR_NONE, if not it will return error value..

2) In case of storing 2 templates per 1 finger

This is a process to register user’s FP with user’s ID .

� After place user’s FP, input User’ID in Param1, input ‘1’ into Param 2. and then send order about

CMD_FP_REGISTER_START to UFOM

� If UFOM ‘s User ID is correct and capture is success, it will show M2ERROR_NONE, if not it will return error value..

� If ACK Packet error code is M2ERROR_NONE, it will move next step

3. CMD_FP_REGISTER_END (In case of 2 template per 1 finger)

This is a process for input User’s ID and User’s 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.] [e.g.] [e.g.] [e.g.] Registering a userRegistering a userRegistering a userRegistering 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’.

1) CMD_FP_VERIFY_MASTER Command Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2B2B2B2Byteyteyteyte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x57575757 0x0000 0x00000000 0x00000000 0x00000000 0x0000 Chksum 0x00

Page 32: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

32323232

2) CMD_FP_VERIFY_MASTER ACK Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4By4By4By4Bytetetete 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x57575757 0x0000 0x00001111 0x00000000 0x00000000 0x0000 Chksum 0x00

3) CMD_FP_REGISTER_START Command Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byt1Byt1Byt1Byteeee 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x50505050 0x0000 0x12345678 0x00000001 0x00000000 0x0000 Chksum 0x00

4) CMD_FP_REGISTER_START ACK Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x50505050 0x0000 0x00000000 0x00000000 0x00000000 0x0000 Chksum 0x00

5) CMD_FP_REGISTER_END Command Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x51515151 0x0000 0x12345678 0x00000001 0x00000000 0x0000 Chksum 0x00

6) CMD_FP_REGISTER_END ACK Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x51515151 0x0000 0x00000000 0x00000000 0x00000000 0x0000 Chksum 0x00

Values set to Param1 and Param2 of CMD_FP_REGISTER_START and CMD_FP_REGISTER_END must be Values set to Param1 and Param2 of CMD_FP_REGISTER_START and CMD_FP_REGISTER_END must be Values set to Param1 and Param2 of CMD_FP_REGISTER_START and CMD_FP_REGISTER_END must be Values set to Param1 and Param2 of CMD_FP_REGISTER_START and CMD_FP_REGISTER_END must be

the same.the same.the same.the same.

� Root Master Registration ProcessRoot Master Registration ProcessRoot Master Registration ProcessRoot 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:

Page 33: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

33333333

� Summary of Root Master Registration ProcessSummary of Root Master Registration ProcessSummary of Root Master Registration ProcessSummary of Root Master Registration Process

CMD_FP_REGISTER_START

CMD_FP_REGISTER_END

// Get the fingerprint to be

registered.

// Get the second input of the same

fingerprint for confirmation.

4444.1.2 .1.2 .1.2 .1.2 Ordinary User Registration ProcessOrdinary User Registration ProcessOrdinary User Registration ProcessOrdinary User Registration Process

This is the process to register a new user to UFOM database, which is the same as 3.1.1 Master

Registration Process except that ‘0’ should be set to Param2.

Page 34: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

34343434

4444.2 .2 .2 .2 Verifying a UserVerifying a UserVerifying a UserVerifying a User

This refers to a process to verify a user registered in database by comparing the fingerprint displayed on

the current Fingerprint Input window and the one stored in the database. For this process,

CMD_FP_VERIFY is used.

� 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.

[e.g.] [e.g.] [e.g.] [e.g.] Verifying a user whose userVerifying a user whose userVerifying a user whose userVerifying a user whose user ID is ID is ID is ID is ‘‘‘‘1234123412341234’’’’

CMD_FP_VERIFY Command Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x55555555 0x0000 0x00001234 0x00000000 0x00000000 0x0000 Chksum 0x00

CMD_FP_VERIFY ACK Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x55555555 0x0000 0x00001234 0x00001234 0x00000000 0x0000 Chksum 0x00

Page 35: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

35353535

4444.3 .3 .3 .3 Deleting a UserDeleting a UserDeleting a UserDeleting a User

This refers to a process to delete a user registered in database.

Deleting a registered user requires master authentication.

� Summery of User Deletion ProcessSummery of User Deletion ProcessSummery of User Deletion ProcessSummery of User Deletion Process

CMD_FP_VERIFY_MASTER (Omitted if master authentication option is disabled)

CMD_FP_DELETE

1.1.1.1. CMD_FP_VERIFY_MASTCMD_FP_VERIFY_MASTCMD_FP_VERIFY_MASTCMD_FP_VERIFY_MASTERERERER

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.2.2.2. CMD_FP_DELETECMD_FP_DELETECMD_FP_DELETECMD_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.

Page 36: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

36363636

[e.g.] [e.g.] [e.g.] [e.g.] Deleting a user whose user IDeleting a user whose user IDeleting a user whose user IDeleting a user whose user ID is D is D is D is ‘‘‘‘1234123412341234’’’’

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:

1) CMD_FP_VERIFY_MASTER Command Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x57575757 0x0000 0x00000000 0x00000000 0x00000000 0x0000 Chksum 0x00

2) CMD_FP_VERIFY_MASTER ACK Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x57575757 0x0000 0x00000001 0x00000000 0x00000000 0x0000 Chksum 0x00

3) CMD_FP_DELETE Command Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x54545454 0x0000 0x00001234 0x00000000 0x00000000 0x0000 Chksum 0x00

4) CMD_FP_DELETE ACK Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x54545454 0x0000 0x00001234 0x00000000 0x00000000 0x0000 Chksum 0x00

Page 37: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

37373737

4444.4 .4 .4 .4 Changing the fingerprint dataChanging the fingerprint dataChanging the fingerprint dataChanging the fingerprint data

This refers to a process to change only the fingerprint data of the registered user.

� Summary of Fingerprint Data Change ProcessSummary of Fingerprint Data Change ProcessSummary of Fingerprint Data Change ProcessSummary of Fingerprint Data Change Process

CMD_FP_VERIFY_MASTER (Omitted if master authentication option is disabled)

CMD_FP_CHANGE_START

CMD_FP_CHANGE_END

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 Packet’s 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 Packet’s 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.

2. CMD_FP_CHANGE_END (In case of 2 template per 1 finger)

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 user’s FP to UFOM

� Main controller displays the message that remove and place user’s 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

Page 38: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

38383838

[e.g.] [e.g.] [e.g.] [e.g.] When changing the fingerprint of the user whose When changing the fingerprint of the user whose When changing the fingerprint of the user whose When changing the fingerprint of the user whose useruseruseruser ID ID ID ID i i i issss ‘1234’ ‘1234’ ‘1234’ ‘1234’

1) CMD_FP_CHANGE_START Command Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x52525252 0x0000 0x00001234 0x00000000 0x00000000 0x0000 Chksum 0x00

2) CMD_FP_CHANGE_START Ack Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x52525252 0x0000 0x00001234 0x00000064 0x00000000 0x0000 Chksum 0x00

3) CMD_FP_CHANGE_END Command Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x53535353 0x0000 0x00001234 0x00000000 0x00000000 0x0000 Chksum 0x00

4) CMD_FP_CHANGE_END Ack Packet

1Byte1Byte1Byte1Byte 1Byt1Byt1Byt1Byteeee 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x53535353 0x0000 0x00001234 0x00000064 0x00000000 0x0000 Chksum 0x00

Page 39: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

39393939

4444.5 .5 .5 .5 Adding the fingerprint dataAdding the fingerprint dataAdding the fingerprint dataAdding the fingerprint data

This is the process that adds other fingerprint data to the registered user.

� Summary of the process of adding Summary of the process of adding Summary of the process of adding Summary of the process of adding fingerprintfingerprintfingerprintfingerprint datadatadatadata

CMD_FP_VERIFY_MASTER (Omitted when master authentication option is

Off)

CMD_FP_ADD_START

CMD_FP_ADD_END

It is same as the user registration process, but differs in that the user’s ID registered in Param1 should be entered

without fail.

4444....6666 Identifying a UserIdentifying a UserIdentifying a UserIdentifying a User

This refers to a process to identify a user by retrieving all users registered to database, without the user ID but only

with the fingerprint on the current Fingerprint Input window. For user identification, CMD_FP_IDENTIFY is used.

� 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.

[e.g.] [e.g.] [e.g.] [e.g.] Identifying the fingerprint of a user whose user ID is Identifying the fingerprint of a user whose user ID is Identifying the fingerprint of a user whose user ID is Identifying the fingerprint of a user whose user ID is ‘‘‘‘1234123412341234’’’’

1) CMD_FP_IDENTIFY Command Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x56565656 0x0000 0x00000000 0x00000000 0x00000000 0x0000 Chksum 0x00

2) CMD_FP_IDENTIFY ACK Packet

1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte 2Byte2Byte2Byte2Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 4Byte4Byte4Byte4Byte 2Byte2Byte2Byte2Byte 1Byte1Byte1Byte1Byte 1Byte1Byte1Byte1Byte

Start Command wParam Param1 Param2 ExDatalen ErrorCode Checksum Exchecksum

0x020x020x020x02 0x0x0x0x56565656 0x0000 0x00001234 0x00000000 0x00000000 0x0000 Chksum 0x00

Page 40: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

40404040

5555.... Distributed transmission of dataDistributed transmission of dataDistributed transmission of dataDistributed transmission of data (Extended (Extended (Extended (Extended Data Transfer Data Transfer Data Transfer Data Transfer

Protocol)Protocol)Protocol)Protocol)

Extended Data Transfer ProtocolExtended Data Transfer ProtocolExtended Data Transfer ProtocolExtended Data Transfer Protocol

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. 1. 1. 1. All protocolAll protocolAll protocolAll protocolssss of of of of UFOMUFOMUFOMUFOM consist of the consist of the consist of the consist of the following structures following structures following structures following structures

① Host sends the Command including extra data, and then UFOM executes the applicable Command and sends

ACK Packet. In this case, there is no extra data in the Ack Packet.

② Host sends the Command, and then UFOM executes the applicable Command and sends ACK Packet

including extra data. In this case, there is no extra data in the Command Packet.

③ Host sends the Command, UFOM executes the applicable Command, and then sends ACK Packet. In this

case, Command Packet and ACK Packet have no extra data. In the cases of � and � as above, the extra data

can be transmitted with the protocol divided.

1.1 1.1 1.1 1.1 When dividing extra data to be transmitted from When dividing extra data to be transmitted from When dividing extra data to be transmitted from When dividing extra data to be transmitted from HostHostHostHost to to to to Module Module Module Module

Packet (1)Packet (1)Packet (1)Packet (1) Packet (2)Packet (2)Packet (2)Packet (2) ���� ���� ���� Packet (n)Packet (n)Packet (n)Packet (n)

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.

Header Packet (20byte)Header Packet (20byte)Header Packet (20byte)Header Packet (20byte) Data Packet (N byte)Data Packet (N byte)Data Packet (N byte)Data Packet (N byte)

Start :Start :Start :Start : 0xA0

Command :Command :Command :Command : 0x80, Ack(0x06)

WWWWparam :param :param :param : Number of total data packet. Number of Packet (1) ~ packet (n)

PPPParam1 aram1 aram1 aram1 :::: Index of data packet. It starts from 0 when sending Packet (1), whereas 1 when

sending Packet 2.

PPPParam2 :aram2 :aram2 :aram2 : Data packet length. 20 when sending Packet (1). It is the length of data packet to be

divided and transmitted from Packet 2.

EEEExt data length :xt data length :xt data length :xt data length : It should be the same as Param2.

Page 41: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

41414141

EEEError code :rror code :rror code :rror code : 0x0000

CCCChecksum :hecksum :hecksum :hecksum : Start ~ Sum of error codes.

EEEExt checksum :xt checksum :xt checksum :xt checksum : Sum of Data Packets

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.

Ack PacketAck PacketAck PacketAck Packet

Command Command Command Command

Command PacketCommand PacketCommand PacketCommand Packet Header PacketHeader PacketHeader PacketHeader Packet (index0) (index0) (index0) (index0)

DividedDividedDividedDivided extra dataextra dataextra dataextra data (1)(1)(1)(1) Header PacketHeader PacketHeader PacketHeader Packet (index1) (index1) (index1) (index1)

DividedDividedDividedDivided extra dataextra dataextra dataextra data (2)(2)(2)(2) Header PacketHeader PacketHeader PacketHeader Packet (index2) (index2) (index2) (index2)

DividedDividedDividedDivided extra dataextra dataextra dataextra data (n)(n)(n)(n) Header PacketHeader PacketHeader PacketHeader Packet (index N) (index N) (index N) (index N)

ExtraExtraExtraExtra ExtraExtraExtraExtra ���� Extra

Packet(2)

Packet(1)

Packet(3)

Packet(n)

Ack Packet

Ack Packet

Ack Packet

Ack Packet

Ack Packet result after Command Packet is

executed

Host Module NormalNormalNormalNormal

ExtendedExtendedExtendedExtended

Command Command Command Command

Command Command Command Command

Page 42: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

42424242

ExExExEx) ) ) ) When executing When executing When executing When executing CMD_FP_MIN_VERIFY(0x5c) CMD_FP_MIN_VERIFY(0x5c) CMD_FP_MIN_VERIFY(0x5c) CMD_FP_MIN_VERIFY(0x5c)

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.

packet1packet1packet1packet1

<S> A0 80 04 00 00 00 00 00 14 00 00 00 14 00 00 00 00 00 4C F0

02 5C 00 00 01 00 00 00 00 00 00 00 90 01 00 00

00 00 00 00

<R> A0 06 04 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 BE 00

packet2 packet2 packet2 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

Page 43: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

43434343

packet3packet3packet3packet3

<S> A0 80 04 00 02 00 00 00 96 00 00 00 96 00 00 00 00 00 52 E7

AD 48 28 72 70 42 F0 59 BE BE 37 11 B2 28 6D 38

3E 75 5D E4 3B D4 5E CF D4 93 FB 55 26 4B 35 3A

BF 33 FB 28 D3 C4 80 81 E1 E1 D2 5B 02 F0 D2 93

17 3D D1 D3 E4 61 0A 98 51 D3 CD E0 D2 23 62 4B

A0 9C 88 D8 85 40 E7 2C 4E B7 FE 5E 69 36 40 3D

63 29 C2 96 5F 59 80 EE 73 1B 20 23 D1 07 A8 4A

FF A3 0D E3 AC 67 7A 09 89 DC 71 04 55 2A 60 67

29 07 15 18 D8 30 3F BA 63 8E 52 5E F5 EF DF F9

1D 3B D5 84 0F 2B DB 38 EE ED 30 41 4E 1B A5 4B

3E C0 19 01 70 4A

<R> A0 06 04 00 02 00 00 00 96 00 00 00 00 00 00 00 00 00 42 00

packet4packet4packet4packet4

<S> A0 80 04 00 03 00 00 00 64 00 00 00 64 00 00 00 00 00 EF 13

8C C2 60 9A 22 6F 26 5A B5 28 CC 3A BB ED 17 B6

D6 7E 1A AC FB 37 73 81 CB 6A 39 6E 7A 31 47 00

F1 83 1B E4 37 AF 7C FC 9B 5E BB 91 50 BE 8A A3

A5 A5 E5 78 D0 08 7D 26 9F 94 76 D0 68 72 EB 8C

97 28 5A AB 2C FF C1 7A E5 F9 E5 DA 1D F1 D3 07

74 A0 FA 3D 00 FD FD 75 DD 0C 3D 05 02 00 F6 12

97 63 E6 99

<R> A0 06 04 00 03 00 00 00 64 00 00 00 00 00 00 00 00 00 11 00

Ack PacketAck PacketAck PacketAck Packet

<R> 02 5C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5E 00

Page 44: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

44444444

1.21.21.21.2 When dividing the extra data to be transmitted from When dividing the extra data to be transmitted from When dividing the extra data to be transmitted from When dividing the extra data to be transmitted from Module Module Module Module to to to to Host Host Host Host

Packet (1)Packet (1)Packet (1)Packet (1) Packet (2)Packet (2)Packet (2)Packet (2) ���� ���� ���� Packet (n)Packet (n)Packet (n)Packet (n)

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.

Header PackeHeader PackeHeader PackeHeader Packetttt structure is as follow;structure is as follow;structure is as follow;structure is as follow;

Host Host Host Host ----> Module> Module> Module> Module Host <Host <Host <Host <---- Module Module Module Module

Start :Start :Start :Start : 0xA00xA00xA00xA0 0xA00xA00xA00xA0

CCCCommand :ommand :ommand :ommand : 0x82, Ack(0x00x82, Ack(0x00x82, Ack(0x00x82, Ack(0x06)6)6)6) 0x820x820x820x82

WWWWparam :param :param :param : 0x00000x00000x00000x0000 Num of total data packet (n)Num of total data packet (n)Num of total data packet (n)Num of total data packet (n)

PPPParam1 :aram1 :aram1 :aram1 : 0x000000000x000000000x000000000x00000000 IIIIndex of data packet (0 ~ Nndex of data packet (0 ~ Nndex of data packet (0 ~ Nndex of data packet (0 ~ N----1)1)1)1)

PPPParam2 :aram2 :aram2 :aram2 : Length of data packet to be separated Length of data packet to be separated Length of data packet to be separated Length of data packet to be separated

and sentand sentand sentand sent Length of dLength of dLength of dLength of data packetata packetata packetata packet

EEEExtra dataxtra dataxtra dataxtra data

lengthlengthlengthlength 0x140x140x140x14 in case of Packet 1; 0x00 in case of in case of Packet 1; 0x00 in case of in case of Packet 1; 0x00 in case of in case of Packet 1; 0x00 in case of

AckAckAckAck Same Same Same Same as as as as PPPParam2aram2aram2aram2

EEEError coderror coderror coderror code 0x00000x00000x00000x0000 0x00000x00000x00000x0000

CCCChecksumhecksumhecksumhecksum SSSStart ~ tart ~ tart ~ tart ~ Sum of Sum of Sum of Sum of error codeerror codeerror codeerror codessss SSSStart ~ tart ~ tart ~ tart ~ Sum of Sum of Sum of Sum of error codeerror codeerror codeerror codessss

EEEExt checksumxt checksumxt checksumxt checksum Sum of data packet in case of Sum of data packet in case of Sum of data packet in case of Sum of data packet in case of Packet 1Packet 1Packet 1Packet 1; ; ; ;

0x000x000x000x00 in case of Ack in case of Ack in case of Ack in case of Ack Sum of dSum of dSum of dSum of data packetata packetata packetata packetssss

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.

Page 45: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

45454545

ExExExEx) ) ) ) When executing When executing When executing When executing CMD_GET_MINUTIAECMD_GET_MINUTIAECMD_GET_MINUTIAECMD_GET_MINUTIAE (0x40) (0x40) (0x40) (0x40)

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.

When there is no data to send like packet 5, Error code 0xFF.

Header PacketHeader PacketHeader PacketHeader Packet

Command Command Command Command

Command PacketCommand PacketCommand PacketCommand Packet Header Packet (index Header Packet (index Header Packet (index Header Packet (index

DividedDividedDividedDivided extra data(1extra data(1extra data(1extra data(1)))) Header Packet (index Header Packet (index Header Packet (index Header Packet (index

DividedDividedDividedDivided extrextrextrextra data(2)a data(2)a data(2)a data(2) Header Packet (index Header Packet (index Header Packet (index Header Packet (index

DividedDividedDividedDivided extra data(n)extra data(n)extra data(n)extra data(n) Header Packet (index Header Packet (index Header Packet (index Header Packet (index

ExtraExtraExtraExtra ExtraExtraExtraExtra ���� ���� ���� ExtraExtraExtraExtra

Ack PacketAck PacketAck PacketAck Packet

Ack PacketAck PacketAck PacketAck Packet

Command PacketCommand PacketCommand PacketCommand Packet

Ack PacketAck PacketAck PacketAck Packet

HostHostHostHost ModuleModuleModuleModule NormalNormalNormalNormal

ExtendedExtendedExtendedExtended

Command Command Command Command

CommandCommandCommandCommand Command Command Command Command

Packet(1)

Packet(2)

Packet(3)

Packet(n)

Page 46: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

46464646

packet1packet1packet1packet1

<S> A0 82 00 00 00 00 00 00 96 00 00 00 14 00 00 00 00 00 CC 84

02 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00

<R> A0 82 04 00 00 00 00 00 14 00 00 00 14 00 00 00 00 00 4E 6E

02 40 00 00 00 00 00 00 00 00 00 00 90 01 00 00

00 00 D3 C8

packet2packet2packet2packet2

<S> A0 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A6 00

<R> A0 82 04 00 01 00 00 00 96 00 00 00 96 00 00 00 00 00 53 EF

55 4E 49 4F 4E 05 5A 00 03 3C 5C 00 14 64 1B 1D

F5 0F 82 62 34 C5 4C 20 60 9D DF B4 F3 9B 10 DF

CF 0C 56 6E 47 B7 A0 4F E8 51 92 F1 A9 1B 70 97

72 9E FF 45 D2 0E 91 B9 00 B7 0D 90 3F 0E DD 23

CE A4 82 90 83 84 EC 67 23 CB 6E 5A 0E 57 64 34

6A 46 F9 E2 DF FF 05 48 6E F2 D1 39 62 11 CD F7

11 93 55 57 16 CB E9 9C 8F 4E C0 AC 02 8E CC BF

AF C8 96 A2 7A EF FF 69 FB B1 5A 76 D8 34 A3 B2

B2 FC 91 CC 64 9E 97 14 17 25 2B E2 DD B4 54 54

48 3E E2 63 44 88

packet3packet3packet3packet3

<S> A0 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A6 00

<R> A0 82 04 00 02 00 00 00 96 00 00 00 96 00 00 00 00 00 54 C7

C8 2D 9A E8 A1 23 61 02 8F F7 D4 32 05 A9 93 CF

76 24 0B A8 81 64 97 07 59 D5 E2 B1 9A 55 1E 68

D7 26 13 91 AE 6A F8 83 43 67 3F CC 89 42 1B C5

26 00 4C C2 AA D6 22 DC C6 6A 6F 0C B7 78 64 0F

30 E1 77 85 A5 0D F9 9A EA 21 54 EF 8D 69 C2 31

3B D1 54 EF 77 C4 6C 8C E8 39 F2 5A 00 09 F4 17

28 F5 E3 C3 DA 74 00 18 6D AB 6B 1A 63 30 81 D9

9F 63 D3 19 08 6A 51 BE 7F A9 D0 AE 61 9C 07 59

DD E2 60 6A F8 4F 35 DC D5 B9 ED 4D 00 4F 61 59

2E AF 98 6F 79 34

Page 47: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

47474747

packet4packet4packet4packet4

<S> A0 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A6 00

<R> A0 82 04 00 03 00 00 00 64 00 00 00 64 00 00 00 00 00 F1 12

DD 55 97 84 10 49 13 A0 61 0F 3C C9 7E 71 9A 1F

92 AD 17 99 E8 16 23 83 75 EE 16 04 F0 81 C9 6E

52 AF 58 D4 78 99 EB 5F 76 2F 8E CA 97 BB C6 06

2A F9 DA A4 57 7C E0 60 97 12 3D E7 87 EE 74 6C

77 78 83 AB 66 F9 7E A3 82 B9 22 A3 6A C6 9B D3

8E 44 36 21 D8 4D 2A 9F BC 0F 4E 12 A2 3E 09 7A

04 20 C0 A7

packet5packet5packet5packet5

<S> A0 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A6 00

<R> A0 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 00 A5 00

Page 48: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

48484848

6666 Switching to boot modeSwitching to boot modeSwitching to boot modeSwitching to boot mode (FAS02NL (FAS02NL (FAS02NL (FAS02NLCCCC))))

This function is to support from FAS02NL that is an integrated module.

(FM(FM(FM(FM----70FP70FP70FP70FP supports supports supports supports E2 E2 E2 E2 boot modeboot modeboot modeboot mode only only only only))))

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 don’t work. It only supports the firmware upgrade function. After the

firmware is upgraded and reset, it automatically boots with E2.

Page 49: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

49494949

Appendix A. Protocol ReferenceAppendix A. Protocol ReferenceAppendix A. Protocol ReferenceAppendix A. Protocol Reference

Communication between main controller and UFOM is performed using 20-byte packets.

When the main controller or host sends a command, UFOM executes the command and returns ACK

packet with setting the result to the packet.

The packet structure is shown below.

.

Start Command wParam Param1 Param2 exDatalen ErrorCode Checksum Exchecksum

1Byte 1Byte 2Byte 4Byte 4Byte 4Byte 2Byte 1Byte 1Byte

Start Designates the start of the packet ( 0x02)

Command Designates the command to be executed.

WParam

System ID

- Command

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 Used when there is a parameter in the command.

Param2 Used when there is extra data to be used other than Param1. Param1. Param1. Param1.

ExDatalen Used when there is extra data to be transmitted other than Param1 Param1 Param1 Param1 and Param2. Param2. Param2. Param2.

This field does not carry data but only carries the data length.

ErrorCode

UFOM sets the result of executing the command requested by host or main

controller to this field. When the command is successfully executed, it returns

M2ERROR_NONE (0x00). ErrorCode field is used only for ACK packet.

Checksum

Checksum field is used to detect communication errors, which is set as the

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.

Page 50: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

50505050

CMD_GET_VERSION (0x05)CMD_GET_VERSION (0x05)CMD_GET_VERSION (0x05)CMD_GET_VERSION (0x05)

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 0x02

Command 0x05

wParam

Param1

Param2

ExDatalen 0

ErrorCode

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x05

wParam

Param1 Version Major Number

Param2 Version Minor Number

ExDatalen

ErrorCode M2ERROR_NONE

CheckSum

exCheckSum

Page 51: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

51515151

CMD_IS_ROOT_MASTER (0x0CMD_IS_ROOT_MASTER (0x0CMD_IS_ROOT_MASTER (0x0CMD_IS_ROOT_MASTER (0x06)6)6)6)

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 0x02

Command 0x06

wParam

Param1

Param2

ExDatalen 0

ErrorCode

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x06

wParam

Param1

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – There is a root master registered.

M2ERROR_MASTERFP_NOT_FOUND – There is no root master registered.

CheckSum

exCheckSum

Page 52: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

52525252

CMD_GET_SYSTEMCMD_GET_SYSTEMCMD_GET_SYSTEMCMD_GET_SYSTEM_ID (0x0e)_ID (0x0e)_ID (0x0e)_ID (0x0e)

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 0x02

Command 0x0e

wParam

Param1

Param2

ExDatalen 0

ErrorCode

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x0e

WParam

Param1 system id

Param2

ExDatalen

ErrorCode M2ERROR_NONE – Being executed normally

CheckSum

exCheckSum

Page 53: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

53535353

CMD_SET_SYSTEM_ID (0x0f)CMD_SET_SYSTEM_ID (0x0f)CMD_SET_SYSTEM_ID (0x0f)CMD_SET_SYSTEM_ID (0x0f)

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 0x02

Command 0x0f

wParam

Param1 system id

Param2

ExDatalen 0

ErrorCode

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x0f

wParam

Param1 System id

Param2

ExDatalen

ErrorCode M2ERROR_NONE – Being executed normally

M2ERROR_INVALID_PARAM - When Param1 value is wrong

CheckSum

exCheckSum

Page 54: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

54545454

CMD_DEVICE_TEST (0x10)CMD_DEVICE_TEST (0x10)CMD_DEVICE_TEST (0x10)CMD_DEVICE_TEST (0x10)

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:

0x00 - DEVICE_ALL Test all devices.

0x01 - DEVICE_SENSOR Test image sensor.

0x02 - DEVICE_FLASHMEM Test flash memory.

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 0x02

Command 0x10

wParam

Param1 Device Number

Param2

ExDatalen 0

ErrorCode

CheckSum

exCheckSum

ACK:

Start 0x00

Command 0x10

wParam

Param1

Param2

ExDatalen 0

ErrorCode

M2ERROR_NONE – The device is normally operating.

M2ERROR_FLASH_OPEN – There is an error in the flash memory.

M2ERROR_SENSOR_OPEN– There is an error in the image sensor.

CheckSum

exCheckSum

Page 55: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

55555555

CMD_DEVICE_CMD_DEVICE_CMD_DEVICE_CMD_DEVICE_RRRRESETESETESETESET (0x1 (0x1 (0x1 (0x11111))))

This Command is the reset instruction that releases the currently designated or selected function and returns to the

original stand-by state.

Command:

Start 0x00

Command 0x11

wParam

Param1

Param2

ExDatalen 0

ErrorCode

CheckSum

exCheckSum

ACK:

Start 0x00

Command 0x10

wParam

Param1

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – Device is operating in a normal condition

CheckSum

exCheckSum

Page 56: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

56565656

CMD_OPTICLED_ONOFF (0x14)CMD_OPTICLED_ONOFF (0x14)CMD_OPTICLED_ONOFF (0x14)CMD_OPTICLED_ONOFF (0x14)

This command is used to turn ON/OFF the optical unit LED.

Command:

Start 0x02

Command 0x14

wParam

Param1 On/Off(On → 1, Off → 0)

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x14

wParam

Param1

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally.

CheckSum

exCheckSum

Page 57: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

57575757

CMD_AUTO_ONOFF (0x1a)CMD_AUTO_ONOFF (0x1a)CMD_AUTO_ONOFF (0x1a)CMD_AUTO_ONOFF (0x1a)

This command is used to activate Auto sensing function on the optical sensor.

Command:

Start 0x02

Command 0x1a

WParam 0

Param1 0=Disable auto sensing

1= Enable auto sensing

Param2 0=do not save Param1 value to flash

1=save Param1 value to flash

ExDatalen 0x0000

ErrorCode 0x0000

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x1a

WParam

Param1

Param2 0

ExDatalen

ErrorCode M2ERROR_NONE – The command has been executed normally.

CheckSum

exCheckSum

Page 58: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

58585858

CMD_SET_SYSTEM_INFO (0x20)CMD_SET_SYSTEM_INFO (0x20)CMD_SET_SYSTEM_INFO (0x20)CMD_SET_SYSTEM_INFO (0x20)

This command is used to set system options of UFOM. Set an item to be changed (Selector) to Param1 and the value for the item to Param2. To execute this command requires master authentication. In other words, this command should be executed after CMD_VERIFY_ MASTER is executed first. The changed values apply all as the initial settings when the system is reset. To save the changed values, CMD_SAVE_SYSTEM_INFO should be used.

Following selectors are available:

SI_USING_MASTER_AUTHENTICATION (0x00)SI_USING_MASTER_AUTHENTICATION (0x00)SI_USING_MASTER_AUTHENTICATION (0x00)SI_USING_MASTER_AUTHENTICATION (0x00)

This select is used to designate whether or not to use master authentication for registering or deleting a user. If the value of Param2 is 1, it means to use master authentication and if it is 0, it means not to use. When the system is delivered from factory, default is set to 0.

SI_SAVE_LOGEVENT(0x01)SI_SAVE_LOGEVENT(0x01)SI_SAVE_LOGEVENT(0x01)SI_SAVE_LOGEVENT(0x01)

If the value of Param2 is 1, log events are saved but if it is 0, they are not saved. When the system is delivered from factory, default is set to 1.

SI_SECURITY_LEVEL(0x02)SI_SECURITY_LEVEL(0x02)SI_SECURITY_LEVEL(0x02)SI_SECURITY_LEVEL(0x02)

This selector is used to designate security level. Security levels are available from 1 to 9, and 9 is the highest level.

The meaning of each selector value is given below:

0x01 - SLEVEL_LOWEST

0x02 - SLEVEL_LOWER

0x03 - SLEVEL_LOW

0x04 - SLEVEL_BELOW_NORMAL

0x05 - SLEVEL_NORMAL

0x06 - SLEVEL_ABOVE_NORMAL

0x07 - SLEVEL_HIGH

0x08 - SLEVEL_HIGHER

0x09 - SLEVEL_HIGHEST

But, this security level is used only for verification and the security level for identification should be set separately using SI_SECURITY_LEVEL_IDENTIFY.

SI_COMM_SPEED(0x04)SI_COMM_SPEED(0x04)SI_COMM_SPEED(0x04)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.But, as the value changed with this command is not saved in flash memory, the default is restored when UFOM is reset.But, as the value changed with this command is not saved in flash memory, the default is restored when UFOM is reset.But, as the value changed with this command is not saved in flash memory, the default is restored when UFOM is reset.

Page 59: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

59595959

0x0001 BAUD_115200

0x0003 BAUD_57600

0x0005 BAUD_38400

0x000B BAUD_19200

0x000F BAUD_14400

0x0017 BAUD_9600

SI_SECURITY_LEVEL_IDENTIFY(0x08)SI_SECURITY_LEVEL_IDENTIFY(0x08)SI_SECURITY_LEVEL_IDENTIFY(0x08)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)SI_WIEGAND_FORMAT(0x09)SI_WIEGAND_FORMAT(0x09)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)SI_WIEGAND_SITECODE(0x0a)SI_WIEGAND_SITECODE(0x0a)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

WIEGAND_FORMAT_34BIT, a 16-bit sitecode is used.

Page 60: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

60606060

SI_LFD_LEVELSI_LFD_LEVELSI_LFD_LEVELSI_LFD_LEVEL (0x1a) (0x1a) (0x1a) (0x1a)

This selector is used to detect fake finger on fingerprint capturing - for use, 1 and for nonuse, 0. Default

is set to 0

SI_SI_SI_SI_ROTATEROTATEROTATEROTATE____CAPTURE (0x1b)CAPTURE (0x1b)CAPTURE (0x1b)CAPTURE (0x1b)

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_SI_SI_SI_ROTATEROTATEROTATEROTATE____MATCHING (0x1c)MATCHING (0x1c)MATCHING (0x1c)MATCHING (0x1c)

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 doesn’t perform authentication

when not in use. 0 when not in use whereas 1 when in use. Default value is 0.

SI_ASI_ASI_ASI_AUTUTUTUTOOOO_ONOFF(0x1d)_ONOFF(0x1d)_ONOFF(0x1d)_ONOFF(0x1d)

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) SI_COMM0_SPEED (0x1e) SI_COMM0_SPEED (0x1e) SI_COMM0_SPEED (0x1e) RS232 RS232 RS232 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 doesn’t

support FAS02NLC and FM-70FP)

SI_COMM1_SPEED (0x1f) RS485SI_COMM1_SPEED (0x1f) RS485SI_COMM1_SPEED (0x1f) RS485SI_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 doesn’t

support FAS02NLC and FM-70FP)

SI_COMM1_SPEED (0x20) RS232SI_COMM1_SPEED (0x20) RS232SI_COMM1_SPEED (0x20) RS232SI_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 doesn’t

support FAS02NLC and FM-70FP)

Page 61: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

61616161

SI_SEND_CAPTURE_SUCCESS (0x21)SI_SEND_CAPTURE_SUCCESS (0x21)SI_SEND_CAPTURE_SUCCESS (0x21)SI_SEND_CAPTURE_SUCCESS (0x21)

This Command is used to display On and Off about the success or failure of image authentication at the

time of fingerprint capturing. It applies the function of Command CMD_GET_SYSTEM_INFO(0x30)

(SI_SEND_CAPTURE_SUCCESS (0x21)).

SI_FAST_MODESI_FAST_MODESI_FAST_MODESI_FAST_MODE (0x22) (0x22) (0x22) (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)SI_LFD_WHITE_MODE (0x23)SI_LFD_WHITE_MODE (0x23)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.

((((Note: It supports FAS02NLC onlyNote: It supports FAS02NLC onlyNote: It supports FAS02NLC onlyNote: It supports FAS02NLC only))))

SI_CAPTURE_OLD_SIZE (0x24)SI_CAPTURE_OLD_SIZE (0x24)SI_CAPTURE_OLD_SIZE (0x24)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.

((((Note: It supports FAS02NLC onlyNote: It supports FAS02NLC onlyNote: It supports FAS02NLC onlyNote: It supports FAS02NLC only))))

SI_ROTATE_SI_ROTATE_SI_ROTATE_SI_ROTATE_MINUTIAEMINUTIAEMINUTIAEMINUTIAE (0x2(0x2(0x2(0x25555))))

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.

Page 62: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

62626262

Command:

Start 0x02

Command 0x20

WParam

Param1 Selected items

Param2 It varies depending on the value to be changed and selected items

ExDatalen 0

ErrorCode

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x20

WParam

Param1 Selected items

Param2 It varies depending on the value to be changed and selected items

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

M2ERROR_INVALID_PARAM – it has wrong Param1 value

CheckSum

exCheckSum

Page 63: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

63636363

CMD_SET_CMD_SET_CMD_SET_CMD_SET_COMM_SPEEDCOMM_SPEEDCOMM_SPEEDCOMM_SPEED (0x2 (0x2 (0x2 (0x21111))))

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

CMD_SET_SYSTEM_INFO. The default value is BAUD_19200

However this commend has the same function of SI_COMM_SPEED, the value of Param2 is 1, it save the However this commend has the same function of SI_COMM_SPEED, the value of Param2 is 1, it save the However this commend has the same function of SI_COMM_SPEED, the value of Param2 is 1, it save the 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. value at the flash memory so that even thought UFOM is reset it has the same commend speed. value at the flash memory so that even thought UFOM is reset it has the same commend speed. value at the flash memory so that even thought UFOM is reset it has the same commend speed.

The version of FMThe version of FMThe version of FMThe version of FM----20FP20FP20FP20FP are more then 3.1, the default communication speed is 19200bps if it use the are more then 3.1, the default communication speed is 19200bps if it use the are more then 3.1, the default communication speed is 19200bps if it use the are more then 3.1, the default communication speed is 19200bps if it use the

initialize s/w.initialize s/w.initialize s/w.initialize s/w.

Command:

Start 0x02

Command 0x21

wParam

Param1 Communication speed (BAUD_1200 ~ BAUD_115200)

Param2 1 = save at the flash, 0 = dose not save at the flash

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x21

wParam

Param1 Communication speed (BAUD_1200 ~ BAUD_115200)

Param2 0

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

M2ERROR_INVALID_PARAM – it has wrong Param1 value

CheckSum

exCheckSum

Page 64: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

64646464

CMD_SET_TIME (0x24)CMD_SET_TIME (0x24)CMD_SET_TIME (0x24)CMD_SET_TIME (0x24)

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 UFOM time is not accurate and when UFOM is reset, the time is also reset. Therefore, when UFOM is UFOM time is not accurate and when UFOM is reset, the time is also reset. Therefore, when UFOM is UFOM time is not accurate and when UFOM is reset, the time is also reset. Therefore, when UFOM is

reset, the time should be set accordingly. Even when it is not rreset, the time should be set accordingly. Even when it is not rreset, the time should be set accordingly. Even when it is not rreset, the time should be set accordingly. Even when it is not reset, it is recommended to set correct time eset, it is recommended to set correct time eset, it is recommended to set correct time eset, it is recommended to set correct time

once in several days.once in several days.once in several days.once in several days.

Command:

Start 0x02

Command 0x24

wParam

Param1

Param2

ExDatalen Sizeof(TimeInfo)

ErrorCode

CheckSum

exCheckSum

Subsequent data sequence is the same as TimeInfo.

Year Month Day Hour Min Sec reserved

2Byte 1Byte 1Byte 1Byte 1Byte 1Byte 1Byte

ACK:

Start 0x02

Command 0x24

wParam

Param1

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

M2ERROR_TIME_ERROR – Set to wrong time value

CheckSum

Page 65: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

65656565

exCheckSum

Page 66: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

66666666

CMD_SET_CAPTURE_TIMEOUT (0xCMD_SET_CAPTURE_TIMEOUT (0xCMD_SET_CAPTURE_TIMEOUT (0xCMD_SET_CAPTURE_TIMEOUT (0x28282828))))

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 0x02

Command 0x28

WParam 0

Param1 Timeout value (3~25)

Param2 0=do not save Param1 value to flash

1=save Param1 value to flash

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x28

WParam

Param1 Timeout value

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally.

M2ERROR_INVALID_PARAM – it has wrong Param1 value

CheckSum

exCheckSum

Page 67: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

67676767

CMD_SET_CMD_SET_CMD_SET_CMD_SET_CHECK_SIMILAR_FP_REGISTERCHECK_SIMILAR_FP_REGISTERCHECK_SIMILAR_FP_REGISTERCHECK_SIMILAR_FP_REGISTER (0x (0x (0x (0x29292929))))

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 0x02

Command 0x28

WParam 0

Param1 0= Not used

1= Used

Param2 Value between 5~9 is designated

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x28

WParam

Param1 0= Not used

1= Used

Param2 Acknowledge the value designated between 5~9.

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally.

M2ERROR_INVALID_PARAM – it has wrong Param1 value

CheckSum

Page 68: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

68686868

exCheckSum

Page 69: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

69696969

CMD_GET_SYSTEM_INFO (0x30)CMD_GET_SYSTEM_INFO (0x30)CMD_GET_SYSTEM_INFO (0x30)CMD_GET_SYSTEM_INFO (0x30)

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.

Selectors are the same as those of CMD_SET_SYSTEM_INFO.CMD_SET_SYSTEM_INFO.CMD_SET_SYSTEM_INFO.CMD_SET_SYSTEM_INFO.

Command:

Start 0x02

Command 0x30

wParam

Param1 Item

Param2 0

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x30

wParam

Param1 Selector

Param2 Current setting corresponding to the selector

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

M2ERROR_INVALID_PARAM – it has wrong Param1 value

CheckSum

exCheckSum

Page 70: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

70707070

CMD_DEVICE_PVERSION (0xCMD_DEVICE_PVERSION (0xCMD_DEVICE_PVERSION (0xCMD_DEVICE_PVERSION (0x38383838))))

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), V30BU(FM-30FP), V70BU(FM-70FP), FAS02NLC(FAS02NLC),

FAS02NL2(FAS02NL)

Command:

Start 0x02

Command 0x38

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x38

wParam

Param1 Full version information of module firmware

Param2 Module firmware checksum

ExDatalen 0x11

ErrorCode M2ERROR_NONE – Being executed normally

CheckSum

exCheckSum

The order of data to be sent thereafter is as follow;

Page 71: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

71717171

Module name (9 byte) + String on full version information of module firmware (8 byte)

CMD_GET_MODCMD_GET_MODCMD_GET_MODCMD_GET_MODULE_ID (0xULE_ID (0xULE_ID (0xULE_ID (0x3F3F3F3F))))

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 0x464D0002

FM-30FP 0x464D0003

FM-70FP 0x464D0007

FAS02NL 0x46410002

FAS02NLC 0x46410003

Command:

Start 0x02

Command 0x3F

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x3F

wParam

Param1 MANUFACTURE ID (0x00005543)

Param2 Product ID

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Page 72: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

72727272

CMD_GET_MINUTIAE (0x40)CMD_GET_MINUTIAE (0x40)CMD_GET_MINUTIAE (0x40)CMD_GET_MINUTIAE (0x40)

This Command is used to receive the fingerprint from the optical device and then extract the characteristics from such

fingerprint.

Command:

Start 0x02

Command 0x40

wParam

Param1 0

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x40

wParam

Param1

Param2

ExDatalen 0x190 ( = 400bytes)

ErrorCode

M2ERROR_NONE – The command has been executed normally

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

Subsequent data sequence is as follows:

400-byte length fingerprint data …

Page 73: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

73737373

CMD_GET_IMAGE (0x43)CMD_GET_IMAGE (0x43)CMD_GET_IMAGE (0x43)CMD_GET_IMAGE (0x43)

This command is used to get the fingerprint image opened on the current Fingerprint Input window to main controller or host side. The main controller sets which image to get to Param1Param1Param1Param1 field of the command packet. Values that can be set to Param1 Param1 Param1 Param1 are as follows:

VIEW_NORMAL(0x01)VIEW_NORMAL(0x01)VIEW_NORMAL(0x01)VIEW_NORMAL(0x01) Normal image size VIEW_HALF(0x02)VIEW_HALF(0x02)VIEW_HALF(0x02)VIEW_HALF(0x02) Half of normal image size VIEW_QUARTER(0x04)VIEW_QUARTER(0x04)VIEW_QUARTER(0x04)VIEW_QUARTER(0x04) Quarter of normal image size

Amount of data to get depends on the selected image size. The main controller reads the size set to ExtraData (lwExtraData, hwExtraData)ExtraData (lwExtraData, hwExtraData)ExtraData (lwExtraData, hwExtraData)ExtraData (lwExtraData, hwExtraData) field of ACK packet from UFOMUFOMUFOMUFOM, and gets as large image as the selected size UFOM.

U If the image is captured normally, UFOM sends ACK packet and then sends as large image as ExtraData to the main controller.

Command:

Start 0x02

Command 0x43

wParam

Param1 Fingerprint image size (0x01, 0x02, 0x04)

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x43

wParam

Param1

Param2

ExDatalen Data length to be sent

ErrorCode

M2ERROR_NONE – The command has been executed normally.

M2ERROR_TIMEOUT - There is no fingerprint in the Fingerprint Input window, or

fingerprint input is wrong

M2ERROR_INVALID_PARAM – it has wrong Param1 value

CheckSum

exCheckSum

Subsequent data sequence is as follows:

Image data as long as ExtraData length …

Page 74: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

74747474

CMD_GET_TIME (0x44)CMD_GET_TIME (0x44)CMD_GET_TIME (0x44)CMD_GET_TIME (0x44)

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 0x02

Command 0x44

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x44

wParam

Param1

Param2

ExDatalen Sizeof(TimeInfo)

ErrorCode M2ERROR_NONE – The command has been executed normally.

CheckSum

exCheckSum

Subsequent data sequence is the same as TimeInfo.

Year Month Day Hour Min Sec reserved

2Byte 1Byte 1Byte 1Byte 1Byte 1Byte 1Byte

Page 75: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

75757575

CMD_GET_REC_COUNT (0x46)CMD_GET_REC_COUNT (0x46)CMD_GET_REC_COUNT (0x46)CMD_GET_REC_COUNT (0x46)

This command is used to get the number of users registered to the system.

Command:

Start 0x02

Command 0x46

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x46

wParam

Param1 Number of users registered to the system

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally.

CheckSum

exCheckSum

Page 76: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

76767676

CMD_GET_MASTER_COUNT (0x47)CMD_GET_MASTER_COUNT (0x47)CMD_GET_MASTER_COUNT (0x47)CMD_GET_MASTER_COUNT (0x47)

This command is used to get the number of masters registered to the system.

Command:

Start 0x02

Command 0x47

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x47

wParam

Param1 Number of masters registered (0-5)

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally.

CheckSum

exCheckSum

Page 77: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

77777777

CMD_CMD_CMD_CMD_GGGGET_CAPTURE_TIMEOUT (0xET_CAPTURE_TIMEOUT (0xET_CAPTURE_TIMEOUT (0xET_CAPTURE_TIMEOUT (0x48484848))))

This commend is used to get the timeout when fingerprints are captured by UFOM.

Command:

Start 0x02

Command 0x48

WParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x48

WParam

Param1 Timeout value

Param2

ExDatalen

ErrorCode M2ERROR_NONE – The command has been executed normally.

CheckSum

exCheckSum

Page 78: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

78787878

CMD_CMD_CMD_CMD_GGGGET_ET_ET_ET_CHECK_SIMILAR_FP_REGISTERCHECK_SIMILAR_FP_REGISTERCHECK_SIMILAR_FP_REGISTERCHECK_SIMILAR_FP_REGISTER (0x (0x (0x (0x49494949))))

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 0x02

Command 0x48

WParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x48

WParam

Param1 Use/Non-use

Param2 Current set level value

ExDatalen

ErrorCode M2ERROR_NONE – The command has been executed normally.

CheckSum

exCheckSum

Page 79: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

79797979

CMD_GET_USER_FPREC_COUNT (0xCMD_GET_USER_FPREC_COUNT (0xCMD_GET_USER_FPREC_COUNT (0xCMD_GET_USER_FPREC_COUNT (0x4e4e4e4e))))

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 0x02

Command 0x4e

wParam

Param1 User ID

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x4e

wParam

Param1 User ID

Param2 Number of registered fingerprints

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally.

CheckSum

exCheckSum

Page 80: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

80808080

CMD_GET_FPREC_COUNT (0xCMD_GET_FPREC_COUNT (0xCMD_GET_FPREC_COUNT (0xCMD_GET_FPREC_COUNT (0x4F4F4F4F))))

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 0x02

Command 0x4F

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x4F

wParam

Param1 Number of fingerprints registered in the module

Param2

Number of total fingerprints of module (Upper 16 Byte),

Number of fingerprints that can be registered additionally in the module (Lower 16

Byte)

ExDatalen 0

ErrorCode M2ERROR_NONE – Being executed normally

CheckSum

exCheckSum

Page 81: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

81818181

CMD_FP_REGISTER_START (0x50)

In case of 2template : In case of 1template, please refer to appendix ‘F’.

UFOM receives two inputs to register 1 FP(In case of 2 templates per 1 finger). This order used to start FP register.

After place FP on sensor, it send the order with ID. It will notify user rigster start. UFOM will capture FP after getting this order.

This order can not use by itself. It can complete FP register with proceding with following order

In case of Input 0x1 into CMD_FP_VERIFY_MASTER Param1, it should be proceed only 1. So If It can use

CMD_FP_REGISTER_START and CMD_FP_REGISTER_END it should input 0x2

→ CMD_FP_VERIFY_MASTER

→ CMD_FP_REGISTER_START

→ CMD_FP_REGISTER_END

However, When it set up CMD_SET_SYSTEM_INFO without Master authentication, there is no need for

CMD_FP_VERIFY_MASTER Processing

Command:

Start 0x02

Command 0x50

wParam

Param1 USER ID

Param2 Low 2byte : 1 – Master, 0 – Normal User Upper 2byte : 1 – 1template, 2 - 2template

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x50

wParam

Param1 User ID

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – Normal Operation

M2ERROR_TIMEOUT – No FP on the sensor or wrong input of FP

CheckSum

exCheckSum

Page 82: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

82828282

This is a command used at the time of fingerprint registration to get the second fingerprint input. Upon

receiving this command, UFOM captures the second fingerprint and compares it with the one captured

with CMD_FP_RESISTER_START to determine whether or not to register the fingerprint. At this time, the

fingerprint should be removed and then put again between CMD_FP_REGISTER_START and

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 0x02

Command 0x51

wParam

Param1 User ID

Param2 1 – Master, 0 – Ordinary User

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x51

wParam

Param1

Param2

ExDatalen 0

CMD_FP_REGISTER_END (0x51)CMD_FP_REGISTER_END (0x51)CMD_FP_REGISTER_END (0x51)CMD_FP_REGISTER_END (0x51)

Page 83: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

83838383

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_SIMILAR_FP_EXIST – Analogous fingerprint is already registered.

M2ERROR_TIMEOUT – There is no fingerprint on the Fingerprint Input window, or fingerprint

input is wrong.

M2ERROR_REGISTER_FAILED – Registration failed

M2ERROR_FUNCTION_FAIL - Function Call Failed.

CheckSum

exCheckSum

Page 84: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

84848484

CMD_FP_CHANGE_START (0x52)CMD_FP_CHANGE_START (0x52)CMD_FP_CHANGE_START (0x52)CMD_FP_CHANGE_START (0x52)

In case of 2template , it will be same as before: In case of 1template, please refer to appendix F

This is a command to start changing the fingerprint of a registered user by capturing a fingerprint put on

the current Fingerprint Input window.

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 0x02

Command 0x52

wParam

Param1 User ID

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x52

wParam

Param1

Param2

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_TIMEOUT – There is no fingerprint on the Fingerprint Input window, or

fingerprint input is wrong.

M2ERROR_DB_WRONG_USERID – There is no user with the user ID to be changed.

CheckSum

exCheckSum

Page 85: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

85858585

CMD_FP_CHANGE_END (0x53)CMD_FP_CHANGE_END (0x53)CMD_FP_CHANGE_END (0x53)CMD_FP_CHANGE_END (0x53)

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 0x02

Command 0x53

wParam

Param1 User ID

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x53

wParam

Param1

Param2

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally.

M2ERROR_TIMEOUT – There is no fingerprint on the Fingerprint Input window, or

fingerprint input is wrong.

M2ERROR_FPCHANGE_FAILED – Function call failed

M2ERROR_FLASH_WRITE_ERROR – Failed to write on flash memory.

Page 86: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

86868686

CheckSum

exCheckSum

Page 87: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

87878787

CMD_FP_DELETE (0x5CMD_FP_DELETE (0x5CMD_FP_DELETE (0x5CMD_FP_DELETE (0x54)4)4)4)

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 0x02

Command 0x54

wParam

Param1 User ID

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x54

wParam

Param1 User ID

Param2 Master Flag

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally.

CheckSum

exCheckSum

Page 88: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

88888888

CMD_FP_VERIFY (CMD_FP_VERIFY (CMD_FP_VERIFY (CMD_FP_VERIFY (0x55)0x55)0x55)0x55)

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 0x02

Command 0x55

wParam

Param1 User ID

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x55

wParam

Param1 User ID

Param2 Master Flag

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally.

M2ERROR_TIMEOUT - There is no fingerprint on the Fingerprint Input window, or

fingerprint input is wrong.

M2ERROR_VERIFY_FAILED - The captured fingerprint is not matched with the registered

fingerprint.

M2ERROR_USER_NOT_FOUND – Not registered user.

CheckSum

exCheckSum

Page 89: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

89898989

CMD_FP_IDENTIFY (0x56)CMD_FP_IDENTIFY (0x56)CMD_FP_IDENTIFY (0x56)CMD_FP_IDENTIFY (0x56)

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 0x02

Command 0x56

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x56

wParam

Param1 User ID

Param2 Master Flag

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally.

M2ERROR_TIMEOUT - There is no fingerprint on the Fingerprint Input window, or

fingerprint input is wrong.

M2ERROR_IDENTIFY_FAILED - There is no fingerprint in database, which is matched with

the one on the current Fingerprint Input window.

CheckSum

exCheckSum

Page 90: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

90909090

CMD_FP_VERIFY_MASTER (0x57)CMD_FP_VERIFY_MASTER (0x57)CMD_FP_VERIFY_MASTER (0x57)CMD_FP_VERIFY_MASTER (0x57)

This is a command to verify a master. After having a master putting his fingerprint on the Fingerprint Input window, the system sends this command to UFOM, with setting how many commands this master verification will cover to Param1. 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. In general, this command is used before the command that requires verification by master. It is useful for consecutively registering users or for getting data consecutively from UFOM flash memory to server, by setting 0 or a number larger than 1 to Param1.

The number of commands deemed to be verified can be nullified or reset with CMD_

FP_VERIFY_MASTER_END,CMD_FP_VERIFY_MASTER,CMD_DB_VERIFY_ MASTER, or

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 0x02

Command 0x57

Wparam

Param1 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.

Param2

ExDatalen 0

ErrorCode 0

CheckSum

ExCheckSum

ACK:

Start 0x02

Command 0x57

Wparam

Param1 User ID of the master who verified the command

Param2

ExDatalen 0

ErrorCode

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

CheckSum

exCheckSum

Page 91: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

91919191

CMD_FP_VERIFY_MASTER_END (0x58)CMD_FP_VERIFY_MASTER_END (0x58)CMD_FP_VERIFY_MASTER_END (0x58)CMD_FP_VERIFY_MASTER_END (0x58)

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 0x02

Command 0x58

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x58

wParam

Param1

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Page 92: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

92929292

CMD_FP_IDENTIFY_EX (0x59)CMD_FP_IDENTIFY_EX (0x59)CMD_FP_IDENTIFY_EX (0x59)CMD_FP_IDENTIFY_EX (0x59)

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.

As this comAs this comAs this comAs this command retrieves fingerprint images only from the specified section, the matched mand retrieves fingerprint images only from the specified section, the matched mand retrieves fingerprint images only from the specified section, the matched mand 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 fingerprint image may not be identified even though it exist in database, if a wrong section is fingerprint image may not be identified even though it exist in database, if a wrong section is fingerprint image may not be identified even though it exist in database, if a wrong section is

designated.designated.designated.designated.

Command:

Start 0x02

Command 0x59

WParam

Param1 Start ID of the section to be retrieved

Param2 End ID of the section to be retrieved

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x59

WParam

Param1 User ID

Param2 Master Flag

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally.

M2ERROR_TIMEOUT – There is no fingerprint on the Fingerprint Input window, or fingerprint

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

Page 93: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

93939393

CMD_FP_CMD_FP_CMD_FP_CMD_FP_ADDADDADDADD (0x5 (0x5 (0x5 (0x5bbbb))))

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 0x02

Command 0x5b

wParam

Param1 User ID

Param2

ExDatalen

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x5b

wParam

Param1 User ID

Param2

ExDatalen 0

ErrorCode

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 doesn’t correspond with the registered

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

Page 94: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

94949494

CheckSum

exCheckSum

Page 95: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

95959595

CMD_FP_CMD_FP_CMD_FP_CMD_FP_MIN_MIN_MIN_MIN_VERIFY (0x5VERIFY (0x5VERIFY (0x5VERIFY (0x5cccc))))

This is a command to verify user’s fingerprint. After captured fingerprint and the fingerprint from ExData

are compared, its result returns.

Command:

Start 0x02

Command 0x55

wParam

Param1

Param2

ExDatalen Size of Minutiae

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x55

wParam

Param1

Param2

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally.

M2ERROR_TIMEOUT – There is no fingerprint on the fingerprint input window, or fingerprint

input is wrong.

M2ERROR_VERIFY_FAILED – There is no match between captured fingerprint and registered

fingerprint.

CheckSum

exCheckSum

Page 96: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

96969696

CMD_FP_CMD_FP_CMD_FP_CMD_FP_CANCELCANCELCANCELCANCEL (0x5 (0x5 (0x5 (0x5dddd))))

This commend is used for cancelling the command while fingerprint is registered or access a fingerprint

at the fingerprint sensor.

Command:

Start 0x02

Command 0x5d

wParam

Param1

Param2

ExDatalen

ErrorCode

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x5d

wParam

Param1

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Page 97: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

97979797

CMD_FP_ADD_START (0x5e)

In case of 2template(Same as before) : In case of 1template, please refer to appendix F.

This order used to add additional registered user’s FP. It captures FP on the sensor now.

For changing user’s FP, it should be proceed with following order

→ CMD_FP_VERIFY_MASTER

→ CMD_FP_ADD_START

→ CMD_FP_ADD_END

However, when it set up CMD_SET_SYSTEM_INFO without Master authentication, there is no need for

CMD_FP_VERIFY_MASTER processing

Command:

Start 0x00

Command 0x5e

wParam

Param1 User ID

Param2

ExDatalen 0x0000

ErrorCode 0x0000

CheckSum

exCheckSum

ACK:

Start 0x00

Command 0x5e

wParam

Param1

Param2

ExDatalen 0x0000

ErrorCode

M2ERROR_NONE – Nomal Operation

M2ERROR_TIMEOUT – There is no FP on sensor or wrong FP input\ M2ERROR_DB_NO_DATA –

There is no User ID to change

M2ERROR_FPCOUNT_EXCEED – The number of FP to register is full

CheckSum

exCheckSum

Page 98: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

98989898

CMD_FP_ADD_END (0x5f)CMD_FP_ADD_END (0x5f)CMD_FP_ADD_END (0x5f)CMD_FP_ADD_END (0x5f)

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 0x00

Command 0x5f

wParam

Param1 User ID

Param2

ExDatalen 0x0000

ErrorCode 0x0000

CheckSum

exCheckSum

ACK:

Start 0x00

Command 0x5f

wParam

Param1

Param2

ExDatalen 0

Page 99: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

99999999

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_TIMEOUT – There is no fingerprint on the Fingerprint Input window, or fingerprint

input is wrong.

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

Page 100: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

100100100100

CMD_IS_REGISTERED_USER (0x60)CMD_IS_REGISTERED_USER (0x60)CMD_IS_REGISTERED_USER (0x60)CMD_IS_REGISTERED_USER (0x60)

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 0x02

Command 0x60

WParam

Param1 User ID

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x60

wParam

Param1 User ID

Param2 Master Flag

ExDatalen 0

ErrorCode M2ERROR_NONE – Registered user

M2ERROR_DB_WRONG_USERID – Not registered user

CheckSum

exCheckSum

Page 101: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

101101101101

CMDCMDCMDCMD_GET_PW (0x6c)_GET_PW (0x6c)_GET_PW (0x6c)_GET_PW (0x6c)

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 0x02

Command 0x6c

Wparam

Param1 User ID

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x6c

WParam

Param1 User ID

Param2 Master Flag

ExDatalen Sizeof password

ErrorCode

M2ERROR_NONE – User with a registered password

M2ERROR_USER_NOT_FOUND - ID imported by the user is not registered.

M2ERROR_DB_WRONG_USERID - User without a registered password

CheckSum

exCheckSum

Page 102: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

102102102102

CMD_PW_VERIFY (0x6d)CMD_PW_VERIFY (0x6d)CMD_PW_VERIFY (0x6d)CMD_PW_VERIFY (0x6d)

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 0x02

Command 0x6d

WParam

Param1 User ID

Param2

ExDatalen 0

ErrorCode Sizeof password

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x6d

wParam

Param1 User ID

Param2 Master Flag

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally.

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

Page 103: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

103103103103

CMD_PW_ADD (0x6e)CMD_PW_ADD (0x6e)CMD_PW_ADD (0x6e)CMD_PW_ADD (0x6e)

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 0x02

Command 0x6e

wParam

Param1 User ID

Param2 w (lower 2 bytes) = 1– Master, 0 – Ordinary User

hw (higher 2 bytes) = Overwrite flag

ExDatalen Sizeof password

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x6e

wParam

Param1 User ID

Param2 1 – Master, 0 – Ordinary User

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_ALREADY_REGISTERED_USER– When hw is 0, it means that the user has

already been registered.

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

Page 104: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

104104104104

CMD_PW_DELETE (0x6f)CMD_PW_DELETE (0x6f)CMD_PW_DELETE (0x6f)CMD_PW_DELETE (0x6f)

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 0x02

Command 0x6f

wParam

Param1 User ID

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x6f

wParam

Param1 User ID

Param2 Master Flag

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_USER_NOT_FOUND - ID imported by the user is not registered.

M2ERROR_DB_WRONG_USERID – Not registered user

CheckSum

exCheckSum

Page 105: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

105105105105

CMD_DB_GET_RECCOUNT (0x70)CMD_DB_GET_RECCOUNT (0x70)CMD_DB_GET_RECCOUNT (0x70)CMD_DB_GET_RECCOUNT (0x70)

This is a command to get the number of users registered to database. It functions the same as

CMD_GET_RECCOUNT.

Command:

Start 0x02

Command 0x70

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x70

wParam

Param1 Number of registered users

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally.

CheckSum

exCheckSum

Page 106: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

106106106106

CMD_DB_ADD_REC (0x71)

In case of 2template (same as before) : In case of 1template, please refer to appendix F.

This order used to register additional user from the server of UFOM database

When it register user if there is the existed ID, it can give the option that the existed ID can delete and overwrite to Param1

If this value is not ‘0’ with same ID in UFOM, UFOM is error value. So it could delete the existed ID without returning

M2ERROR_ALREADY_REGISTERED_USER.

Command:

Start 0x02

Command 0x71

WParam

Param1 Overwrite Flag ( 0 : If it has the existed ID, it does not overwrite, 1: If It has the existed ID, it delete the

existed ID and overwrite)

Param2 Storing 1 template per 1 FP – 1, Storing 2 template per 1 FP– 0 (same as before)

ExDatalen Sizeof(TUserRecord) + Sizeof(TFPRecord) * the number of registered FP

ErrorCode 0

CheckSum

exCheckSum

Here is following the data order

- USER with 1 FP : TUserRecord(56Byte) + TFPRecord(803Byte)

- USER with 2 FPs : TUserRecord(56Byte) + TFPRecord(803Byte) + TFPRecord(803Byte)

ACK:

Start 0x02

Command 0x71

wParam

Param1

Param2

ExDatalen 0

ErrorCode

M2ERROR_NONE – Nomal Operation

M2ERROR_REGESTER_FAILED – Registration failure

M2ERROR_FLASH_OPEN – Flash memory Error

M2ERROR_INSUFFICIENT_DATA- Can not receive sufficient data in ExtraData

M2ERROR_ALREADY_REGISTERED_USER – Already registered user

M2ERROR_DB_FULL – There is no space to register user in database

M2ERROR_MASTERCOUNT_EXCEED – The number of master exceed

CheckSum

exCheckSum

Page 107: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

107107107107

CMD_DB_DELETE_REC (0x72)CMD_DB_DELETE_REC (0x72)CMD_DB_DELETE_REC (0x72)CMD_DB_DELETE_REC (0x72)

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 0x02

Command 0x72

wParam

Param1 User ID

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x72

wParam

Param1 User ID

Param2 Master Flag

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

M2ERROR_DB_WRONG_USERID – Not registered user

CheckSum

exCheckSum

Page 108: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

108108108108

CMD_DB_GET_REC (0x73)

Plesae refer to F for specific detail for chaning DB structure.

This is Comman for retrieving user record from a database

Sending user ID to Param1 from Command packet, UFOM will send ACK packet then continually transfer user

and FP record. UFOM can store 10 FP per user ID. When a user ID has 10 FP and in order to get all FP record.

Transfer 0 to Param 2 from Command Packet, Ack Packet – ExDatalen is 32 + ((24+800*10) can be 8277. (if

There is 2 templates per FP). However, to retrieve particular FP record, instead of transfer 0 to Param2 from

Command Packet but transfer FP numer. Ack Packet –Exdatalen will always be 32+((24+800)*1)) it can be 856

Command:

Start 0x02

Command 0x73

wParam

Param1 User ID

Param2 FP Numer (1 ~ 10) or Total FP (0)

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x73

wParam

Param1

Param2

ExDatalen Sizeof(TUserRecord) + Sizeof(TFPRecord) *the number of Registered FP

ErrorCode

M2ERROR_NONE – nomarl operation

M2ERROR_DB_WRONG_USERID – Unregisted user

M2ERROR_DB_NO_DATA – In case of no FP data for FP number

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) + …

Page 109: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

109109109109

CMD_DB_GET_FIRSTREC (0x74)

Please refer to appendix F about structure change.

It brings first user record from database .

UFOM continually send user record after sending ACK.

Command:

Start 0x02

Command 0x74

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x74

wParam

Param1

Param2

ExDatalen Sizeof(fdb_rec_user) + Sizeof(fdb_rec_fp) * the number of registered FP

ErrorCode M2ERROR_NONE – Normal operation

M2ERROR_DB_WRONG_USERID – There is no registered user in database

CheckSum

exCheckSum

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)

ExtraData : It can be used if Error code of M2ERROR_NONE returns

Page 110: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

110110110110

CMD_DB_GET_NEXTREC (0x75)

Please refer to appendix F about structure change.

This order used to get next user record after proceeding with CMD_DB_GET_FIRSTREC or CMD_DB_GET_NEXTREC

UFOM continually send user record after ACK, it can be used when it register normal user instead of master

Command:

Start 0x02

Command 0x75

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x75

wParam

Param1

Param2

ExDatalen Sizeof(fdb_rec_user) + Sizeof(fdb_rec_fp) * the number of registered FP

ErrorCode M2ERROR_NONE – Normal operation

M2ERROR_DB_WRONG_USERID – there is no registrer user in database

CheckSum

exCheckSum

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)

ExtraData : - It can be used if Error code of M2ERROR_NONE returns.

Page 111: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

111111111111

CMD_DB_DELETE_ALCMD_DB_DELETE_ALCMD_DB_DELETE_ALCMD_DB_DELETE_ALL (0x76)L (0x76)L (0x76)L (0x76)

This is a command used to delete all user data stored in database.

Command:

Start 0x02

Command 0x76

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x76

wParam

Param1

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Page 112: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

112112112112

CMD_DB_GET_CURRENTREC (0x77)

Please refer to appendix F about structure change.

This command with CMD_DB_GET_FIRSTREC or CMD_DB_GET_NEXTREC used to bring back the final record again through two

orders .

UFOM continually send user record after sending ACK

Command:

Start 0x02

Command 0x77

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x77

wParam

Param1

Param2

ExDatalen Sizeof(fdb_rec_user) + Sizeof(fdb_rec_fp) * the number of registered FP

ErrorCode

M2ERROR_NONE – Normal operation

M2ERROR_DB_WRONG_USERID – There is no registered user in database

M2ERROR_DB_NO_DATA – There is no registered user in database

CheckSum

exCheckSum

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)

ExtraData : - It can be used if Error code of M2ERROR_NONE returns.

Page 113: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

113113113113

CMD_DB_VERIFY (0x78)CMD_DB_VERIFY (0x78)CMD_DB_VERIFY (0x78)CMD_DB_VERIFY (0x78)

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 0x02

Command 0x78

wParam

Param1 User ID

Param2

ExDatalen 0x0190(=400Byte)

ErrorCode 0

CheckSum

ExCheckSum

Subsequent data sequence is as follows:

Fingerprint data 400Byte

ACK:

Start 0x02

Command 0x78

wParam

Param1

Param2

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally.

M2ERROR_VERIFY_FAILED – The received fingerprint is not matched with the registered

fingerprint

M2ERROR_DB_WRONG_USERID – Not registered user

M2ERROR_INSUFFICIENT_DATA – Fingerprint data has not been sent normally.

CheckSum

exCheckSum

Page 114: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

114114114114

CMD_DB_IDENTIFY (0x79)CMD_DB_IDENTIFY (0x79)CMD_DB_IDENTIFY (0x79)CMD_DB_IDENTIFY (0x79)

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 0x02

Command 0x79

wParam

Param1

Param2

ExDatalen 0x0190(=400Byte)

ErrorCode 0

CheckSum

exCheckSum

Subsequent data sequence is as follows:

Fingerprint data 400Byte

ACK:

Start 0x02

Command 0x79

wParam

Param1 User ID

Param2 Master Flag

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally.

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

Page 115: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

115115115115

CMD_DB_IDENTIFY_EX (0x7a)CMD_DB_IDENTIFY_EX (0x7a)CMD_DB_IDENTIFY_EX (0x7a)CMD_DB_IDENTIFY_EX (0x7a)

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 As this command retrieves fingerprint data only from the designated section, the matched As this command retrieves fingerprint data only from the designated section, the matched As this command retrieves fingerprint data only from the designated section, the matched

fingerprint may not be identified even though it exist in database, if a wrong sectifingerprint may not be identified even though it exist in database, if a wrong sectifingerprint may not be identified even though it exist in database, if a wrong sectifingerprint may not be identified even though it exist in database, if a wrong section is on is on is on is

designated.designated.designated.designated.

Command:

Start 0x02

Command 0x7a

wParam

Param1 Start ID of the section to be retrieved

Param2 End ID of the section to be retrieved

ExDatalen 0x0190(=400Byte)

ErrorCode 0

CheckSum

exCheckSum

Subsequent data sequence is as follows:

Fingerprint data 400Byte

ACK:

Start 0x02

Command 0x7a

WParam

Param1 User ID

Param2 Master Flag

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally.

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

Page 116: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

116116116116

CMD_DB_VERIFY_MASTER (0x7b)CMD_DB_VERIFY_MASTER (0x7b)CMD_DB_VERIFY_MASTER (0x7b)CMD_DB_VERIFY_MASTER (0x7b)

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 0x02

Command 0x7b

wParam

Param1 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.

Param2

ExDatalen 0x0190(=400Byte)

ErrorCode 0

CheckSum

exCheckSum

Subsequent data sequence is as follows:

Fingerprint data 400Byte

ACK:

Start 0x02

Command 0x7b

wParam

Param1 User ID of the master who verified the command

Param2

ExDatalen 0

ErrorCode

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

CheckSum

exCheckSum

Page 117: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

117117117117

CMD_DB_VERIFY_MASTCMD_DB_VERIFY_MASTCMD_DB_VERIFY_MASTCMD_DB_VERIFY_MASTER_END (0x7c)ER_END (0x7c)ER_END (0x7c)ER_END (0x7c)

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 0x02

Command 0x7c

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x7c

wParam

Param1

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Page 118: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

118118118118

CMD_DB_GET_ID_LIST (0x7d)CMD_DB_GET_ID_LIST (0x7d)CMD_DB_GET_ID_LIST (0x7d)CMD_DB_GET_ID_LIST (0x7d)

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 0x02

Command 0x7d

wParam

Param1 User ID starting number (1 ~ N)

Param2 Number of User IDs designated

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x7d

wParam

Param1 Total number of User

Param2

ExDatalen Total number of User * Sizeof(UserID)

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_DB_NO_DATA – There is no registered user.

M2ERROR_INVALID_PARAM –Param value is wrongly imported

CheckSum

exCheckSum

Subsequent data sequence is as follows:

4Byte 4Byte ….. 4Byte 4Byte

UserID UserID ….. UserID UserID

ExtraData : ExtraData : ExtraData : ExtraData : ---- Valid only when the returned error code is M2ERROR_NONE. Valid only when the returned error code is M2ERROR_NONE. Valid only when the returned error code is M2ERROR_NONE. Valid only when the returned error code is M2ERROR_NONE.

Page 119: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

119119119119

CMD_DB_GET_MASTER_LIST (0x7e)CMD_DB_GET_MASTER_LIST (0x7e)CMD_DB_GET_MASTER_LIST (0x7e)CMD_DB_GET_MASTER_LIST (0x7e)

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 0x02

Command 0x7e

Wparam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x7e

wParam

Param1 Total number of Master

Param2

ExDatalen Total number of Master * Sizeof(UserID)

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Subsequent data sequence is as follows:

4Byte ….. 4Byte

UserID ….. UserID

ExtraData : ExtraData : ExtraData : ExtraData : ---- - Valid only when the returned error code is M2ERROR_NONE.

Page 120: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

120120120120

CMD_DB_ADD_REC_EX (0x7f)

In case of 2template (Same as before) : In case of 1template, please refer to appendix F

Same as CMD_DB_ADD_REC(0x71), it is commend for registering additional user from server to current UFOM

database. Although, CMD_DB_ADD_REC cannot register an additional FP record to an existing user ID. This

commend is for enroll one or two FP record.

The command packet of Param1 is 1. UFOM will delete all previous duplicate user(Record/FP) and send to

exData for re-enrollment. But the Command packet of Param1 equal 0. UFOM will register FP additionally to a

particular user ID. If ther is no duplicate user ID, then user record and FP record will be enrolled newly.

Generally, UFOM can store 10 fp into a user ID. In order to transfer 10 FP record to a user, Command packet

ExDatalen 56 + (803*10). It canbe 8086. If there are same user ID n UFOM, transfer param1 to 1. If not, Input 0

to param1 can be possible.

If one additional FP record need to be register, transfer 0 to Param1 from Command Packet. ExDatalen

56+(803*1) can be 859

Command:

Start 0x02

Command 0x7f

wParam

Param1 Overwrite Flag ( 0 or 1)

Param2 Storing 1 template per 1 FP – 1, Storing 2 template per 2 FP – 0 (Same as before)

ExDatalen Sizeof(TUserRecord) + Sizeof(TFPRecord) * The number of the registered FP

ErrorCode 0

CheckSum

exCheckSum

Here is following order of data

- User with 1 FP : TUserRecord(56Byte) + TFPRecord(803Byte)

- User with n FP : TUserRecord(56Byte) + TFPRecord(803Byte) + TFPRecord(803Byte) + …

ACK:

Start 0x02

Command 0x7f

wParam

Param1

Param2

ExDatalen 0

Page 121: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

121121121121

ErrorCode

M2ERROR_NONE – Normal operation

M2ERROR_INVALID_PARAM – If User ID is 0xFFFFFFFF

M2ERROR_DB_FULL – There is no space to register more user in database

M2ERROR_MASTERCOUNT_EXCEED – Exceed the number of master

M2ERROR_ALREADY_REGISTERED_USER – Already registered user

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

Page 122: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

122122122122

CMD_LOG_GET_RECCOUNT (0x80CMD_LOG_GET_RECCOUNT (0x80CMD_LOG_GET_RECCOUNT (0x80CMD_LOG_GET_RECCOUNT (0x80))))

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 0x02

Command 0x80

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x80

wParam

Param1 Log data count stored in the system

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally.

CheckSum

exCheckSum

Page 123: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

123123123123

CMD_LOG_GET_REC CMD_LOG_GET_REC CMD_LOG_GET_REC CMD_LOG_GET_REC (0x81)(0x81)(0x81)(0x81)

This is a command to get a log record.

UFOM sends the log record immediately following ACK.

Command:

Start 0x02

Command 0x81

wParam

Param1 0~(logRecCount-1) – Log record count

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x81

wParam

Param1

Param2

ExDatalen Sizeof(TLogRecord)

ErrorCode M2ERROR_DB_NO_DATA – No log record

CheckSum

exCheckSum

Subsequent data sequence is the same as TlogRecord (16 bytes).

Page 124: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

124124124124

CMD_LOG_DELETE_ALL (0x82)CMD_LOG_DELETE_ALL (0x82)CMD_LOG_DELETE_ALL (0x82)CMD_LOG_DELETE_ALL (0x82)

This is a command to delete all log records.

Command:

Start 0x02

Command 0x82

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x82

wParam

Param1

Param2

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Page 125: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

125125125125

CMD_LOG_CMD_LOG_CMD_LOG_CMD_LOG_GET_REC_EXGET_REC_EXGET_REC_EXGET_REC_EX (0x8 (0x8 (0x8 (0x83333))))

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 0x02

Command 0x83

wParam

Param1 0~(logRecCount-1) – Number of log starting data

Param2 0~(logRecCount-1) – Number of log ending data

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x83

wParam

Param1

Param2

ExDatalen Sizeof(TLogRecord)

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

Page 126: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

126126126126

exCheckSum

CMD_LOG_CMD_LOG_CMD_LOG_CMD_LOG_SET_RECSET_RECSET_RECSET_REC(0x8(0x8(0x8(0x84444))))

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 0x02

Command 0x84

wParam

Param1

Param2

ExDatalen 0x10

ErrorCode 0

CheckSum

exCheckSum

exData Log Data 16Byte

ACK:

Start 0x02

Command 0x84

wParam

Param1

Param2

ExDatalen

ErrorCode M2ERROR_NONE – The command has been executed normally

M2ERROR_INSUFFICIENT_DATA - ExtraData is not sent normally.

CheckSum

Page 127: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

127127127127

exCheckSum

CMD_LOG_CMD_LOG_CMD_LOG_CMD_LOG_DELETEDELETEDELETEDELETE (0x8 (0x8 (0x8 (0x85555))))

This Command is used to delete the log data designated in Param1.

Command:

Start 0x02

Command 0x85

wParam

Param1 1~(logRecCount) – Number of log selected

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x83

wParam

Param1

Param2

ExDatalen

ErrorCode M2ERROR_NONE – The command has been executed normally

M2ERROR_INVALID_PARAM – Param1 is wrongly imported.

CheckSum

exCheckSum

Page 128: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

128128128128

CMD_CMD_CMD_CMD_GET_GET_GET_GET_ACK_CACK_CACK_CACK_CHANNELHANNELHANNELHANNEL (0x8 (0x8 (0x8 (0x86666))))

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 0x02

Command 0x86

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x86

wParam

Param1

Param2

ExDatalen

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Page 129: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

129129129129

CMD_FP_CMD_FP_CMD_FP_CMD_FP_CARD_MIN_CARD_MIN_CARD_MIN_CARD_MIN_VERIFY (0xVERIFY (0xVERIFY (0xVERIFY (0x87878787))))

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 Company’s 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, Company’s Format: 0) whereas the one

fingerprint data size to Lower 16 bit. If the number of fingerprint data of the Company’s format is 2, ExDatalen (Param2

Lower 16bit * 2) should be equal.

Command:

Start 0x02

Command 0x87

wParam

Param1 User ID

Param2 Upper 16bit (1:ISO Standard Format, 0:Company’s Format)

Lower 16bit (Size of each Minutiae)

ExDatalen Size of ExData

ErrorCode 0

CheckSum

exCheckSum

The order of data to be sent thereafter is as follow;

Fingerprint data as much as ExDatalen Byte

ACK:

Start 0x02

Command 0x87

wParam

Param1

Param2

ExDatalen 0

Page 130: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

130130130130

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_INVALID_PARAM – When wrong value is sent to Param2, ExDatalen

M2ERROR_TIMEOUT - When fingerprint is not in the fingerprint import window or fingerprint

is wrongly imported

M2ERROR_VERIFY_FAILED - Captured fingerprint doesn’t correspond with the registered

fingerprint

CheckSum

exCheckSum

Page 131: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

131131131131

CMD_CMD_CMD_CMD_DEVICE_INITIALIZEDEVICE_INITIALIZEDEVICE_INITIALIZEDEVICE_INITIALIZE (0x8 (0x8 (0x8 (0x88888))))

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 Special care is required as UFOM Special care is required as UFOM Special care is required as UFOM is designed is designed is designed is designed to execute the communication speed in 19200bps as default to execute the communication speed in 19200bps as default to execute the communication speed in 19200bps as default to execute the communication speed in 19200bps as default

after this Command is executed.after this Command is executed.after this Command is executed.after this Command is executed.

Command:

Start 0x02

Command 0x88

wParam

Param1 0

Param2 0

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x88

wParam

Param1 0

Param2 0

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Page 132: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

132132132132

CMD_CMD_CMD_CMD_SELECT_ACK_CHANNELSELECT_ACK_CHANNELSELECT_ACK_CHANNELSELECT_ACK_CHANNEL (0x8 (0x8 (0x8 (0x89999))))

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.

This command is used for FMThis command is used for FMThis command is used for FMThis command is used for FM----20FP20FP20FP20FP.... TTTThe channel 0he channel 0he channel 0he channel 0, channel 2 , channel 2 , channel 2 , channel 2 is RS 232 port and channel 1 is RS is RS 232 port and channel 1 is RS is RS 232 port and channel 1 is RS is RS 232 port and channel 1 is RS

485 port485 port485 port485 port

Command:

Start 0x02

Command 0x89

wParam

Param1 Channel number (0 or 2)

Param2 1 = Save in flash memory, 0 = Dose not save at the flash memory

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x89

wParam

Param1 Channel number (0 or 2)

Param2 0

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Page 133: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

133133133133

CMD_CMD_CMD_CMD_GGGGET_SECTORDATAET_SECTORDATAET_SECTORDATAET_SECTORDATA (0x8 (0x8 (0x8 (0x8aaaa))))

This command is for receiving unprocessed data of user and fingerprint DB saved by UFOM in the Sector

level as Ack packet. UFOM’s flash memory is composed of 64KB sectors and it achieves 1 Sector data

by repeating this command. If UFOM’s 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 so for

achieving all data saved by one Sector, Param2’s 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 0x02

Command 0x8a

wParam

Param1 Sector number (8~)

Param2 offset address (0~65535)

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x8a

wParam

Param1 Sector number (8~)

Param2 offset address (0~65535)

ExDatalen 8192 or (65536-offset)

ErrorCode

M2ERROR_NONE – The command has been executed normally

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

Page 134: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

134134134134

CMD_CMD_CMD_CMD_SET_SECTORDATASET_SECTORDATASET_SECTORDATASET_SECTORDATA (0x8 (0x8 (0x8 (0x8bbbb))))

This command is for saving a certain Sector data from CMD_GET_SECTORDATA again in the same

Sector.

UFOM’s flash memory is composed of 64KB sectors and it achieves 1 Sector data by repeating this

command.

If UFOM’s 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.

Communication speed (BAUD) Max ExData’s length

115200 8192

57600 4096

38400 2048

19200, 14400 1024

9600 832

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. UFOM is saved in flash memory when all

64KB for one Sector data is sent.

Sector number from CMD_GET_SECTORDATA should be assigned the same Sector number. If not, it Sector number from CMD_GET_SECTORDATA should be assigned the same Sector number. If not, it Sector number from CMD_GET_SECTORDATA should be assigned the same Sector number. If not, it Sector number from CMD_GET_SECTORDATA should be assigned the same Sector number. If not, it

may not work properly.may not work properly.may not work properly.may not work properly.

Command:

Start 0x02

Command 0x8b

wParam

Param1 Sector number (8~)

Param2 offset address (0~65535)

ExDatalen Max 8192

ErrorCode 0

CheckSum

ExCheckSum

Subsequent data sequence is the same as following.

Data content to be recorded as assigned length in ExDatalen

Page 135: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

135135135135

ACK:

Start 0x02

Command 0x8b

wParam

Param1 Sector number (8~)

Param2 Command packet의 (offset + ExDatalen)

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_INVALID_USERDATA_ADDRESS – Wrong Sector number or wrong offset

M2ERROR_FUNCTION_FAIL – When Command (offset + ExDatalen) is larger than 65536 or

Command offset does not begin from 0

CheckSum

exCheckSum

Page 136: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

136136136136

CMD_CMD_CMD_CMD_GET_GET_GET_GET_FP_FP_FP_FP_CARD_MINCARD_MINCARD_MINCARD_MIN (0x (0x (0x (0x8c8c8c8c))))

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, Company’s 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 Company’s Format.

Command:

Start 0x00

Command 0x8c

wParam

Param1 Upper 16bit (1:ISO Standard Format, 0:Company’s Format) Lower 16bit (Size of each Minutiae)

Param2

ExDatalen

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x00

Command 0x8c

wParam

Param1 Upper 16 bit (1:ISO Standard Format, 0:Company’s Format) Lower 16bit (Size of Minutiae)

Param2

ExDatalen Size of Minutiae

ErrorCode

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

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

M2ERROR_FUNCTION_FAIL - Function Call Failed

CheckSum

Page 137: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

137137137137

exCheckSum

The order of data to be sent thereafter is as follow;

Fingerprint data as much as ExDatalen Byte

Page 138: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

138138138138

CMD_DB_GET_REC_USER_RECORD (0x8d)

Please refer to appendix F about chaning DB structure

This Command used to get User Record from Database

Sending User ID in Param1, UFOM send 32Byte(User record) without FP record to ExData after sending ACK

.

Command:

Start 0x02

Command 0x8d

wParam

Param1 USER ID

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x8d

wParam

Param1

Param2

ExDatalen Sizeof(fdb_rec_user)

ErrorCode M2ERROR_NONE – Normal Operation

M2ERROR_DB_WRONG_USERID – Unregisterd User

CheckSum

exCheckSum

Here is following order of data

fdb_rec_user(32Byte)

Page 139: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

139139139139

CMD_DB_SET_REC_USER_RECORD (0x8e)

Please refer to appendix F about chaning DB structure .

This order used to update database after ediing user record

Sending ExData as following Command Packet to update TUserRecord 32 byte, UFOM check registered User Id

and send ACK after update.

At this time, it can modify 51 byte without TuserRecord’s UserID and UserFlag

Command:

Start 0x02

Command 0x8e

wParam

Param1

Param2

ExDatalen Sizeof(fdb_rec_user)

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x8d

wParam

Param1 USER ID

Param2

ExDatalen 0

ErrorCode

M2ERROR_NONE – Normal Operation

M2ERROR_DB_WRONG_USERID – Unregistered User

M2ERROR_REGISTER_FAILED – Register failure

CheckSum

exCheckSum

Page 140: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

140140140140

CMD_SET_USERDATA_LENGTH (0x90)CMD_SET_USERDATA_LENGTH (0x90)CMD_SET_USERDATA_LENGTH (0x90)CMD_SET_USERDATA_LENGTH (0x90)

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 Storing data that is much too frequently updated may adversely affect the life of Storing data that is much too frequently updated may adversely affect the life of Storing data that is much too frequently updated may adversely affect the life of UFOM.UFOM.UFOM.UFOM.

Command:

Start 0x02

Command 0x90

WParam

Param1 0~8160 (User data area size to be used by host)

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x90

WParam

Param1

Param2

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_INVALID_USERDATA_SIZE – The designated user data area size exceeds

1024.

CheckSum

exCheckSum

Page 141: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

141141141141

CMD_GET_USERDATA_LENGTH (0x91)CMD_GET_USERDATA_LENGTH (0x91)CMD_GET_USERDATA_LENGTH (0x91)CMD_GET_USERDATA_LENGTH (0x91)

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 0x02

Command 0x91

wParam

Param1

Param2

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x91

wParam

Param1 User data area size being used by host (0~8160)

Param2

ExDatalen 0

ErrorCode

CheckSum

exCheckSum

Page 142: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

142142142142

CMD_SET_USERDATA (0x92)CMD_SET_USERDATA (0x92)CMD_SET_USERDATA (0x92)CMD_SET_USERDATA (0x92)

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 0x02

Command 0x92

wParam

Param1 0~ (User data area size–1)

Param2 Data length to be recorded

ExDatalen Data length to be recorded (the same as Param2)

ErrorCode 0

CheckSum

ExCheckSum

Subsequent data sequence is as follows:

Content of data to be recorded, as long as set to Param2

ACK:

Start 0x02

Command 0x92

wParam

Param1

Param2 0x0000

ExDatalen 0x0000

Page 143: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

143143143143

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_MUST_BE_SET_DATA_LENGTH – User data area size has not been set.

M2ERROR_INVALID_USERDATA_ADDRESS – Address to be recorded (value of Param1) is

larger than the user data area size.

CheckSum

exCheckSum

Page 144: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

144144144144

CMD_CMD_CMD_CMD_GET_USERDATA (0x93)GET_USERDATA (0x93)GET_USERDATA (0x93)GET_USERDATA (0x93)

This command is used to get the user data recorded using CMD_SET_USERDATA.

The same as CMD_SET_USERDATA, this command can get data of the desired length from the desired

address.

UFOM sends the user data immediately following ACK.

See the following example.

Assume that the user data area size is 10 and the user data is as follows:

Recorded data content: [0, 0, 1, 1, 2, 2, 2, 2, 2, 2]

To get the values from Addresses 4 to 6, set 3 to Param1 and 3 to Param2. ExtraData following ACK is

as follows:

Extra data content: [1, 2, 2]

In this way, you can get the user data of the desired addresses selectively and thus can minimize the

amount of data sent, to raise the speed. The same as CMD_SET_USERDATA, the index value set to

Param1 starts with 0.

Here, remember that, even if the value of Param2 is larger than the user data area size, data can be sent

without an error. In this case, the entire data of the user data area is sent and the length of the data sent

is notified with ACK. Therefore, when you get data, refer to the value set to Param2 of ACK.

Command:

Start 0x02

Command 0x93

wParam

Param1 0 ~ (User data area size – 1) : Data address to be received

Param2 Data length to be received

ExDatalen Data length to be received (the same as Param2)

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x93

wParam

Param1 Data address to be sent

Param2 Data length to be received (may different from the value set to Param2 of Command)

ExDatalen Data length to be received (the same as Param2)

Page 145: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

145145145145

ErrorCode

M2ERROR_NONE – The command has been executed normally.

M2ERROR_INSUFFICIENT_DATA – ExtraData has not been sent normally.

M2ERROR_MUST_BE_SET_DATA_LENGTH – User data area size has not been set.

M2ERROR_INVALID_USERDATA_ADDRESS – Address to be recorded (value of Param1) is

larger than the user data area size.

CheckSum

exCheckSum

Subsequent data sequence is as follows:

Content of user data as long as set to Param2 of ACK

CMD_CMD_CMD_CMD_SSSSET_ET_ET_ET_GPIOGPIOGPIOGPIO____ININININ (0x9 (0x9 (0x9 (0x94444))))

This is a command that Each GPIO Input port sets an event and depending on each port’s 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 doesnNote: It doesnNote: It doesnNote: It doesn’’’’t support FAS02NLC and FMt support FAS02NLC and FMt support FAS02NLC and FMt support FAS02NLC and FM----70FP70FP70FP70FP))))

Event Event number Action

GPI_NO_ACTION 0 No event

GPI_ENROLL 1 CMD_FP_ENROLL command

GPI_IDENTIFY 2 CMD_FP_IDENTIFY command

GPI_DELETE 3 CMD_FP_IDELETE command

GPI_DELETE_ALL 4 CMD_DB_DELETE_ALL command

GPI_CANCEL 5 CMD_FP_CANCEL command

GPI_RESET_MODULE 6 CMD_DEVICE_RESET command

GPI_TEMPER_SW 7 CMD_SET_TEMPER command

GPI_OUTPUT 8 Only, GPO_INPUT1~ GPO_INPUT4 event may be

executed.

The port level to be checked can be assigned as below.

Level Level number Action

GPI_EVENT_ACTIVE_LOW 0 Event is performed once when Active low level

maintains assigned delay

GPI_EVENT_ACTIVE_HIGH 1 Event is performed once when Active high

level maintains assigned delay

GPI_EVENT_FALLING_EDGE 2 Event is performed once for Falling edge level.

GPI_EVENT_RISING_EDGE 3 Event is performed once for Rising edge level.

When using GPI_EVENT_ACTIVE_LOW or GPI_EVENT_ACTIVE_HIGH, delay time should be between 10

Page 146: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

146146146146

to 10000 ms..

Event structure to be assigned in Param2 is as below. (Unit: bit)

31~16 15~8 7~0

Delay time (10~10000) Level number Event number

Page 147: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

147147147147

ex) The value of Param2 is 0x00640102 if GPI_IDENTIFY and GPI_EVENT_ACTIVE_HIGH are set as

100ms on Input port1

This command is for over FMThis command is for over FMThis command is for over FMThis command is for over FM----20FP V. 3.0. Each port event setting by this command is saved in 20FP V. 3.0. Each port event setting by this command is saved in 20FP V. 3.0. Each port event setting by this command is saved in 20FP V. 3.0. Each port event setting by this command is saved in

flash memory so it applies even after resetflash memory so it applies even after resetflash memory so it applies even after resetflash memory so it applies even after reset....

Command:

Start 0x02

Command 0x94

wParam

Param1 GPIO Input port number (1~4)

Param2 Event

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x94

wParam

Param1 GPIO Input port number (1~4)

Param2 Event

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_INVALID_PARAM – Wrong value sent to Param1 and Param2

CheckSum

exCheckSum

Page 148: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

148148148148

CMD_CMD_CMD_CMD_GGGGET_ET_ET_ET_GPIOGPIOGPIOGPIO____ININININ (0x9 (0x9 (0x9 (0x95555))))

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 doesnNote: It doesnNote: It doesnNote: It doesn’’’’t support FAS02NLC and FMt support FAS02NLC and FMt support FAS02NLC and FMt support FAS02NLC and FM----70FP70FP70FP70FP))))

This command is for over FMThis command is for over FMThis command is for over FMThis command is for over FM----20FP V. 3.0.20FP V. 3.0.20FP V. 3.0.20FP V. 3.0.

Command:

Start 0x02

Command 0x95

wParam

Param1 GPIO Input port number (1~4)

Param2 0

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x95

wParam

Param1 GPIO Input port number (1~4)

Param2 Event

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_INVALID_PARAM – Wrong value sent to Param1

CheckSum

exCheckSum

Page 149: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

149149149149

CMD_CMD_CMD_CMD_SSSSET_ET_ET_ET_GPIOGPIOGPIOGPIO____OUTOUTOUTOUT (0x9 (0x9 (0x9 (0x96666)))) CMD_SET_GPIO_OCOUT(0x98)CMD_SET_GPIO_OCOUT(0x98)CMD_SET_GPIO_OCOUT(0x98)CMD_SET_GPIO_OCOUT(0x98)

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_OUTCMD_SET_GPIO_OUTCMD_SET_GPIO_OUTCMD_SET_GPIO_OUT is for GPIO Output port 1~4 and CMD_SET_GPIO_OCOUTCMD_SET_GPIO_OCOUTCMD_SET_GPIO_OCOUTCMD_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 doesnNote: It doesnNote: It doesnNote: It doesn’’’’t support FAS02NLC and FMt support FAS02NLC and FMt support FAS02NLC and FMt support FAS02NLC and FM----70FP70FP70FP70FP))))

Here is the events that can be assigned as below.

Event Event

number Action

GPO_NO_ACTION 0 No event is performed.

GPO_ENROLL_WAIT_FING

ER 1 Awaiting fingerprint input of CMD_FP_ENROLL

GPO_ENROLL_PROCESSIN

G 2

Performing enrolling and processing captured fingerprint image of

CMD_FP_ENROLL

GPO_ENROLL_BAD_FINGE

R 3

When not processing captured fingerprint image of CMD_FP_ENROLL or

TimeOut

GPO_ENROLL_SUCCESS 4 CMD_FP_ENROLL is successful

GPO_ENROLL_FAIL 5 CMD_FP_ENROLL is failed

GPO_VERIFY_WAIT_FINGE

R 6 Awaiting fingerprint input of CMD_FP_VERIFY

GPO_VERIFY_PROCESSING 7 Performing enrolling and processing captured fingerprint image of

CMD_FP_VERIFY

GPO_VERIFY_BAD_FINGER 8 When not processing captured fingerprint image of CMD_FP_VERIFY or

TimeOut

GPO_VERIFY_SUCCESS 9 CMD_FP_VERIFY is successful

GPO_VERIFY_FAIL 10 CMD_FP_VERIFY is failed

GPO_IDENTIFY_WAIT_FIN

GER 11 Awaiting fingerprint input of CMD_FP_IDENTIFY

GPO_IDENTIFY_PROCESSI

NG 12

Performing enrolling and processing captured fingerprint image of

CMD_FP_IDENTIFY

GPO_IDENTIFY_BAD_FING

ER 13

When not processing captured fingerprint image of CMD_FP_IDENTIFY or

TimeOut

Page 150: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

150150150150

GPO_IDENTIFY_SUCCESS 14 CMD_FP_IDENTIFY is successful

GPO_IDENTIFY_FAIL 15 CMD_FP_IDENTIFY is failed

GPO_DELETE_WAIT_FING

ER 16 Awaiting fingerprint input of CMD_FP_IDELETE

GPO_DELETE_PROCESSIN

G 17

Performing enrolling and processing captured fingerprint image of

CMD_FP_DELETE

GPO_DELETE_BAD_FINGE

R 18

When not processing captured fingerprint image of CMD_FP_DELETE or

TimeOut

GPO_DELETE_SUCCESS 19 CMD_FP_IDELETE is successful

GPO_DELETE_FAIL 20 CMD_FP_IDELETE is failed

GPO_DETECT_FINGER 21 Performing CMD_FP_IDENTIFY by Auto On

GPO_INPUT1 22 Performing GPIO Input port 1 event

GPO_INPUT2 23 Performing GPIO Input port 2 event

GPO_INPUT3 24 Performing GPIO Input port 3 event

GPO_INPUT4 25 Performing GPIO Input port 4 event

GPO_TEMPER_SWITCH_O

N 26 Performing CMD_SET_TEMPER S/W On

GPO_TEMPER_SWITCH_OF

F 27 Performing CMD_SET_TEMPER S/W Off

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 Action

start signal 0 or 1 If the value is “0”, it process “Delay” then do High

If the value is “1” it process “Delay” then do Low.

idle state 0 or 1

After perform the event, it will decide the status of Port.

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 0~65535 Maintains low status as delay ms that has been assigned in

advance

high 0~65535 Maintains high status as assigned high ms

low 0~65535 Maintains low status as assigned low ms

count 0~65535 Repeats to perform high ↔ low state as assigned count and

maintains idle state after finishing.

Page 151: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

151151151151

Ex) the below diagram is explaned that the output of Normal status is Low, start signal 0, idle state 0,

delay 5ms, high 1ms, low 1ms, count 5.

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.

Page 152: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

152152152152

Here is the event structure of each port to be sent to ExData. (Unit: Byte)

0 1 2 3 4~5 6~7 8~9 10~11

event

number 0

start

signal

idle

state delay high low count

If there are several events to be assigned, send each 12 Byte event as below. (Unit: Byte)

0~11 12~23 24~35 …

Event1 Event2 Event3 …

This command is for This command is for This command is for This command is for over FMover FMover FMover FM----20FP V. 3.0. Each port event setting by this command is saved in 20FP V. 3.0. Each port event setting by this command is saved in 20FP V. 3.0. Each port event setting by this command is saved in 20FP V. 3.0. Each port event setting by this command is saved in

flash memory so it applies even after reset.flash memory so it applies even after reset.flash memory so it applies even after reset.flash memory so it applies even after reset.

Command:

Start 0x02

Command 0x96 or 0x98

wParam

Param1 GPIO Output port number (1~4)

Param2 Upper 16bit (normal state level → 1:high, 0:low)

Lower 16bit (1: Use , 0: No use)

ExDatalen (Event number * 12)

ErrorCode 0

CheckSum

exCheckSum

Subsequent data sequence is the same as below.

Event data to be recorded as the assigned length in ExDatalen

ACK:

Start 0x02

Command 0x96 or 0x98

wParam

Param1 GPIO Output port number (1~4)

Param2 0

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_INVALID_PARAM – Wrong value sent to Param1 and Param2

M2ERROR_INSUFFICIENT_DATA – When ExDatalen is not 12Byte

CheckSum

exCheckSum

Page 153: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

153153153153

CMD_CMD_CMD_CMD_GGGGET_ET_ET_ET_GPIOGPIOGPIOGPIO____OUTOUTOUTOUT (0x9 (0x9 (0x9 (0x97777)))) CMD_GET_GPIO_OCOUT(0x99)CMD_GET_GPIO_OCOUT(0x99)CMD_GET_GPIO_OCOUT(0x99)CMD_GET_GPIO_OCOUT(0x99)

This is a command for bringing assigned event in each GPIO Output port.

CMD_GET_GPIO_OUT CMD_GET_GPIO_OUT CMD_GET_GPIO_OUT CMD_GET_GPIO_OUT is for bringing assigned event in GPIO Output port 1~4 and

CMD_GET_GPIO_OCCMD_GET_GPIO_OCCMD_GET_GPIO_OCCMD_GET_GPIO_OCOUTOUTOUTOUT 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 CMD_SET_GPIO_OUT CMD_SET_GPIO_OUT CMD_SET_GPIO_OUT command one.

((((Note: It doesnNote: It doesnNote: It doesnNote: It doesn’’’’t support FAS02NLC and FMt support FAS02NLC and FMt support FAS02NLC and FMt support FAS02NLC and FM----70FP70FP70FP70FP))))

This command is for over FMThis command is for over FMThis command is for over FMThis command is for over FM----20FP V.20FP V.20FP V.20FP V. 3.0. 3.0. 3.0. 3.0.

Command:

Start 0x02

Command 0x97 or 0x99

wParam

Param1 GPIO Output port number (1~4)

Param2 0

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x97 or 0x99

wParam

Param1 GPIO Output port number (1~4)

Param2 Upper 16bit (normal state level → 1:high, 0:low)

Lower 16bit (1: Use , 0: No use)

ExDatalen (Event number * 12)

ErrorCode M2ERROR_NONE – The command has been executed normally

M2ERROR_INVALID_PARAM – Wrong value sent to Param1

CheckSum

exCheckSum

Subsequent data sequence is the same as below.

Event data to be recorded as the assigned length in ExDatalen

Page 154: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

154154154154

CMD_CMD_CMD_CMD_INITINITINITINIT____GPIOGPIOGPIOGPIO (0x9 (0x9 (0x9 (0x9AAAA))))

This is a command for event initialization of all events of GPIO Input and Output ports.

((((Note: It doesnNote: It doesnNote: It doesnNote: It doesn’’’’t support FASt support FASt support FASt support FAS02NLC and FM02NLC and FM02NLC and FM02NLC and FM----70FP70FP70FP70FP))))

This command is for over FMThis command is for over FMThis command is for over FMThis command is for over FM----20FP V. 3.0. Each port event setting by this command is saved in 20FP V. 3.0. Each port event setting by this command is saved in 20FP V. 3.0. Each port event setting by this command is saved in 20FP V. 3.0. Each port event setting by this command is saved in

flash memory so it applies even after reset.flash memory so it applies even after reset.flash memory so it applies even after reset.flash memory so it applies even after reset.

Command:

Start 0x02

Command 0x9A

wParam

Param1 0

Param2 0

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x9A

wParam

Param1 0

Param2 0

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Page 155: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

155155155155

CMD_CMD_CMD_CMD_FPFPFPFP____ENROLLENROLLENROLLENROLL (0x9 (0x9 (0x9 (0x9BBBB))))

This command is for combination of CMD_FP_REGISTER_START and CMD_FP_REGISTER_END. When

sending this command, it will capture a fingerprint twice and if successful, user can be enrolled. 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 0x02

Command 0x9B

wParam

Param1 User ID

Param2 upper 16bit (1:Automatic ID create),

lower16bit(1: master, 0: normal user)

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x9B

wParam

Param1 User ID

Param2 0

ExDatalen 0

ErrorCode

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

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

Page 156: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

156156156156

CMD_CMD_CMD_CMD_FPFPFPFP____IDELETEIDELETEIDELETEIDELETE (0x9 (0x9 (0x9 (0x9CCCC))))

This command is for deleting the user after searching for fingerprint user registered with 1:N

authentication as CMD_FP_IDENTIFY.

Command:

Start 0x02

Command 0x9C

wParam

Param1 0

Param2 0

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x9C

wParam

Param1 Deleted user ID

Param2 0

ExDatalen 0

ErrorCode

M2ERROR_NONE – The command has been executed normally

M2ERROR_TIMEOUT - No fingerprint in fingerprint input window or wrong

fingerprint input

M2ERROR_IDENTIFY_FAILED - No matching fingerprint data in database with the

fingerprint on current fingerprint input window

CheckSum

exCheckSum

Page 157: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

157157157157

CMD_CMD_CMD_CMD_SETSETSETSET____TEMPERTEMPERTEMPERTEMPER (0x9 (0x9 (0x9 (0x9DDDD))))

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 0x02

Command 0x9D

wParam

Param1 1:Temper s/w On, 0: Temper s/w Off

Param2 0

ExDatalen 0

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0x9D

wParam

Param1 1:Temper s/w On, 0: Temper s/w Off

Param2 0

ExDatalen 0

ErrorCode M2ERROR_NONE – The command has been executed normally

CheckSum

exCheckSum

Page 158: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

158158158158

CMD_FP_REGISTER_TEMP_START (0xA5)

In UFOM, it can get 2 inputs to register 1 FP. This order used to register FP and sending Template by ExData

Command:

Start 0x02

Command 0xA5

wParam

Param1 User ID

Param2 Upper : 1 -Template 1, 0-Template 2 Lower : 1 – Master, 0 – Normal User

ExDatalen Template Size

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0xA5

wParam

Param1 User ID

Param2 Quality = In case of MAX(100) UNION Format

ExDatalen

ErrorCode M2ERROR_NONE – Normal Operation

M2ERROR_TIMEOUT – There is no FP on the sensor. Or inputting wrong FP

CheckSum

exCheckSum

Page 159: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

159159159159

This order used to input FP again When register FP, It can send template by ExData

Command:

Start 0x02

Command 0xA6

wParam

Param1 User ID

Param2 Upper : 1 -Template 1 0-Template 2 Lower : 1 – Master, 0 – Normal User

ExDatalen Template Size

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0xA6

wParam

Param1 User ID

Param2 In case of Quality = MAX(100) UNION Format

ExDatalen 0

ErrorCode

M2ERROR_NONE – Normal Operation

M2ERROR_SIMILAR_FP_EXIST – It already registered same FP.

M2ERROR_TIMEOUT –There is no FP on the sensor. Or inputting wrong FP

M2ERROR_REGISTER_FAILED – Register failure

M2ERROR_FUNCTION_FAIL – Function call failure.

CheckSum

exCheckSum

CMD_FP_REGISTER_TEMP_END (0xA6)

Page 160: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

160160160160

CMD_FP_ADD_TEMP_START (0xA7)

This order used to add FP of the registed user with template data by ExData.

Here is changing user’s 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 0x00

Command 0xA7

wParam

Param1 USER ID

Param2 upper : 1 -Template 1 0-Template 2

ExDatalen Template Sze

ErrorCode 0x0000

CheckSum

exCheckSum

ACK:

Start 0x00

Command 0xA7

wParam USER ID

Param1 In case of Quality = MAX(100) UNION Format

Param2

ExDatalen 0x0000

ErrorCode

M2ERROR_NONE – Normal Operation

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

Page 161: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

161161161161

CMD_FP_ADD_TEMP_END (0xA8)

This order used to add additional fingerprint to the registed user.

It will proceed this order if PARAM2 is Upper 1 in Send DATA of CMD_FP_ADD_TEMP_START

This order used to send Template data by ExData for adding additional fingerprint to the registered user

→ 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 0x00

Command 0xA8

wParam

Param1 USER ID

Param2 Upper : 1 -Template 1 0-Template 2 Lower : 1 – Master, 0 – Normal user

ExDatalen Template Size

ErrorCode 0x0000

CheckSum

exCheckSum

ACK:

Start 0x00

Command 0xA8

wParam

Param1 USER ID

Param2 In case of Quality = MAX(100) UNION Format

ExDatalen 0

ErrorCode

M2ERROR_NONE – Normal Operation

M2ERROR_TIMEOUT – There is no FP on the sensor or inputting wrong FP

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

Page 162: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

161616162222

CMD_FP_VERIFY_TEMP (0xA9)

This Order used to authenticate USER. It will return the result with comparing between all user’s FP in database and FP by

current ExData. It can be found that Authenticated user is Master by Param2 of ACK

Command:

Start 0x02

Command 0xA9

wParam

Param1 USER ID

Param2

ExDatalen Template Size

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0xA9

wParam

Param1 USER ID

Param2 Master Flag

ExDatalen 0

ErrorCode

M2ERROR_NONE – Normal Operation

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

Page 163: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

163163163163

CMD_FP_IDENTIFY_TEMP (0xAA)

Without User ID, it will return the result with comparing between all user’s FP USER ID and FP by current ExData

In case of the registered user, ACK’s error code has USER ID in Param1 filed of M2ERROR_NONE ACK and has the value about

weather Master or not in Param 2

Command:

Start 0x02

Command 0xAA

wParam

Param1

Param2

ExDatalen Template Size

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0xAA

wParam

Param1 USER ID

Param2 Master Flag

ExDatalen 0

ErrorCode

M2ERROR_NONE – Normal Operation

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

Page 164: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

164164164164

CMD_FP_IDELETE_TEMP (0xAB)

This order used to delete user by 1:N authentication such as CMD_FP_IDENTIFY_TEMP

Command:

Start 0x02

Command 0xAB

wParam

Param1 0

Param2 0

ExDatalen Template Size

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0xAB

wParam

Param1 Deleted User ID

Param2 0

ExDatalen 0

ErrorCode

M2ERROR_NONE – Normal Operation

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

Page 165: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

165165165165

CMD_GET_FP_MIN_SAVE (0xAC)

Extract the template with capturing FP as a selected format

Command:

Start 0x02

Command 0xAC

wParam

Param1

Upper : Template size

Lower : Format 0- union[Fixed] 1- ISO[Fixed]500 2 – ISO[Fixed]600 3 – ANSI378[Variable]

4 – ISO[Variable]

Param2 0

ExDatalen

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0xAC

wParam

Param1

Upper : Template size

Lower : Format 0- union[Fixed] 1- ISO[Fixed]500 2 – ISO[Fixed]600 3 – ANSI378[Variable]

4 – ISO[Variable]

Param2 0

ExDatalen Template size

ErrorCode

M2ERROR_NONE – Normal Operation

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

Page 166: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

166166166166

CMD_GET_FP_USER_TEMP (0xAD)

Extract the template in Database

If Database has 2 templates, it will proceed one more time.

Command:

Start 0x02

Command 0xAD

wParam

Param1 User ID

Param2 Sub ID

ExDatalen

ErrorCode 0

CheckSum

exCheckSum

ACK:

Start 0x02

Command 0xAD

wParam

Param1 Template Count

Param2 Offset

ExDatalen Template size

ErrorCode

M2ERROR_NONE – Normal Operation

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

Page 167: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

167167167167

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 database’s server suchcas

CMD_DB_ADD_REC_EX(0x7f)

Command:

Start 0x02

Command 0xAF

wParam

Param1

Param2

ExDatalen Sizeof(fdb_rec_user) + Sizeof(fdb_rec_fp) * The number of the registered FP

ErrorCode 0

CheckSum

exCheckSum

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)+ …

Page 168: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

168168168168

CMD_DB_NEW_ADD_REC (0xb0)

PLEASE REFER TO APPENDIX F AS A DB STRUCTURE CHANGE.

This Command used to register additional user from current UFOM database’s server such as

reCMD_DB_ADD_REC (0x71

Command:

Start 0x02

Command 0x7f

wParam

Param1

Param2

ExDatalen Sizeof(fdb_rec_user) + Sizeof(fdb_rec_fp) * The number of the registered FP

ErrorCode 0

CheckSum

exCheckSum

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)

Page 169: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

169169169169

Appendix BAppendix BAppendix BAppendix B. . . . Command SummaryCommand SummaryCommand SummaryCommand Summary

B.1 Basic B.1 Basic B.1 Basic B.1 Basic CommandCommandCommandCommand

Command Param1 Param2 ExDatalen

Command: CMD_GET_VERSION

(0x05) ACK: Major version Major version

Command: CMD_IS_ROOT_MASTER

(0x06) ACK:

Command: CMD_GET_SYSTEM_ID

(0x0e) ACK: System id

Command: System id CMD_SET_SYSTEM_ID

(0x0f) ACK: System id

Command: Device number CMD_DEVICE_TEST

(0x10) ACK:

Command: CMD_DIVICE_RESET

(0x11) ACK:

Command: On-1, Off –0 CMD_OPTICLED_ONOFF

(0x14) ACK:

Command: Off=0, On=1 0=no save to flash

1=save to flash CMD_AUTO_ONOFF

(0x1a) ACK:

Command: Selector Value for selector CMD_SET_SYSTEM_INF

O (0x20) ACK:

Command: Baud value

(BAUD 1200 ~ 115200)

0=no save to flash

1=save to flash CMD_SET_COMM_SPEE

D (0x21) ACK: Baud value

Command: Size of TimeInfo CMD_SET_TIME (0x24)

ACK: Size of TimeInfo

Command: Timeout value(3~25) 0=no save to flash

1=save to flash CMD_SET_CAPTURE_TI

MEOUT(0x28) ACK: Timeout value

Command: 0 = Disable

1 = Enable FP Level value (5~9) CMD_SET_CHECK_SIMI

LAR_FP_REGISTER

(0x29) ACK: 0 = Disable

1 = Enable FP Level value (5~9)

Page 170: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

170170170170

Command: Item CMD_GET_SYSTEM_INF

O (0x30) ACK: Item Current system setting

Command: CMD_DEVICE_PVERSIO

N (0x38) ACK: Full Version information Firmware Checksum Size of Module ID

Command: CMD_GET_MODULE_ID

(0x3F) ACK: MANUFACTURE ID Product ID

Command: CMD_GET_MINUTIAE

(0x40) ACK: Size of minutiae

Command: FP size Selector CMD_GET_IMAGE

(0x43) ACK: Image size

Command: CMD_GET_TIME (0x44)

ACK: Sizeof TimeInfo

Command: CMD_GET_REC_COUNT

(0x46) ACK: RecCount(0-MaxUser)

Command: CMD_GET_MASTER_CO

UNT (0x47) ACK: Master Count

0–Max Master Count

Command: CMD_GET_CAPTURE_TI

MEOUT(0x48) ACK: Timeout value

Command: CMD_GET_SIMILAR_FP_

REGISTER (0x49) ACK: On - 1 , Off - 0 Current set level value

Command: User ID CMD_GET_USER_FPREC

_COUNT (0x4e) ACK: User ID Number of registered

fingerprints

Command:

CMD_GET_FPREC_COU

NT(0x4F) ACK: Number of fingerprints

registered in the module

Number of total fingerprints

of module

(Upper 16 Byte)

Number of fingerprints that

can be registered additionally

(Lower 16 Byte)

Command: UserID 1 = MasterFlag

0 = UserFlag CMD_FP_REGISTER_ST

ART (0x50) ACK: UserID

Command: UserID 1 = MasterFlag

0 = UserFlag CMD_FP_REGISTER_EN

D (0x51) ACK:

CMD_FP_CHANGE_STA Command: UserID

Page 171: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

171171171171

ACK:

Command: UserID CMD_FP_CHANGE_END

(0x53) ACK:

Command: UserID CMD_FP_DELETE (0x54)

ACK: UserID MasterFlag

Command: UserID CMD_FP_VERIFY (0x55)

ACK: UserID MasterFlag

Command: CMD_FP_IDENTIFY

(0x56) ACK: UserID MasterFlag

Command: Number of valid

authentication CMD_FP_VERIFY_MAST

ER (0x57) ACK: MasterUserID

Command: CMD_FP_VERIFY_END

(0x58) ACK:

Command: Retrieval Section Starting

ID Retrieval Section Ending ID CMD_FP_IDENTIFY_EX

(0x59) ACK: UserID MasterFlag

Command: UserID CMD_FP_ADD (0x5b)

ACK: UserID

Command: Size of minutiae CMD_FP_MIN_VERIFY

(0x5c) ACK:

Command: CMD_FP_CANCEL

(0x5d) ACK:

Command: CMD_GET_ACK_CHANN

EL

(0x86) ACK: ACK CHANNEL

Command: UserID format,Size of

each minutiae Size of ExData CMD_FP_CARD_MIN_VE

RIFY (0x87) ACK:

Command: (format),(Size of

each minutiae)

CMD_GET_FP_CARD_MI

N (0x8c) ACK:

(format),(Size of

each minutiae)

Command: UserID CMD_FP_ADD_START

(0x5e) ACK:

Command: UserID CMD_FP_ADD_END

(0x5f) ACK:

CMD_IS_REGISTERED_U Command: UserID

Page 172: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

172172172172

ACK: UserID MasterFlag

Command: UserID CMD_GET_PW (0x6c)

ACK: UserID MasterFlag Sizeof password

Command: UserID Sizeof password CMD_PW_VERIFY (0x6d)

ACK: UserID MasterFlag

Command: UserID MasterFlag,

Overwrite Flag Sizeof password

CMD_PW_ADD (0x6e)

ACK: UserID 1 = Master 0 = User

Command: UserID CMD_PW_DELETE(0x6f)

ACK: UserID MasterFlag

Command: CMD_DEVICE_INITIALIZ

E (0x88) ACK:

Command: Channel number 1=save to flash CMD_SELECT_ACK_CH

ANNEL (0x89) ACK: Channel number

Command: UserID Auto ID, MasterFlag CMD_FP_ENROLL (0x9b)

ACK: UserID

Command: CMD_FP_IDELETE

(0x9c) ACK: Delete UserID

Command: CMD_SET_TEMPER

(0x9d) ACK:

On - 1 , Off - 0 On - 1 , Off - 0

Page 173: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

173173173173

B.2 Database Access CommandB.2 Database Access CommandB.2 Database Access CommandB.2 Database Access Command

Command Param1 Param2 ExDatalen

Command: CMD_DB_GET_RECCOUNT

(0x70) ACK: Number of users

registered

Command: Overwrite Flag

Size of TUserRecord

+ Size of TFPRecord * No. of

fingerprints CMD_DB_ADD_REC (0x71)

ACK:

Command: UserID CMD_DB_DELETE_REC

(0x72) ACK: UserID MasterFlag

Command: UserID FP Number

CMD_DB_GET_REC (0x73) ACK:

Size of fdb_rec_user

+ Size of fdb_rec_fp + template len *

No. of fingerprints

Command:

CMD_DB_GET_FIRSTREC

(0x74) ACK:

Size of fdb_rec_user

+ Size of fdb_rec_fp +temeplate len *

fingerprint

Command: CMD_DB_GET_NEXTREC

(0x75) ACK: Size of fdb_rec_user

+ Size of fdb_rec_fp *fingerprint

Command: CMD_DB_DELETE_ALL

(0x76) ACK:

Command:

Size of fdb_rec_user

+ Size of fdb_rec_fp +temeplate len *

fingerprint

CMD_DB_GET_CURRENTR

EC (0x77)

ACK:

Command: UserID 400Byte CMD_DB_VERIFY (0x78)

ACK:

Command: 400Byte CMD_DB_IDENTIFY (0x79)

ACK: UserID MasterFlag

Command: Start UserID End UserID 400Byte CMD_DB_IDENTIFY_EX

(0x7a) ACK: UserID MasterFlag

Command: Number of valid

authentication 400Byte CMD_DB_VERIFY_MASTER

(0x7b) ACK: UserID

Page 174: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

174174174174

Command: CMD_DB_VERIFY_MASTER

_END (0x7c) ACK:

Command: CMD_DB_GET_ID_LIST

(0x7d) ACK: Total number of

users Total number of users * 4byte

Command: CMD_DB_GET_MASTER_LI

ST(0x7e) ACK: Total number of

masters Total number of masters * 4byte

Command: Overwrite Flag

Size of TUserRecord

+ Size of TFPRecord * No. of

fingerprints

CMD_DB_ADD_REC_EX

(0x7f)

ACK:

Command: CMD_LOG_GET_RECCOUN

T (0x80) ACK: Log count

Command: Log number CMD_LOG_GET_REC

(0x81) ACK: Size of TLog Record

Command: CMD_LOG_DELETE_ALL

(0x82) ACK:

Command: Start number

data

End number

data CMD_LOG_GET_REC_EX

(0x83) ACK: Size of TLog Record

exData Command: Data length

Log Data 16Byte CMD_LOG_SET_REC

(0x84) ACK:

Command: Number of log

selected CMD_LOG_DELETE

(0x85) ACK:

Command: UserID CMD_DB_GET_REC_USER_

RECORD (0x8d) ACK: Size of fdb_rec_user

Command: CMD_DB_SET_REC_USER_

RECORD (0x8e) ACK: UserID

Page 175: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

175175175175

B.3 User DaB.3 User DaB.3 User DaB.3 User Data Access Commandta Access Commandta Access Commandta Access Command

Command Param1 Param2 ExDatalen

Command: Data length CMD_SET_USERDATA_LE

NGTH (0x90) ACK:

Command: CMD_GET_USERDATA_LE

NGTH (0x91) ACK: Data length

Command: Address Length Length CMD_SET_USERDATA

(0x92) ACK:

Command: Address Length Length CMD_GET_USERDATA

(0x93) ACK: Address Length Length

B.B.B.B.4444 DBDBDBDB Sector Sector Sector Sector Access CommandAccess CommandAccess CommandAccess Command

Command Param1 Param2 ExDatalen

Command: Sector number offset CMD_GET_SECTORDATA

(0x8a) ACK: Sector number offset 8192 or (65536-offset)

Command: Sector number offset CMD_SET_SECTORDATA

(0x8b) ACK: Sector number offset Length

B.B.B.B.5555 F/W DownloadF/W DownloadF/W DownloadF/W Download Command Command Command Command

Command Param1 Param2 ExDatalen

CMD_DOWN_PROGRAM (0xf1) (offset) Length (Length )

Page 176: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

176176176176

B.B.B.B.6666 GPIOGPIOGPIOGPIO Command Command Command Command

Command Param1 Param2 ExDatalen

Command: Port number Event CMD_SET_GPIO_IN (0x94)

ACK: Port number Event

Command: Port number CMD_GET_GPIO_IN (0x95)

ACK: Port number Event

Command: Port number Normal level,

Usage Length

CMD_SET_GPIO_OUT (0x96)

ACK: Port number

Command: Port number Normal level,

Usage Length

CMD_SET_GPIO_OCOUT (0x98)

ACK: Port number

Command: Port number

CMD_GET_GPIO_OUT (0x97) ACK: Port number

Normal level,

Usage Length

Command: Port number CMD_GET_GPIO_OCOUT

(0x99) ACK: Port number Normal level,

Usage Length

Command: CMD_INIT_GPIO (0x9A)

ACK:

Page 177: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

177177177177

� Commands that require verification by masterCommands that require verification by masterCommands that require verification by masterCommands that require verification by master

� CMD_SET_SYSTEM_INFO

� CMD_FP_REGISTER_START

� CMD_FP_REGISTER_END

� CMD_FP_CHANGE_START

� CMD_FP_CHANGE_END

� CMD_FP_ADD_START

� CMD_FP_ADD_END

� CMD_FP_DELETE

� CMD_FP_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_GET_REC_EX

� CMD_LOG_SET_REC

� CMD_LOG_DELETE_ALL

� CMD_RECOVER_MASTER

Page 178: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

178178178178

� Commands that use ExtraData fieldCommands that use ExtraData fieldCommands that use ExtraData fieldCommands that use ExtraData field

� CMD_SET_TIME

� CMD_GET_TIME

� CMD_GET_MINUTIAE

� CMD_GET_IMAGE

� CMD_FP_CARD_MIN_VERIFY

� CMD_GET_FP_CARD_MIN

� CMD_PW_ADD

� CMD_PW_DELETE

� CMD_DB_ADD_REC

� CMD_DB_GET_REC

� CMD_DB_GET_FIRSTREC

� CMD_DB_GET_NEXTREC

� CMD_DB_CURRENTREC

� CMD_SET_USERDATA

� CMD_GET_USERDATA

� CMD_LOG_GET_REC

� CMD_LOG_GET_MIN

� CMD_DB_VERIFY

� CMD_DB_IDENTIFY

� CMD_DB_IDENTIFY_EX

� CMD_DB_VERIFY_MASTER

� CMD_DB_GET_ID_LIST

� CMD_DB_GET_MASTER_LIST

� CMD_GET_PW

� CMD_GET_SECTORDATA

� CMD_SET_SECTORDATA

� CMD_SET_GPIO_OUT

� CMD_GET_GPIO_OUT

� CMD_SET_GPIO_OCOUT

� CMD_GET_GPIO_OCOUT

� CMD_DOWN_PROGRAM

Page 179: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

179179179179

AppendixAppendixAppendixAppendix C. Data typeC. Data typeC. Data typeC. Data type

// Type define

#define UINT32 unsigned int

#define UINT16 unsigned short

#define UINT8 unsigned char

// Command packet

typedef struct tagCmdPacket

{

UINT8 Channel;

UINT8 Command;

UINT16 wParam;

UINT32 Param1;

UINT32 Param2;

UINT32 exDatalen;

UINT16 ErrorCode;

UINT8 Checksum;

UINT8 exChecksum;

} TCmdPacket;

// Time structure

typedef struct tagTimeInfo

{

UINT16 Year; // 1999~

UINT16 Month; // 1 ~ 12

UINT16 Day; // 1 ~ 31

UINT16 Hour; // 00 - 23

UINT16 Min; // 0 - 59

UINT16 Sec; // 0 – 59

} TimeInfo;

Page 180: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

180180180180

// User Record

typedef struct tagTUserRecord

{

UINT32 UserId;

UINT8 UserFlag;

UINT8 SLevel;

UINT8 Reserved[2];

Struct systime regTime;

Struct acctime accTime;

UINT8 pwd[8];

UINT8 cardnum[20];

}TUserRecord;

* 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 6 Bit 3 Bit 2 Bit 0 Bit

Master Identifiable Use of Card Use of

Password

Use of

Fingerprint

// Fingerprint Record

typedef packed struct tagTFPRecord

{

UINT8 type; // 0x01

UINT16 len; // Fingerprint data length (800)

UINT8 Minutiae1[400];

UINT8 Minutiae2[400];

} TFPRecord;

// Log Record

typedef struct tagLogRecord

{

TimeInfo Time;

UINT16 UserId;

UINT16 EventNum;

} TLogRecord;

Page 181: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

181181181181

AppendixAppendixAppendixAppendix D. ConstantD. ConstantD. ConstantD. Constant

� Event listEvent listEvent listEvent list

#define EVT_ADD_USER 0x00

#define EVT_DEL_USER 0x01

#define EVT_VERIFY_USER 0x02

#define EVT_VERIFY_FAIL 0x03

#define EVT_IDENTIFY_USER 0x04

#define EVT_IDENTIFY_FAIL 0x05

#define EVT_CHANGE_USER_FP 0x06

#define EVT_DB_ADD_USER 0x07

#define EVT_DB_DEL_USER 0x08

#define EVT_DB_DEL_ALL 0x09

#define EVT_DB_VERIFY_USER 0x0a

#define EVT_DB_VERIFY_FAIL 0x0b

#define EVT_DB_IDENTIFY_USER 0x0c

#define EVT_DB_IDENTIFY_FAIL 0x0d

#define EVT_ADD_FP 0x10

#define EVT_ADD_PW 0x11

#define EVT_DEL_PW 0x12

#define EVT_TEMPER_SWITCH_ON 0x13

#define EVT_TEMPER_SWITCH_OFF 0x14

� Security levelSecurity levelSecurity levelSecurity level

#define SLEVEL_LOWEST 0x01

#define SLEVEL_LOWER 0x02

#define SLEVEL_LOW 0x03

#define SLEVEL_BELOW_NORMAL 0x04

#define SLEVEL_NORMAL 0x05

#define SLEVEL_ABOVE_NORMAL 0x06

#define SLEVEL_HIGH 0x07

#define SLEVEL_HIGHER 0x08

#define SLEVEL_HIGHEST 0x09

� ImageViewImageViewImageViewImageView

#define VIEW_NORMAL 0x01

#define VIEW_HALF 0x02

#define VIEW_QUARTER 0x04

Page 182: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

182182182182

� Device numberDevice numberDevice numberDevice number

#define DEVICE_ALL 0x00

#define DEVICE_SENSOR 0x01

#define DEVICE_FLASHMEN 0x02

� System setup parameterSystem setup parameterSystem setup parameterSystem setup parameter

#define SI_USING_MASTER_AUTHENTICATION 0x00

#define SI_SAVE_LOGEVENT 0x01

#define SI_SECURITY_LEVEL 0x02

#define SI_USING_RELAY 0x03

#define SI_COMM_SPEED 0x04

#define SI_SECURITY_LEVEL_IDENTIFY 0x08

#define SI_WIEGAND_FORMAT 0x09

#define SI_WIEGAND_SITECODE 0x0a

#define SI_USING_CHECKSUM 0x10

#define SI_HIGH_SECURITY 0x11

#define SI_ADAPTIVE_CAPTURE 0x12

#define SI_LFD_LEVEL 0x1a

#define SI_ROTATE_CAPTURE 0x1b

#define SI_ROTATE_MATCHING 0x1c

#define SI_AUTO_ONOFF 0x1d

#define SI_COMM0_SPEED (FM-30FP function) 0x1E

#define SI_COMM1_SPEED (FM-30FP function) 0x1F

#define SI_COMM2_SPEED (FM-30FP function) 0x20

#define SI_SEND_CAPTURE_SUCCESS 0x21

#define SI_FAST_MODE 0x22

#define SI_LFD_WHITE_MODE (FAS02NLC (FAS02NLC (FAS02NLC (FAS02NLC functionfunctionfunctionfunction)))) 0x23

#define SI_CAPTURE_OLD_SIZE (FAS02NLC (FAS02NLC (FAS02NLC (FAS02NLC functionfunctionfunctionfunction)))) 0x24

#define SI_ROTATE_MINUTIAE 0x25

� Wiegand Protocol FormatWiegand Protocol FormatWiegand Protocol FormatWiegand Protocol Format

#define WIEGAND_FMT_NOT_USED 0x00

#define WIEGAND_FMT_26BIT 0x12c (300)

#define WIEGAND_FMT_34BIT 0x12e (302)

Page 183: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

183183183183

AppendixAppendixAppendixAppendix E. Error Code ListE. Error Code ListE. Error Code ListE. Error Code List

M2ERROR_NONE(0x00)M2ERROR_NONE(0x00)M2ERROR_NONE(0x00)M2ERROR_NONE(0x00) The command received from main controller or host has

been executed without an error.

M2ERROR_FLASH_OPEN(0x01)M2ERROR_FLASH_OPEN(0x01)M2ERROR_FLASH_OPEN(0x01)M2ERROR_FLASH_OPEN(0x01)

The command received from main controller or host, which

requires accessing flash memory, has not been executed

due to an error in flash memory.

M2ERROR_SENSOR_OPEN(0x02)M2ERROR_SENSOR_OPEN(0x02)M2ERROR_SENSOR_OPEN(0x02)M2ERROR_SENSOR_OPEN(0x02) There is an error in the optical unit.

M2ERROR_REGISTER_FAILED(0x03)M2ERROR_REGISTER_FAILED(0x03)M2ERROR_REGISTER_FAILED(0x03)M2ERROR_REGISTER_FAILED(0x03) Fingerprint registration failed.

M2ERROR_VERIFY_FAILED(0x04)M2ERROR_VERIFY_FAILED(0x04)M2ERROR_VERIFY_FAILED(0x04)M2ERROR_VERIFY_FAILED(0x04) Verification failed.

M2ERRORM2ERRORM2ERRORM2ERROR_ALREADY_REGISTERED_USER_ALREADY_REGISTERED_USER_ALREADY_REGISTERED_USER_ALREADY_REGISTERED_USER

(0x05)(0x05)(0x05)(0x05)

Registered user ID

M2ERROR_USER_NOT_FOUND(0x06)M2ERROR_USER_NOT_FOUND(0x06)M2ERROR_USER_NOT_FOUND(0x06)M2ERROR_USER_NOT_FOUND(0x06) User ID entered for verification has not been registered to

UFOM database.

M2ERROR_INVALID_PASSWORD(0x07)M2ERROR_INVALID_PASSWORD(0x07)M2ERROR_INVALID_PASSWORD(0x07)M2ERROR_INVALID_PASSWORD(0x07) Invalid password

M2ERROR_TIMEOUT(0x08)M2ERROR_TIMEOUT(0x08)M2ERROR_TIMEOUT(0x08)M2ERROR_TIMEOUT(0x08) User fingerprint was not captured within the specified time.

M2ERROR_DB_FULL(0x09)M2ERROR_DB_FULL(0x09)M2ERROR_DB_FULL(0x09)M2ERROR_DB_FULL(0x09) UFOM database is full, so that there is no more space to

register.

M2ERROR_DB_WRONG_USERID(0x0A)M2ERROR_DB_WRONG_USERID(0x0A)M2ERROR_DB_WRONG_USERID(0x0A)M2ERROR_DB_WRONG_USERID(0x0A) User ID to be deleted or verified was found to be not

registered to database

M2ERROR_DB_NO_DATA(0x0BM2ERROR_DB_NO_DATA(0x0BM2ERROR_DB_NO_DATA(0x0BM2ERROR_DB_NO_DATA(0x0B)))) There is no data in database.

M2ERROR_EXTRACT_FAIL(0x0C)M2ERROR_EXTRACT_FAIL(0x0C)M2ERROR_EXTRACT_FAIL(0x0C)M2ERROR_EXTRACT_FAIL(0x0C) Failed to extract minutiae from the captured image.

M2ERROR_MEMALLOC_FAILED(0x0D)M2ERROR_MEMALLOC_FAILED(0x0D)M2ERROR_MEMALLOC_FAILED(0x0D)M2ERROR_MEMALLOC_FAILED(0x0D) Memory allocation failed.

M2ERROR_SERIAL_OPEN(0x0E)M2ERROR_SERIAL_OPEN(0x0E)M2ERROR_SERIAL_OPEN(0x0E)M2ERROR_SERIAL_OPEN(0x0E) Impossible to communicate with main controller or host via

serial port.

M2ERROR_NOT_IMPLEMENTED(0x0F)M2ERROR_NOT_IMPLEMENTED(0x0F)M2ERROR_NOT_IMPLEMENTED(0x0F)M2ERROR_NOT_IMPLEMENTED(0x0F) The function has not been implemented.

M2ERROR_FUNCTION_FAIL(0x10)M2ERROR_FUNCTION_FAIL(0x10)M2ERROR_FUNCTION_FAIL(0x10)M2ERROR_FUNCTION_FAIL(0x10) Failed to call the function.

M2ERROR_INSUFFICIENT_DATA(0x11)M2ERROR_INSUFFICIENT_DATA(0x11)M2ERROR_INSUFFICIENT_DATA(0x11)M2ERROR_INSUFFICIENT_DATA(0x11) As much data as set to ExtraData has not been received.

M2ERROR_FLASH_WRITE_ERROR(M2ERROR_FLASH_WRITE_ERROR(M2ERROR_FLASH_WRITE_ERROR(M2ERROR_FLASH_WRITE_ERROR(0x12)0x12)0x12)0x12) Failed to write on flash memory.

M2ERROR_FLASH_READ_ERROR(0x13)M2ERROR_FLASH_READ_ERROR(0x13)M2ERROR_FLASH_READ_ERROR(0x13)M2ERROR_FLASH_READ_ERROR(0x13) Failed to read from flash memory.

M2ERROR_INVALID_PARAM(0x14)M2ERROR_INVALID_PARAM(0x14)M2ERROR_INVALID_PARAM(0x14)M2ERROR_INVALID_PARAM(0x14) Invalid parameter of packet

M2ERROR_MASTERFP_NOT_FOUND(0x15)M2ERROR_MASTERFP_NOT_FOUND(0x15)M2ERROR_MASTERFP_NOT_FOUND(0x15)M2ERROR_MASTERFP_NOT_FOUND(0x15)

Master fingerprint is not found. This error occurs when it

is tried to execute a command without registering a

master.

M2ERROR_MASTERCOUNT_EXCEED(0x16)M2ERROR_MASTERCOUNT_EXCEED(0x16)M2ERROR_MASTERCOUNT_EXCEED(0x16)M2ERROR_MASTERCOUNT_EXCEED(0x16)

Master count is exceeded. Maximum 5 masters can be

registered as of now. This error occurs when it is tried to

register more masters than the allowable master count.

M2ERROR_AUTHENTICATION_FAIL(0x17)M2ERROR_AUTHENTICATION_FAIL(0x17)M2ERROR_AUTHENTICATION_FAIL(0x17)M2ERROR_AUTHENTICATION_FAIL(0x17) Master authentication failed.

Page 184: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

184184184184

M2ERROR_FPCHANGE_FAILED (0x1A)M2ERROR_FPCHANGE_FAILED (0x1A)M2ERROR_FPCHANGE_FAILED (0x1A)M2ERROR_FPCHANGE_FAILED (0x1A) User fingerprint change failed.

M2ERROR_IDENTIFY_FAILED (0x1B)M2ERROR_IDENTIFY_FAILED (0x1B)M2ERROR_IDENTIFY_FAILED (0x1B)M2ERROR_IDENTIFY_FAILED (0x1B) There is no fingerprint in database that is matched with the

one on the current Fingerprint Input window.

M2ERROR_FLASH_ERASE_ERROR(0x1C)M2ERROR_FLASH_ERASE_ERROR(0x1C)M2ERROR_FLASH_ERASE_ERROR(0x1C)M2ERROR_FLASH_ERASE_ERROR(0x1C) Failed to erase flash memory.

M2ERROR_VERIFY_FAKE (0x1D)M2ERROR_VERIFY_FAKE (0x1D)M2ERROR_VERIFY_FAKE (0x1D)M2ERROR_VERIFY_FAKE (0x1D)

Fingerprint data to be verified is the same as the one

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)M2ERROR_TIME_ERROR (0x1E)M2ERROR_TIME_ERROR (0x1E)M2ERROR_TIME_ERROR (0x1E) This error occurs when a user tries to set time an with

incorrect value.

M2ERROR_SEARCHING_FOR_IDENTIFY M2ERROR_SEARCHING_FOR_IDENTIFY M2ERROR_SEARCHING_FOR_IDENTIFY M2ERROR_SEARCHING_FOR_IDENTIFY

(0x1F)(0x1F)(0x1F)(0x1F)

UFOM sends ACK containing this error once in identifying

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 should wait for the next

ACK.

M2ERROR_INVALID_USERDATA_SIZE (0x20)M2ERROR_INVALID_USERDATA_SIZE (0x20)M2ERROR_INVALID_USERDATA_SIZE (0x20)M2ERROR_INVALID_USERDATA_SIZE (0x20) 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.

M2ERROR_INVALID_USERDATA_ADDRESS M2ERROR_INVALID_USERDATA_ADDRESS M2ERROR_INVALID_USERDATA_ADDRESS M2ERROR_INVALID_USERDATA_ADDRESS

(0x21)(0x21)(0x21)(0x21)

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.

M2ERROR_MUST_BE_SET_DATA_LENGTHM2ERROR_MUST_BE_SET_DATA_LENGTHM2ERROR_MUST_BE_SET_DATA_LENGTHM2ERROR_MUST_BE_SET_DATA_LENGTH

(0x22)(0x22)(0x22)(0x22)

Size of the user data area for host has not been set.

M2ERROR_CHECKSUM_ERRORM2ERROR_CHECKSUM_ERRORM2ERROR_CHECKSUM_ERRORM2ERROR_CHECKSUM_ERROR ( ( ( (0x280x280x280x28)))) Checksum error of the received packet

M2ERROR_SIMILAR_FP_EXISTM2ERROR_SIMILAR_FP_EXISTM2ERROR_SIMILAR_FP_EXISTM2ERROR_SIMILAR_FP_EXIST (0x2A) (0x2A) (0x2A) (0x2A) Analogous fingerprint is registered when analogous fingerprint is used.

M2ERROR_CONVERT_FPDM2ERROR_CONVERT_FPDM2ERROR_CONVERT_FPDM2ERROR_CONVERT_FPDATA_ENCRYPTIOATA_ENCRYPTIOATA_ENCRYPTIOATA_ENCRYPTIO

NNNN (0x30) (0x30) (0x30) (0x30)

Failed to encrypt fingerprint data

M2ERROR_CONVERT_FPDATA_DECRYPTIOM2ERROR_CONVERT_FPDATA_DECRYPTIOM2ERROR_CONVERT_FPDATA_DECRYPTIOM2ERROR_CONVERT_FPDATA_DECRYPTIO

NNNN (0x31) (0x31) (0x31) (0x31)

Failed to decrypt fingerprint data

M2ERROR_CONVERT_FPDATA_CHECKSUMM2ERROR_CONVERT_FPDATA_CHECKSUMM2ERROR_CONVERT_FPDATA_CHECKSUMM2ERROR_CONVERT_FPDATA_CHECKSUM

(0x32)(0x32)(0x32)(0x32)

Failed to checksum fingerprint data

M2ERROR_CONVERT_FPDATA_NOEXTENDM2ERROR_CONVERT_FPDATA_NOEXTENDM2ERROR_CONVERT_FPDATA_NOEXTENDM2ERROR_CONVERT_FPDATA_NOEXTEND

(0x33)(0x33)(0x33)(0x33)

When the ISO standard format fingerprint data is used, it can not

be processed due to lack of data.

M2ERROR_CONVERT_FPDATA_OTHERTYPEM2ERROR_CONVERT_FPDATA_OTHERTYPEM2ERROR_CONVERT_FPDATA_OTHERTYPEM2ERROR_CONVERT_FPDATA_OTHERTYPE

(0x34)(0x34)(0x34)(0x34)

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.

M2ERROR_FPCOUNT_EXCEED (0x80)M2ERROR_FPCOUNT_EXCEED (0x80)M2ERROR_FPCOUNT_EXCEED (0x80)M2ERROR_FPCOUNT_EXCEED (0x80) Number of fingerprints that can be registered is full.

M2ERROR_UNKNOWN_COMMAND(0xFF)M2ERROR_UNKNOWN_COMMAND(0xFF)M2ERROR_UNKNOWN_COMMAND(0xFF)M2ERROR_UNKNOWN_COMMAND(0xFF) UFOM FAILS TO ACKNOWLEDGE THE COMMAND.

Page 185: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

185185185185

Appendix F. NEW DB Data Type And 1Template The previous method is that capture 2 times per 1 FP and storing 2templates in Database.

However, it can capture just 1 time per 1FP and store 1 template in Databse.

It can be decided whether storing 1template or 2templates by Option Order Param2 as follows. However FAR could be

higher when it use 1template. When it use FAS02NLC with 1 template, it can be stored 1,000 users. When it use

FAS02NLC with 2 templates, it can be stored 500 users

Command for register, add, change

CMD_FP_REGISTER_START (0x50)

CMD_FP_CHANGE_START(0x52)

CMD_FP_ADD_START(0x5E)

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 unsigned int

#define UINT16 unsigned short

#define UINT8 unsigned char

Struct fdb_marker{

UINT16 mark;

UINT16 sor;

};

// Time structure

struct systime {

UINT16 year;

UINT8 month;

UINT8 date;

UINT8 hour;

Page 186: UFOM SDK Developer's Manual_v5.0_eng

UFOM SDK Developer’s Manual

186186186186

UINT8 min;

UINT8 sec;

UINT8 rsvd;

};

struct fdb_rec_user {

struct fdb_marker marker;

int len;

USER_ID uid;

UINT8 cntfp;

UINT8 flag;

UINT8 slevel;

UINT8 tempcnt;

struct systime regtime;

char pwd[MAX_PW_SIZE];

};

struct fdb_rec_fp {

UINT16 sor;

UINT8 count;

UINT8 order;

USER_ID uid;

UINT16 len1;

UINT16 len2;

UINT8 uflag;

UINT8 adapt;

UINT8 rsvd[2];

UINT8* min1;

UINT8* min2;

};