Foxtable(狐表)用户栏目专家坐堂 → 关于二代身份证读卡器的应用问题?


  共有16550人关注过本帖树形打印复制链接

主题:关于二代身份证读卡器的应用问题?

帅哥哟,离线,有人找我吗?
擎天柱
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4243 威望:0 精华:4 注册:2008/9/1 8:27:00
  发帖心情 Post By:2011/10/11 9:16:00 [显示全部帖子]

我用的是华旭金卡,谁有华旭的?麻烦共享一下,谢谢!

华旭官方的开发包是加密打包的,打不开。

另外网上有通用开发包开发的样板,可惜我不会用。

如果foxtable能够引用应用这些通用开发包,那又是一大市场啊!


 回到顶部
帅哥哟,离线,有人找我吗?
擎天柱
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4243 威望:0 精华:4 注册:2008/9/1 8:27:00
  发帖心情 Post By:2011/10/11 9:21:00 [显示全部帖子]

广东省在搞人口申报,要求工厂、出租屋安装,参考如下链接

http://kf.gydz.cn/

 


 回到顶部
帅哥哟,离线,有人找我吗?
擎天柱
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4243 威望:0 精华:4 注册:2008/9/1 8:27:00
  发帖心情 Post By:2011/10/11 9:58:00 [显示全部帖子]

贺老师能用foxtable引用这个二代身份证通用开发包么?如果能做个范例,那应该是多爽的事啊!

附二代身份证通用开发包:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:126disk.com_二代身份证读卡器sdk终极版 v1.0.zip


 回到顶部
帅哥哟,离线,有人找我吗?
擎天柱
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4243 威望:0 精华:4 注册:2008/9/1 8:27:00
  发帖心情 Post By:2011/10/11 10:06:00 [显示全部帖子]

以下资料摘自网络:
通用二代身份证阅读器接口
    为了简化用户操作,很多用户都购买了二代身份证阅读器用于在预约挂号、入院登记、自助打印等需要使命登记的业务场合进行身份证信息快速录入,同时二代身份证阅读器也为使用单位避免法律风险、提高管理水平提供了一个现代化的工具。

         为了满足用户需求,我们系统中也提供了相应的接口以读取二代身份证阅读器读到的信息,目前我们已经支持多种型号的二代身份证阅读器设备,如深圳华视CVR-100U、深圳华视CVR-100D、神思-V1、新中新KDQ-116D、国腾GTICR100、华旭HX-FDX9。

         但是最近半年,很多二代身份证阅读器接口部件升级导致我们之前开发的设备接口不能正常使用,如提示“软件未授权”等错误。需要我们重新开发新接口。针对此问题,我在网上了解到一些于此相关的信息。早些年是有公_安部发放标准《身份证阅读器智能接口版SDK 使用手册》及SDK相关文件。主要包括

termb.h       API函数原型定义

termb.lib      API函数的VC开发包

termb.dll      API函数的动态联接库

sdtapi.dll    termb.dll需要的后台库(和termb.dll一起放在当前目录或系统目录下)

WltRS.dll   termb.dll需要的后台库(和termb.dll一起放在当前目录或系统目录下)

公_安部提供的Termb.dll动态联接库 提供了七个方法以满足系统应用中的使用需求,SDK很少升级,而且每次升级都没有大的变化(我们目前使用的是 V1.2.0,我看到最新的是v1.3.0),我们之前开发的六个设备接口都是基于V1.2.0的SDK开发的,使用正常。但是最近有三种型号的设备因产品升级出现故障,不能正常使用,我们通过分析检查,发现写设备公司提供的SDK发生了较大的变化,termb.dll提供的方法与公_安部提供的termb.dll提供的方法出现差异,需要我们重新编写接口,为了避免重复编写接口,我们试图找到一种实现通用接口的方法,通过网上查找资料,已近对这三种设备的提供的SDK DLL文件进行分析,我们发现 WltRS.dll几年来未发生变化,主要是用于相片解码,sdtapi.dll发生变化较小,基本与公_安部提供的一致,发生变化较大的是termb.dll,termb.dll主要是对sdtapi.dll和WltRS.dll文件的方法进行封装。因此,我们可以考虑直接调用 sdtapi.dll 和 WltRS.dll 的方法进行解析。常用方法如下

1.        SDT_OpenPort               打开端口

2.         SDT_ClosePort             关闭端口

3.        SDT_GetCOMBaud             获取波特率

4.        SDT_SetCOMBaud             设置波特率

5.         SDT_ResetSAM                         

6.         SDT_SetMaxRFByte                           

7.         SDT_GetSAMStatus                           

8.         SDT_GetSAMID                         

9.         SDT_GetSAMIDToStr               

10.     SDT_StartFindIDCard        开始寻卡

11.     SDT_SelectIDCard           选卡

12.     SDT_ReadMngInfo                   

13.     SDT_ReadBaseMsg            读取身份证基本信息

14.    SDT_ReadBaseMsgToFile       读取身份证基本信息到文件

15.     GetBmp                      获取照片

使用以上15个方法即可实现大多数设备通用的接口程序,有个别特殊的除外(如华视连sdtapi.dll 都已修改,这种情况只能开发新接口)。

那么,如何根据医生15个方法实现通用接口呢?

二代身份证阅读器接口的实现流程一般为:

打开端口->找卡->选卡->读卡(一般保存到文件)->解析->关闭端口

知道流程后就可以开始编码,此处不便贴出所有代码,只对需要特别注意的地方进行解释。

首先,第一步打开端口需要特别注意,串口和USB接口的身份证阅读器设备比较常见,而一般计算机最多包含16个USB接口和4个串口,打开端口时应该检查所有端口。

16个USB端口用  1001~1016 表示;4个串口用1~4表示;

我们可以循环对这20个端口进行检查

For iPort = 1001 To 1016

        intReturn = SDT_OpenPort(iPort)

        If intReturn = 1 Then

            blnUsbPort = True

            Exit For

        End If

    Next

   

    If Not blnUsbPort Then

        For iPort = 1 To 4

            intReturn = SDT_OpenPort(iPort)

            If intReturn = 1 Then

                blnUsbPort = False

                Exit For

            End If

        Next

    End If

   

    If intReturn <> 1 Then

        MsgBox "端口打开失败,请检测相应的端口或者重新连接读卡器!", vbInformation

    End If

 

第二步第三步,找卡、选卡这两部比较简单,只需要传入正确参数即可。相关方法SDT_StartFindIDCard和SDT_SelectIDCard。

第四步读卡,读卡分为两步,读取并解析基本信息和读取照片。读取基本信息即可以读入内存,也可以读入文件,然后在解析文件。读取照片可直接保存为BMP文件,但是,要想正确读取照片文件,必须需要机具厂商的授权文件termb.lic,并将该授权文件放在C盘根目录下。涉及方法有SDT_ReadBaseMsg、SDT_ReadBaseMsgToFile和GetBmp。

第五步关闭端口是不必像打开端口是循环调用,只需要调用一次即可,因为端口号已确定。

         通过这五步即可实现普遍通用的二代身份证阅读器接口,目前测试过三种设备,华旭HX-FDX9、新中新、国腾GTICR100,该接口都能正确读取身份证的信息,但其通用性还需要新的设备继续测试验证,深圳华视那样的特例目前只发现一个,不知道会不会接二连三的出现


 回到顶部