python 调用 精伦idr210/200 Demo SDK及接口文档

近期需要做一个和人力资源相关的管理小软件,加了硬件身份证读卡器,选用了目前市场上保有量较大的精伦idr210。

分享一下调用的DEMO。

# -*- coding : utf-8-*-
# 本Python读取身份证信息的支持的型号有:iDR210-HID系列身份证社保卡读卡器
import ctypes
# 调用动态链接库函数的功能模块ctypes,提供和c兼容的数据类型,允许调用动态库中的函数
from ctypes import *
import os

dll_path = f'{os.getcwd()}' + '/Sdtapi.dll'
id_dev = CDLL(dll_path)  # 加载dll









ret1 = id_dev.InitComm(1001)  # 初始化端口
a = id_dev.Authenticate()  # 认证卡片
msg = ctypes.create_string_buffer(192)  # 创建缓存区
ret2 = id_dev.ReadBaseMsg(msg, 0)  # 读取身份证信息

'''
ReadBaseMsg函数需要自己截断数据,raw属性获取缓冲区所有数据,value属性遇到0字符会截断后面数据
也可以使用以下函数:更多函数在接口文档
ReadBaseInfos( char * Name, char * Gender, char * Folk,char *BirthDay,
char * Code, char * Address,char *Agency, char * ExpireStart,char* ExpireEnd)
 '''
# 具体截取看接口文档
print(msg.raw[0:31].replace(b'\x00', b'').decode('gbk'),
      msg.raw[31:34].replace(b'\x00', b'').decode('gbk'),
      msg.raw[34:44].replace(b'\x00', b'').decode('gbk'),
      msg.raw[44:53].replace(b'\x00', b'').decode('gbk'),
      msg.raw[53:124].replace(b'\x00', b'').decode('gbk'),
      msg.raw[124:143].replace(b'\x00', b'').decode('gbk'),
      msg.raw[143:174].replace(b'\x00', b'').decode('gbk'),
      msg.raw[174:183].replace(b'\x00', b'').decode('gbk'),
      msg.raw[183:192].replace(b'\x00', b'').decode('gbk'),
      )

print(ret1, ret2, a)
id_dev.CloseComm()  # 关闭连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值