User Guide to the PullSDK Interfaces-E
User Guide to the PullSDK Interfaces-E
4.1 Connect.............................................................................................................................................2
4.2 Disconnect........................................................................................................................................3
4.3 SetDeviceParam................................................................................................................................4
4.4 GetDeviceParam...............................................................................................................................5
4.5 ControlDevice...................................................................................................................................6
4.6 SetDeviceData..................................................................................................................................7
4.7 GetDeviceData..................................................................................................................................8
4.8 GetDeviceDataCount......................................................................................................................10
4.9 DeleteDeviceData...........................................................................................................................11
4.10 GetRTLog.....................................................................................................................................12
4.11 SearchDevice................................................................................................................................13
4.12 ModifyIPAddress..........................................................................................................................14
4.13 PullLastError.................................................................................................................................15
4.14 SetDeviceFileData........................................................................................................................15
4.15 GetDeviceFileData.......................................................................................................................17
4.16 ProcessBackupData....................................................................................................................18
5 Appendix...................................................................................................................................................19
Read, set, and delete the related information (for example, time segment, user information, and holiday
information) of the controller
The PullSDK interfaces support the TCP/IP and RS485 communication protocol.
The PullSDK interfaces are developed by using the C language. Data communication is highly optimized,
thus turning the PullSDK interfaces into the concise and efficient access interfaces.
Initially, the PullSDK interfaces are designed by referring to the SQL, but the most commonly used service
model is the first consideration. Generally, the PullSDK interfaces are a group of elaborately abstracted
interfaces, which attain a good balance between design, implementation, and use.
-1-
(Note: Attached table 1 describes the functions of every file).
[Function]
[Objective]
The function is used to connect a device. After the connection is successful, the connection handle is
returned.
[Parameter description]
Parameters:
[in]: Specify the connection options through the parameter, for example:
"protocol=RS485,port=COM2,baudrate=38400bps,deviceid=1,timeout=50000, passwd=”;
“protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=4000,passwd=”;
To connect a device, the system needs to transfer the device-related connection parameters.
protocol indicates the protocol used for communication. At present, RS485 and TCP can be used.
port: Communication port of the device. For example, if the RS485 protocol is used, you can set port to
COM1: If the TCP is used, the default port is 4370 unless otherwise noted.
baudrate: Baud rate used for the communication of the communication of the serial port.
timeout: Timeout time of the connection (unit: ms)If the network connection is in poor condition, you
should set the parameter to a larger value. Usually, timeout=5000 (5 seconds) can meet the basic network
needs. When the query result contains the error code of -2, you should set timeout to a larger value, for
example, timeout=20000 (20 seconds).
-2-
passwd: Connection password of the communication. If the parameter value is null, it indicates that no
password is used.
[Returned value]
If the device is connected successfully, the connection handle is returned. Otherwise, the error code of 0 is
returned.
[Example]
Python:
params = “protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=4000,passwd=”
self.commpro = windll.LoadLibrary("plcommpro.dll")
constr = create_string_buffer(params)
self.hcommpro = self.commpro.Connect(constr)
c#:
params = “protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=” ;
IntPtr h = Connect(params);
4.2 Disconnect
[Function]
[Objective]
[Parameter description]
handle
[in]: The handle that is returned when the connection is successful.
[Returned value]
None
[Example]
Python:
self.commpro.Disconnect(self.hcommpro)
-3-
self.hcommpro = 0
c#:
Disconnect(h);
h = IntPtr.Zero;
4.3 SetDeviceParam
[Function]
[Objective]
The function is used to set the controller parameters, for example, the device ID, door sensor type, driving
time of the lock, and read interval.
[Parameter description]
handle
[in]: The handle that is returned when the connection is successful.
ItemValues
[in]: The device parameter value to be set; the multiple parameter values can be separated by commas; you
can set at most 20 parameters at a time (Attached table 2 lists the parameter value attributes).
[Returned value]
When the returned value is 0 or a positive value, it indicates that the operation is successful. When the
returned value is a negative value, it indicates an error. Attached table 5 lists the information about the
error codes.
[Example]
Python:
items = ("DeviceID=1,Door1SensorType=2,Door1Drivertime=6,Door1Intertime=3")
p_items = create_string_buffer(items)
ret = self.commpro.SetDeviceParam(self.hcommpro, p_items)
c#:
int ret = 0;
items = ("DeviceID=1,Door1SensorType=2,Door1Drivertime=6,Door1Intertime=3")
ret = SetDeviceParam(h, items);
-4-
4.4 GetDeviceParam
[Function]
int GetDeviceParam(HANDLE handle, char *Buffer, int BufferSize, const char *Items)
[Objective]
The function is used to read the controller parameters, for example, the device ID, door sensor type,
driving time of the lock, and read interval.
[Parameter description]
handle
[in]: The handle that is returned when the connection is successful.
Buffer
[in]: The buffer used to receive the returned data; the returned data is expressed in a text format; if the
returned data is multiple params, the multiple params are separated by commas.
BufferSize
[in] The size of the buffer used to receive the returned data.
Items
[in]: The parameter names of the device to be read; the multiple parameter names are separated by
commas; you can read at most 20 parameters at a time (Attached table 1 lists the parameter value
attributes).
[Returned value]
When the returned value is 0 or a positive value, it indicates that the operation is successful. When the
returned value is a negative value, it indicates that the operation fails. Attached table 5 lists the information
about the error codes.
[Example]
Python:
buffer = create_string_buffer(2048)
items = ("DeviceID,Door1SensorType,Door1Drivertime,Door1Intertime")
p_items = create_string_buffer(items)
ret=self.commpro.GetDeviceParam(self.hcommpro, buffer, 256, p_items)
c#:
-5-
int ret = 0;
int BUFFERSIZE = 10 * 1024 * 1024;
byte[] buffer = new byte[BUFFERSIZE];
items = ("DeviceID,Door1SensorType,Door1Drivertime,Door1Intertime");
ret = GetDeviceParam(h, ref buffer [0], BUFFERSIZE, items);
4.5 ControlDevice
[Function]
int ControlDevice(HANDLE handle, LONG OperationID, LONG Param1, LONG Param2, LONG
Param3, LONG Param4, const char *Options)
[Objective]
[Parameter description]
handle
[in]: The handle that is returned when the connection is successful.
OperationID
[in] Operation contents: 1 for output, 2 for cancel alarm, 3 for restart device, and 4 for enable/disable
normal open state.
Param1
[in] When the OperationID is output operation: If Param2 is the door output the parameter indicates the
door number. If Param2 is auxiliary output, the parameter indicates the number of the auxiliary output
interface (for details, see Attached table 3). If Param2 is cancel alarm, the parameter value is 0 by default.
Param2
[in]: When the OperationID is output operation, this parameter indicates the address type of the
output point (1 for door output, 2 for auxiliary output), for details, see Attached table 3 . When the
OperationID is cancel alarm,, the parameter value is 0 by default. When the OperationID value
is 4, that is enable/disable normal open state, the parameter indicates is enable/disable normal
open state (0 for disable, 1 for enable).
Param3
-6-
[in]: When the OperationID is output operation, the parameter indicates the door-opening time (0 indicates
the closed state, 255 indicates the normal open state, the value range is 1 to 60 seconds). The default value
is 0.
Param4
[in] Reserved; the default value is 0.
Option
[in]: The default value is null; it is used for extension.
[Returned value]
When the returned value is 0 or a positive value, it indicates that the operation is successful. When the
returned value is a negative value, it indicates that the operation fails. Attached table 5 lists the information
about the error codes.
[Example]
Python:
operation_id = 1
door_id = 1
index = 2
state = 6
ret = self.commpro.ControlDevice(self.hcommpro, operation_id, door_id, index, state, 0, ‘’)
c#:
int ret = 0;
int operid = 1;
int doorid = 0;
int outputadr = 0;
int doorstate = 8;
ret = ControlDevice(h, operid, doorid, outputadr, doorstate, 0, "");
4.6 SetDeviceData
[Function]
int SetDeviceData(HANDLE handle,const char *TableName, const char *Data, const char *Options)
[Objective]
-7-
The function is used to set the device data (for example, the time segment, user information, and holiday
information). The device data can be one or multiple records.
[Parameter description]
handle
[in]: The handle that is returned when the connection is successful.
TableName
[in]: Data table name. Attached table 4 lists the available data tables.
Data
[in]: Data record; the data is expressed in a text format; the multiple records are separated by \r\n, and the
“Field=Value” pairs are separated by \t.
Options
[in]: The default value is null; it is used for extension.
[Returned value]
When the returned value is 0 or a positive value, it indicates that the operation is successful. When the
returned value is a negative value, it indicates that the operation fails. Attached table 5 lists the information
about the error codes.
[Example]
Python:
table = "user" # User information table
data = "Pin=19999\tCardNo=13375401\tPassword=1\r\nPin=2\tCardNo=14128058\tPassword=1"
p_table = create_string_buffer(table)
str_buf = create_string_buffer(data)
ret = self.commpro.SetDeviceData(self.hcommpro, p_table, str_buf, ‘’) # Upload the str_buf data
to the user information table
c#:
int ret = 0;
string devtablename = "user";
string data = "Pin=19999\tCardNo=13375401\tPassword=1\r\nPin=2\tCardNo=14128058\tPassword=1";
string options = "";
ret = SetDeviceData(h, devtablename, data, options);
-8-
4.7 GetDeviceData
[Function]
int GetDeviceData(HANDLE handle, char *Buffer, int BufferSize, const char *TableName, const char
*FieldNames,const char *Filter, const char *Options)
[Objective]
The function is used to read the device data (for example, the punch records, time segment, user
information, and holiday information). The data can be one or multiple records.
[Parameter description]
handle
[in]: The handle that is returned when the connection is successful.
Buffer
[in]: The buffer used to receive the returned data; the returned data is expressed in a text format; if the
returned data is multiple records, the multiple records are separated by \r\n.
BufferSize
[in] The size of the buffer used to receive the returned data.
TableName
[in]: Data table name. Attached table 4 lists the available data tables.
FieldNames
[in]: Field name list; the multiple fields are separated by semicolons; * indicates all fields, and the first line
in the returned data field is the field names.
Filter
[in]: The conditions of reading the data; the character string in the format of “field name, operator, value”
can support multiple conditions, which are separated by commas; for example:
Options
[in]: Only used to download the access control records; when the parameter value is NewRecord, new
records are downloaded. When the value is null, all records are downloaded.
[Returned value]
When the returned value is 0 or a positive value, it indicates that the operation is successful (the returned
value indicates the number of records). When the returned value is a negative value, it indicates that the
operation fails. Attached table 5 lists the information about the error codes.
-9-
[Example]
Python:
table = ”user” # Download the user data from the user table
fielname = "*" # Download all field information in the table
pfilter = "” # Have no filtering conditions and thus download all information
options = "”
query_buf = create_string_buffer(4*1024*1024)
query_table = create_string_buffer(table)
query_fieldname = create_string_buffer(fieldname)
query_filter = create_string_buffer(filter)
query_options = create_string_buffer(options)
ret = self.commpro.GetDeviceData(self.hcommpro, query_buf, 4*1024*1024, query_table,
query_fieldname, query_filter, query_options)
c#:
int ret = 0;
int BUFFERSIZE = 10 * 1024 * 1024;
byte[] buffer = new byte[BUFFERSIZE];
string devtablename = "user";
string str = "*";
string devdatfilter = "";
string options = "";
ret = GetDeviceData(h, ref buffer[0], BUFFERSIZE, devtablename, str, devdatfilter, options);
4.8 GetDeviceDataCount
[Function]
int GetDeviceDataCount(void *Handle, const char *TableName, const char *Filter,const char *Options)
[Objective]
The function is used to read the total number of records on the device and return the number of records for
the specified data.
[Parameter description]
Handle
[in]: The handle that is returned when the connection is successful.
- 10 -
TableName
[in]: Data table name. Attached table 4 lists the available data tables.
Filter
[in]: The default value is null; it is used for extension.
Options
[in]: The default value is null; it is used for extension.
[Returned value]
When the returned value is 0 or a positive value, it indicates that the operation is successful (the returned
value indicates the number of records). When the returned value is a negative value, it indicates that the
operation fails. Attached table 5 lists the information about the error codes.
[Example]
Python:
table = ’user’
filter = ""
p_table = create_string_buffer(table)
p_filter = create_string_buffer(filter)
ret = self.commpro.GetDeviceDataCount(self.hcommpro, p_table, p_filter,’’)
c#:
int ret = 0;
string devtablename = "user";
string devdatfilter = "";
string options = "";
ret = GetDeviceDataCount(h, devtablename, devdatfilter, options);
4.9 DeleteDeviceData
[Function]
int DeleteDeviceData(HANDLE handle, const char *TableName,const char *Data,const char *Options)
[Objective]
The function is used to delete the data (for example, user information and time segment) on the device.
[Parameter description]
- 11 -
handle
[in]: The handle that is returned when the connection is successful.
TableName
[in]: Data table name. Attached table 4 lists the available data tables.
Data
[in]: Data record; the data is expressed in a text format; the multiple records are separated by \r\n, and the
“Field=Value” pairs are separated by \t.
Options
[in]: The default value is null; it is used for extension.
[Returned value]
When the returned value is 0 or a positive value, it indicates that the operation is successful. When the
returned value is a negative value, it indicates that the operation fails. Attached table 5 lists the information
about the error codes.
[Example]
Python:
table = “user”
data = "Pin=2" # Conditions of deleting the data
p_table = create_string_buffer(table)
p_data = create_string_buffer(data)
ret = self.commpro.DeleteDeviceData(self.hcommpro, p_table, p_data, "")
c#:
int ret = 0;
string devtablename = "user";
string data = "Pin=2";
string options = "";
ret = DeleteDeviceData(h, devtablename, data, options);
4.10 GetRTLog
[Function]
[Objective]
- 12 -
The function is used to get the device event records.
[Parameter description]
handle
[in]: The handle that is returned when the connection is successful.
Buffer
[in] The buffer used to receive the returned data; the returned data is expressed in a text format.
BufferSize
[in]: The size of the buffer used to receive the returned data.
[Returned value]
When the returned value is 0 or a positive value, it indicates the number of records for the received data.
When the returned value is a negative value, it indicates that the operation fails. Attached table 5 lists the
information about the error codes.
[Example]
Python:
rt_log = create_string_buffer(256)
ret = self.commpro.GetRTLog(self.hcommpro, rt_log, 256)
c#:
int ret = 0;
int buffersize = 256;
byte[] buffer = new byte[256];
ret = GetRTLog(h, ref buffer[0], buffersize);
4.11 SearchDevice
[Function]
[Objective]
The function is used to search for the access control panel in the LAN.
[Parameter description]
CommType
- 13 -
[in]: If the parameter value is Ethernet, the system searches for the devices of the specified
communication type.
Address
[in]: Broadcast address; the system searches for the devices in the LAN within the specified IP address
range; the default value is 255.255.255.255.
Buffer
[in]: The buffer is used to save the detected devices. Users should determine the requested memory
according to the number of devices in the corresponding network. For example, if the network has not
more than 50 devices, it is recommended that users should request the memory of 32K; if the network has
not more than 100 devices, it is recommended that users should request the memory of 64K.
[Returned value]
When the returned value is 0 or a positive value, it indicates the number of found access control panels.
When the returned value is a negative value, it indicates that the operation fails. Attached table 5 lists the
information about the error codes.
[Example]
Python:
dev_buf = create_string_buffer("", 64*1024)
ret=self.commpro.SearchDevice("UDP", "255.255.255.255", dev_buf)
c#:
int ret = 0;
string udp = "UDP";
string adr = "255.255.255.255";
byte[] buffer = new byte[64 * 1024];
ret = SearchDevice(udp,adr, ref buffer[0]);
4.12 ModifyIPAddress
[Function]
[Objective]
The function is used to modify the IP addresses of controllers through the UDP broadcast method.
[Parameter description]
- 14 -
CommType
[in]: Search for the devices with the communication type of Ethernet.
Address
[in]: Broadcast address; the default value is 255.255.255.255.
Buffer
[in]: The buffer is used to save the MAC addresses and new IP addresses of the target device.
[Returned value]
When the returned value is 0 or a positive value, it indicates the number of records for the received data.
When the returned value is a negative value, it indicates that the operation fails. Attached table 5 lists the
information about the error codes.
[Example]
Python:
mac = '00:17:61:01:88:27' # MAC address of the target device
new_ip = '192.168.12.156' # New IP address of the device
comm_pwd = ’’
str = "MAC=%s,IPAddress=%s " % (mac,new_ip)
p_buf = create_string_buffer(str)
modify_ip = self.commpro.ModifyIPAddress(“UDP”, “255.255.255.255”, p_buf)
c#:
int ret = 0;
string udp = "UDP";
string address = "255.255.255.255";
string buffer = "MAC=00:17:61:01:88:27" + "," + "IPAddress=192.168.12.156";
ret = ModifyIPAddress(udp,address,buffer);
4.13 PullLastError
[Function]
int PullLastError()
[Objective]
The function is used to obtain the error ID when the failure result is returned.
[Parameter description]
- 15 -
None
[Returned value]
Error ID.
[Example]
Python:
ret = self.commpro.PullLastError()
c#:
int ret = 0;
ret = PullLastError();
4.14 SetDeviceFileData
[Function]
int SetDeviceFileData(void *Handle, const char *FileName, char *Buffer,int BufferSize,const char
*Options)
[Objective]
The function is used to transfer a file from the PC to the device. It mainly used to transfer the updade file.
The updade file name is emfw.cfg.
[Parameter description]
Handle
[in]: The handle that is returned when the connection is successful.
FileName
[in]: The name of the file transferred to the device, for example, a emfw.cfg file.
Buffer
[in]: The data buffer used to transfer a file.
BufferSize
[in] Length of the transferred data.
Options
[in]: The default value is null; it is used for extension.
[Returned value]
- 16 -
When the returned value is 0 or a positive value, it indicates that the operation is successful. When the
returned value is a negative value, it indicates that the operation fails. Attached table 5 lists the information
about the error codes.
[Example]
Python:
file_name = ”emfw.cfg”
buff_len = len(file_name)
pfile_name = create_string_buffer(file_name)
pbuffer = create_string_buffer(buff_len)
ret = self.commpro.SetDeviceFileData(self.hcommpro, pfile_name, pbuffer, buff_len, "")
c#:
int ret = 0;
string filename = "emfw.cfg ";
FileStream fsFile = File.OpenRead(this.openFileDialog1.FileName);
string buffersize = (int)fsFile.Length;
byte[] buffer = new byte[buffersize];
string options = "";
ret = SetDeviceFileData(h, filename, ref buffer[0], buffersize, options);
4.15 GetDeviceFileData
[Function]
[Objective]
The function is used to obtain a file from the device to the PC. It can obtain user file, record file and etc.
[Parameter description]
Handle
[in]: The handle that is returned when the connection is successful.
FileName
[in] The name of the file obtained from the device, for example, the user file’s name is user.dat, record
file’s name is transaction.dat.
- 17 -
Buffer
[in]: Buffer used to receive the data.
BufferSize
[in]: Length of the received data.
Options
[in]: The default value is null; it is used for extension.
[Returned value]
When the returned value is 0 or a positive value, it indicates that the operation is successful. When the
returned value is a negative value, it indicates that the operation fails. Attached table 5 lists the information
about the error codes.
[Example]
Python:
file_name = ”user.dat”
pfile_name = create_string_buffer(file_name)
pbuffer = create_string_buffer(4*102*1024)
ret = self.commpro.GetDeviceFileData(self.hcommpro, pbuffer, buff_len, pfile_name, "")
c#:
int ret = 0;
int buffersize = 4 * 1024 * 1024;
byte[] buffer = new byte[buffersize];
string filename = "user.dat";
string options = "";
ret = GetDeviceFileData(h, ref buffer[0], ref buffersize, filename, options);
4.16 ProcessBackupData
[Function]
int outSize)
[Objective]
- 18 -
[Parameter description]
revBuf
fileLen
outBuf
outsize
[Returned value]
The returning value is 0 or positive number for success operation. Otherwise, the
operation is failed. For the error codes, please refer to the Appendix 5.
[Example]
Python:
filename = “sddata.dat”
buff_len = len(filename)
buf = create_string_buffer(filename)
buffer = create_string_buffer(16*1024*1024)
ret = self.commpro. ProcessBackupData(buf, buff_len, ref buffer[0], 16 * 1024 * 1024)
c#:
int BufferSize = 0;
- 19 -
StreamReader proFile = new StreamReader(filename);
5 Appendix
5.1 Attached Table 1: Detailed Description of Interface Files
File Name Description
plcommpro.dll Dynamic connection database interface of the PullSDK function
plcomms.dll Database on which the PullSDK interfaces rely
plrscomm.dll Database on which the PullSDK interfaces rely
pltcpcomm.dll Database on which the PullSDK interfaces rely
rscagent.dll Database on which the PullSDK interfaces rely
- 20 -
Read/Write
Attribute Name Parameter Remarks
Type
the readers of Door 2
3: Enable the anti-passback function between
the readers of Door 1 and between the readers
of Door 2 respectively
4: Enable the anti-passback function between
Door 1 and Door 2
Door1ForcePassWord
Door2ForcePassWord
Duress Password Read/write Max: 8 digits
Door3ForcePassWord
Door4ForcePassWord
Door1SupperPassWord
Emergency Door2SupperPassWord
Read/write Max: 8 digits
Password Door3SupperPassWord
Door4SupperPassWord
Lock at door Door1CloseAndLock Read/write 1: Enabled
closing Door2CloseAndLock 0: Disabled
Door3CloseAndLock
- 21 -
Read/Write
Attribute Name Parameter Remarks
Type
Door4CloseAndLock
Door1SensorType
0: Not available
Door2SensorType
Door sensor type Read/write 1: Normal open
Door3SensorType
2: Normal closed
Door4SensorType
Door1Drivertime The value range is 0 to 255.
Lock driver time Door2Drivertime 0: Normal closed
Read/write
length Door3Drivertime 255: Normal open
Door4Drivertime 1 to 254: Door-opening duration
Door1Detectortime
Timeout alarm
Door2Detectortime The value range is 0 to 255.
duration of door Read/write
Door3Detectortime Unit: second
magnet
Door4Detectortime
1:Fingerprint
Door1VerifyType
4: Card
Door2VerifyType
Verify mode Read/write 6:Card or fingerprint
Door3VerifyType
10:Card and fingerprint
Door4VerifyType
11: Card and password
Multi-card opening
- 22 -
Read/Write
Attribute Name Parameter Remarks
Type
Door1KeepOpenTimeZone
Normal-open time Door2KeepOpenTimeZone
Read/write Default: 0 (the parameter is not set)
segment of the door Door3KeepOpenTimeZone
Door4KeepOpenTimeZone
Door1Intertime
Door2Intertime
Punch interval Read/write 0 means no interval (unit: second)
Door3Intertime
Door4Intertime
0: Disabled
MCU Watchdog WatchDog Read/write
1: Enabled
0: Disabled
4 doors turn 2 doors Door4ToDoor2 Read/write
1: Enabled
Door1CancelKeepOpenDay
The date of Cancel Door2CancelKeepOpenDay
Read only
Normal Open Door3CancelKeepOpenDay
Door4CancelKeepOpenDay
The time of backup
BackupTime Read/writ The value range is1 to 24
SD card
Reboot the device Reboot Write only Reboot=1
DateTime= ((Year-2000)*12*31 + (Month -
1)*31 + (Day-1))*(24*60*60) + Hour* 60
*60 + Minute*60 + Second;
For example, the now datetime is 2010-10-26
20:54:55, so DateTime= 347748895;
- 23 -
5.3 Attached Table 3: Description of ControlDevice Parameters
0: disable
255: normal
1: Door open state
ouptput
1~60: normal
Door number 2: auxiliary open or the Expansion
Output reserve
1 or auxiliary output(the duration of parameter
operation d
output number address type normal open is null
of output
(If Param2=1,
operation) the value of
Param3 makes
sense)
Expansion
Cancel reserve
2 0(null) 0(null) 0(null) parameter
alarm d
is null
Expansion
Restart reserve
3 0(null) 0(null) 0(null) parameter
device d
is null
Enable/
Expansion
disable 0: disable reserve
4 Door number 0(null) parameter
normal 1: enable d
is null
open state
Note: If OperationID=1, Param2 determine the Param1 value is door number or auxiliary output
number. If Param1 is door number, the max value is the door number that the device permitted. If the
Param1 is auxiliary output number, the max value is the auxiliary output number that the device permitted.
- 24 -
Table Name TableName Field Remarks
for example: 20100823;
table Group indicates the personnel group of multi-
card verifycation.
AuthorizeDoorId is authorized by the door:
1: Only LOCK1;
2: Only LOCK2;
3: LOCK1 and LOCK2;
4: Only LOCK3;
5: LOCK1 and LOCK3;
6: LOCK2 and LOCK3;
Pin
Pin, AuthorizeTimezoneId, 7: LOCK1, LOCK2 and LOCK3;
authorization userauthorize
AuthorizeDoorId 8: Only LOCK4;
table
9: LOCK1 and LOCK4;
10: LOCK2 and LOCK4;
11: LOCK1, LOCK2 and LOCK4;
12: LOCK3 and LOCK4;
13: LOCK1, LOCK3 and LOCK4;
14: LOCK2, LOCK3 and LOCK4;
15: LOCK1, LOCK2, LOCK3 and LOCK4
The HolidayType value can be 1, 2, and 3.
Holiday table holiday Holiday, HolidayType, Loop Loop value: 1 (loop by year), 2 (not loop by
year)
TimezoneId,
SunTime1, SunTime2, SunTime3,
MonTime1, MonTime2, MonTime3, The Time format is as follows:
TueTime1, TueTime2, TueTime3, (hour*100 + minute)<<16+(hour*100 +
WedTime1, WedTime2, WedTime3, minute)
ThuTime1, ThuTime2, ThuTime3,
Time zone For example: MonTime1 be setted 8:30 to
timezone FriTime1, FriTime2, FriTime3,
table 12:30, so the value is MonTime1=54396110:
SatTime1, SatTime2, SatTime3,
Hol1Time1, Hol1Time2, 8:30 → 8*100+30 → 33E (Hex)
Hol1Time3, 12:30 → 12*100+30 → 4CE (Hex)
Hol2Time1, Hol2Time2, 033E04CE → 54396110 (Decimal)
Hol2Time3,
Hol3Time1, Hol3Time2, Hol3Time3
Access control transaction Cardno, Pin, Verified, DoorID, The Verified mode can be as follows:
record table EventType, InOutState, 1:Only finger
Time_second 3: Only password
4: Only card
11: Card and password
16: Others
- 25 -
Table Name TableName Field Remarks
- 26 -
Table Name TableName Field Remarks
input point is the auxiliary input. When the
EventType value is not 220 or 221, the input
point is a door.
The input point InAddr is a door:
0: Any door
1: Door 1
trigger
2: Door 2
condition is
3: Door 3
detected and
4: Door 4
immediately
The input point InAddr is the auxiliary input:
start the other
0: Any auxiliary input
events)
1: Auxiliary input 1
For example:
2: Auxiliary input 2
Open the door
3: Auxiliary input 3
1 is detected
4: Auxiliary input 4
(trigger
conditions), When the OutType value is 0, the output point
the immediate OutAddr indicates a lock:
alarm, open 1: Lock 1
the video 2: Lock 2
surveillance, 3: Lock 3
close the door 4: Lock 4
2, door 3, door
When the OutType value is 1, the output point
4, etc. (other
OutAddr indicates the auxiliary output:
events)
1: Auxiliary output 1
2: Auxiliary output 2
3: Auxiliary output 3
4: Auxiliary output 4
5: Auxiliary output 5
6: Auxiliary output 6
templatev10 Size、UID、PIN、FingerID、Valid、Te
templatev10
table mplate、Resverd、EndTag
- 27 -
Error Code Description
-6 The length of the decompressed data is not consistent with the expected length
-7 The command is repeated
-8 The connection is not authorized
-9 Data error: The CRC result is failure
-10 Data error: PullSDK cannot resolve the data
-11 Data parameter error
-12 The command is not executed correctly
-13 Command error: This command is not available
-14 The communication password is not correct
-15 Fail to write the file
-16 Fail to read the file
-17 The file does not exist
-99 Unknown error
-100 The table structure does not exist
-101 In the table structure, the Condition field does not exit
-102 The total number of fields is not consistent
-103 The sequence of fields is not consistent
-104 Real-time event data error
-105 Data errors occur during data resolution.
-106 Data overflow: The delivered data is more than 4 MB in length
-107 Fail to get the table structure
-108 Invalid options
-201 LoadLibrary failure
-202 Fail to invoke the interface
-203 Communication initialization fails
-301 Requested TCP/IP version error
-302 Incorrect version number
-303 Fail to get the protocol type
-304 Invalid SOCKET
-305 SOCKET error
-306 HOST error
0 Normal Punch Open open door permission punch the card and triggers
1 Punch during Normal Open Time Zone At the normally open period (set to normally open
- 28 -
period of a single door or the door open period
set for the current door can be used for door open.
4 Emergency Password Open
It will trigger this normal event after the
5 Open during Normal Open Time Zone the door will open automatically after the setting
8 Remote Opening When the user opens a door from remote and the
- 29 -
operation is successful, it will trigger this normal
event.
event.
Disable Intraday Normal Open Time Zone In door normal open state, punch the effective
normal event.
13 Close Auxiliary Output event when the linkage setting is take effect. And
- 30 -
person has the open permission, p press the
15 Multi-Card Open (Press Fingerprint) permission, press the fingerprint at the valid time
normal event.
16 Press Fingerprint during Normal Open Time Zone remote normal open operation, the person has
normal events.
17 Card plus Fingerprint Open: and press the fingerprint at the valid time period,
event.
18 First Card Normal Open (Press Fingerprint) normally open permission, press the fingerprint at
19 First Card Normal Open (Card plus Fingerprint) punch the card and press the fingerprint at the
- 31 -
When the interval between two card punching is
20 Too Short Punch Interval less than the set time interval, trigger this
abnormal event.
abnormal event.
22 Illegal Time Zone current door, punches the card during the invalid
26 Multi-Card Authentication (Punching Card) card verification before the last one (whether
28 Opening Timeout: time after opened, if not close the door, trigger
- 32 -
The person with the door access permission,
31 Too Short Fingerprint Pressing Interval less than the set time interval, trigger this
abnormal event.
32 Multi-Card Authentication (Press Fingerprint) open the door, the fingerprint verification before
normal event.
35 Door Inactive Time Zone (Press Fingerprint) fingerprint but not at the door effective period of
36 Door Inactive Time Zone (Exit Button) card but not at the access effective period of time,
- 33 -
The current door is in normal open state, but the
event.
102 Opened Accidentally door at normally open period, remote door open,
unexpectedly opened.
200 Door Opened Correctly been properly opened, triggering this normal
event.
201 Door Closed Correctly been properly closed, triggering this normal
event.
202 Exit button Open the door valid time zone, and trigger this normal
event.
203 Multi-Card Open (Card plus Fingerprint) In [Card plus Fingerprint] verification mode,
- 34 -
the system trigger this normal event.
204 Normal Open Time Zone Over zone include the normal open time zone in door
Device Start When the device start triggers this normal event
- 35 -