2016-06-26 7 views
1

/dev/hidraw에 나타나는 USB 장치가/dev/ttyUSB *에있는 시리얼 장치 에 있습니다.이 장치는 pyserial을 사용하지만 매력적으로 작동하지만이 장치에서는 작동합니다. cat /dev/hidraw0 필요 루트 권한 를 사용하여 읽기 플러스 난python : USB HID 장치에서 읽음

내가 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 함수를 사용하여 읽을 수는 있지만 일반 사용자로 읽을 수있는 방법은 루트 권한이 필요합니까? – 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을 raspberry pi 3에 연결하고 장치가/dev/hidraw3으로 탐지 된 것을 보았습니다. 하지만 불행히도 "dev"에서 입력 이벤트를 찾을 수 없습니다. 나는/dev/input/event0, event1, event2의 3 가지 이벤트 목록을 가지고있다. 어떤 이벤트 1과 2가 키보드와 마우스로 표시됩니다. 그러나 혈압 모니터는 어떤 사건의 일부가 아닙니다. 그것을 찾아내는 다른 방법이 있습니까? – Kiran