一种二代身份证读卡器动态配置接口系统
文献发布时间:2023-06-19 09:26:02
技术领域
本发明属于二代身份证读卡技术领域。
背景技术
由于不同的厂家提供不同版本的二代身份证读卡器接口,接口形式分别为DLL组件、 OCX组件或COM组件等。在信息传输过程中,信息管理系统里通过接口读取二代身份证信息存在以下几个问题:1.管理信息系统存在同一最终用户同时使用多种不同厂商或不同版本的二代身份证读卡器情况。现在管理信息系统处理方式,不同厂商或不同版本二代身份证读卡器对应生成多个程序,给系统开发商售后技术服务及最终用户带来一系列使用问题;2.信息管理系统软件开发商根据用户使用二代身份证读卡器生成专用版本,同时如果最终用户使用信息管理系统中更换新的厂商或版本的二代身份证读卡器,需要重新连接二代身份证读卡器接口,给信息管理系统开发商带来版本管理的不便;
针对以上问题信息管理系统需要一个可根据二代身份证读卡器接口版本动态配置接口系统,不用更换信息管理系统程序解决上述存在问题。
发明内容
本发明是为了解决现有二代身份证读卡器出现故障进行设备更换时,需要伴随更改后台系统,存在系统适配性差的问题,提出了一种二代身份证读卡器动态配置接口系统。
本发明所述一种二代身份证读卡器动态配置接口系统,该系统用于读卡器与后台系统版本号不同时使用,该系统包括操作层、信息识别模块、信息转换封装模块和数据库;
操作层包括初始化模块、读卡模块、关闭模块和设置模块;
信息识别模块根据读卡器版本号调取数据库内对应版本号的封装包;将调取的封装包发送至初始化模块;
初始化模块用于利用接收的封装包,对系统进行初始化;对信息转换封装模块的数据格式进行设置;
读卡模块将接收到的读卡命令传递给读卡器,并接收读卡器读取的身份证信息;将接收的身份证信息发送至信息识别模块;
关闭模块用于接收读卡器关闭命令,向读卡器发送停止读卡控制信号;
设置模块用于提供读卡器的版本号设置端口,并将设置信息发送至信息识别模块和初始化模块;
信息识别模块还利用调取的封装包对读卡模块读取的身份证信息进行识别;并将识别的身份证信息发送至信息转换封装模块;
信息转换封装模块用于对接收的身份证信息进行格式转换封装,封装为后台系统版本可识别的信息,并将封装后的信息发送至后台系统;还接收后台系统发送的控制信息,将控制信息进行格式转换封装,封装为读卡器可识别的信息发送给信息识别模块;
信息识别模块还用于将对控制信息进行识别,将识别的信息发送至操作层对应的模块;
数据库包括n个封装包,每个封装包内存储一个版本号的读卡器的封装码和解析码,其中,n为正整数。
进一步地,信息识别模块采用动态加载的方式获取数据库内的封装包。
进一步地,还包括授权模块,所述授权模块用于通过信息识别模块和信息转换封装模块接收系统后台发送的授权信息。
本发明采用动态加载的方式获取封装包,实现对读卡器读取的身份证数据进行识别,并将识别的数据发送至信息转换封装模块,转换为后台系统可识别的数据格式,这样就无需更新后台系统,因此,更换读卡器后只需要运行本发明所述的读卡器动态配置接口系统即可,有效的节约了人力劳动,同时提高了系统的适配性。
附图说明
图1是本发明所述二代身份证读卡器动态配置接口系统原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
具体实施方式一:下面结合图1说明本实施方式,本实施方式所述一种二代身份证读卡器动态配置接口系统,该系统用于读卡器与后台系统版本号不同时使用,该系统包括操作层、信息识别模块5、信息转换封装模块6和数据库;
操作层包括初始化模块1、读卡模块2、关闭模块3和设置模块4;
信息识别模块5根据读卡器版本号调取数据库7内对应版本号的封装包;将调取的封装包发送至初始化模块1;
初始化模块1用于利用接收的封装包,对系统进行初始化;对信息转换封装模块6的数据格式进行设置;
读卡模块2将接收到的读卡命令传递给读卡器,并接收读卡器读取的身份证信息;将接收的身份证信息发送至信息识别模块5;
关闭模块3用于接收读卡器关闭命令,向读卡器发送停止读卡控制信号;
设置模块4用于提供读卡器的版本号设置端口,并将设置信息发送至信息识别模块5 和初始化模块1;
信息识别模块5还利用调取的封装包对读卡模块2读取的身份证信息进行识别;并将识别的身份证信息发送至信息转换封装模块6;
信息转换封装模块6用于对接收的身份证信息进行格式转换封装,封装为后台系统版本可识别的信息,并将封装后的信息发送至后台系统;还接收后台系统发送的控制信息,将控制信息进行格式转换封装,封装为读卡器可识别的信息发送给信息识别模块5;
信息识别模块5还用于将对控制信息进行识别,将识别的信息发送至操作层对应的模块;
数据库7包括n个封装包,每个封装包内存储一个版本号的读卡器的封装码和解析码, 其中,n为正整数。
本发明所述的数据库内存储有不同版本的二代身份证读卡器版本的封装信息和解码信息,利用解码信息对读卡器读取的数据进行解析,利用封装信息对后台系统发送的控制信号进行封装转换为读卡器可识别的信息,这样再更换读卡器后只需要在操作层包内设置读卡器的版本号即可,本发明所述的数据库还与网络连接,可实现实时更新数据库,这样就保证了数据库数据的全面性。
进一步地,信息识别模块5采用动态加载的方式获取数据库内的封装包。
进一步地,操作层还包括授权模块,所述授权模块用于识别后台系统ID,判断后台系统是否具有使用身份证读卡器的权限,若是没有,停止与后台系统建立联系。
本实时方式所述的判断后台系统是否具有使用身份证读卡器的权限为公安系统备案授权获得,若是没有公安系统授权备案,则不允许对身份证信息进行读取。
本实施方式所述的二代身份证读卡器动态配置接口系统主要目的是读取二代身份证信息。通过对现有二代身份证读卡器厂商提供各种版本开发接口分析,接口提供功能总结如下: (1)初始化端口;(2)关闭端口;(3)授权;(4)读卡。
封装二代身份证读卡器厂商提供各种版本开发接口,接口函数命名:Load_ID_DLL。将现有二代身份证读卡器厂商提供各种版本开发接口信息作为封装包打包到Load_ID_ DLL中,接口系统使用函数:(1)初始化端口(IInitComm);关闭端口(ICloseComm); (3)授权(IAuthenticate);(4)读卡(IRead_Content)。
其次,动态加载Load_ID_Dll。加载函数有动态加载和隐式链接两种方式,这两种加载的方式各有优点,如果采用动态加载方式,那么可以在需要时才加载,而隐式链接方式实现起来比较简单,在编写客户端代码时就可以把链接工作做好,在程序中可以随时调用DLL 导出的函数。但是,如果程序需要访问多个封装包,如果都采用隐式链接方式加载它们的话,那么在该程序启动时,这些DLL都需要被加载到内存中,并映射到调用进程的地址空间,这样将加大程序的启动时间。尤其程序运行过程中只是在某个条件满足时才需要访问某个DLL中的某个函数,其他情况下都不需要访问这些封装包中的函数。这时所有的封装包都已经被加载到内存中,资源浪费是比较严重的。在这种情况下,就可以采用动态加载的方式访问封装包,在需要时才加载所需的封装包,也就是说,在需要时封装包时才会被加载到内存中,并被映射到调用进程的地址空间中。实际上,采用隐式链接方式访问封装包时,在程序启动时通过调用LoadLibrary()函数,加载该程序进程需要的动态链接库的。
根据信息管理系统用户使用何种版本二代身份证读卡器通过配置文件ID.INI中Device Type(读卡器版本类型)值,释放厂商接封装包,加载二代身份证读卡器厂商提供接口。
接口系统读取身份证模块初始化端口(InitComm)函数时,调用初始化端口(IInitComm) 函数。
接口系统读取身份证模块关闭端口(CloseComm)函数执行时调用Load_ID_Dll中打开端口(ICloseCom)函数,释放发卡设备,接口系统在退出其主程序时调用。
接口系统读取身份证模块读取二代身份证信息使用读卡(Read_Content)函数执行时调用Load_ID_Dll中读取二代身份证信息(IRead_Content)函数,信息管理系统在读取二代身份证信息功能时调用。
进一步地,还包括授权模块,所述授权模块用于通过信息识别模块5和信息转换封装模块6接收系统后台发送的授权信息。
本发明所述的二代身份证读卡器动态配置接口显减少系统软件空间占用,降低软件连接二代身份证读卡器接口的复杂度、提高了系统的可重用性、可扩展性。通过接口的二次封装及配置文件,二代身份证读卡器动态配置接口可以方便连接任意类型的不同品牌不同版本的二代身份证读卡器接口,也可使用同一信息管理系统同时使用多种不用品牌不同版本的二代身份证读卡器问题。
虽然在本文中参照了特定的实施方式来描述本发明,但是应该理解的是,这些实施例仅仅是本发明的原理和应用的示例。因此应该理解的是,可以对示例性的实施例进行许多修改,并且可以设计出其他的布置,只要不偏离所附权利要求所限定的本发明的精神和范围。应该理解的是,可以通过不同于原始权利要求所描述的方式来结合不同的从属权利要求和本文中所述的特征。还可以理解的是,结合单独实施例所描述的特征可以使用在其他所述实施例中。
- 一种二代身份证读卡器动态配置接口系统
- 一种二代身份证读卡器动态配置接口系统