一卡通接口说明.doc

上传人:m**** 文档编号:562671442 上传时间:2022-08-29 格式:DOC 页数:7 大小:54.50KB
返回 下载 相关 举报
一卡通接口说明.doc_第1页
第1页 / 共7页
一卡通接口说明.doc_第2页
第2页 / 共7页
一卡通接口说明.doc_第3页
第3页 / 共7页
一卡通接口说明.doc_第4页
第4页 / 共7页
一卡通接口说明.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《一卡通接口说明.doc》由会员分享,可在线阅读,更多相关《一卡通接口说明.doc(7页珍藏版)》请在金锄头文库上搜索。

1、1790一卡通接口说明本文档将用最简单的方法说明一卡通接口,如该文档不能满足客户的需求,请参考详细说明文档中的内容一、简单说明操作流程: 将更衣柜钥匙设置成有效,就可以开柜锁;设置成无效就不能开柜锁。如果此更衣柜钥匙还要开包房锁,则写该包房锁的验证码到此钥匙,则就可以开相应的包房锁。当客人结帐时,如果读取到占用寄存柜,管理软件应提示客人是否有东西落到寄存柜里,然后清除该钥匙中所存储的寄存柜号码。软件流程:主程序启动后,应调用FindCk()打开串口,接着调用StartupforRecv(),启动接收线程;主程序一定要建立消息响应机制,然后主程序处理其他事务。当有开门卡(即更衣柜钥匙)接触读头后

2、,动态库将发送自定义消息到主程序,主程序自动进入消息处理,调用GetInfoFromCom(),获取开门卡的卡号序列,调用IsValid()获得该卡是有效还是无效。如果需要设置有效或无效则调用SetValid();如果需要读取该开门卡所占用的寄存柜号则调用ReadCabinet();如果需要清除该开门卡所占用的寄存柜号调用ClearCabinet();如果需要设置包房号(即包房验证码)则调用SetRoomNum()。期间,如果需要声音提示,则调用SetReaderVoice(),驱动读卡器发声(建议驱动电脑音箱进行声音提示,可靠性和灵活性要好)。如果操作多张卡,要不断的重复带下划线文字所描绘的

3、操作。如果遇到异常情况,可调用CancelCommand()取消命令。SetReaderVoice()可按主程序的意愿随时调用,发卡器不主动发出任何声音。要退出主程序时,调用EndforRecv(),退出接收线程。最后调用CloseCK(),关闭串口,退出主程序。注:SetValid()、ReadCabinet()、SetRoomNum()、ClearCabinet()4个函数为阻塞调用(不操作成功不返回,需等待),可随时通过调用ExitWaiting()退出上述函数(如果不再需要执行此操作,需要调用CancelCommand(),彻底终止此操作)。分步说明如下:1、必须步骤: 主程序启动后,

4、应调用FindCk()打开串口,接着调用StartupforRecv()启动接收线程(主程序必须建立消息响应机制,参考“如何使用该开发语言自定义消息(自己查资料)”);任何操作均在启动接收线程后,才有意义。要退出主程序时,调用EndforRecv(),退出接收线程。最后调用CloseCK(),关闭串口,退出主程序。2、如何读取卡号?主程序必须建立消息响应机制。当有开门卡接触读头后,动态库会自动发送消息到主程序,主程序要自动进入消息处理,然后调用GetInfoFromCom(),获取开门卡的卡号序列,调用IsValid()获得该卡是有效还是无效。3、如何设置有效无效? 调用SetValid(),

5、设置有效或无效,返回TRUE表明设置成功,返回FALSE表明设置失败。4、如何读取或清除手牌所占用的寄存柜号?调用ReadCabinet()读取手牌所占用的寄存柜号。调用ClearCabinet()清除手牌所占用的寄存柜号。5、如何设置包房验证码(包房锁如何操作)? 根据用户需求,包房锁有两种工作方式。(1)、包房锁钥匙固定(需将锁设置到客房模式):即包房和钥匙一一对应,和柜门锁操作一样,没有特殊之处。只要把包房锁视为柜门锁使用即可。(2)、包房锁钥匙不固定(需将锁设置到包房模式):即任何一张更衣柜钥匙,都可以写入包房锁所对应的验证码,从而打开相应的包房锁。这时需要调用SetRoomNum()

6、写验证码到更衣柜钥匙。二、相关函数1、 void _ CloseCK()函数功能:关闭串口返回:无2、 BOOL FindCk()函数功能:自动搜索插有发卡器的串口并打开返回:找到发卡器并成功打开串口返回TRUE,没找到发卡器或打开失败返回FALSE;说明 :在主程序启动时调用FindCk()打开串口,在主程序退出时调用CloseCK()关闭串口。3、 BOOL StartupforRecv(HWND hWnd,unsigned int MSS)函数功能:此函数在动态库中产生一个接收线程,用于循环接收串口的数据,如读到有合法数据,则发送一个消息到主程序。主程序接到该消息后,进行数据处理。参数:

7、hWnd,主程序的窗口句柄;MSS,为自定义的消息值。动态库接收到合法数据后,将发送MSS消息到主程序,主程序只要响应该消息即可。进入消息处理后,调用GetInfoFromCom(),获取该字符串。返回:返回TRUE,表明创建接收线程成功,返回FALSE,表明创建接收线程失败。4、BOOL EndforRecv();函数功能:结束接收线程。返回:成功结束已启动的线程返回TRUE,反之返回FALSE。说明:通常在主程序启动并成功打开串口后,调用StartupforRecv()启动接收线程,等待消息处理。在退出程序前,先调用EndforRecv()结束接收线程,关闭串口后,退出程序。5、 char

8、 * GetInfoFromCom();函数功能:主程序接收到消息后,获取串口接收到的字符串。返回:返回字符串指针,除起始符和结束符外,为16进制字符串。格式说明:1990只读卡:“* RR RR RR RR RR RR .”,其中“*”起始符,“RR RRRRRRRRRR”卡号,“.”为结束符。1790读写卡卡号:“#RRRRRRRRRRRRXX.”,其中“#”起始符,“RRRRRRRRRRRR”为卡号,“XX”为参数,该参数直接描述卡的类型等特性,详见函数JieMa1790ID(),“.”为结束符。1790读写卡数据:“:AAXXXXXXXX.” 其中“:”起始符,“AA”为数据的起始地址

9、,“XXXXXXXX”为数据,“.”为结束符。1790客房锁时间:“| AABBCCDDEEFF .”,其中“|”起始符,“AABBCCDDEEFF”时间信息串,“.”为结束符。6、 BOOL SetReaderVoice(int num,int len);函数功能:控制发卡器发出声音参数:num,响声次数,范围1到5次。Len,响声长度,1级到5级。返回:命令成功发送到发卡器返回TRUE,反之返回FALSE;说明:此函数在启动接收线程后,可由主程序随时调用,用于提示用户。但在不恰当的时候调用此函数,也会引起接收不到正确的数据,使用时要引起注意。7、 BOOL CancelCommand();

10、函数功能:清除串口发送和接收缓冲区,并取消之前下发给发卡器的操作命令。返回:命令成功发送到发卡器返回TRUE,反之返回FALSE;8、 BOOL IsValid()函数功能:判断开门卡是有效还是无效返回:返回TRUE表明此开门卡为有效状态,返回FALSE表明此开门卡为无效状态;此函数一定在调用GetInfoFromCom()后调用才有实际意义。GetInfoFromCom()也必然是在进入消息处理后调用才有意义。9、BOOL SetValid(int st,unsigned long overtime)函数功能:设置开门卡(服务卡等)到有效或无效状态。参数:St: st=0,设置开门卡到无效状

11、态。St=1,设置开门卡到有效状态。Overtime: 超时值,如果超出指定的时间仍然没有操作成功(没有卡贴上),则返回FALSE。overtime=60超时约为1秒,overtime=600超时约为10秒。返回:执行成功返回TRUE,反之返回FALSE;10、int ReadCabinet(unsigned long overtime)函数功能:读取开门卡所占用的寄存柜号.Overtime: 超时值,如果超出指定的时间仍然没有操作成功(没有卡贴上),则返回FALSE。overtime=60为1秒超时,overtime=600为10秒超时。返回:如果大于0,返回值为读到的寄存柜号码(如果该号码

12、大于9999,通常认为该号码为出厂默认值,该寄存柜号码没有经过设置);等于0,未读到合法的寄存柜号码。说明:用此函数读到的寄存柜号码为10进制,所以设置寄存柜号时,按10进制设置,不要有“A、B、C、D、E、F” 16进制字母。11、BOOL ClearCabinet(unsigned long overtime)函数功能:清除开门卡所占用的寄存柜号.Overtime: 超时值,如果超出指定的时间仍然没有操作成功(没有卡贴上),则返回FALSE。overtime=60为1秒超时,overtime=600为10秒超时。返回:清除成功返回TRUE,清除失败返回FALSE。12、BOOL SetRo

13、omNum(intBaofang,intvalid,char *input,unsigned long overtime)函数功能:设置包房验证码到洗浴开门卡参数:Baofang: Baofang0, 可设置包房号;Baofang=0,不可设置包房号valid: valid0,设置有效期;valid=0,解除有效期input:验证码,12位长16进制字符串。此验证码应和包房锁中的验证码一致,方能开锁。实际应用中,主程序应在包房房间号和验证码间建立一个对应关系。返回:如果执行成功返回TRUE,反之返回FALSE;13、void ExitWaiting()函数功能:此SetValid()、ReadCabinet()、SetRoomNum()、ClearCabinet () 4个函数,在函数尚未退出时,想强行退出,则调用此函数退出。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号