0% found this document useful (0 votes)
699 views83 pages

Attendance/Access Control CS SDK Manual: Date: September, 2019

This document provides an overview and instructions for using the Hysoon CS SDK Manual for attendance and access control. It describes the SDK's functions for connecting to and managing devices, registered user data, recorded logs, and device settings and information. The manual is designed for SDK version 2.0 and users are advised to refer to it in detail as the company takes no responsibility for any data loss.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
699 views83 pages

Attendance/Access Control CS SDK Manual: Date: September, 2019

This document provides an overview and instructions for using the Hysoon CS SDK Manual for attendance and access control. It describes the SDK's functions for connecting to and managing devices, registered user data, recorded logs, and device settings and information. The manual is designed for SDK version 2.0 and users are advised to refer to it in detail as the company takes no responsibility for any data loss.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 83

Attendance/Access Control

CS SDK Manual

DATE: September,2019
Statement:
 Please refer to the manual in detail. Hysoon have no responsibility for data loss caused by
users or programs.
 This manual is designed on the basis of SDK 2.0.

Content
Attendance/Access Control.........................................................................................................................- 1 -
CS SDK Manual..........................................................................................................................................- 1 -
Statement:.........................................................................................................................................................2
Content...............................................................................................................................................................3
1 .SDK Description............................................................................................................................................9
2 .FK623Attend.DLL Interface........................................................................................................................11
2.1 Connection and Disconnection of Devices...........................................................................................11
2.1.1 * ConnectComm..................................................................................................................11
2.1.2 ConnectNet..........................................................................................................................12
2.1.3 ConnectUSB........................................................................................................................12
2.1.4 DisConnect..........................................................................................................................13
2.2 Management of Registered Data..........................................................................................................13
2.2.1 GetEnrollData......................................................................................................................13
2.2.2 GetEnrollData_StringID......................................................................................................14
2.2.3 PutEnrollData......................................................................................................................15
2.2.4 PutEnrollData_StringID......................................................................................................16
2.2.5 SaveEnrollData....................................................................................................................16
2.2.6 DeleteEnrollData.................................................................................................................17
2.2.7 USBReadAllEnrollDataFromFile........................................................................................17
2.2.8 *USBReadAllEnrollDataCount...........................................................................................17
2.2.9 USBGetOneEnrollData........................................................................................................18
2.2.10 USBGetOneEnrollData_StringID......................................................................................19
2.2.11 USBSetOneEnrollData......................................................................................................19
2.2.12 USBSetOneEnrollData_StringID......................................................................................20
2.2.13 USBWriteAllEnrollDataToFile..........................................................................................21
2.2.14 ReadAllUserID..................................................................................................................21
2.2.15 GetAllUserID.....................................................................................................................22
2.2.16 GetAllUserID_StringID.....................................................................................................22
2.2.17 EmptyEnrollData...............................................................................................................23
2.2.18 ClearKeeperData................................................................................................................23
2.2.19 BenumbAllManager..........................................................................................................24
2.2.20 *GetVerifyMode................................................................................................................24
2.2.21 *SetVerifyMode.................................................................................................................24
2.2.22 *USBGetOneEnrollData_1................................................................................................24
2.2.23 *USBGetOneEnrollDataWithString_1..............................................................................25
2.2.24 *USBSetOneEnrollData_1................................................................................................26
2.2.25 *USBSetOneEnrollDataWithString_1...............................................................................27
2.2.26 *USBReadAllEnrollDataFromFile_Color.........................................................................28
2.2.27 *USBWriteAllEnrollDataToFile_Color............................................................................28
2.2.28 *USBGetOneEnrollData_Color........................................................................................29
2.2.29 *USBGetOneEnrollDataWithString_Color....................................................................30
2.2.30 *USBSetOneEnrollData_Color.........................................................................................31
2.2.31 *USBSetOneEnrollDataWithString_Color.......................................................................31
2.3 Management of Recorded Data...........................................................................................................32
2.3.1 *LoadSuperLogData............................................................................................................32
2.3.2 *USBLoadSuperLogDataFromFile.....................................................................................33
2.3.3 *GetSuperLogData..............................................................................................................33
2.3.4 *EmptySuperLogData.........................................................................................................34
2.3.5 LoadGeneralLogData..........................................................................................................35
2.3.6 USBLoadGeneralLogDataFromFile....................................................................................35
2.3.7 GetGeneralLogData.............................................................................................................36
2.3.8 EmptyGeneralLogData........................................................................................................38
2.3.9 * GetGeneralLogData_1......................................................................................................38
2.3.10 * GetSuperLogData_1.......................................................................................................40
2.3.11 *GetRealTimeInfo.............................................................................................................42
2.3.12 *SetRealTimeInfo..............................................................................................................42
2.3.13 LoadGeneralLogDataByDate............................................................................................42
2.4 Management of Devices........................................................................................................................43
2.4.1 *EnableDevice.....................................................................................................................43
2.4.2 *PowerOnAllDevice............................................................................................................43
2.4.3 *PowerOffDevice................................................................................................................43
2.4.4 GetDeviceTime....................................................................................................................43
2.4.5 SetDeviceTime.....................................................................................................................44
2.4.6 GetDeviceStatus..................................................................................................................44
2.4.7 GetDeviceInfo......................................................................................................................45
2.4.8 SetDeviceInfo......................................................................................................................46
2.4.9 GetProductData....................................................................................................................46
2.4.10 *GetDeviceVersion............................................................................................................47
2.4.11 *GetDeviceTime_1............................................................................................................47
2.4.12 *SetDeviceTime_1.............................................................................................................47
2.5 Management of Registrants` Information..........................................................................................48
2.5.1 *EnableUser.........................................................................................................................48
2.5.2 ModifyPrivilege...................................................................................................................48
2.5.3 GetUserName......................................................................................................................49
2.5.4 SetUserName.......................................................................................................................49
2.5.5 *GetNewsMessage..............................................................................................................50
2.5.6 *SetNewsMessage...............................................................................................................50
2.5.7 *GetUserNewsID.................................................................................................................50
2.5.8 *SetUserNewsID.................................................................................................................51
2.6 Management of Bells............................................................................................................................51
2.6.1 GetBellTime.........................................................................................................................51
2.6.2 *GetBellTimeWithString.....................................................................................................51
2.6.3 SetBellTime.........................................................................................................................52
2.6.4 *SetBellTimeWithString......................................................................................................52
2.7 *Post & Shift Management..................................................................................................................52
2.7.1 GetOneShiftInfo..................................................................................................................52
2.7.2 SetOneShiftInfo...................................................................................................................53
2.7.3 GetOnePostInfo...................................................................................................................54
2.7.4 SetOnePostInfo....................................................................................................................54
2.7.5 GetUserInfo.........................................................................................................................55
2.7.6 SetUserInfo..........................................................................................................................56
2.7.7 GetPostShiftInfo..................................................................................................................56
2.7.8 SetPostShiftInfo...................................................................................................................57
2.7.9 GetUserInfoEx.....................................................................................................................57
2.7.10 SetUserInfoEx....................................................................................................................57
2.8 Photo Management...............................................................................................................................58
2.8.1 GetEnrollPhoto....................................................................................................................58
2.8.2 SetEnrollPhoto.....................................................................................................................58
2.8.3 DeletetEnrollPhoto..............................................................................................................58
2.9 Control of Doors...................................................................................................................................59
2.9.1 GetDoorStatus......................................................................................................................59
2.9.2 SetDoorStatus......................................................................................................................59
2.9.3 GetTimeZone.......................................................................................................................59
2.9.4 SetTimeZone........................................................................................................................60
2.9.5 GetUserWeekPassTime.......................................................................................................60
2.9.6 SetUserWeekPassTime........................................................................................................60
2.9.7 FK_ExtCommand................................................................................................................61
2.9.8 *GetPassTime......................................................................................................................61
2.9.9 *GetPassTimeWithString.....................................................................................................61
2.9.10 *SetPassTime.....................................................................................................................62
2.9.11 *SetPassTimeWithString...................................................................................................62
2.9.12 *GetUserPassTime.............................................................................................................62
2.9.13 *GetUserPassTimeWithString...........................................................................................63
2.9.14 *SetUserPassTime.............................................................................................................64
2.9.15 *SetUserPassTimeWithString............................................................................................64
2.9.16 *GetGroupPassTime..........................................................................................................65
2.9.17 *GetGroupPassTimeWithString........................................................................................65
2.9.18 *SetGroupPassTime...........................................................................................................66
2.9.19 *SetGroupPassTimeWithString.........................................................................................66
2.9.20 *GetGroupMatch...............................................................................................................67
2.9.21 *GetGroupMatchWithString.............................................................................................67
2.9.22 *SetGroupMatch................................................................................................................68
2.9.23 *SetGroupMatchWithString..............................................................................................68
2.10 *Summer time management (deleted)...............................................................................................68
2.10.1 GetAdjustInfo....................................................................................................................68
2.10.2 SetAdjustInfo.....................................................................................................................69
2.11 * Equipment information management............................................................................................69
2.11.1 GetServerNetInfo...............................................................................................................69
2.11.2 SetServerNetInfo...............................................................................................................70
2.11.3 SetUSBModel....................................................................................................................70
2.12 Card/Password(Refer to CardPwdReference.cs).............................................................................70
2.12.1 string card to byte array.....................................................................................................70
2.12.2 string password to byte array.............................................................................................70
2.12.3 Show card and password(refer to function of below)........................................................72
2.13 The Common Interface of JsonCommand........................................................................................72
2.13.1 Import function..................................................................................................................73
2.13.2 Enter Enroll........................................................................................................................73
2.13.3 Set Lock Control................................................................................................................74
2.13.4 Set Attend Status................................................................................................................75
2.13.5 Get Lock Control Params..................................................................................................75
2.13.6 Get Attend Status...............................................................................................................76
2.13.7 JsonCommand using attentions.........................................................................................76
2.14 Notes on use of DLL interface............................................................................................................76
3 RealSvrOcxTcp.ocx Component...................................................................................................................79
3.1 Introduction to the use of Demo:.........................................................................................................79
3.2 Introduction to control usage...............................................................................................................79
4 Appendix.......................................................................................................................................................83
4.1 Structures..............................................................................................................................................83
4.1.1 BELLINFO Structure..........................................................................................................83
4.1.2 PASSCTRLTIME Structure.................................................................................................83
4.1.3 USERPASSINFO Structure.................................................................................................84
4.1.4 GROUPPASSINFO Structure..............................................................................................84
4.1.5 GROUPMATCHINFO Structure.........................................................................................84
4.1.6 ADJUSTNFO Structure.......................................................................................................84
4.1.7 REALTIMEINFO Structure................................................................................................85
4.1.8 SetUSBModel Constants.....................................................................................................85
4.2 Error Code Table..................................................................................................................................86
5 Version..........................................................................................................................................................87
6.FAQs............................................................................................................................................................. 88
6.1 How to Obtain All Information of All Users?.....................................................................................88
6.2 How to show Card/Passwords in the form of strings?.......................................................................88
6.3 How to push User Card/Password to Machine?.................................................................................88
1 .SDK Description
This manual describes an OEM program product FK623Attend which provides interfaces for
development of applications using FKxxx series fingerprint time attendance terminals .
FK623Attend consists of, FK623Attend.dll FKAttend.dll and FKViaDev.dll for development of
programs.
FK623Attend.dll is an interface DLL for connection of the devices with the applications.
FKAttend. DLL is a concrete implementation interface, for FK623Attend. DLL call
FKViaDev.dll is a communication DLL for communicating with the devices ,for FKAttend.
DLL call
The interface is composed of seven parts.
1 Connection and disconnection of devices – To connect and disconnect with the devices
2 Management of registered data – To manage the registered data, i.e., to read, write and

delete the data of the users(registrants) registered in the devices


3 Management of recorded data – To read out the data relating to the management and the

attendances recorded in the devices


4 Management of registrants` information – To get or set the registrants` names, messages and

other information
5 Management of devices – To get or set the time and status of the devices
6 Management of bells – To get or set the time of the bells
7 Control of doors – To get or set the information relating to the control of doors

Samples:
Running FK623AttendDllCSSample.exe and FKRealSvrOcxTcpCSSample.exe test device interface
in Execute&Dll folder. The device should be in the same LAN as the computer . device port defaults
to 5005. device serve port defaults to 7005 when running FKRealSvrOcxTcpCSSample.exe to test
Real_time monitoring function. Because the host port of the FKRealSvrOcxTcpCSSample.exe
defaults to 7005.
Details of developing code can refer to Samples folder. You can use visual studio to open the interior
code file for reference.
8
2 .FK623Attend.DLL Interface
Note: the sections in * are additional functions or has been

abandoned. Please refer to the actual product

2.1 Connection and Disconnection of Devices

2.1.1 * ConnectComm
long ConnectComm(
long anMachineNumber,
long anComPort,
Type long anBaudRate,
BSTR astrTelNumber,
long anWaitDialTime,
long anLicense)
Functionalit To open the COM port to connect to the device via the RS-232/485 cable.
y
anMachineNumber Number granted to the device to be connected with
anComPort Sequence number of COM port
anBaudRate Communication baudrate
Parameter
astrTelNumber Telephone number
anWaitDialTime Standby time for phone connection (the unit is ms.)
anLicense License for connection
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.

1 “astrTelNumber” and “anWaitDialTime” are used when connecting to the device


through the modem. Enter 0 when the modem is not used.
Others
2 “nLicense” is a license number granted to the device for the connection. Enter the
correct license nuber, or it is unable to connect with the device.
2.1.2 ConnectNet
long ConnectNet(
long anMachineNumber,
BSTR astrIpAddress,
long anPort,
Type
long anTimeOut,
long anProtocolType,
long anNetPassword,
long anLicense)
Functionalit To open the network port to connect with the device via the network cable.
y
anMachineNumber Number granted to the device to be connected with
astrIpAddress TCP/IP address of the device to be connected with
anPort Sequence number of network port
Parameter anTimeOut Standby time for the connection (the unit is ms.)
anProtocolType Kind of protocol
anNetPassword Network password
anLicense License for connection
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
1 To return error codes after waiting as long as “nTimeOut” designates if the relevant
device has not been connected to the network,
2 “nProtocolType” designates the kind of protocol used for the network connection.
Others
1 : PROTOCOL_TCPIP - TCP/IP communication

2 : PROTOCOL_UDP - UDP communication (Deprecated)

3 “nLicense” has the same meaning as “ConnectComm”.

2.1.3 ConnectUSB
Type long ConnectUSB(
long anMachineNumber,
long anLicense)
Functionality To open the USB port to connect with the device via the USB cable.
Parameter anMachineNumber Number granted to the device to be connected with
anLicense License for connection
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 “nLicense” has the same meaning as “0 ConnectComm”.

2.1.4 DisConnect
Type void DisConnect()
Functionalit To disconnect with the device
y
Parameter
Return None
Others 1 To disconnect with the device linked by ConnectComm or ConnectNet and close
the corresponding open ports

2.2 Management of Registered Data

2.2.1 GetEnrollData
Type long GetEnrollData(
long anEnrollNumber,
long anBackupNumber,
long* apnMachinePrivilege,
long* apnEnrollData,
long* apnPassWord)
Functionalit To get the authorization and enrollment data of the registrants registered in the device
y
Parameter anEnrollNumber Registration number
anBackupNumber Number representing the kind of the enrollment data
apnMachinePrivilege Variable pointer to the authorization of the registrants
apnEnrollData Variable pointer to the fingerprint data
apnPassWord Variable pointer of data relating to password or cards
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 When the execution successes, the corresponding enrollment data are returned to
“apnEnrollData” or “apnPassWord” according to “anBackupNumber”.
2 For the meanings of the operational authorization returned as
“apnMachinePrivilege”, please refer to “ModifyPrivilege”.
3 Every registrant can have three fingerprints, a password or a card number registered
in the devices. The kind of these data is reflected in “anBackupNumber”.
The meaning of "anBackupNumber" is as follows:
0: BACKUP_FP_0 - represents the first fingerprint registered
......
9: BACKUP_FP_9 - represents the ninth fingerprint registered
10: BACKUP_PSW - represents the password registered
11: BACKUP_CARD - represents the card registered
12: BACKUP_FACE - represents a registered face
13:BACKUP_PALMVEIN_0 - represents the first palm print registered
14:BACKUP_PALMVEIN_1 - represents the second palm print registered

2.2.2 GetEnrollData_StringID
Type public static extern int FK_GetEnrollData_StringID(int anHandleIndex, string
apEnrollNumber, int anBackupNumber, ref int apnMachinePrivilege, byte[]
apEnrollData, ref int apnPassWord);

Functionality To get the enrollment data in the type of a string. It is equal to GetEnrollData.
Parameter anHandleIndex
apEnrollNumber Registration number
anBackupNumber Number classifying the kind of the enrollment data
apnMachinePrivilege Variable pointer of operational authorization of the registrants
apstrEnrollData Variable pointer of the enrollment datas
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The enrollment data is alwayse returned to “apstrEnrollData”
2 For other parameters, please refer to “GetEnrollData”.

2.2.3 PutEnrollData
Type long PutEnrollData(
long anEnrollNumber,
long anBackupNumber,
long anMachinePrivilege,
long* apnEnrollData,
long anPassword)
Functionality To transmit to the device the enrollment data and operational authorization of the
persons to be registereds
Parameter anEnrollNumber Registration number
anBackupNumber Number classifying the kind of the enrollment data
anMachinePrivilege Operational authorization of the registrant
apnEnrollData Variable pointer of the fingerprint data
anPassword Password or card number data
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 As for “anBackupNumber”, please refer to “GetEnrollData”.
2 As for “anMachinePrivilege”, please refer to “ModifyPrivilege”
3 “apnEnrollData” or “apnPassword” data are transferred according to
“anBackupNumber”.
4 The transferred data will be registered in the device when you should execute the
command “SaveEnrollData” after execution of PutEnrollData. For the command
“SaveEnrollData”, please refer to “SaveEnrollData”.
2.2.4 PutEnrollData_StringID
Type public static extern int FK_PutEnrollData_StringID(int anHandleIndex, string
apEnrollNumber, int anBackupNumber, int anMachinePrivilege, byte[] apEnrollData,
int anPassWord);

Functionality To contain the enrollment data in the type of a string. It is equal to PutEnrollData.
Parameter anHandleIndex,
apEnrollNumber Registration number
anBackupNumber Number classifying the kind of the enrollment data
anMachinePrivilege Operational authorization of the registrants
apEnrollData Variable pointer of the enrollment data
anPassWord
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The enrollment data are alwayse are contained by “apstrEnrollData”.
2 As for the other parameters, please refer to “PutEnrollData”.

2.2.5 SaveEnrollData
Type long SaveEnrollData()
Functionality To register in the device the enrollment data transferred with a command
“PutEnrollData” or “PutEnrollDataWithString”.
Parameter
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 Before using this command, you should transmit to the device the data to be
registered with a command “PutEnrollData” or “PutEnrollDataWithString”.

2.2.6 DeleteEnrollData
Type long DeleteEnrollData(
long anEnrollNumber,
long anBackupNumber)
Functionality To delete the designated enrollment data from the device
Parameter anEnrollNumber Registration number
anBackupNumber Number classifying the kind of enrollment data
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The command fails to be executed if the enrollment data do not exist in the device.

2.2.7 USBReadAllEnrollDataFromFile
Type long USBReadAllEnrollDataFromFile(BSTR astrFilePath)
Functionality To read the enrollment data into the internal memory of the PC from the file
composed in the USB memory, and analyse them
Parameter astrFilePath File name
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The command fails to be executed when the structure of the file is not correct.
2 To learn the method of using the USB memory in the device, please refer to the
relevant user`s manual.

2.2.8 *USBReadAllEnrollDataCount
Type long USBReadAllEnrollDataCount(long *apnValue)
Functionality To return into the internal memory of the PC the number of the enrollment data read
by using a command “USBReadAllEnrollDataFromFile”.
Parameter apnValue Variable pointer of the enrollment data
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 You should first read the data out with a command
USBReadAllEnrollDataFromFile” before executing this command.

2.2.9 USBGetOneEnrollData
Type long USBGetOneEnrollData(
long* apnEnrollNumber,
long* apnBackupNumber,
long* apnMachinePrivilege,
long* apnEnrollData,
long* apnPassWord,
long* apnEnableFlag,
BSTR* apstrEnrollName)
Read a single access through "USBReadAllEnrollDataFromFile" command to the
Functionality
registration data
apnEnrollNumber Registration number
Variable pointer of number classifying the kind of
apnBackupNumber
enrollment data
apnMachinePrivilege Variable pointer to the authorization of the registrants
Parameter apnEnrollData Variable pointer to the enrolled data
apnPassWord Variable pointer of data relating to password or cards
apnEnableFlag User enabled flags
apstrEnrollName User Name
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
1 This instruction and "GetEnrollData" instruction similar and different parts are
not directly connected to the device, applicable to the U disk.For a description of
the "PutEnrollData" directive, refer to "PutEnrollData"
Others 2 returns the code "RUNERR_LOG_END" after all the data is obtained
3. If no command "USBReadAllEnrollDataFromFile" read data to the PC, then
this command will not be able to perform
Please refer to "EnableUser" for the meaning of apnEnableFlag.

2.2.10 USBGetOneEnrollData_StringID
public static extern int FK_USBGetOneEnrollData_StringID(int anHandleIndex,
[MarshalAs(UnmanagedType.LPStr)] ref string apEnrollNumber, ref int
Type apnBackupNumber, ref int apnMachinePrivilege, byte[] apEnrollData, ref int
apnPassWord, ref int apnEnableFlag, [MarshalAs(UnmanagedType.LPStr)] ref string
apstrEnrollName)
Functiona A single string type registration data, equivalent to "USBGetOneEnrollData"
lity
anHandleIndex
apEnrollNumber Registration number
Variable pointer of number classifying the kind of
apnBackupNumber
enrollment data
Variable pointer to the authorization of the
Parameter apnMachinePrivilege
registrants
apEnrollData Variable pointer to the enrolled data
.apnPassWord User PassWord
apnEnableFlag User enabled flags
apstrEnrollName User Name
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.

1 The directive is similar to "GetEnrollDataWithString" function, the difference is that


Others
USBGetOneEnrollDataWithString for usb communication

2.2.11 USBSetOneEnrollData
long USBSetOneEnrollData(
long anEnrollNumber,
long anBackupNumber,
long anMachinePrivilege,
Type
long* apnEnrollData,
long anPassWord,
long anEnableFlag,
BSTR anEnrollName)
Functiona
Format individual user data in PC memory
lity
Parameter apEnrollNumber Registration number
Variable pointer of number classifying the kind of
anBackupNumber
enrollment data
anMachinePrivilege Variable pointer to the authorization of the
registrants
apnEnrollData Variable pointer to the enrolled data
anPassWord Variable pointer of data relating to password or cards
anEnableFlag User enabled flags
anEnrollName User Name
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
1.This instruction is similar to the PutEnrollData function except that it is only used for
Others usb drive communication
2. Please refer to "EnableUser" for the explanation of "anEnableFlag".

2.2.12 USBSetOneEnrollData_StringID
public static extern int FK_USBSetOneEnrollData_StringID(int anHandleIndex, string
Type apEnrollNumber, int anBackupNumber, int anMachinePrivilege, byte[] apEnrollData,
int anPassWord, int anEnableFlag, string astrEnrollName);
Functiona
Format single user data in PC memory (support string number)
lity
anHandleIndex
anEnrollNumber Registration number
Variable pointer of number classifying the kind of enrollment
anBackupNumber
data
Parameter anMachinePrivilege Variable pointer to the authorization of the registrants
apEnrollData Variable pointer to the enrolled data
anEnableFlag User enabled flags
astrEnrollName User Name
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
This instruction is similar to the PutEnrollDataWithString function except that it is only
Others
used for usb drive communication.

2.2.13 USBWriteAllEnrollDataToFile
Type long USBWriteAllEnrollDataToFile(BSTR astrFilePath)
Functionality To file the enrollment data formed in the internal memory of the PC by
“USBSetOneEnrollData” or “USBSetOneEnrollDataWithString”
Parameter astrFilePath File name
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 Before the execution of the command, there should be the data formed by the
command “USBSetOneEnrollData” or “USBSetOneEnrollDataWith String”.
2 For the method of using USB memories in the devices, please refer to the
corresponding user`s manuals.

2.2.14 ReadAllUserID
Type long ReadAllUserID()
Functionalit To read into the internal memory of the PC the information relating to all the
y registrants enrolled in the device
Parameter
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The read information can be got with a command “GetAllUserID”. As for
“GetAllUserID”, please refer to “0GetAllUserID”.
2 The command fails to be executed if the enrolled registrant does not exist.

2.2.15 GetAllUserID
Type long GetAllUserID(
long* apnEnrollNumber,
long* apnBackupNumber,
long* apnMachinePrivilege,
long* apnEnableFlag)
Functionalit To get one by one the registrants` information read with “ReadAllUserID”.
y
Parameter apnEnrollNumber Variable pointer of the registration number
apnBackupNumber Variable pointer of number classifying the kind of enrollment
data
apnMachinePrivileg Variable pointer of the operational authorization of the
e registrant
apnEnableFlag Variable pointer of the flag enabling the registrant to use the
device
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The command fails to be executed if there is no registrant`s information read by
“ReadAllUserID”.
2 Code “RUNERR_LOG_END” is returned after the data are all got.
3 For the meaning of the operational authorization returned with
“apnMachinePrivilege”, please refer to “0 ModifyPrivilege”.
4 For the meaning of “apnEnableFlag”, please refer to “0 EnableUser”.

2.2.16 GetAllUserID_StringID
Type public static extern int FK_GetAllUserID_StringID(
int anHandleIndex,
[MarshalAs(UnmanagedType.LPStr)] ref string apEnrollNumber,
ref int apnBackupNumber,
ref int apnMachinePrivilege,
ref int apnEnableFlag);
Functionalit To get registrants ID information with sting.
y
Parameter apnEnrollNumber Variable pointer of the registration number
apnBackupNumber Variable pointer of number classifying the kind of enrollment
data
apnMachinePrivileg Variable pointer of the operational authorization of the
e registrant
apnEnableFlag Variable pointer of the flag enabling the registrant to use the
device
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 Before the execution of this command, it is necessary to backup the registered data.

2.2.17 EmptyEnrollData
Type long EmptyEnrollData()
Functionality To delete all the registered data from the device
Parameter
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 Before the execution of this command, it is necessary to backup the registered data.

2.2.18 ClearKeeperData
Type long ClearKeeperData()
Functionality Clear all data on equipment including registration data, attendance record,
management record
Parameter
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others Please back up all information before executing this command

2.2.19 BenumbAllManager
Type long BenumbAllManager()
Functionalit To delete all the information relating to the administrative authorization in the
y enrollment data and to set the registrants to general users
Parameter
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others

2.2.20 *GetVerifyMode
Type long GetVerifyMode(long anEnrollNumber, long *apnVerifyMode)
Functionality Gets the authentication method for a single user
anEnrollNumber Registration number
Parameter
apnVerifyMode Variable pointer of the verification mode
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
Others

2.2.21 *SetVerifyMode
Type long SetVerifyMode(long anEnrollNumber, long anVerifyMode)
Functionality Set authentication for individual users
anEnrollNumber Registration number
Parameter
apVerifyMode Variable pointer of the verification mode
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
Others

2.2.22 *USBGetOneEnrollData_1
long USBGetOneEnrollData_1(
long* apnEnrollNumber,
long* apnBackupNumber,
long* apnVerifyMode,
Type long* apnMachinePrivilege,
long* apnEnrollData,
long* apnPassWord,
long* apnEnableFlag,
BSTR* apstrEnrollName)
Functiona
Use instructions "USBReadAllEnrollDataFromFile" read user information
lity
apnEnrollNumber Registration number
Variable pointer of number classifying the kind of
apnBackupNumber
enrollment data
apnVerifyMode Variable pointer of the verification mode
Variable pointer of the operational authorization of
apnMachinePrivilege
Parameter the registrant
apnEnrollData Variable pointer of the fingerprint data
apnPassWord Variable pointer of data relating to password or cards
Variable pointer of the flag enabling the registrant to
apnEnableFlag
use the device
apstrEnrollName User Name
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
1 the similar and different part of this instruction and GetEnrollData instruction is not
directly connected to the device, but only used USB memory. For the instruction of
GetEnrollData instruction, please refer to "2.2.1 GettEnrollData".
Others 2 when all the data is retrieved, return the code "RUNERR_LOG_END"
3 when the computer without using the command "USBReadAllEnrollDataFromFile"
import registration information, order will be failure
4 the meaning of the command "apnEnableFlag" please refer to "2.4.1 EnableUser"

2.2.23 *USBGetOneEnrollDataWithString_1
long USBGetOneEnrollDataWithString_1(
long* apnEnrollNumber,
long* apnBackupNumber,
long* apnVerifyMode,
Type
long* apnMachinePrivilege,
BSTR* apstrEnrollData,
long* apnEnableFlag,
BSTR* apnEnrollName
Functiona Similar to "USBGetOneEnrollData" instruction, in the form of text column to obtain the
lity registration information
apnEnrollNumber Registration number
Variable pointer of number classifying the kind of
apnBackupNumber
enrollment data
apnVerifyMode Variable pointer of the verification mode
Variable pointer of the operational authorization of
Parameter apnMachinePrivilege
the registrant
apnEnrollData Variable pointer to the enrolled data
Variable pointer of the flag enabling the registrant to
apnEnableFlag
use the device
apstrEnrollName User Name
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
1 The only difference between this instruction and "GetEnrollDataWithString"
instruction is that it is not connected directly, but only USES USB memory. For the
Others instruction of "GetEnrollDataWithString", please refer to "2.2.2
GetEnrollDataWithString".
2 descr refer to "2.2.9 USBGetOneEnrollData"

2.2.24 *USBSetOneEnrollData_1
long USBSetOneEnrollData(
long anEnrollNumber,
long anBackupNumber,
long anVerifyMode,
Type long anMachinePrivilege,
long* apnEnrollData,
long anPassWord,
long anEnableFlag,
BSTR astrEnrollName)
Functiona In order to convert the user's operation permission and registration data into USB
lity memory files, formalize on PC memory
anEnrollNumber Registration number
Variable pointer of number classifying the kind of
anBackupNumber
enrollment data
anVerifyMode Variable pointer of the verification mode
Parameter apMachinePrivilege Operational authorization of the registrants
apnEnrollData Variable pointer of the fingerprint data
anPassWord Variable pointer of data relating to password or cards
apEnableFlag User enabled flags
astrEnrollName User Name
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
1 This instruction is similar to the PutEnrollData instruction in that it does not directly
connect to the device, but only USES USB memory. For the instruction of
Others
PutEnrollData instruction, please refer to "2.2.3 PutEnrollData".
2 Please refer to "2.4.1 EnableUser" for the explanation of "anEnableFlag".
2.2.25 *USBSetOneEnrollDataWithString_1
long USBSetOneEnrollDataWithString_1(
long anEnrollNumber,
long anBackupNumber,
long anVerifyMode,
Type
long anMachinePrivilege,
BSTR astrEnrollData,
long anEnableFlag,
BSTR astrEnrollName)
Functiona Like USBSetOneEnrollData instruction, the registration information in the form of text
lity columns
anEnrollNumber Registration number
Variable pointer of number classifying the kind of
anBackupNumber
enrollment data
Parameter anVerifyMode Variable pointer of the verification mode
apMachinePrivilege Operational authorization of the registrants
astrEnrollData Variable pointer to the enrolled data
apEnableFlag User enabled flags
astrEnrollName User Name
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
1 This instruction is similar and different from PutEnrollDataWithString instruction in
that it does not directly connect to the device, but only USES USB memory. For the
Others instruction of PutEnrollDataWithString instruction, please refer to "2.2.4
PutEnrollDataWithString".
2 content please refer to the "2.2.9 USBSetOneEnrollData"

2.2.26 *USBReadAllEnrollDataFromFile_Color
Type long USBReadAllEnrollDataFromFile_Color(BSTR astrFilePath)
Functiona
Read the registration data in USB to PC memory for analysis
lity
Parameter astrFilePath File Path
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
1 command cannot be executed when file structure is not correct
Others 2 Please refer to the relevant files for using USB memory on the device

2.2.27 *USBWriteAllEnrollDataToFile_Color
Type long USBWriteAllEnrollDataToFile_Color(BSTR astrFilePath, long anNewsKind)
Functiona Created by USBSetOneEnrollData or USBSetOneEnrollDataWithString instructions on
lity PC memory form of registration data files
astrFilePath File Path
Parameter NewKind = 0x02 : 60th Chinese Chars
anNewsKind
NewKind = 0x01 : 24 Chinese Chars
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
1 In the instructions before, first get useful USBSetOneEnrollData or
Others USBSetOneEnrollDataWithStrIng instructions do formal data well.
2 Please refer to the relevant files for using USB memory on the device

2.2.28 *USBGetOneEnrollData_Color
long USBGetOneEnrollData_Color (
long* apnEnrollNumber,
long* apnBackupNumber,
long* apnMachinePrivilege,
Type long* apnEnrollData,
long* apnPassWord,
long* apnEnableFlag,
BSTR* apstrEnrollName,
long anNewsKind)
Functionali
Read the registration data obtained through USBReadAllEnrollDataFromFile instructions.
ty
Parameter apnEnrollNumber Registration number
apnBackupNumber Variable pointer of number classifying the kind of enrollment data
apnMachinePrivilege Variable pointer of the operational authorization of the registrant
apnEnrollData Variable pointer of the fingerprint data
apnPassWord Variable pointer of data relating to password or cards
apnEnableFlag Variable pointer of the flag enabling the registrant to use the device
apstrEnrollName User Name
anNewsKind Message setting type
Success returns 1; failure returns the corresponding error code. For details of error codes,
Return
please refer to “Error Code Table”.

1 This instruction is similar to the GetEnrollData instruction. The different part is not
directly connected, only using USB memory. About the instruction of GetEnrollData refer
to "2.2.1 GetEnrollData".
Others 2 Return RUNERR_LOG_END after retrieving the data.
3 If by USBReadAllEnrollDataFromFile instructions on your computer doesn't read
registration information number according to the instructions by failure.
4 Please refer to 2.4.1 EnableUser for the explanation of "apnEnableFlag".

2.2.29 *USBGetOneEnrollDataWithString_Color

long USBGetOneEnrollDataWithString_Color (
long* apnEnrollNumber,
long* apnBackupNumber,
long* apnMachinePrivilege,
Type
BSTR* apstrEnrollData,
long* apnEnableFlag,
BSTR* apstrEnrollName,
long anNewsKind)
Functionalit Similar to USBGetOneEnrollData instructions, in the form of text column to obtain the
y registration information.
apnEnrollNumber Registration number
Variable pointer of number classifying the kind of enrollment
apnBackupNumber
data
apnMachinePrivilege Variable pointer of the operational authorization of the registrant
Parameter
apstrEnrollData Variable pointer to the enrolled data
Variable pointer of the flag enabling the registrant to use the
apnEnableFlag
device
apstrEnrollName User Name
anNewsKind Message setting type
Success returns 1; failure returns the corresponding error code. For details of error codes,
Return
please refer to “Error Code Table”..
1 This instruction is similar to the GetEnrollDataWithString instruction, except that it
only USES USB memory instead of direct connection. For the GetEnrollDataWithString
Others
instruction, please refer to "2.2.2 GetEnrollDataWithString".
2 descr please reference "2.2.9 USBGetOneEnrollData".

2.2.30 *USBSetOneEnrollData_Color

long USBSetOneEnrollData_Color (
long anEnrollNumber,
long anBackupNumber,
long anMachinePrivilege,
Type long* apnEnrollData,
long anPassWord,
long anEnableFlag,
BSTR astrEnrollName,
long anNewsKind)
Functionalit For the user's operation rights and registration data into USB memory files, formalized
y anEnrollNumber
in PC memory. Registration number
anBackupNumber Variable pointer of number classifying the kind of enrollment
anMachinePrivilege Operational
data authorization of the registrants
apnEnrollData Variable pointer of the fingerprint data
Parameter
anPassWord Variable pointer of data relating to password or cards
anEnableFlag User enabled flags
astrEnrollName User Name
anNewsKind Message setting type
Success returns 1; failure returns the corresponding error code. For details of error
Return codes, please refer to “Error Code Table”.
1 This instruction and PutEnrollData instruction are similar and different in that they do
not connect directly, but only use USB storage. For instructions on PutEnrollData
Others
instruction, please refer to 2.2.3 PutEnrollData.
2 Please refer to 2.4.1 EnableUser for the explanation of "anEnableFlag".

2.2.31 *USBSetOneEnrollDataWithString_Color

long USBSetOneEnrollDataWithString_Color(
long anEnrollNumber,
long anBackupNumber,
long anMachinePrivilege,
Type
BSTR astrEnrollData,
long anEnableFlag,
BSTR astrEnrollName,
long anNewsKind)
Functionalit Like USBSetOneEnrollData instruction, the registration information in the form of text
y columns.
anEnrollNumber Registration number
anBackupNumber Variable pointer of number classifying the kind of enrollment data
anMachinePrivilege Operational authorization of the registrants
Parameter astrEnrollData Variable pointer to the enrolled data
anEnableFlag User enabled flags
astrEnrollName User Name
anNewsKind Message setting type
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”. .
Others 1 This instruction is similar to PutEnrollDataWithString instruction, the different part is
not directly connected, only USB memory. For the instruction of
PutEnrollDataWithString, please refer to "2.2.4 PutEnrollDataWithString".
2 please reference "2.2.11 USBSetOneEnrollData".
2.3 Management of Recorded Data

2.3.1 *LoadSuperLogData
Type long LoadSuperLogData(long anReadMark)
Functionalit To read the management data from the device into the internal memory of the PC and
y analyse them
Parameter anReadMark Read mark flag
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The read data can be got by “GetSuperLogData” Please refer to
“GetSuperLogData”.
2
anReadMark = 1 permits reading the newly-added recorded data alone.
anReadMark = 0 permits reading all of the recorded data.

2.3.2 *USBLoadSuperLogDataFromFile
Type long USBLoadSuperLogDataFromFile(char *apstrFilePath)
Functionalit To read the management data from the the management data file formed in the USB
y memory into the internal memory of the PC and analyse them
Parameter apstrFilePat File name
h
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 Similar to LoadSuperLogData, this command can be used to get the
administrative data when the device has not been connected with the
PC.
2 The incorrect structures of the files result in a failure of the execution.
3 For the method of using USB memories in the devices, please refer to
the corresponding user`s manual.
2.3.3 *GetSuperLogData
Type long GetSuperLogData(long *apnSEnrollNumber, long *apnGEnrollNumber, long
*apnManipulation, long *apnBackupNumber, DATE *apnDateTime)
Functionality To get, one by one, the management data read into the memory of the PC with a
command “LoadSuperLogData” or “USBLoadSuperLogDataFromFile”.
Parameter apnSEnrollNumber Variable pointer of the registration number of the manager
apnGEnrollNumber Variable pointer of the registration number of the managed
apnManipulation Variable pointer of the identification number of the managed
apnBackupNumber Variable pointer of the number classifying the kind of the
enrollment data of the managed person
apnDateTime Variable pointer of the time and the date when the management
was recorded
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 After all the data are got, a code “RUNERR_LOG_END” is return.
2 This command fails to be executed if “LoadSuperLogData” or
“USBLoadSuperLogDataFromFile” is not first executed.
3 The following values are returned to “apnManipulation”:
3 : LOG_ENROLL_USER - To register general users
4 : LOG_ENROLL_MANAGER - To register manager(s)
5 : LOG_ENROLL_DELFP - To delete fingerprint data
6 : LOG_ENROLL_DELPASS - To delete passwords
7 : LOG_ENROLL_DELCARD - To delete card data
8 : LOG_LOG_ALLDEL - To delete all the management data 9 :
LOG_SETUP_SYS - To modify the information about the devices
10 : LOG_SETUP_TIME - To modify the time of the devices
11 : LOG_SETUP_LOG - To modify the limit values of the management data
12 : LOG_SETUP_COMM - To modify the communication modes 13 :
LOG_PASSTIME - To set the duration for which the doors are passed through
14 : LOG_SETUP_DOOR - To set the information about control of the doors
2.3.4 *EmptySuperLogData
Type long EmptySuperLogData(void)
Functionality To delete all the management data from the device
Parameter
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 Before the execution of this command, it is necessary to backup the management
data.

2.3.5 LoadGeneralLogData
Type long LoadGeneralLogData(long anReadMark)
Functionality To read the attendance data from the device into the internal memory of the PC
and make an analysis of them
Parameter anReadMark Read mark flag
Return Success returns 1; failure returns the corresponding error code. For details of
error codes, please refer to “Error Code Table”.
Others 1 The read data can be got by “GetGeneralLogData”. Please, refer to “0
GetGeneralLogData”.
2 anReadMark = 1 allows to read newly-added recorded data alone.
anReadMark = 0 allows to read all the recorded data.

2.3.6 USBLoadGeneralLogDataFromFile
Type long USBLoadGeneralLogDataFromFile(BSTR apstrFilePath)
Functionalit To read the recorded data into the internal memory of the PC from the attendance data
y file formed in the USB memory
Parameter apstrFilePat File name
h
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 Similar to “LoadGeneralLogData”, this command can be used to get
the attendance data when the device is not connected with the PC.
2 The incorrect structure of the file results in a failure of the execution.
3 For the method of using USB memories in the devices, please refer to
the corresponding user`s manual.

2.3.7 GetGeneralLogData
Type long GetGeneralLogData(
2.3.8
long* apnEnrolslNumber,
long* apnVerifyMode,
long* apnInOutMode,
DATE* apnDateTime)
Functionality To get, one by one, the attendance data read in the memory of the PC by a command
“LoadGeneralLogData” “USBLoadGeneralLogDataFromFile”.
Parameter apnEnrollNumber Variable pointer of the registration number of the registrant
coming in or going out
apnVerifyMode Variable pointer of the verification mode
apnInOutMode Variable pointer of the mode of coming in or going out
apnDateTime Variable pointer of the time and day when the registrant came in
or went out
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 A code “RUNERR_LOG_END” is returned after the data are all
got.
2 The following values are returned to “apnVerifyMode”:
1 : LOG_FPVERIFY - Verified as fingerprints
2 : LOG_PASSVERIFY - Verified as passwords
3 : LOG_CARDVERIFY - Verified as cards
4 : LOG_FPPASS_VERIFY - Verified as passwords added to
fingerprints 5 : LOG_FPCARD_VERIFY - Verified as cards
added to fingerprints
6 : LOG_PASSFP_VERIFY - Verified as fingerprints added to

passwords
7 : LOG_CARDFP_VERIFY - Verified as fingerprints added

to cards
(The followings are used in the models with a function of
controlling doors. Refer to “2.7 Control of Doors”.)
10 : LOG_OPEN_DOOR - The signal of opening the door is
transmitted after the verification.
11 : LOG_CLOSE_DOOR - The signal of closing the door is
transmitted after the verification
12 : LOG_OPEN_HAND - The signal of opening the door
with the key is transferred.
13 : LOG_OPEN_THREAT - The signal of opening the door

by verifying threatened fingerprints is transferred.


14 : LOG_PROG_OPEN - The signal of opening the door is
transferred from the controlling device.
15 : LOG_PROG_CLOSE - The signal of closing the door is
transferred from the controlling device.
16 : LOG_OPEN_IREGAL - The signal of opening the door
is illegally transferred.
17 : LOG_CLOSE_IREGAL - The signal of closing the door
is illegally transferred.
18 : LOG_OPEN_COVER - The cover of the device opened
19 : LOG_CLOSE_COVER - The cover of the device closed
3 This command fails to be executed unless
“LoadGeneralLogData” or “USBLoadGeneralLogDataFromFile”
is first executed.
4 The following values are returned to “apnInOutMode”:
1 : LOG_IOMODE_IN - Verified with the mode of coming
in
2 : LOG_IOMODE_OUT - Verified with the mode of going

out
3 : LOG_IOMODE_IO - Verified with the general mode
2.3.9 EmptyGeneralLogData
Type long EmptyGeneralLogData()
Functionalit To delete all the data relating to incoming and outgoing from the device
y
Parameter
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 It is necessary to backup the data relating to
incoming and outgoing before the execution
of this command.

2.3.10 * GetGeneralLogData_1
Type long GetGeneralLogData_1(
long* apnEnrollNumber,
long* apnVerifyMode,
long* apnInOutMode,
long* apnYear,
long* apnMonth,
long* apnDay,
long* apnHour,
long* apnMinute,
long* apnSec )
Functionality To get, one by one, the attendance data read in the memory of the PC by a command
“LoadGeneralLogData” “USBLoadGeneralLogDataFromFile”.
Parameter apnEnrollNumber Variable pointer of the registration number of the
registrant coming in or going out
apnVerifyMode Variable pointer of the verification mode
apnInOutMode Variable pointer of the mode of coming in or going out
apnYear,apnMonth apnDay, Variable pointer of the time and day when the registrant
apnHour apnMinute, came in or went out
apnSec
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 A code “RUNERR_LOG_END” is returned after the data are all got.
2 The following values are returned to “apnVerifyMode”:
1 : LOG_FPVERIFY - Verified as fingerprints
2 : LOG_PASSVERIFY - Verified as passwords
3 : LOG_CARDVERIFY - Verified as cards
4 : LOG_FPPASS_VERIFY - Verified as passwords added to fingerprints
5 : LOG_FPCARD_VERIFY - Verified as cards added to fingerprints
6 : LOG_PASSFP_VERIFY - Verified as fingerprints added to passwords
7 : LOG_CARDFP_VERIFY - Verified as fingerprints added to cards
(The followings are used in the models with a function of controlling doors. Refer to
“2.7 Control of Doors”.)
10 : LOG_OPEN_DOOR - The signal of opening the door is transmitted after
the verification.
11 : LOG_CLOSE_DOOR - The signal of closing the door is transmitted after
the verification
12 : LOG_OPEN_HAND - The signal of opening the door with the key is
transferred.
13 : LOG_OPEN_THREAT - The signal of opening the door by verifying

threatened fingerprints is transferred.


14 : LOG_PROG_OPEN - The signal of opening the door is transferred from the
controlling device.
15 : LOG_PROG_CLOSE - The signal of closing the door is transferred from the
controlling device.
16 : LOG_OPEN_IREGAL - The signal of opening the door is illegally
transferred.
17 : LOG_CLOSE_IREGAL - The signal of closing the door is illegally
transferred.
18 : LOG_OPEN_COVER - The cover of the device opened
: LOG_CLOSE_COVER - The cover of the device closed
3 This command fails to be executed unless “LoadGeneralLogData” or
“USBLoadGeneralLogDataFromFile” is first executed.
4 The following values are returned to “apnInOutMode”:
1 : LOG_IOMODE_IN - Verified with the mode of coming in
2 : LOG_IOMODE_OUT - Verified with the mode of going out

3 : LOG_IOMODE_IO - Verified with the general mode


5 * If the user_id of the uploaded record is 0, it means that the person (the illegal
user) who has not been fingerprinted punched in the machine

2.3.11 * GetSuperLogData_1
Type long GetSuperLogData_1(
long* apnSEnrollNumber,
long* apnGEnrollNumber,
long* apnManipulation,
long* apnBackupNumber,
long* apnYear,
long* apnMonth,
long* apnDay,
long* apnHour,
long* apnMinute,
long* apnSec)
Functionality To get, one by one, the management data read into the memory of the PC with a
command “LoadSuperLogData” or “USBLoadSuperLogDataFromFile”.
Parameter apnSEnrollNumber Variable pointer of the registration number of the manager
apnGEnrollNumber Variable pointer of the registration number of the managed
apnManipulation Variable pointer of the identification number of the
managed
apnBackupNumber Variable pointer of the number classifying the kind of the
enrollment data of the managed person
apnYear, apnMonth Variable pointer of the time and the date when the
apnDay, apnHour management was recorded
apnMinute, apnSec
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1
After all the data are got, a code “RUNERR_LOG_END” is return.
2
This command fails to be executed if “LoadSuperLogData” or
“USBLoadSuperLogDataFromFile” is not first executed.
3
The following values are returned to “apnManipulation”:
3 : LOG_ENROLL_USER - To register general users
4 : LOG_ENROLL_MANAGER - To register manager(s)
5 : LOG_ENROLL_DELFP - To delete fingerprint data
6 : LOG_ENROLL_DELPASS - To delete passwords
7 : LOG_ENROLL_DELCARD - To delete card data
8 : LOG_LOG_ALLDEL - To delete all the management data 9 :
LOG_SETUP_SYS - To modify the information about the devices
10 : LOG_SETUP_TIME - To modify the time of the devices
11 : LOG_SETUP_LOG - To modify the limit values of the management data
12 : LOG_SETUP_COMM - To modify the communication modes 13 :
LOG_PASSTIME - To set the duration for which the doors are passed through
14 : LOG_SETUP_DOOR - To set the information about control of the doors

2.3.12 *GetRealTimeInfo
Type long GetRealTimeInfo(long* apRealTimeInfo)
Functionality To export to the PC the waiting time for transfer of blocks and sectors of time for
automatic uploading of transactions
Parameter apRealTimeInfo Getting Data
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.

2.3.13 *SetRealTimeInfo
Type long SetRealTimeInfo(long* apRealTimeInfo)
Functionalit To write into machines the waiting time for transfer of blocks and sectors of time
y for automatic uploading of transactions
Parameter apRealTimeInfo Setting data
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.

2.3.14 LoadGeneralLogDataByDate
Type long FK_LoadGeneralLogDataByDate(
DateTime anStartDateTime,
DateTime anEndDateTime);
Functionality Get Logs by time period
Parameter anStartDateTime Start Time
anEndDateTime End Time
Type Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
2.4 Management of Devices
2.4.1 *EnableDevice
Type long EnableDevice(long anEnabledFlag)
Functionality To allow/forbid the operation on the device
Parameter anEnabledFlag Enabling flag
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 It can be used when forbidding the operation on the device for the communication
between the PC and the device.
2 anEnabledFlag=0 forbids the operation with a message “Working…” prompted;
anEnabledFlag=1 allows it with the normal display shown.

2.4.2 *PowerOnAllDevice
Type void PowerOnAllDevice()
Functionalit To run the connected devices
y
Parameter
Return None
Others 1 This command can be only used with the RS-485 communication.

2.4.3 *PowerOffDevice
Type long PowerOffDevice()
Functionality To power off the device
Parameter
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 After the execution of this command, the device is disconnected and
powered off.

2.4.4 GetDeviceTime
Type long GetDeviceTime(DATE* apnDateTime)
Functionality To get the time and date of the device
Parameter apnDateTime Variable pointer of time and dates
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1
2.4.5 SetDeviceTime
Type long SetDeviceTime(DATE anDateTime)
Functionality To set time and a date on the device
Parameter apnDateTime Time and date data
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1

2.4.6 GetDeviceStatus
Type long GetDeviceStatus(long anStatusIndex, long *apnValue)
Functionality To get the current status values of the device
Parameter anStatusIndex ID number of the device status
apnValue Variable pointer of status values
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 This command helps seize the current status of the device through the PC.
2 The following values are returned to “anStatusIndex”:
1 : GET_MANAGERS - The number of managers existing currently
2 : GET_USERS - The number of general users existing currently
3 : GET_FPS - The number of fingerprint data existing currently
4 : GET_PSWS - The number of password data existing currently
5 : GET_SLOGS - The number of new management data existing
currently 6 : GET_GLOGS - The number of new Income/Outgoing
existing-data.
7 : GET_ASLOGS - The number of the entire management existing –
data.
8 : GET_AGLOGS - The number of the entire Income/Outgoing
existing-data. 9 : GET_CARDS - The number of card data existing
currently

2.4.7 GetDeviceInfo
Type long GetDeviceInfo(long anInfoIndex, long *apnValue)
Functionality To get the information of the device
Parameter anInfoIndex ID number of the information about the device
apnValue Variable pointer of information values
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The following values are returned to “anInfoIndex”:
1 : DI_MANAGERS - The maximum number of registerable
managers
2 : DI_MACHINENUM - ID number of the device
3 : DI_LANGAUGE - Language displayed on the device
4 : *DI_POWEROFF_TIME - Auto-poweroff duration
5 : *DI_LOCK_CTRL - Door control flag
6 : DI_GLOG_WARNING - The number of recorded data generating an
alarm against overflow of incoming and outgoing data. When recording data
over this value, the alarm rings during the record operation.
7 :* DI_SLOG_WARNING - The number of recorded data generating an
alarm against overflow of management data. When recording data over this
value, the alarm rings during the record operation
8 : DI_VERIFY_INTERVALS- Interval for recording verification. Within
this time, the repeated verification is not recorded.
9 : *DI_RSCOM_BPS – Baudrate of the serial communication Each
of the baudrates has the following value.
BPS_9600 = 3 BPS_19200 = 4
BPS_38400 = 5
BPS_57600 = 6
BPS_115200 = 7
10: *DI_DATE_SEPARATE- Type of displaying time and dates
11: *DI_VERIFY_KIND: setting of matching modes the setting values for
matching modes are the followings. 0: F / P / C
1: F + P
2: F + C
3: C
2.4.8 SetDeviceInfo
Type long SetDeviceInfo(long anInfoIndex, long anValue)
Functionality To set information in the device
Parameter anInfoIndex ID number of the information about the device
apnValue Information values
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The values of “anInfoIndex” are the same as “0 GetDeviceInfo” gives.
2.4.9 GetProductData
Type long GetProductData(long anProductIndex, BSTR* apstrProductData)
Functionality To get the information about the sale of products the seller wrote
Parameter anProductIndex ID number of the information about the sale
apstrProductData Variable pointer of the information about the sale
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The following values are returned to “anProductIndex”:
1 : PRODUCT_SERIALNUMBER - Serial number
2 : PRODUCT_BACKUPNUMBER - Subscription number
3 : PRODUCT_CODE - Model number
4 : PRODUCT_NAME - Model name
5 : PRODUCT_WEB - Homepage of the seller
6 : PRODUCT_DATE - Sale date
7 : PRODUCT_SENDTO - Name of the buyer

2.4.10 *GetDeviceVersion
Type long GetDeviceVersion(long *apnVersion)
Functionality To get the version containing the revision history of every model
Parameter apnVersion Variable pointer of versions
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1

2.4.11 *GetDeviceTime_1
Type long GetDeviceTime_1(
long* apnYear,
long* apnMonth,
long* apnDay,
long* apnHour,
long* apnMinute,
long* apnSec,
long* apnDayOfWeek)
Functionalit To get the time and date of the device
y
Parameter apnYear,apnMont Variable pointer of time and dates
h apnDay,
apnHour
apnMinute,apnSe
c apnDayOfWeek
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1

2.4.12 *SetDeviceTime_1
Type long SetDeviceTime_1(
long anYear,
long anMonth,
long anDay,
long anHour,
long anMinute,
long anSec,
long anDayOfWeek)
Functionalit To set time and a date on the device
y
Parameter apnYear,apnMonth apnDay, apnHour Time and date data
apnMinute, apnSec anDayOfWeek

Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1

2.5 Management of Registrants` Information


2.5.1 *EnableUser
Type long EnableUser(
long anEnrollNumber,
long anBackupNumber,
long anEnableFlag)
Functionality To enable/forbid the registrant to use the device
Parameter anEnrollNumber Registration number
anBackupNumber Number classifying the kind of the enrollment data
anEnableFlag Enabling flas
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 anEnableFlag = 0 stands for impossibility of the use; anEnableFlag = 1 possibility.
2.5.2 ModifyPrivilege
Type long ModifyPrivilege(
long anEnrollNumber,
long anBackupNumber,
long anMachinePrivilege)
Functionality To set the operational authorization of the registrant
Parameter anEnrollNumber Registration number
anBackupNumber Number classifying the kind of the enrollment data
anMachinePrivilege Operational authorization
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The registrants can be divided into managers and general users according to the
operational authorization. This authorization is reflected in “anMachinePrivilege”.
The following values are returned to “anMachinePrivilege”:
1 : MP_NONE - General user (can only be verified through the device.)
2 : MP_ALL - Manager (can operate the device.)

2.5.3 GetUserName
Type long GetUserName(long anEnrollNumber, BSTR* apstrUserName)
Functionality To get the name assigned to the registrant
Parameter anEnrollNumber Registration number
apstrUserName Variable pointer containing the name
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The maximum size of the name contained by “apstrUserName” is 10byte (10
English letters or 5 other letters at most).
2 The command fails to be executed if no name is assigned.

2.5.4 SetUserName
Type long SetUserName(long anEnrollNumber, BSTR astrUserName)
Functionality To assign a name to the registrant
Parameter anEnrollNumber Registration number
astrUserName Variable pointer containing the name
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The maximum size of the name contained by “apstrUserName” is 10byte (10
English letters or 5 other letters at most).
2 The command fails to be executed if no name is assigned.
2.5.5 *GetNewsMessage
Type long GetNewsMessage(long anNewsId, BSTR* apstrNews)
Functionality To get the designated message from the device
Parameter anNewsId ID number of the message
apstrNews Variable pointer of the message data
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 “anNewsId” is a number designating messages. The range is from 0 upto 255.
2 The maximum size of the name contained by “apstrUserName” is 48byte (48
English letters or 24 other letters at most).

2.5.6 *SetNewsMessage
Type long SetNewsMessage(long anNewsId, BSTR astrNews)
Functionality To set a message in the device
Parameter anNewsId ID number of the message
astrNews Variable pointer of the message data
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetNewsMessage”.

2.5.7 *GetUserNewsID
Type long GetUserNewsID(long anEnrollNumber, long *apnNewsId)
Functionality To get the ID number of the message assigned to the registrant
Parameter anEnrollNumber Registration number
apnNewsId Variable pointer of the ID number
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 “apnNewsId” is a value to be set under “0 SetNewsMessage”.

2.5.8 *SetUserNewsID
Type long SetUserNewsID(long anEnrollNumber, long anNewsId)
Functionality To assign the registrant the ID number of the message
Parameter anEnrollNumber Registration number
anNewsId ID number
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 “apnNewsId” is a value to be set under “0 SetNewsMessage”.
2.6 Management of Bells
2.6.1 GetBellTime
Type long GetBellTime(long* apnBellCount, long* aptBellInfo)
Functionality To get the information about setting a bell
Parameter apnBellCount Variable pointer of times of the bell ringing
aptBellInfo Variable pointer of the bell information structure
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The number of bells ringing at the same time is returned to “apnBellCount”.
2 The information about the bell such as the designated number and time is
returned to “aptBellInfo”. For the meaning, please refer to “0 BELLINFO
Structure”.

2.6.2 *GetBellTimeWithString
Type long GetBellTimeWithString(long* apnBellCount, BSTR* apstrBellInfo)
Functionality Equal to a command “GetBellTime”, it gets the bell-relating information in the form
of strings.
Parameter apnBellCount Variable pointer of times of a bell ringing
apstrBellInfo Variable pointer of the string
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetBellTime”.

2.6.3 SetBellTime
Type long SetBellTime(long anBellCount, long* aptBellInfo)
Functionality To set the bell-relating information in the device
Parameter anBellCount Times of a bell ringing
aptBellInfo Variable pointer of the bell information structure
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The number of bells ringing at the same time is returned to “apnBellCount”.
2 The information about the bell such as the designated number and time is
returned to “aptBellInfo”. For the meaning, please refer to “0 BELLINFO
Structure”.

2.6.4 *SetBellTimeWithString
2.6.5Type long SetBellTimeWithString(long anBellCount, BSTR astrBellInfo)
Functionalit Equal to a command “SetBellTime”, it sets the bell-relating information in the
y form of strings.
Parameter anBellCount Times of a bell ringing
astrBellInfo Variable pointer of the bell information structure
Return Success returns 1; failure returns the corresponding error code. For details of
error codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 SetBellTime”.

2.7 *Post & Shift Management


2.7.1 GetOneShiftInfo
Type long GetOneShiftInfo(
long anShiftNumber,
long* apShiftSHour,
long* apShiftSMinute,
long* apShiftEHour,
long* apShiftEMinute,
BSTR* apstrShiftName)
Functionalit Function “GetOneShiftInfo” is used to read out the information on shifts set on the
y terminal.
Parameter anShiftNumber Shift Number
apShiftSHour Shift start hour
apShiftSMinute Shift start minute
apShiftEHour Shift end hour
apShiftEMinut Shift end minute
e
apstrShiftName Shift name
. Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.

2.7.2 SetOneShiftInfo
Type long SetOneShiftInfo(
long anShiftNumber,
long anShiftSHour,
long anShiftSMinute,
long anShiftEHour,
long anShiftEMinute,
BSTR astrShiftName)
Functionalit Function “SetOneShiftInfo” is used to import to the terminal the information on shifts
y set on the PC.
Parameter anShiftNumber Shift Number
anShiftSHour Shift start hour
anShiftSMinute Shift start minute
anShiftEHour Shift end hour
anShiftEMinute Shift end minute
astrShiftName Shift name
. Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.

2.7.3 GetOnePostInfo
Type long GetOnePostInfo(
long anPostNumber,
BSTR* apStrPostName,
long* apShiftNumber1,
long* apShiftNumber2,
long* apShiftNumber3,
long* apShiftNumber4)
Functionalit Function “GetOnePostInfo” is used to import from the terminal to the PC the
y information on departments.
Parameter anPostNumber Post number
apStrPostName Post name
apShiftNumber1 Shift1 nimber
apShiftNumber2 Shift2 nimber
apShiftNumber3 Shift3 nimber
apShiftNumber4 Shift4 nimber
. Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.

2.7.4 SetOnePostInfo
Type long SetOnePostInfo(
long anPostNumber,
BSTR astrPostName,
long anShiftNumber1,
long anShiftNumber2,
long anShiftNumber3,
long anShiftNumber4)
Functionalit Function “SetOnePostInfo” is used to import to the terminal the information on
y departments set on the PC.
Parameter anPostNumber Post Number
astrPostName Post Name
anShiftNumber1 Shift1 Number
anShiftNumber2 Shift2 Number
anShiftNumber3 Shift3 Number
anShiftNumber4 Shift4 Number
. Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.

2.7.5 GetUserInfo
Type long GetUserInfo(
long anEnrollNumber,
BSTR* apstrUserName,
long* apNewKind,
long* apVerifyMode,
long* apPostID,
long* apShiftNumber1,
long* apShiftNumber2,
long* apShiftNumber3,
long* apShiftNumber4)
Functionalit Function “GetUserInfo” is used to import to the PC the information on users set on
y the terminal.
Parameter anEnrollNumbe Registration number
r
apstrUserName User name
apNewKind News Kind
apVerifyMode Verify Mode
apPostID Post ID
apShiftNumber Shift1 Number
1
apShiftNumber Shift2 Number
2
apShiftNumber Shift3 Number
3
apShiftNumber Shift4 Number
4
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
2.7.6 SetUserInfo
Type long SetUserInfo(
long anEnrollNumber,
BSTR astrUserName,
long anNewKind,
long anVerifyMode,
long anPostID,
long anShiftNumber1,
long anShiftNumber2,
long anShiftNumber3,
long anShiftNumber4)
Functionality Function “SetUserInfo” is used to import to the terminal the information on users set
on the PC.
Paramter anEnrollNumber Registration number
astrUserName User name
anNewKind News Kind
anVerifyMode Verify Mode
anPostID Post ID
anShiftNumber1 Shift1 Number
anShiftNumber2 Shift2 Number
anShiftNumber3 Shift3 Number
anShiftNumber4 Shift4 Number
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
2.7.7 GetPostShiftInfo
Type long GetPostShiftInfo(long* apPostShiftInfo, long* apnPostShiftInfoLen)
Functionalit This function gets the department shift information set in the currently connected device
y with a specific structure.
A pointer to the structure that specifies department and shift
apPostShiftInfo
information.
Parameter
A pointer to a variable that receives the size of the department and
apnPostShiftInfoLen
shift information structure
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”. .
2.7.8 SetPostShiftInfo
Type long SetPostShiftInfo(long* apPostShiftInfo, long anPostShiftInfoLen)
Functionalit
Set up department and shift information of attendance machine.
y
apPostShiftInfo The index of department and shift information structure
Parameter
anPostShiftInfoLen Size of department and shift structure.
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”.
2.7.9 GetUserInfoEx
long GetUserInfoEx(
long anEnrollNumber,
Type
long* apUserInfo,
long* apUserInfoLen)
Obtain the registered user information of the attendance machine.User information
Functionalit includes the following contents:
y The user's name;User's password and ID card number;User's device operation rights;
The user's department number;Number of shifts assigned each day for a month.
anEnrollNumber Registration number
apUserInfo A pointer to a formatted structure that holds user information.
Parameter A pointer to a variable that receives the size of the user
apUserInfoLen
information structure.
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”. .
2.7.10 SetUserInfoEx
long SetUserInfoEx(
long anEnrollNumber,
Type
long* apUserInfo,
long anUserInfoLen)
Functionality Set the attendance machine user information。
anEnrollNumber Registration number 。
apUserInfo A pointer to a formatted structure that holds user information.
Parameter A pointer to a variable that receives the size of the user
apUserInfoLen
information structure.
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”. .
2.8 Photo Management
2.8.1 GetEnrollPhoto
Type Public static extern int FK_GetEnrollPhoto(
int nHandleIndex,
UInt32 anEnrollNumber,
byte[] abytPhotoImage,
ref int anPhotoLength);
Functionality To get user photo by enroll number
Parameter anEnrollNumber Enroll Number
abytPhotoImage Photo image of Byte array
anPhotoLength Photo length
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others
2.8.2 SetEnrollPhoto
Type Public static extern int FK_SetEnrollPhoto(
int nHandleIndex,
UInt32 anEnrollNumber,
byte[] abytPhotoImage,
ref int anPhotoLength);
Functionality To set user photo by enroll number
Parameter anEnrollNumber Enroll Number
abytPhotoImage Photo image of Byte array
anPhotoLength Photo length
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others
2.8.3 DeletetEnrollPhoto
Type Public static extern int FK_DeletetEnrollPhoto(
int nHandleIndex,
UInt32 anEnrollNumber);
Functionality To delete user photo by enroll number
Parameter anEnrollNumber Enroll Number
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others

2.9 Control of Doors


Some of the following functions are not supported in some models.
2.9.1 GetDoorStatus
Type long GetDoorStatus(long *apnStatusVal)
Functionality To get the door opening status
Parameter apnStatusVal Variable pointer of the status value
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 The following values are returned to “apnStatusVal”:
1 : DOOR_CONTROLRESET - control state of door by device.
2 : DOOR_OPEND - Door opened
3 : DOOR_CLOSED – Door closed
4 : DOOR_COMMNAD- by the command for control of doors, door
opend for some time and closed.

2.9.2 SetDoorStatus
Type public static extern int FK_HS_SetTimeZone(int anHandleIndex, byte[]
abytOneTimeZone);
Functionality To control the door opening status
Parameter anStatusVal Status value
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 for the meanings of “anStatusVal”, refer to “0 GetDoorStatus”.
2.9.3 GetTimeZone
Type public static extern int FK_HS_GetTimeZone(int anHandleIndex, byte[]
abytOneTimeZone);
Functionalit To get the information about the time zone for opening and closing the door
y
Parameter abytOneTimeZon One Time Zone with Byte array
e
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1. The Normal machine support 255 time zones,please refer to actual machine

2.9.4 SetTimeZone
Type public static extern int FK_HS_SetTimeZone(int anHandleIndex, byte[]
abytOneTimeZone);
Functionalit To set the information about the time zone for opening and closing the door
y
Parameter abytOneTimeZon One Time Zone with Byte array
e
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others

2.9.5 GetUserWeekPassTime

Type public static extern int FK_HS_GetUserWeekPassTime(int anHandleIndex, byte[]


abytUserWeekPassTime);
Functionalit To get the information about the user pass time zone for a week
y
Parameter abytUserWeekPassTim Byte Week Pass Time for User
e
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1.When time zone is 0,it indicate the user do not open the door
2.9.6 SetUserWeekPassTime
Type public static extern int FK_HS_GetUserWeekPassTime(int anHandleIndex, byte[]
abytUserWeekPassTime);
Functionalit To set the information about the user pass time zone for a week
y
Parameter abytUserWeekPassTim Byte Week Pass Time for User
e
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others
2.9.7 FK_ExtCommand
Type public static extern int FK_ExtCommand(
int anHandleIndex,
byte[] abytCmdStruct)
Functionalit Extension Cmd by byte Structure cmd
y
Parameter abytCmdStruct Byte Structure cmd
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1.It’s used to read/write door info by enroll id,please refer to sample

2.9.8 *GetPassTime
Type long GetPassTime(long anPassTimeID, long* apnPassTime, long anPassTimeSize)
Functionality To get the information about the time zone of opening or closing the door
Parameter anPassTimeID ID number of the information about the time zone
apnPassTime Variable pointer of the structure of the above information
anPassTimeSize Length of the above structure
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 “anPassTimeID” is a number indicating the structure of the information about the
time zone.
This value ranges from 0 upto 49, since 50 structures at most can be set.
2 “apnPassTime” reflects the value of the structure “anPassTimeID” designates.
This structure has seven time zones per week.
Please refer to “PASSCTRLTIME Structure”.
3 As the length of “apnPassTime”, “anPassTimeSize” helps API decide that the
structure is long enough.

2.9.9 *GetPassTimeWithString
Type long GetPassTimeWithString(long anPassTimeID, BSTR* apstrPassTime)
Functionality Equal to “GetPassTime”, the information about the time zone is returned into a
string.
Parameter anPassTimeID ID number of the information about the time zone
apnPassTime Variable pointer of the string of the structure of the above
information
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetPassTime”.

2.9.10 *SetPassTime
Type long SetPassTime(long anPassTimeID, long *apnPassTime, long anPassTimeSize)
Functionality To set the information about the time zone for opening and closing the door
Parameter anPassTimeID ID number of information about the time zone
apnPassTime Variable pointer of the structure of the above information
anPassTimeSize Length of the above structure
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetPassTime”.

2.9.11 *SetPassTimeWithString
Type long SetPassTimeWithString(long anPassTimeID, BSTR astrPassTime)
Functionality Equal to “SetPassTime”, it contains the information about the time zone in the form
of strings.
Parameter anPassTimeID ID number of information about the time zone
astrPassTime Variable pointer of the string of the structure of the above
information
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetPassTime”.

2.9.12 *GetUserPassTime
Type long GetUserPassTime(
long anEnrollNumber,
long *apnGroupID,
long *apnPassTimeID,
long anPassTimeIDSize)
Functionality To get the time zone-relaing information group assigned to the designated user and
the group assigned individually
Parameter anEnrollNumber Registration number
apnGroupID Variable pointer of group number
apnPassTimeID Variable pointer of the structure of the ID number for the
information about the time zone
anPassTimeIDSiz Length of the above structure
e
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the meaning of “apnGroupID”, please refer to “0 GetGroupPassTime”.
2 “apnPassTimeID” is a array-typed batch structure of ID numbers assigned to the
registrants. For its definition, please refer to “0 USERPASSINFO Structure”; for the
meanings of the ID numbers, refer to “0 GetPassTime”.
3 As the length of “apnPassTime”, “anPassTimeSize” helps API determine whether
the structure is long enough.

2.9.13 *GetUserPassTimeWithString
Type long GetUserPassTimeWithString(
long anEnrollNumber,
long* apnGroupID,
BSTR* apstrPassTimeID)
Functionality Equal to “GetUserPassTime”, it returns the structure of ID numbers in the form of
strings.
Parameter anEnrollNumber Registration number
apnGroupID Variable pointer of group numbers
apstrPassTimeID Variable pointer of the ID number structure string for the
information relating to the time zone
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetUserPassTime”.

2.9.14 *SetUserPassTime
Type long SetUserPassTime(
long anEnrollNumber,
long anGroupID,
long* apnPassTimeID,
long anPassTimeIDSize)
Functionality To set the information group of the time zone and the individually-assigned
information for the designated registrant
Parameter anEnrollNumber Registration number
anGroupID Group number
apnPassTimeID Variable pointer of the ID number structure of the time zone
information
anPassTimeIDSize Length of the above structure
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetUserPassTime”.

2.9.15 *SetUserPassTimeWithString
Type long SetUserPassTimeWithString(
long anEnrollNumber,
long anGroupID,
BSTR astrPassTimeID)
Functionality Equal to command “SetUserPassTime”, it contains the ID number structure in the
form of strings.
Parameter anEnrollNumber Registration number
anGroupID Group number
astrPassTimeID Variable pointer of the strings for the ID number structure of
the time zone information
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetUserPassTime”.

2.9.16 *GetGroupPassTime
Type long GetGroupPassTime(
long anGroupID,
long *apnPassTimeID,
long anPassTimeIDSize)
Functionality To get ID numbers of the time zone information corresponding to the designated
time zone information group
Parameter anGroupID Group number
apnPassTimeID Variable pointer of the ID number structure for the time zone
information
anPassTimeIDSize Length of the above structure
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 On the devices, structures of time zone information can be used in groups.
“anGroupID” is a number indicating the group.
It is possible to set five groups at most and this value ranges from 1 upto 5.
2 “apnPassTimeID” is a array-typed batch structure for time zone information
ID numbers assigned to each group. In a group, three ID numbers can be
set. For the definition of the structure, please refer to “0 GROUPPASSINFO
Structure”; for the meanings of ID numbers, refer to “0 GetPassTime”.
3 As the length of “apnPassTimeID”, “anPassTimeIDSize” helps API
determine whether the structure is long enough.

2.9.17 *GetGroupPassTimeWithString
Type long GetGroupPassTimeWithString(
long anGroupID,
BSTR* apstrPassTimeID)
Functionality Equal to “GetGroupPassTime”, it returns the ID number structure in the form of
strings.
Parameter anGroupID Group number
apstrPassTimeID Variable pointer of the strings for the ID number structure of the
time zone information
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetGroupPassTime”.

2.9.18 *SetGroupPassTime
Type long SetGroupPassTime(
long anGroupID,
long *apnPassTimeID,
long anPassTimeIDSize)
Functionality To set ID numbers of the time zone information in the designated group of the
information
Parameter anGroupID Group number
apnPassTimeID Variable pointer of the ID number structure of the time zone
information
anPassTimeIDSize Length of the above structure
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetGroupPassTime”.

2.9.19 *SetGroupPassTimeWithString
Type long SetGroupPassTimeWithString(

long anGroupID,
BSTR astrPassTimeID)
Functionality Equal to command “SetGroupPassTime”, it contains ID number structures in the
form of strings.
Parameter anGroupID Group number
astrPassTimeID Variable pointer of the strings for the ID number structure of the
time zone information
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetGroupPassTime”.

2.9.20 *GetGroupMatch
Type long GetGroupMatch(long *apnGroupMatch, long anGroupMatchSize)
Functionality To get the door control union of groups of the time zone information structures
Parameter apnGroupMatch Variable pointer of the union structure of groups
anGroupMatchSize Length of the above structure
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 To combine the groups of the time zone information structures and use them for
control of the doors (opening or closing doors)
Ten unions at most can be formed. “apnGroupMatch” is an array-typed batch
structure for these unions.
For the definition of the structure, please refer to “0 GROUPMATCHINFO
Structure”.
Group numbers are described one after another on the item of structures
Ex: ‘13’ described if groups No.1 and No.3 are combined at the same time,
‘135’ described if groups No1, No.3 and No.5 are combined at the same time
2 As the length of “apnPassTimeID”, “anPassTimeIDSize”는 helps API
determine whether the structure is long enough.
2.9.21 *GetGroupMatchWithString
Type long GetGroupMatchWithString(BSTR* apstrGroupMatch)
Functionality Equal to command “GetGroupMatchTime”, it returns the union structure in the form
of strings.
Parameter apstrGroupMatch Variable pointer of union structure strings of the groups
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetGroupMatch”.

2.9.22 *SetGroupMatch
Type long SetGroupMatch(long *apnGroupMatch, long anGroupMatchSize)
Functionality To set the door control union of groups of the time zone information structures
Parameter apnGroupMatch Variable pointer of the union structure of groups
anGroupMatchSize Length of the above structure
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetGroupMatch”.

2.9.23 *SetGroupMatchWithString
Type long SetGroupMatchWithString(BSTR astrGroupMatch)
Functionality Equal to command “SetGroupMatch”, it contains the union structure in the form of
strings.
Parameter astrGroupMatch Variable pointer of union structure strings of the groups
Return Success returns 1; failure returns the corresponding error code. For details of error
codes, please refer to “Error Code Table”.
Others 1 For the details, please refer to “0 GetGroupMatch”.
2.10 *Summer time management (deleted)
This feature is not available on all versions.
2.10.1 GetAdjustInfo
Type long GetAdjustInfo(
long* apnAdjustedState,
long* apnAdjustedMonth,
long* apnAdjustedDay,
long* apnAdjustedHour,
long* apnAdjustedMinute,
long* apnRestoredState,
long* apnRestoredMonth,
long* apnRestoredDay,
long* apnRestoredHour,
long* apnRestoredMinute)
Functionalit
Gets the summer time status.
y
Parameter A parameter indicating a status value
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”. .
Others "ApnAdjustedState, apnRestoredState" : None: no change.
-1: an hour earlier.
+1: one hour late.
2.10.2 SetAdjustInfo
long SetAdjustInfo(
long anAdjustedState,
long anAdjustedMonth,
long anAdjustedDay,
long anAdjustedHour,
Type long anAdjustedMinute,
long anRestoredState,
long anRestoredMonth,
long anRestoredDay,
long anRestoredHour,
long anRestoredMinute)
Functionality Operate the summer time system.
Parameter Status value (refer to 3.1.6 structure)
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”. .
"ApnAdjustedState, apnRestoredState" : None: no change.
Others -1: an hour earlier.
+1: one hour late.
2.11 * Equipment information management
2.11.1 GetServerNetInfo
long GetServerInfo(
BSTR* apstrServerIPAddress,
Type
long* apnServerPort,
long* apnServerRequest)
Functionalit
Read the information from the device server
y
apstrServerIPAddress Server IP Address
apnServerPort Server Port
apnServerRequest Set time
Parameter
Success returns 1; failure returns the corresponding error code. For details of error
Return
codes, please refer to “Error Code Table”. .
Others 1

2.11.2 SetServerNetInfo
long SetServerNetInfo(
BSTR astrServerIPAddress,
Type
long anServerPort,
long anServerRequest)
Functionalit Write the server information to the device
y astrServerIPAddress Server IP Address
anServerPort Server Port
Parameter anServerRequest
Set time
Return Success returns 1; failure returns the corresponding error code. For details of error
Others 1 please refer to “Error Code Table”. .
codes,

2.11.3 SetUSBModel
Type void SetUSBModel(long anModel)
Functionalit
Specify which type of device to write to (or read from) a USB Flash Flash drive
y
The parameter anModel is a long variable that represents model
Parameter anModel
information

2.12 Card/Password(Refer to CardPwdReference.cs)


2.12.1 string card to byte array
Type public static byte[] getCard(string card)
Functionality To convert string card to byte array,
Paras card Card NO
Return Byte array
2.12.2 string password to byte array
Type public static byte[] getPWD(string pwd)
Functionality To convert password card to byte array
Paras card String NO
Return Byte array
Description: according to the class library CardPwdReference.cs, the card/password of string type is
converted into byte array, byte data is put into byte array of corresponding length, and finally the
data is sent to the device through FK_PutEnrollData function.
eg:
if (vBackupNumber == 10)
{
byte[] CurEnrollData = CardPwdReference.getPWD(Password.Text);
Array.Clear(mbytCurEnrollData, 0, mbytCurEnrollData.Length);
Array.Copy(CurEnrollData, mbytCurEnrollData, PWD_DATA_SIZE);
}
vnResultCode = FKAttendDLL.FK_PutEnrollData(
FKAttendDLL.nCommHandleIndex,
vEnrollNumber,
vBackupNumber,
vPrivilege,
mbytCurEnrollData,
mnCurPassword);
2.12.3 Show card and password(refer to function of below)
Type public static string GetCardOrPwdWithStr(byte[] byteCurrEnrollDate)
Functionality To convert byte array to string card /password.
Paras byteCurrEnrollDate Data byte array of Enroll
Return String card/password

2.13 The Common Interface of JsonCommand


Please refer to frmEnroll.cs in the sample,the interface FK_HS_ExecJsonCmd at “Enter Enroll”
2.13.1 Import function
[DllImport("FK623Attend.dll", CharSet = CharSet.Ansi)]
public static extern int FK_HS_ExecJsonCmd(
int anHandleIndex,
[MarshalAs(UnmanagedType.LPStr)]ref StringBuilder apJsonStr);
//return 1 mean the cmd excecute successfully
2.13.2 Enter Enroll
Go to an employee registration page
Coding:
JObject vjobj = new JObject();
JObject vjobjparam = new JObject();
vjobj.Add("cmd", "enter_enroll");//enter_enroll 为指令类型
vjobjparam.Add("user_id", vStrEnrollNumber);
vjobjparam.Add("backup_number", vBackupNumber);
vjobjparam.Add("privilege", vPrivilege);
vjobj.Add("param", vjobjparam);
string vstrJsonStr = vjobj.ToString();

int strBuliderLength = 100 * 1024; // Specify the length


StringBuilder sb = new StringBuilder(strBuliderLength); //Init
sb.Append(vstrJsonStr); // Add Cmd
vnResultCode = FKAttendDLL.FK_HS_ExecJsonCmd(FKAttendDLL.nCommHandleIndex, ref
sb); // Execution Instruction

2.13.3 Set Lock Control


JObject vjobj = new JObject();
JObject vjobjparam = new JObject();
vjobj.Add("cmd", "lock_control_set");
vjobjparam.Add("Receive_Interval", "5");// Receive_Interval 1-255
vjobjparam.Add("Allow_LateTime", "0");// Allow_LateTime 0-60
vjobjparam.Add("Allow_EarlyTime", "0");// Allow_EarlyTime 0-60
vjobjparam.Add("Managers", "0");// All Managers 0-10
vjobjparam.Add("Volume", "0");// Volume 0-10
vjobjparam.Add("Glog_Warning", "0");// Glog_Warning 0-1000
vjobjparam.Add("Show_ResultTime", "1");// Show_ResultTime 0-30
vjobjparam.Add("Reverify_Time", "0");// Reverify_Time 0-60
vjobjparam.Add("Screensavers_Time", "0");// Screensavers_Time 0-60*24
vjobjparam.Add("Sleep_Time", "0");/ Sleep_Time 0-60
vjobjparam.Add("Wiegand_Type", "34");//Wiegand Type 26,34
vjobjparam.Add("Wiegand_Output", "0");//Wiegand Output 0,1
vjobjparam.Add("Wiegand_Input", "0");//Wiegand Input 0,1
vjobjparam.Add("OpenDoor_Delay", "0");// OpenDoor_Delay 0-200
vjobjparam.Add("MutiUser", "1");// Muti confirmation User 1-10
vjobjparam.Add("DoorMagnetic_Type", "no");// DoorMagnetic_Type "no","close","open"
vjobjparam.Add("DoorMagnetic_Delay", "10");// DoorMagnetic_Delay 0-200
vjobjparam.Add("Alarm_Delay", "1");// Alarm_Delay 0-255
vjobjparam.Add("Anti-back", "no");// Prevent come back "no","yes"
vjobjparam.Add("Use_Alarm", "yes");// Tamper alarm "no","yes"
vjobj.Add("param", vjobjparam);
string vstrJsonStr = vjobj.ToString();

int strBuliderLength = 100 * 1024; //Specify the length


StringBuilder sb = new StringBuilder(strBuliderLength); //Init
sb.Append(vstrJsonStr); //Add Cmd
vnResultCode =
FKAttendDLL.FK_HS_ExecJsonCmd(FKAttendDLL.nCommHandleIndex, ref sb); // Execution
Instruction

2.13.4 Set Attend Status


JObject vjobj = new JObject();
JObject vjobjparam = new JObject();
vjobj.Add("cmd", "att_status_set");
for (int i = 1; i <= 10; i++)
{
vjobjparam.Add("name" + i.ToString(), "上班"); //仅作参考
vjobjparam.Add("enable" + i.ToString(), "no");//"no","yes"
vjobjparam.Add("hour" + i.ToString(), "0");
vjobjparam.Add("minute" + i.ToString(), "0");
}

vjobj.Add("param", vjobjparam);
string vstrJsonStr = vjobj.ToString();

int strBuliderLength = 100 * 1024; //Specify the length


StringBuilder sb = new StringBuilder(strBuliderLength); //Init
sb.Append(vstrJsonStr); //Add Cmd
vnResultCode =
FKAttendDLL.FK_HS_ExecJsonCmd(FKAttendDLL.nCommHandleIndex, ref sb); // Execution
Instruction

2.13.5 Get Lock Control Params


JObject vjobj = new JObject();
vjobj.Add("cmd", "lock_control_get");
string vstrJsonStr = vjobj.ToString();

int strBuliderLength = 100 * 1024; //Specify the length


StringBuilder sb = new StringBuilder(strBuliderLength); //Init
sb.Append(vstrJsonStr); //Add Cmd
FKAttendDLL.FK_HS_ExecJsonCmd(ConnectDevice.nCommHandleIndex, ref sb); //
Execution Instruction
vstrJsonStr = sb.ToString(); //Convert to string

2.13.6 Get Attend Status


JObject vjobj = new JObject();
vjobj.Add("cmd", "att_status_get");
string vstrJsonStr = vjobj.ToString();
FKAttendDLL.FK_HS_ExecJsonCmd (ref vstrJsonStr);

int strBuliderLength = 100 * 1024; // Specify the length


StringBuilder sb = new StringBuilder(strBuliderLength); //Init
sb.Append(vstrJsonStr); //Add Cmd
FKAttendDLL.FK_HS_ExecJsonCmd(ConnectDevice.nCommHandleIndex, ref sb); //
Execution Instruction
vstrJsonStr = sb.ToString(); //Convert to string

2.13.7 JsonCommand using attentions


1. When obtaining the commonly used access control parameters and attendance status, there may
be some scrambled codes after}, which should be dealt with
2. Use ANSI encoding

2.14 Notes on use of DLL interface


First, the return value of connection functions (e,g FK_ConnectComm, FK_ConnectNet) is the
number to identify individual connection to the FK machine.
You must pass this value as first argument of most interface functions called after connected.
Second, when you pass string argument to interface function you must pass string value which is
ended with zero. This time the type of parameter used to pass string value is defined as 'char*' and
this parameter is the pointer to the string buffer.
When you receive string value as the output parameter of the function, you must allocate enough
buffer to receive output string and pass the address of the address of the allocated buffer to the
function.
This time the type of parameter used to pass address of the address is defined as 'char**'.
The value passed to function is the pointer to the pointer to the bufffer to receive string.
The code value of string is based on the ANSI code according to the language setting of current
Windows OS.
For example :
The interface functions to get user name saved in FK machine are defined individually in OCX and
DLL.

interface function of DLL


long FK_GetUserName(long anHandleIndex, long anEnrollNumber, char** apstrUserName);
An important note to remember is that you must allocate enough buffer in advance to receive output
name string value.

How to call ‘FK_GetUserName’function declared in DLL using VB6.0

‘ -- declaration ----------------------------------------------------
Public Declare Function FK_GetUserName Lib "FK623Attend" (

ByVal nHandleIndex As Long,

ByVal nEnrollNumber As Long,

ByRef pstrUserName As String) As Long


‘ ------------------------------------------------------------------

‘-- example code --------------------------------------------------------


Dim nEnrollNumber As Long
Dim nResultCode As Long
Dim strName As String

strName = Space(256) ‘ allocate 256 byte buffer and initialize as space character.

‘ The maximum length of name string does not exceed 256 bytes.
nEnrollNumber = Val(Trim(txtEnrollNumber.Text)) nResultCode = FK_GetUserName( _
fnCommHandleIndex, _
nEnrollNumber, _
strName)
How to call ‘FK_GetUserName’function declared in DLL using VC6.0
//-- Declare Func ---------------------------------------------------- long FP_EXPORT
FK_GetUserName(long anHandleIndex, long anEnrollNumber, char** apstrUserName);
// ------------------------------------------------------------------

//-- Example Coding ------------------------------------------------------- char* pszTemp = new


char[256];
nErrorCode = FK_GetUserName(m_nCommHandleIndex, nEnrollNumber, &pszTemp);
AfxMessageBox(pszTemp);
delete [] pszTemp;
FKAttend User`s Manual

3 RealSvrOcxTcp.ocx Component
RealSvrOcxTcp.ocx is a Component that is available in VS and is used to accept real-time recording
and access alarm information transmitted by the machine, using as follows:

3.1 Introduction to the use of Demo:


1.Run FKRealSvrOcxTcpCSSample.exe in folder Execute
2.Specify port and open it
3.After identifying fingerprint in machine ,the form will show a record

3.2 Introduction to control usage


1. Copy RealSvrOcxTcp.ocx,in floder Execute, to C:\Windows\System32
2. Open CMD ,input “ regsvr32 RealSvrOcxTcp.ocx ”,and show register successful

- 74 -
3. In visual studio tool bar,right-click and choose the Choose Items

4. In Coms Components ,choose component of Realsvrocxtcp Control


5. Go back to the toolbar to find the control RealSvrOcxTcp Control
6. The control is primarily an event that triggers when a record is received when monitoring is turned
on. Samples Code in
4 Appendix
4.1 Structures
4.1.1 BELLINFO Structure
#define MAX_BELLCOUNT_DAY 24
#define MAX_BELLCOUNT_WEEK 7
#define BELLKIND_NONE 0
#define BELLKIND_BUZZER 1
#define BELLKIND_BELL 2
#define BELLKIND_BUZZERBELL 3

/*--- Bell Time Infomation ---*/ typedef struct tagBELLTIMEINFO {


BYTE Mark; // Setting Mark
BYTE WeekDay; // Day
BYTE Reserve[2]; // Reserve
BYTE Valid[MAX_BELLCOUNT_DAY]; // Flag for valid setting of bells
BYTE Hour[MAX_BELLCOUNT_DAY]; // Time of bells ringing (hour)
BYTE Minute[MAX_BELLCOUNT_DAY]; // Time of bells ringing (minute)
BYTE BellKind[MAX_BELLCOUNT_DAY]; // Kind of bells ringing
} BELLTIMEINFO;
typedef struct tagBELLINFO {
BYTE BellHoldTime;
BYTE Reserve[3];
BELLTIMEINFO BellTime[MAX_BELLCOUNT_WEEK];
} BELLINFO;

4.1.2 PASSCTRLTIME Structure


#define MAX_PASSCTRLGROUP_COUNT 50
#define MAX_PASSCTRL_COUNT 7 // Pass Count Max Value typedef struct
tagPASSTIME {
BYTE StartHour; // Time of opening doors (hour)
BYTE StartMinute; // Time of opening doors (minute)
BYTE EndHour; // Time of closing doors (hour)
BYTE EndMinute; // Time of closing doors (minute)
} PASSTIME; // Information about time zone – a day
typedef struct tagPASSCTRLTIME {
PASSTIME mPassCtrlTime[MAX_PASSCTRL_COUNT]; // Information about time zone –
every weekday
} PASSCTRLTIME; // Information about time zone – a week

4.1.3 USERPASSINFO Structure


#define MAX_USERPASSINFO_COUNT 3
typedef struct tagUSERPASSINFO {
BYTE UserPassID[MAX_USERPASSINFO_COUNT]; // ID number of time zone
information
} USERPASSINFO; // ID number of time zone information set onto the registrant

4.1.4 GROUPPASSINFO Structure


#define MAX_GROUPPASSKIND_COUNT 5
#define MAX_GROUPPASSINFO_COUNT 3
typedef struct tagGROUPPASSINFO { BYTE
GroupPassID[MAX_GROUPPASSINFO_COUNT]; // ID number of time zone information
} GROUPPASSINFO; // Group of time zone information

4.1.5 GROUPMATCHINFO Structure


#define MAX_GROUPMATCHINFO_COUNT 10
typedef struct tagGroupMatchInfo {
BYTE GroupMatch[MAX_GROUPMATCHINFO_COUNT];// ID number of group of time
zone information
} GROUPMATCHINFO; // Union of groups of time zone information

4.1.6 ADJUSTNFO
Structure
typedef struct tagCHANGE_DATE {
BYTE Month; // Month
BYTE Day; // Day
BYTE Hour; // Hour
BYTE Minute; // Minute
} CHANGEDATE;
typedef struct tagADJUSTINFO {
unsigned char AdjustedState; // Changed state
unsigned char Reserve1[1]; // Reserve
unsigned short AdjustedFlag; // Changed Flag
CHANGEDATE
Adjusted; // changed data
unsigned char RestoredState; // Restored state
unsigned char Reserve2[1]; // Reserve
unsigned short RestoredFlag; // Restored flag
CHANGEDATE
Restored; // Restored data
} ADJUSTINFO;

4.1.7 REALTIMEINFO Structure


#define MAX_REAL_TIME 4
typedef struct tagGroupMatchInfo {
BYTE Valid; // senddong mode
BYTE AckTime; // acking time
BYTE WaitTIme;// wait time
BYTE Reserve; // reserve
BYTE SendPos; // Sending position
BYTE Hour[MAX_REAL_TIME]; // Hour of the TimeZone
BYTE Minute[MAX_REAL_TIME]; // Minute of the TimeZone
} REALTIMEINFO; // A structured body for setting waiting time for transfer of blocks and sectors
of time for automatic uploading of transactions

4.1.8 SetUSBModel Constants


#define FK625_FP1000 2001
#define FK625_FP2000 2002
#define FK625_FP3000 2003
#define FK625_FP5000 2004
#define FK625_FP10000 2005
#define FK625_FP30000 2006
#define FK625_ID30000 2007
#define FK635_FP700 3001
#define FK635_FP3000 3002
#define FK635_FP10000 3003
#define FK635_ID30000 3004
#define FK723_FP1000 4001
#define FK725_FP1000 5001
#define FK725_FP1500 5002
#define FK725_ID5000 5003
#define FK725_ID30000 5004
#define FK735_FP500 6001
#define FK735_FP3000 6002
#define FK735_ID30000 6003
#define FK925_FP3000 7001
#define FK935_FP3000 8001.

4.2 Error Code Table


Value Symbol Description
1 RUN_SUCCESS Message informing of the successful execution of
commands
0 RUNERR_NOSUPPORT Error that the device does not support the relevant
command
-1 RUNERR_UNKNOWNERROR Unknown error
-2 RUNERR_NO_OPEN_COMM Error that the device has been not connected to
-3 RUNERR_WRITE_FAIL Error that the data has not been transmitted to the
device
-4 RUNERR_READ_FAIL Error that the data has not been read from the device
-5 RUNERR_INVALID_PARAM Error that the input parameters are not correct
-6 RUNERR_NON_CARRYOUT Error that the command has not been executed
correctly
-7 RUNERR_DATAARRAY_END Message telling that there is no more data to get
-8 RUNERR_DATAARRAY_NON Error that the data do not exist
E
-9 RUNERR_MEMORY Error that the memory of the PC is not enough
Error that the input license does not accord when
-10 RUNERR_MIS_PASSWORD
connecting with the device
Error that the memory has no space where more
-11 RUNERR_MEMORYOVER
enrollment data can be registered in the device
Error that the registration number to be enrolled is
-12 RUNERR_DATADOUBLE
already stored in the database of the device
Error that the memory has no space where more data
-14 RUNERR_MANAGEROVER
of the manager can be registered in the device
Error that the version of the fingerprint data to be
-15 RUNERR_FPDATAVERSION
used is not correct

5 Version
Update time Dynamic Link Library Update content
2019-10-10 FKAttend.dll(2.8.12.227) Change the content of the InOut field in
the record, and the dynamic library
FKAttend.dll is updated.Samples has
also changed accordingly, refer to the
function GetIoModeAndDoorMode.
repair string ID length display error.
2019-09-15 ---Manual update If the user_id of the uploaded real-time
record is 0, it means that the person who
has not been fingerprinted is punching in
on the machine
2019-05-25 FK623Attend.dll(2.8.12.222) Increase the interface
Fk_loadgenerallogdatabase date
retrieves records by time period
2019-03-08 FK623Attend.dll(2.8.12.221) Increase the general interface
JsonCommand instructions, machine
Settings, attendance status change
2018-12-27 FKAttend.dll(2.8.12.224) Update GetDeviceStatus, add palm print

2018-12-18 --- Description of card/password encryption

2018-12-11 FK623Attend.dll(2.8.12.221) Add JsonCommand interface to achieve


SDK control device input data
FKAttend.dll(2.8.12.223) Add 13_1 communication protocol,
JsonCommand universal interface to
achieve command entry function
(FK_HS_ExecJsonCmd)
FK623AttendDllCSSample.exe(2.3.8. Add 13_1 communication example, add
5) a button example to realize the
command entry function
datEnrollDat.mdb The 32-bit string number was updated

6.FAQs

6.1 How to Obtain All Information of All Users?


First, use ReadAllUserID to read IDs of all users and write them into the memory .Then, use
while Loop. 1. Use GetAllUserID to get ID of one user from memory. Then Some judgment
conditions need to be added. Such as RUNERR_DATAARRAY_END, RUN_SUCCESS .
2.Use GetEnrollData to obtain user information ,Card/password and fingerprint template , face
template ,palm print template in byte array . When the above process is completed .Loop
continue ,until all users enroll data are successfully acquired.

6.2 How to show Card/Passwords in the form of strings?


After Get byte array of card or password with cmd GetEnrollData,you can refer to Interface
description above use the function in “Show card and password” to get string form of card/pwd

6.3 How to push User Card/Password to Machine?


you can refer to Interface description above,First use the function getPWD or getCard to return byte
array.Then, use cmd “PutEnrollData” to push the card/pwd data.

You might also like