目 录
1 PullSDK接口概述 1
2 PullSDK接口技术说明 1
3 PullSDK接口安装 1
4 PullSDK接口函数详述 2
4.1 Connect 2
4.2 Disconnect 3
4.3 SetDeviceParam 4
4.4 GetDeviceParam 4
4.5 ControlDevice 5
4.6 SetDeviceData 6
4.7 GetDeviceData 7
4.8 GetDeviceDataCount 9
4.9 DeleteDeviceData 10
4.10 GetRTLog 11
4.11 SearchDevice 11
4.12 ModifyIPAddress 12
4.13 PullLastError 13
4.14 SetDeviceFileData 13
4.15 GetDeviceFileData 14
5 附录 15
5.1 附表一:接口文件的详细说明 15
5.2 附表二:控制器参数的说明 16
5.3 附表三:ControlDevice参数说明 18
5.4 附表四:功能函数的表结构说明 18
5.5 附表五:返回值错误码说明 20
PullSDK接口使用指南
1 PullSDK接口概述
PullSDK接口是一组功能函数,对C3、C4系列门禁控制器进行数据访问的通讯接口。PullSDK使最终应用程序开发用户在访问门禁控制器时,更直观、更方便、更简洁,其接口完成的功能有:
读取、设置控制器参数;
读取、设置、删除控制器的时间段、用户信息、假日信息等数据;
搜索、修改设备信息。
2 PullSDK接口技术说明
PullSDK接口使最终应用程序开发用户看起来是一组对门禁控制器内数据Set/Get的抽象接口,在具体访问设备用户数据时,类似于在使用最通用的SQL语句。PullSDK接口在应用程序开发用户眼中看起来更像一个数据库服务器。
PullSDK接口支持TCP/IP和RS485通信协议。
PullSDK接口使用C语言开发,对数据通讯做了高度优化,使其成为一个简洁高效的访问接口。
PullSDK接口在设计开始参考了SQL,但更考虑到业务中最常用的模型,是精心提炼出来的一组接口,做到了设计、实现、使用三方的平衡。
3 PullSDK接口安装
PullSDK接口函数存在于文件plcommpro.dll中,该库依赖于其他几个文件,需要将下列五个DLL文件一同拷贝到windows下的系统目录(windows XP下为windows/system32)
(注:每个文件功能描述见附表一)。
4 PullSDK接口函数详述
4.1 Connect
[函数]
int Connect(const char *Parameters)
[功能]
连接设备,连接成功后返回连接句柄。
[参数说明]
Parameters:
[in] 通过Parameter参数指定连接选项,如下列例子:
"protocol=RS485,port=COM2,baudrate=38400bps,deviceid=1,timeout=50000, passwd=”;
“protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=4000,passwd=”;
需要向该函数传递与设备相关的连接参数方可实现连接功能。
protocol是通讯使用的协议,目前有RS485和TCP两种方式;
port:设备通讯端口。例如,以RS485方式连接,可设置port为COM1;以TCP通讯的端口,如果不特别强调,port默认为4370;
deviceid:串口使用的设备ID号;
baudrate:串口通讯使用的波特率;
ipaddress:TCP/IP通讯相关设备的IP地址;
timeout:连接超时时间,单位为毫秒。遇到网络连接质量不好时,应加大timeout的值。一般的,“timeout=5000”(5秒)可以满足基本网络使用;当查询数据经常出现-2错误码时,应加大timeout的值,可以设置:“timeout=20000”(20秒)。
passwd:设置通讯的连接密码,可以为空表示不使用密码。
(注:Parameters连接字符串大小写敏感)
[返回值]
与设备连接成功后返回该连接句柄,否则连接失败返回0。
[示例]
sdkPython:
params = “protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=4000,passwd=”
selfmpro = windll.LoadLibrary("plcommpro.dll")
con_str = create_string_buffer(params)
self.hcommpro = selfmpro.Connect(con_str)
c#:
params = “protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=” ;
IntPtr h = Connect(params);
4.2 Disconnect
[函数]
Void Disconnect(HANDLE handle)
[功能]
断开与设备的连接
[参数说明]
handle
[in] 由Connect()成功返回的句柄。
[返回值]
无
[示例]
Python:
selfmpro.Disconnect(self.hcommpro)
self.hcommpro = 0
c#:
Disconnect(h);
h = IntPtr.Zero;
4.3 SetDeviceParam
[函数]
int SetDeviceParam(HANDLE handle, const char *ItemValues)
[功能]
设置控制器参数,例如设备号、门磁类型、锁驱动时间、读卡间隔等。
[参数说明]
handle
[in] 由Connect()成功返回的句柄。
ItemValues
[in] 将要设置的设备参数值,多个参数值之间可以用逗号分开,一次至多可同时设置20个参数(可设置的参数值属性请参见表二)。
[返回值]
返回为0或者正数时,表示成功;返回负数时为错误,错误代码的信息请参见附表五。
[示例]
Python:
items = ("DeviceID=1,Door1SensorType=2,Door1Drivertime=6,Door1Intertime=3")
p_items = create_string_buffer(items)
ret = selfmpro.SetDeviceParam(self.hcommpro, p_items)
c#:
int ret = 0;
items = ("DeviceID=1,Door1SensorType=2,Door1Drivertime=6,Door1Intertime=3")
ret = SetDeviceParam(h, items);
4.4 GetDeviceParam
[函数]
int GetDeviceParam(HANDLE handle, char *Buffer, int BufferSize, const char *Items)
[功能]
读取控制器参数,例如设备号、门磁类型、锁驱动时间、读卡间隔等。
[参数说明]
handle
[in] 由Connect()成功返回的句柄。
Buffer
[in] 用于接收返回数据的缓冲区,返回的数据是文本格式的,可能是多个参数值,各参数之间用逗号分隔。
BufferSize
[in] 用于接收返回数据的缓冲区大小。
Items
[in] 将要读取的设备参数名称表,多个名称之间可以用逗号分开,一次至多可同时读取20个参数(可设置的参数值属性请参见表一)。
[返回值]
返回为0或者正数时,表示操作成功;返回负数时为失败,错误代码的信息请参见附表五。
[示例]
Python:
buffer = create_string_buffer(2048)
items = ("DeviceID,Door1SensorType,Door1Drivertime,Door1Intertime")
p_items = create_string_buffer(items)
ret = selfmpro.GetDeviceParam(self.hcommpro, buffer, 256, p_items)
c#:
int ret = 0;
int BUFFERSIZE = 10 * 1024 * 1024;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论