为什么80%的码农都做不了架构师?>>>   

发现酒店、网吧、公家单位好多都是使用的这种蓝色的身份证读取盒子,所以我研究了一下也写个Python示例

网上搜了搜关于这款机器的SDK,基本上全是C#的帖子

首先,先安装他们的驱动,我使用的是USB驱动,在他们官网上下载了动态链接库,实际上就是使用SynIDCardAPI.dll这个库。

下面,我们来调用一下他们提供的接口(接口文档就不提供了,可以去他们官网下载后观摩),下面是我的Python代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import ctypes, sys, re
from ctypes import * #因为使用的是C/C++的库,所以我们引用ctypesdll = ctypes.windll.LoadLibrary("SynIDCardAPI.dll") #载入库iPort = dll.Syn_FindUSBReader() #寻找USB,返回的貌似是什么端口pucIIN = ctypes.create_string_buffer(128)
dll.Syn_StartFindIDCard(iPort, pucIIN, 1) #开始找卡pucSN = ctypes.create_string_buffer(128)
dll.Syn_SelectIDCard(iPort, pucSN, 1) #选择卡cPhotopath = ctypes.create_string_buffer(255)
dll.Syn_SetPhotoPath(1, cPhotopath) #这一步很重要,他们默认把身份证头像存在了C盘根目录,导致win7下面调用会导致python崩溃,原因是没有管理员权限,这里1参数可以换到当前目录即可#下面调用他们的最终读取函数Syn_ReadMsg,第三个参数是一个结构体,Python本身没有C/C++那样的结构体,但是可以通过ctypes的Structure来解决
class IDCardData(Structure):_fields_ = [('Name', c_char * 32), #姓名('Sex', c_char * 6), #性别('Nation', c_char * 20), #民族('Born', c_char * 18), #出生日期('Address', c_char * 72), #住址('IDCardNo', c_char * 38), #身份证号('GrantDept', c_char * 32), #发证机关('UserLifeBegin', c_char * 18), #有效开始日期('UserLifeEnd', c_char * 18), #有效截止日期('reserved', c_char * 38), #保留('PhotoFileName', c_char * 255) #照片路径]
data = IDCardData()
r = dll.Syn_ReadMsg(iPort, 1, byref(data))
if r == 0:reserved = (getattr(data, 'reserved') if getattr(data, 'reserved') != '' else 'None')result = getattr(data, 'Name') + "||" + getattr(data, 'Sex') + "||" + getattr(data, 'Nation') + "||" + getattr(data, 'Born') + "||" + getattr(data, 'Address') + "||" + getattr(data, 'IDCardNo') + "||" + getattr(data, 'GrantDept') + "||" + getattr(data, 'UserLifeBegin') + "||" + getattr(data, 'UserLifeEnd') + "||" + reserved + "||" + getattr(data, 'PhotoFileName')result = result.decode('gbk').encode('utf8')print result #这里就返回的是身份证信息,我这里以双竖线分隔拼成字符串了
else:print "None"

说实话,他们的接口压根就没有考虑什么PHP、Python这类语言,一点都不方便,给C#却提供了很多示例,真心操蛋!

留帖为了方便我以后查看,也给学习Python的童鞋们一个希望,读取身份证类似的C/S架构软件也可以使用wxPython进行开发。

转载于:https://my.oschina.net/ruiorz/blog/776084

新中新a16d二代居民身份证阅读器Python示例相关推荐

  1. 第二代居民身份证阅读器GTICR-100(国腾)接口类调用方法

    最近做了一个项目,客户需求要用第二代居民身份证阅读器GTICR-100(国腾)来读取用户的信息.我做的这个项目是C/S开发的(C#  windowsForms),用到的一些参考资料以及这个国腾硬件驱动 ...

  2. 居民身份证阅读器产品开发学习心得(再谈标准-软件-协议)

    说到一些产品化的东西,之前就写过一篇关于标准化的文章,当然作为我本人而言,也是在不断的学习中,理解标准,则有利于未来转型走向产品以及市场相关的岗位,因为我不单单是要了解怎么做?(这是技术层面),我还需 ...

  3. 华视100UC 身份证阅读器 Java

    华视100UC 身份证阅读器 Java 哪位大佬有64位可用的dll文件,施舍给小弟吧,万分感谢 功能 环境 个人想法(有不对的地方希望大佬指正) 对于dll文件的想法 目录结构 1. pom.xml ...

  4. 东控智能IDR-100U身份证阅读器怎么样?

    有人听说过这款身份证阅读器吗?外观可以定制,下面有它的介绍和一些参数 IDR-100U台式居民身份证读卡器 产品简介: IDR-100U台式居民身份证阅读机具是广东东控智能科技有限公司为各有关单位方便 ...

  5. 华视身份证阅读器SDK使用手册

    华视身份证阅读器SDK使用手册 V1.33 华视电子读写设备有限公司  2008年07月11日 概述 本手册是操作身份证阅读器动态库应用函数的定义格式.调用方法和返回值的说明.在使用前,请确认授权文件 ...

  6. Node.js 调用 dll动态库 以华旭身份证阅读器为例

    需求来源 由于使用Electron使用开发桌面端,同时也需要连接硬件设备,单纯使用js方法无法完成,需要通过Node调用dll动态库方式完成. 版本说明: node v12.18.3 (32位) np ...

  7. 精伦身份证阅读器php_精伦IDR210-1(免驱)身份证阅读器

    产品概述 精伦IDR210-1身份证读卡器是一款多功能 .免装驱动程序的射频卡读写器,可根据需求配置不同部件实现不同射频卡的读取和写入功能. 精伦IDR210-1配置了专用身份证安全控制模块(SAM) ...

  8. c# 新中新二代身份证阅读,包含头像,支持华视

    需要用到dll和文件: 其中3个dll文件是需要调用的dll,license.dat文件为解压图片的授权文件 以下是需要用到的dll里面的方法: /************************端口 ...

  9. python能调用身份证读卡器吗_用Python在Linux下调用新中新DKQ-A16D读卡器,读二代证数据...

    1.背景 最近在研究二代证读卡器,手头上的设备是新中新DKQ-A16D,在官网(https://www.onecardok.com.cn/download)逛了一圈,发现Win下的示例,浏览器插件很多 ...

最新文章

  1. 第九章、文件与文件系统的压缩与打包 3. 打包命令: tar
  2. 用matlab相关分析,基于matlab的逐像元偏相关分析
  3. 烂泥:文件服务器搭建与使用详解,minio文件服务器搭建(单机版)
  4. bitsadmin命令(Windows下载文件命令)
  5. 华为Mate 30系列发布会定档:年度机皇 天生优秀!
  6. Spring:Spring-过滤器Filter原理
  7. 面向对象与面向过程对比
  8. 解决M1的mac打开JD-GUI报错问题(超简单)
  9. Error: spawn xxxx ENOENT原因与解决
  10. 读《大学之路》有感---谈谈书房对于一个家庭的重要性
  11. ipad能不能装python_ipad能下载python么
  12. 自然语言处理hanlp------8AC自动机
  13. 数据抓包(网络爬虫)-正方教务管理系统登录
  14. Python基本元素:数字、字符串和变量
  15. 2021年度训练联盟热身训练赛第一场 A.Weird Flecks, But OK (最小覆盖圆)
  16. ChinaSoft 论坛巡礼 | CCF-华为胡杨林基金-形式化方法专项论坛
  17. Android 切换系统语言功能实现(下)
  18. IBM z15揭开面纱,多项业界首创技术护航混合多云安全
  19. 利用深度学习对象检测器从信息素陷阱图像中自动计数松球菌监测
  20. ES6写JSDoc的一些经验和实例

热门文章

  1. 关注博主的博文汇总(孙志刚、贺利坚……)
  2. 那些年啊,那些事——一个程序员的奋斗史 ——53
  3. 2.Select操作
  4. python面试题常考的超市购物车系统
  5. 数据规范化与数据离散化
  6. 格式化字符串漏洞及利用_萌新食用
  7. 阿里开源自研工业级稀疏模型高性能训练框架 PAI-HybridBackend
  8. 机器学习之算法优化(一)
  9. python获取本地时间_Python实例讲解 -- 获取本地时间日期(日期计算)
  10. 零基础编程——块语言编程游戏攻略之动画篇