2016-06-26 10 views
1

をHID、この1のI cat /dev/hidraw0必要性のroot権限 を使用して、それから読み取るプラス私はのpython:USBから読んで、私は彼らでは、/ dev /は、ttyUSB *私はpyserial使用に表示されます私のシリアルデバイスのためには/ dev/hidraw に表示されたUSB RFIDデバイスを持っており、それが魅力のように動作しますが、デバイス

私はevdevのライブラリを使用するリスニングを続ける一行を読んでいないする必要がありますが、私のデバイスがまったく表示されないことができませんでした:だから

import evdev 
devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()] 
for device in devices: 
    print(device.fn, device.name, device.phys) 

プログラムからデバイスから読み込む適切な方法はありますか? default evdev.list_devicesことで

+0

ご質問は読みにくいです

次にあなたがループの中でお使いのデバイスを聞く必要がある($のls -lの/ dev/hidraw0参照)お使いのデバイスを所有するグループにユーザーを追加することができます。 pyusbを見てください(もちろん、まだデバイスへのアクセス権が必要です)。 – handle

+0

'cat/dev/hidraw0'がそれを見ることができない場合、それは良いとは言えません:あなたは欠陥のあるデバイスを持っているかもしれません。ターミナルで 'lsusb'を実行すると表示されますか?また 'dmesg | lsusbがそれを見ることができても、必ずしもあなたが実際にデバイスで有用な何かを行うことができるということを必ずしも意味しないことに注意してください。しかし、lsusbがそれを見ることができないなら、おそらく死んでいるでしょう。 –

+0

私はcat関数で読むことができますが、root権限が必要です。普通のユーザーとして読む方法はありますか? – safouman

答えて

2

は、()は/ dev /入力

にだけ見て、あなたはあなたのデバイスで動作する権限が必要です。あなたは

#!/usr/bin/python3 
import evdev 

devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()] 
for device in devices: 
    print(device.fn, device.name, device.phys) 

device = evdev.InputDevice("/dev/input/event4") 
print(device) 
for event in device.read_loop(): 
    print(event) 
+0

私は自分のBeurere BC 58をラズベリーのパイ3に接続し、そのデバイスが/ dev/hidraw3として検出されたのを見ました。しかし、残念ながら私は "dev"の入力イベントを見つけることができません。私は3つのイベント/ dev/input/event0、event1、event2のリストを持っています。イベント1と2がキーボードとマウスとして表示されます。しかし、私の血圧モニターはどんなイベントの一部でもありません。それ以外の場所はありますか? – Kiran

関連する問題