智能门锁统一动态配置接口系统的制作方法

文档序号:17332952发布日期:2019-04-05 22:12阅读:350来源:国知局
智能门锁统一动态配置接口系统的制作方法

本发明涉及智能门锁管理技术领域,具体涉及一种智能门锁统一接口配置系统。



背景技术:

智能门锁厂家国内有几千家,智能门锁厂家提供给酒店信息管理系统的接口类型至少有一百多种,门锁接口形式分为dll,ocx,com组件等。因此酒店信息管理系统里通过门锁接口发客房卡存在以下几种问题:

1.酒店信息管理系统可以简单静态连接不同厂家不同版本的门锁接口,随着从酒店信息管理系统发客房卡用户的不断增加,带来问题生成软件系统越来越大;

2.也可以根据酒店信息管理系统每家用户连接门锁接口发客房卡情况生成专用版本,给酒店信息管理系统厂商售后管理带来不便,又又由于酒店行业发展特点智能门锁经常更换,一旦门锁更换需要酒店信息管理系统提供商重新更换程序满足新版本门锁接口;

3.存在匹配酒店同时使用多种不同品牌不同版本智能门锁情况,传统处理方式,不同品牌不同版本智能门锁生成多个程序,给软件厂商售后技术服务及酒店操作员带来一系列使用问题。

综上所述,由于现有的智能门锁管理系统存在种类和版本号更新太快,而酒店等使用者通常只有门锁出现问题时,才会针对出现问题的门锁进行更换,出于经济性考虑,很多酒店不会进行同时更换大量的客房门锁,因此,通常同时使用多个品牌多个版本的门锁,由于不同种类和版本的门锁都有其自身专用管理系统,通用性差,酒店同时使用多个厂家不同品牌门锁,需要同时使用多个门锁系统进行管理,且不同品牌的门锁系统同时使用造成系统软件所需的存储空间大影响运行客户端速度的问题,这样给门锁厂家的软件系统维护人员和使用者均带来了很大的不便。



技术实现要素:

本发明的目的是为了解决现有智能门锁管理系统通用性差,同时使用不同品牌智能门锁管理系统占用内存空间大的问题,提出了一种智能门锁统一动态配置接口系统。

本发明所述的智能门锁统一动态配置接口系统,包括人机交互模块1、第一参数查询转换模块2、第二参数查询转换模块3和数据库,所述数据库包括n个封装包4;其中,n为大于或等于2的整数;

人机交互模块1包括a个操作模块,所述a个操作模块分别执行a个操作命令,所述a个操作命令与封装包4内的a个操作函数一一对应;其中,a为正整数;

数据库,用于存储n个封装包4,每个封装包4内封装一种类型门锁的操作系统,每个操作系统均包含有a个操作函数及该系统内所有门锁的编号和门锁的操作信息;

第一参数查询转换模块2,用于接收人机交互模块1发送的操作命令;并提取操作命令中的门锁类型和门锁编号信息,查询数据库中是否包含操作命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,将人机交互模块定义的门锁编号转换为该类型门锁封装包中对应的门锁编号;更新操作命令中的门锁类型和门锁编号为封装包编号和封装包内的门锁编号;将更新后的操作命令发送至第二参数查询转换模块3;否则,门锁操作失败,将操作失败信息发送至人机交互模块,并提示数据库中不包含所操作的门锁类型;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的操作命令,将操作命令中的人机交互模块定义的参变量转换为对应编号封装包内相应的操作函数对应参变量,向封装包调取并执行相应的操作函数,实现对人机交互模块发送的操作命令的执行;并将操作函数的执行结果转换为人机交互模块中操作命令对应的结果,将该结果发送至第一参数查询转换模块2;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送操作函数执行结果,并将操作函数执行结果发送至人际交互模块,完成智能门锁动态配置连接接口,实现智能门锁管理操作。

进一步地,人机交互模块包括打开端口模块11、读卡模块12、写卡模块13、注销模块14和关闭端口模块15;

封装包4内包括打开端口函数41、读卡函数42、写卡函数43、注销函数44和关闭端口函数45;

打开端口模块11用于利用设定的门锁类型调取该门锁类型对应的打开端口函数41;

打开端口函数41用于与门锁发卡机建立通信连接;

读卡模块12用于识别读取连接在发卡机上的门卡信息,所述的门卡信息包括门卡对应的门锁编号和门卡类型;并利用门锁编号和门卡类型信息调取并执行该类型门卡对应的读卡函数42;

读卡函数42利用门卡对应的门锁编号调取操作系统内存储器内门卡的发卡日期、发卡人姓名、持卡人姓名和身份信息;并把读取的信息发送给第二参数操作模块(3);

写卡模块13用于向连接在发卡机上的门卡进行信息存入;存入的信息包括门卡对应的编编号和门卡类型;并利用门锁编号和门卡类型信息调取并执行该类型门卡对应的写卡函数43;

写卡函数43用于向与发卡机连接的门卡进行信息存入;存入的信息包括门卡对应的门锁编号、发卡日期、发卡人姓名、持卡人姓名和身份信息;并将存入门卡的信息存储在自身操作系统存储器内;

注销模块14用于对读卡模块12读取的门卡类型和门卡编号信息,调取并执行该类型门卡注销函数44;

注销函数44用于对接收的门卡编号对应的系统存储器内的信息注销;

关闭端口模块15用于利用设定的门锁类型信息,并利用该门锁类型信息调取关闭端口函数45;

关闭端口函数45用于断开计算机接口与发卡机断开通信连接。

进一步地,打开端口模块11利用设定的门锁类型调取并执行该门锁类型对应的打开端口函数41的具体过程为:

打开端口模块11发送打开端口命令,第一参数查询转换模块2接收到打开端口命令,提取打开端口命令中所包含的门锁类型和门锁编号信息;查询数据库中是否包含打开端口命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,将人机交互模块定义的门锁编号转换为该类型门锁封装包中对应的门锁编号;将打开端口命令的门锁类型更新为封装包编号,人机交互模块定义的门锁编号更新为封装包内的门锁编号;将更新后的打开端口命令发送至第二参数查询转换模块3;否则,门锁打开端口失败,将操作失败信息发送至人机交互模块,并提示数据库中不包含所操作的门锁类型;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的打开端口命令,将打开端口命令中的人机交互模块定义的参变量转换为对应编号封装包内打开端口函数相应的参变量,向封装包调取并执行打开端口函数,并将打开端口函数的执行结果的返回值转换为人机交互模块中打开端口命令对应的返回值后发送至第一参数查询转换模块2;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送的打开端口函数执行结果,并将打开端口函数执行结果发送至人机交互模块。

进一步地,读卡模块12利用门锁编号和门卡类型信息调取并执行该类型门卡对应的读卡函数42的具体过程为:

读卡模块12发送读卡命令,第一参数查询转换模块2接收到读卡命令,提取读卡命令中所包含的门锁类型和门锁编号信息;查询数据库中是否包含读卡命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,将人机交互模块定义的门锁编号转换为该类型门锁封装包中对应的门锁编号;将读卡命令的门锁类型更新为封装包编号,人机交互模块定义的门锁编号更新为封装包内的门锁编号;;将更新后的读卡命令发送至第二参数查询转换模块3;否则读卡失败,将操作失败信息发送至人机交互模块,并提示数据库中不包含所读取的门卡类型;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的读卡命令,将读卡命令中的人机交互模块定义的参变量转换为对应编号封装包内读卡函数相应的参变量,向封装包调取并执行读卡函数,并将读卡函数的执行结果的返回值转换为人机交互模块中读卡命令对应的返回值后发送至第一参数查询转换模块2;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送读卡函数执行结果,并将读卡函数执行结果发送至人机交互模块。

进一步地,写卡模块13利用门锁编号和门卡类型信息调取并执行该类型门卡对应的写卡函数43的具体过程为:

写卡模块13发送写卡命令,第一参数查询转换模块2接收到写卡命令,提取写卡命令中所包含的门锁类型和门锁编号信息;查询数据库中是否包含写卡命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,将人机交互模块定义的门锁编号转换为该类型门锁封装包中对应的门锁编号;将写卡命令的门锁类型更新为封装包编号,人机交互模块定义的门锁编号更新为封装包内的门锁编号;;将更新后的写卡命令发送至第二参数查询转换模块3;否则写卡失败,将操作失败信息发送至人机交互模块,并提示数据库中不包含所读取的门卡类型;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的写卡命令,将写卡命令中人机交互模块定义的参变量转换为对应编号封装包内写卡函数相应的参变量,向封装包调取并执行写卡函数,并将写卡函数的执行结果的返回值转换为人机交互模块中写卡命令对应的返回值后发送至第一参数查询转换模块2;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送写卡函数执行结果,并将写卡函数执行结果发送至人机交互模块。

进一步地,注销模块14调取并执行该类型门卡注销函数44的具体过程为:

注销模块14发送注销命令,第一参数查询转换模块2接收到注销命令,提取注销命令中所包含的门锁类型和门锁编号信息;查询数据库中是否包含注销命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,将人机交互模块定义的门锁编号转换为该类型门锁封装包中对应的门锁编号;将注销命令的门锁类型更新为封装包编号,人机交互模块定义的门锁编号更新为封装包内的门锁编号;;将更新后的注销命令发送至第二参数查询转换模块3;否则注销失败,;将操作失败信息发送至人机交互模块,并提示数据库中不包含所读取的门卡类型;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的注销命令,将注销命令中人机交互模块定义的参变量转换为对应编号封装包内的注销函数对应的参变量,向封装包调取并执行注销函数,并将注销函数的执行结果的返回值转换为人机交互模块中注销命令对应的返回值后发送至第一参数查询转换模块2;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送注销函数执行结果,并将注销函数执行结果发送至人机交互模块;

进一步地,关闭端口模块15利用门锁类型信息调取关闭端口函数45的具体过程为:

关闭模块15发送打开端口命令,第一参数查询转换模块2接收到关闭端口命令,提取关闭端口命令中所包含的门锁类型;查询数据库中是否包含关闭端口命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,更新关闭端口令的门锁类型为封装包编号将更新后的关闭端口命令发送至第二参数查询转换模块3;否则关闭端口失败,将操作失败信息发送至人机交互模块,并提示数据库中不包含所读取的门卡类型;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的关闭端口命令,将关闭端口命令中的人机交互模块定义的参变量转换为对应编号封装包内关闭端口函数对应的参变量,向封装包调取并执行关闭端口函数,并将关闭端口函数的执行结果的返回值转换为人机交互模块中关闭端口命令对应的返回值后发送至第一参数查询转换模块2;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送关闭端口函数执行结果,并将关闭端口函数执行结果发送至人际交互模块。

进一步地,注销函数44还包括有卡注销函数和无卡注销函数;注销模块14包括有卡注销模块和无卡注销模块;有卡注销模块执行命令时,调取并执行有卡注销函数;卡注销模块执行命令时,调取并执行无卡注销函数。

本发明所述的酒店信息管理系统智能门锁统一配置接口系统明显减少系统软件空间占用,降低软件连接智能门锁接口的复杂度、提高了系统的可扩展性。通过接口的二次封装及两次阐述转换,酒店信息管理系统智能门锁统一配置接口可以方便连接任意类型的不同品牌不同版本的智能门锁接口,实现多种品牌门锁通用同一管理系统,同时动态调取封装包内的函数,较少系统咋客户端存储所占空间,解决了使用多种不用品牌不同版本智能门锁出现的无法通用的问题。

附图说明

图1是本发明所述智能门锁统一动态配置接口系统的原理框图;

图2是具体实施方式二所述的人机交互模块调取执行第i个封装包中函数的原理框图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本发明的保护范围之内。

具体实施方式一:下面结合图1说明本实施方式,本实施方式所述智能门锁统一动态配置接口系统,

智能门锁统一动态配置接口系统,它还包括人机交互模块1、第一参数查询转换模块2、第二参数查询转换模块3和数据库,所述数据库包括n个封装包4;其中,n为大于或等于2的整数;

人机交互模块1包括a个操作模块,所述a个操作模块执行的a个操作命令与封装包4内的a个操作函数一一对应;其中,a为正整数;

数据库,用于存储n个封装包4,每个封装包4内封装一种类型门锁或一种类型一个版本门锁的操作系统,每个操作系统均包含有a个操作函数及该系统所有门锁的编号和门锁的操作信息;

第一参数查询转换模块2,用于接收人机交互模块1发送的操作命令;并提取操作命令中的门锁类型和门锁编号信息,查询数据库中是否包含操作命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,将门锁编号转换为该类型门锁封装包中对应的门锁编号;更新操作命令中的门锁类型和门锁编号为封装包编号和封装包内的门锁编号;将更新后的操作命令发送至第二参数查询转换模块3;否则,门锁操作失败,将操作失败信息发送至人机交互模块,并提示数据库中不包含所操作的门锁类型;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送操作函数执行结果,并将操作函数执行结果发送至人际交互模块;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的操作命令,将操作命令中的参变量转换为对应编号封装包内相应的操作函数对应参变量,向封装包调取执行相应的操作函数,实现对人机交互模块发送的操作命令的执行;并将操作函数的执行结果转换为人机交互模块中操作命令对应的结果数据后发送至第一参数查询转换模块2。

本实施方式中第一参数查询转换模块2还用于存储人机交互模块1门锁类型和门锁编号与封装包号及封装包中门锁编号的对应关系表;(例如,酒店信息管理系统的人机交互界面显示的客房门卡为a品牌的智能门锁们门锁编号为101,该品牌的智能门锁的操作系统封装在编号为2的封装包内,在封装包2内人机交互界面显示的门锁编号为101的门卡对应的编号为12,因此,在第一参数查询转换模块2中存储门锁类型对应封装包编号表和每个封装包内门锁编号与人机交互模块中存储的客房门卡编号的对应表,在第一参数查询转换模块2接收到人机交互模块发送的操作信息时,先查询门锁类型对应封装包编号表进行门锁类型与封装包编号的数据转换,再查询每个封装包内门锁编号与人机交互模块中存储的客房门卡编号的对应表对门锁编号进行对应转换,再将操作数据发送至第二参数查询转换模块3,第二参数转换模块中存储人机交互模块1中操作模块的执行命令参数(例如:写卡模块的第一个参数为billno,字符串类型,代表在住客人或预定客人的单号)与数据库中每个封装包中执行函数的参变量与写卡函数(writecard)第一个参数为billno,字符串类型,相匹配,获取在住客人或预定客人的基本信息,如抵店时间,离店时间等信息)一一对应关系表;确定为:参数对应表;且用于接收第一参数查询转换模块2发送的数据包号及更新门锁编号后的操作数据,并提取更新门锁编号后的操作数据中的操作命令,利用参数对应表将操作命令中的参变量转换为所述编号封装包内对应函数对应的参变量,调取执行所述编号的封装包内操作命令对应的操作函数,实现智能门锁操作命令的执行,并将操作函数执行结果的返回值转换为人机交互模块中操作命令对应的返回值后发送至第一参数查询转换模块2,完成不同类型门锁的统一动态配置接口。

具体实施方式二:下面结合图2说明本实施方式,本实施方式对实施方式一所述的智能门锁统一动态配置接口系统作进一步说明,人机交互模块包括打开端口模块11、读卡模块12、写卡模块13、注销模块14和关闭端口模块15;

封装包4内包括打开端口函数41、读卡函数42、写卡函数43、注销函数44和关闭端口函数45;

打开端口模块11用于利用设定的门锁类型调取该门锁类型对应的打开端口函数41;

打开端口函数41用于通过计算机系统与门锁发卡机建立通信连接;

读卡模块12用于识别读取连接在发卡机上的门卡信息,所述的门卡信息包括门卡对应的门锁编号和门卡类型;并利用门锁编号和门卡类型信息调取并执行该类型门卡对应的读卡函数42;

读卡函数42利用门卡对应的门锁编号调取操作系统内存储器内门卡的发卡日期、发卡人姓名、持卡人姓名和身份信息;并把读取的信息发送给第二参数操作模块(3);

写卡模块13用于向连接在发卡机上的门卡进行信息存入;存入的信息包括门卡对应的编编号和门卡类型;并利用门锁编号和门卡类型信息调取并执行该类型门卡对应的写卡函数43;

写卡函数43用于向与发卡机连接的门卡进行信息存入;存入的信息包括门卡对应的门锁编号、发卡日期、发卡人姓名、持卡人姓名和身份信息;并将存入门卡的信息存储在自身操作系统存储器内;

注销模块14用于对读卡模块12读取的门卡类型和门卡编号信息,调取并执行该类型门卡注销函数44;

注销函数44用于对接收的门卡编号对应的系统存储器内的信息注销;

关闭端口模块15用于利用设定的门锁类型信息,并利用该门锁类型信息调取关闭端口函数45;

关闭端口函数45用于断开计算机接口与发卡机断开通信连接。

打开端口模块11利用设定的门锁类型调取并执行该门锁类型对应的打开端口函数41的具体过程为:

打开端口模块11发送打开端口命令,第一参数查询转换模块2接收到打开端口命令,提取打开端口命令中所包含的门锁类型和门锁编号信息;查询数据库中是否包含打开端口命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,将人机交互模块定义的门锁编号转换为该类型门锁封装包中对应的门锁编号;将打开端口命令的门锁类型更新为封装包编号,人机交互模块定义的门锁编号更新为封装包内的门锁编号;将更新后的打开端口命令发送至第二参数查询转换模块3;否则,门锁打开端口失败,将操作失败信息发送至人机交互模块,并提示数据库中不包含所操作的门锁类型;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的打开端口命令,将打开端口命令中的人机交互模块定义的参变量转换为对应编号封装包内打开端口函数相应的参变量,向封装包调取并执行打开端口函数,并将打开端口函数的执行结果的返回值转换为人机交互模块中打开端口命令对应的返回值后发送至第一参数查询转换模块2;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送的打开端口函数执行结果,并将打开端口函数执行结果发送至人机交互模块。

读卡模块12利用门锁编号和门卡类型信息调取并执行该类型门卡对应的读卡函数42的具体过程为:

读卡模块12发送读卡命令,第一参数查询转换模块2接收到读卡命令,提取读卡命令中所包含的门锁类型和门锁编号信息;查询数据库中是否包含读卡命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,将人机交互模块定义的门锁编号转换为该类型门锁封装包中对应的门锁编号;将读卡命令的门锁类型更新为封装包编号,人机交互模块定义的门锁编号更新为封装包内的门锁编号;;将更新后的读卡命令发送至第二参数查询转换模块3;否则读卡失败,将操作失败信息发送至人机交互模块,并提示数据库中不包含所读取的门卡类型;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的读卡命令,将读卡命令中的人机交互模块定义的参变量转换为对应编号封装包内读卡函数相应的参变量,向封装包调取并执行读卡函数,并将读卡函数的执行结果的返回值转换为人机交互模块中读卡命令对应的返回值后发送至第一参数查询转换模块2;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送读卡函数执行结

写卡模块13利用门锁编号和门卡类型信息调取并执行该类型门卡对应的写卡函数43的具体过程为:

写卡模块13发送写卡命令,第一参数查询转换模块2接收到写卡命令,提取写卡命令中所包含的门锁类型和门锁编号信息;查询数据库中是否包含写卡命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,将人机交互模块定义的门锁编号转换为该类型门锁封装包中对应的门锁编号;将写卡命令的门锁类型更新为封装包编号,人机交互模块定义的门锁编号更新为封装包内的门锁编号;;将更新后的写卡命令发送至第二参数查询转换模块3;否则写卡失败,将操作失败信息发送至人机交互模块,并提示数据库中不包含所读取的门卡类型;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的写卡命令,将写卡命令中人机交互模块定义的参变量转换为对应编号封装包内写卡函数相应的参变量,向封装包调取并执行写卡函数,并将写卡函数的执行结果的返回值转换为人机交互模块中写卡命令对应的返回值后发送至第一参数查询转换模块2;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送写卡函数执行结果,并将写卡函数执行结果发送至人机交互模块。

注销模块14调取并执行该类型门卡注销函数44的具体过程为:

注销模块14发送注销命令,第一参数查询转换模块2接收到注销命令,提取注销命令中所包含的门锁类型和门锁编号信息;查询数据库中是否包含注销命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,将人机交互模块定义的门锁编号转换为该类型门锁封装包中对应的门锁编号;将注销命令的门锁类型更新为封装包编号,人机交互模块定义的门锁编号更新为封装包内的门锁编号;;将更新后的注销命令发送至第二参数查询转换模块3;否则注销失败,;将操作失败信息发送至人机交互模块,并提示数据库中不包含所读取的门卡类型;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的注销命令,将注销命令中人机交互模块定义的参变量转换为对应编号封装包内的注销函数对应的参变量,向封装包调取并执行注销函数,并将注销函数的执行结果的返回值转换为人机交互模块中注销命令对应的返回值后发送至第一参数查询转换模块2;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送注销函数执行结果,并将注销函数执行结果发送至人机交互模块;

关闭端口模块15利用门锁类型信息调取关闭端口函数45的具体过程为:

关闭模块15发送打开端口命令,第一参数查询转换模块2接收到关闭端口命令,提取关闭端口命令中所包含的门锁类型;查询数据库中是否包含关闭端口命令中的门锁类型,若是,则识别该类型门锁对应的封装包编号,更新关闭端口令的门锁类型为封装包编号将更新后的关闭端口命令发送至第二参数查询转换模块3;否则关闭端口失败,将操作失败信息发送至人机交互模块,并提示数据库中不包含所读取的门卡类型;

第二参数查询转换模块3用于接收第一参数查询转换模块2发送的更新后的关闭端口命令,将关闭端口命令中的人机交互模块定义的参变量转换为对应编号封装包内关闭端口函数对应的参变量,向封装包调取并执行关闭端口函数,并将关闭端口函数的执行结果的返回值转换为人机交互模块中关闭端口命令对应的返回值后发送至第一参数查询转换模块2;

第一参数查询转换模块2还用于接收第二参数查询转换模块3发送关闭端口函数执行结果,并将关闭端口函数执行结果发送至人际交互模块。

注销函数44还包括有卡注销函数和无卡注销函数;注销模块14包括有卡注销模块和无卡注销模块;有卡注销模块执行命令时,调取并执行有卡注销函数;卡注销模块执行命令时,调取并执行无卡注销函数。

本发明加载智能门锁接口二次接口封装动态连接第二参数查询转换模块3该模块采用函数ilock.dll实现。加载ilock.dll有动态加载和隐式链接两种方式,这两种加载ilock.dll的方式各有优点,如果采用动态加载方式,那么可以在需要时才加载ilock.dll,而隐式链接方式实现起来比较简单,在编写客户端代码时就可以把链接工作做好,在程序中可以随时调用ilock.dll导出的函数。但是,如果程序需要访问多个封装包时,如果都采用隐式链接方式加载它们的话,那么在该程序启动时,这些封装包的函数都需要被加载到内存中,并映射到调用进程的地址空间,这样将加大程序的启动时间。尤其程序运行过程中只是在某个条件满足时才需要访问数据库中某个封装包中的某个函数,其他情况下都不需要访问这些封装包中的函数。这时所有的封装包都已经被加载到内存中,资源浪费是比较严重的。在这种情况下,就可以采用动态加载的方式访问封装包函数,在需要时才加载所需的封装包函数,也就是说,在需要时封装包中的函数才会被加载到内存中,并被映射到调用进程的地址空间中。实际上,采用隐式链接方式访问封装包函数时,在程序启动时也是通过windowsapi调用连接函数loadibrary实现建立第一参数转换查询模块模块、第二参数转换查询模块与数据库之间的动态链接。本系统加载数据库中的函数采用动态加载方式。

如图2所述,人机交互模块调取执行第i个封装包中函数的原理框图,其中i为正整数,酒店信息管理系统智能门锁功能模打开端口(opencom)函数执行时,现调用第一参数查询转换模块2,获取发卡机端口号、门锁类型和门锁编号等信息,同时动态加载门锁厂家相关dll完成初始化环境变量(门锁授权码,端口号,门锁类型等)。调用第二参数查询转换模块3动态链接数据库,打开端口(iopencom)函数,此函数在门锁酒店信息管理系统在登陆其主程序时调用。

酒店信息管理系统智能门锁功能模块关闭端口(closecom)函数执行时,可以直接调用第二参数查询转换模块3将数据库中打开端口(iclosecom)函数关闭,释放发卡设备,酒店信息管理系统在退出其主程序时调用。

调用数据库中写卡(iwritecard)函数,酒店信息管理系统在客人入住或延住等情况时调用。

酒店信息管理系统智能门锁功能模块写客房卡(readcard)函数执行时,调用第一参数查询转换模块2取门卡信息。读取成功后,读取卡片上信息并查询数据库对应卡片发卡时记录的客人信息、发卡操作员信息,第二参数查询转换模块3调取数据库中的读客房卡(ireadcard)函数,用于读酒店信息管理系统操作读卡功能时调用。

酒店信息管理系统智能门锁功能模块有卡注销门卡(cardearse)函数执行时,第一参数查询转换模块2调用二次接口封装动态链接库ilock.dll中有卡注销客房卡(icardearse)函数,注销客人卡,回收门卡,酒店信息管理系统在退房时调用。

酒店信息管理系统智能门锁功能模块无卡注销客房卡n(ncardearse)函数执行时调用二次接口封装动态链接库ilock.dll中无卡注销客房卡n(incardearse)函数,无卡注销(挂失)客人信息,酒店信息管理系统在无卡注销功能时调用。

经过上述步骤的处理,相同门锁厂家的相同版本的门锁可以使用相同智能门锁接口二次接口封装动态链接库ilock.dll,而无需更改更新酒店信息管理系统,具有非常好的可重用性,与可扩展性;即使匹配酒店使用多个品牌、多个版本的门锁,只需要每台计算机使用不同智能门锁接口二次接口封装动态链接库ilock.dll。当某个酒店使用不同品牌不同版本的智能门锁接口仅需要二次接口封装动态链接库ilock.dll就可以。

虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1