首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pywinusb写HID磁条卡编码器

pywinusb写HID磁条卡编码器
EN

Stack Overflow用户
提问于 2017-10-26 16:27:31
回答 1查看 693关注 0票数 0

我的任务是创建一个(非常严格的时间限制) tkinter应用程序,可以读取和写入ISO-7811规格的磁卡的POC。我正在使用符合上述标准的MSR605x编码器。

到目前为止,我已经能够将编码器设置为读模式,并使用特性报告和设置所需的原始数据命令来读取刷卡。

我无法通过发送指定的控制命令和我希望使用功能报告写入卡的数据blob,使编码器进入写入模式。据我所知,设备指示它可以与之接口的报表类型。该设备指定了两个:输出和功能。

我尝试了输出报告,但没有成功。理想情况下,我更希望设备使用COM端口,而不是隐藏,但似乎没有办法绕过它。

是否有一个不同的库,我可以尝试,或我是不是遗漏了什么与我的实现?

这是我为设备找到的一些文档:manual.pdf

我增加了我的划痕代码。任何见解都将不胜感激。

代码语言:javascript
复制
import pywinusb.hid as hid
import time
def sample_handler(data):
    print("Raw data: {0}".format(data))

filter = hid.HidDeviceFilter(vendor_id=0x0801, product_id=0x0003)
devices = filter.get_devices()

if devices:
    device = devices[0]
    print "success"

device.open()
device.set_raw_data_handler(sample_handler)
out_report = device.find_feature_reports()[0]

cmd = (0x00,
0x1B,
0x61,
0x1B,
0x65,
0x1B,
0x61,
0x1B,
0x77,
0x1B,
0x73,
0x1B,
0x01,
0x41,
0x42,
0x43,
0x31,
0x32,
0x33,
0x1B,
0x02,
0x31,
0x32,
0x33,
0x34,
0x35,
0x1B,
0x03,
0x31,
0x32,
0x33,
0x34,
0x35,
0x3F,
0x1C
)
buffer = [0x00] * 65
i = 0
for x in cmd:
    buffer[i] = x
    i += 1

print buffer
out_report.set_raw_data(buffer)
out_report.send()
count = 0
while device.is_plugged() and count < 10:
    time.sleep(0.5)
    count += 1

device.close()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-27 15:32:24

我想出了要发送它的控制字符。仍然只使用功能报告。这就转化为;3=3?在一条钢带的第二轨道上。

代码语言:javascript
复制
cmd = (0x00,
0x1B,
0x61,
0x1B,
0x77,
0x1B,
0x73,
0x1B,
0x02,
0x33,
0x3D,
0x33,
0x3F,
0x1C,
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46959380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档