我有一個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