爱迪尔门锁系统接口函数(SDK)说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
爱迪尔门锁系统接口函数(SDK)说明
(动态联接库函数说明)
适用门锁接口:Lock3200.DLL,Lock3200K.DLL,Lock4200.DLL,Lock4200D.DLL,Lock5200.DLL,Lock6200.DLL,Lock7200.DLL,Lock7200D.DLL,Lock9200.DLL,Lock9200T.DLL。
适用门锁系统:V5.1及以上,V6.5以下版本。
一、门锁函数(必须已经安装并设置好门锁系统)
1、Init
初始化。
函数原形:
int Init(char *server, int port, int Encoder, int TMEncoder);
参数:
server [in]:字符指针,指定门锁系统数据库安装的服务器(SQL Server)名。
Port [in]:串口号,1-COM1,2-COM2,3-COM3,4-COM4依次类推。
Encoder [in]:发行机类型,0-手动发行机,1-自动发行机。
TMEncoder [in]:TM发行机类型,1-DS9097E,5-DS9097U
返回值:见注1。
2、EndSession
结束工作期。
函数原形:
int EndSession(void);
参数:无
返回值:见注1。
3、IssueCard
发行客人卡。
函数原形:
int IssueCard(char *room,char *gate,char *stime,char *guestname,char *guestid, int overflag, long *cardno,char * track1,char * track2);
参数:
room [in]:房号,6字节字符串,必须是门锁系统设置的房号。
gate [in]:公共通道,字符串参数,“00”表示按默认授权通道,“99”表示授权所有公共通道,其他为指定通道代码。
例如:“010203”表示授权01、02、03三个通道。
Stime [in]:起止时间,24字节字符串,格式yyyymmddhhnnyyyymmddhhnn,例如:“200012311230200101011230”表示2000年12月31日12时30分到2001年1月1日12时30分。
Lock9200:起止时间不能在同一天内,且不能超过1个月。
Guestname [in]:客人姓名,最大30字节,可以为NULL。
Guestid [in]:客人ID,最大30字节,可以为NULL。
Overfla [in]:整形,是否覆盖当前卡上的内容。
1-覆盖,当前卡不是新卡则自动注销(必须是客人卡)。
0-不覆盖,不是新卡则返回。
磁卡(手动发行机)忽略此参数,直接覆盖,不自动注销。
Cardno [out]:长整形指针,接收卡号(发卡后分配的唯一卡代码)。
可以为NULL。
track1 [in]:字符串指针,磁卡第1轨数据,如不写此轨可为NULL。
track2 [in]:字符串指针,磁卡第2轨数据,如不写此轨可为NULL。
返回值:见注1。
4、ReadCard
读卡。
函数原形:
int ReadCard(char *room, char *gate,char *stime, char *guestname, char *guestid, char *track1, char *track2, long *cardno, int *st);
参数:
room [out]:字符串指针,接收返回的房号,建议10字节。
gate [out]:字符串指针,接收返回的授权公共通道,可以为NULL。
Guestname [out]:字符串指针,接收返回的客人姓名,可以为NULL。
Guestid [out]:字符串指针,接收返回的客人ID,可以为NULL。
track1 [out]:接收磁卡第1轨数据,可以为NULL。
track2 [out]:接收磁卡第2轨数据,可以为NULL。
Cardno [out]:长整形指针,接收返回的卡号,可以为NULL。
St [out]:整形指针,接收返回的卡状态,1-正常使用,3-正常注销,4-遗失注销,5-损毁注销,6-自动注销。
可以为NULL。
返回值:见注1。
5、EraseCard
注销卡,同时更新数据库数据。
函数原形:
int EraseCard (long cardno);
参数:
cardno [in]:卡号,可以为0。
当此参数为0时:IC卡、RF卡、TM卡、磁卡(自动发行机)自动读取卡号并注销,同时更新数据库;磁卡(手动发行机)注销当前卡,不更新数据库,建议再调用CheckOut函数更新数据库,或先读卡获取卡号后再调用EraseCard。
返回值:见注1。
6、CheckOut
退房,仅更新数据库数据,不注销卡。
函数原形:
int CheckOut (char *room, long cardno);
参数:
room [in]:房号。
Cardno [in]:卡号,可以为0。
当此参数为0时,将客房所有客人卡标记为正常注销。
返回值:见注1。
7、LostCard
遗失注销,仅更新数据库数据,不注销卡。
函数原形:
int Lostcard (char *room, long cardno);
参数:
room [in]:房号。
Cardno [in]:卡号,标记为遗失注销客人卡的卡号。
返回值:见注1。
二、公用函数(门锁接口和独立使用均可)
8、PopCard(仅对自弹式发行机有效)
弹出卡。
函数原形:
int PopCard(void);
参数:无
返回值:见注1,独立使用时返回20表示‘没有调用SetPort’。
9、SetPort(Lock3200K,Lock5200,Locvk6200,Lock7200,Lock7200D,Lock9200,
Lock9200T支持)
设置串口,调用Init函数后不必调用此函数。
函数原形:
int SetPort(int port, int encoder, int tmencoder);
参数:
Port [in]:串口号,整形,1-COM1,2-COM2,3-COM3,4-COM4依次类推。
Encoder [in]:发行机类型:0-手动发行机,1-自动发行机。
TMEncoder [in]:TM发行机类型:1-DS9097E,5-DS9097U。
返回值:见注1。
10、CheckSc(Lock3200K支持)
核对IC卡密码。
函数原形:
int CheckSc(unsigned char *sc);
参数:
sc [in]:IC卡密码,3字节无符字符指针。
返回值:见注1。
11、ReadIC(Lock3200K,Lock4200D,Lock7200D,Lock9200,Lock9200T支持)
读IC卡数据。
函数原形:
int ReadIC(unsigned int start, unsigned int len, unsigned char *str);
参数:
start [in]:起始地址,指定数据写的位置;Lock9200忽略此参数。
Len [in]:要读取数据的长度;Lock9200忽略此参数。
str [out]:无符字符指针,接收所读取的数据。
返回值:见注1。
12、WriteIC(Lock3200K,Lock4200D,Lock7200D,Lock9200,Lock9200T支持)
写数据到IC卡。
(Lock3200K:建议用户数据存储在0x80及以后的字节;Lock9200T:建议用户数据存储在0x18及以后的8个字节)。
函数原形:
int WriteIC(unsigned int start, unsigned int len, unsigned char *str);
参数:
start [in]:起始地址,指定数据写的位置;Lock9200忽略此参数。
Len [in]:写入数据的长度。
Str [in]:无符字符指针,要写入IC卡的数据。
返回值:见注1。
13、WriteMagCard(Lock5200,Locvk6200,Lock7200,Lock7200D支持)
写磁卡,建议用户数据存储在1、2轨,门锁系统使用第3轨。
函数原形:int WriteMagCard(char *track1, char * track2, char * track3);
参数:
track1 [in]:字符串指针,磁卡第1轨数据,如不写此轨可为NULL。
track2 [in]:字符串指针,磁卡第2轨数据,如不写此轨可为NULL。
track3 [in]:字符串指针,磁卡第3轨数据,如不写此轨可为NULL。
返回值:见注1。
14、ReadMagCard(Lock5200,Locvk6200,Lock7200,Lock7200D支持)
读磁卡。
函数原形:
int ReadMagCard(char * track1, char * track2, char * track3);
参数:
track1 [out]:字符串指针,接收磁卡第1轨数据,如不读此轨为NULL。
track2 [out]:字符串指针,接收磁卡第2轨数据,如不读此轨为NULL。
track3 [out]:字符串指针,接收磁卡第3轨数据,如不读此轨为NULL。
返回值:见注1。
注:一、函数返回值:
0-操作成功 1-读写错误
2-卡已损坏 3-无卡
4-串口错误 5-卡被更换
6-不是新卡 7-卡是新卡
8-非本系统卡 9-不是客人卡
10-不是会员卡 11-密码错误
12-无开门记录 13-卡型不正确
14-参数错误 15-用户取消操作(按下<ESC>键)
16-等待超时 17-插卡错误
18-卡是空白卡或插卡错误 19-保留(为向前兼容)
20-没有调用Init函数 21-没有安装微软数据访问部件(MDAC) 22-连接(门锁系统数据库)错误 23-门锁系统参数不存在
24-初始化失败 25-没有客人在住/指定客人不存在
26-客房已满 27-没有此卡记录
28-没有调用SetPort函数 29-无效的客房房号
30-错误的时间范围 31-卡号已存在,无法登记(Lock9200)32-不支持的调用
二、运行环境:32位Windows操作系统,使用门锁函数需安装MDAC。
三、调用方式:遵循Windows API调用标准,即stdcall。
四、参数说明:[in]为输入参数,[out]为输出参数。