我有一个QR /条码扫描器连接到我的Linux系统,它作为/ dev/hidraw1设备来。 如果我做ls -la /dev/hidraw*
我得到读取从/ dev/hidraw1设备连接到linux系统
crw------- 1 root root 248, 0 May 5 10:18 /dev/hidraw0
crw------- 1 root root 248, 1 May 5 11:05 /dev/hidraw1
每当我尝试使用cat /dev/hidraw1
命令我与编码数据一起获得了大量的垃圾数据的这种设备来读取也不会在一个格式化的方式出现。这里是一个QR码的输出
68<,?
.4xml ve7'rsion4="1
..0"4 encod-%in4876g=
"UTF-8"?><PrintLetterB,
.arcod4e&D!'ata"&% ' uid=$"12345,.678",name=
"Rohit 4Ka,
poo.44r,."4 gend&& er=4"M,."4 yob=8"319,93" co
="S
,/O:
Mukesh 4,
为什么它没有连续可读的字符串,改变波特率也没有任何区别。 Here is the screenshot attached
我不需要二进制数据。我想要一个可读的字符串。我面临的问题是每当我拔下设备,我得到的结果是正确可读的字符串,但是当我连续扫描时,我得到它在上面显示的格式。 – user7345878
@ user7345878:我真的怀疑当你_unplug_设备时,你会得到任何东西...... – rodrigo
@ user7345878:啊,那是因为你的扫描器是在模拟“模拟键盘”模式下配置的。阅读'hidraw'你正在获得标准键盘 HID报告,就好像键盘输入一样。内核将它视为一个键盘,并将键入的文本发送到控制台,但控制台忙于使用“cat”,因此当数据回显到屏幕并与二进制数据混杂在一起时,它也被缓冲在标准输入。然后,当'cat'最终被杀死时,所有的stdin缓冲区都会以纯文本的形式被转储。 – rodrigo