ASUS PSR 2000 Web Surfing Remote Control과 함께 제공되는 eDIO USB Multi Remote Controller (적외선 리시버)가 있습니다.
Remote COntroller를 내 pi에 연결하여 리모콘에서 보낸 키 입력을 수신하려고합니다.
컨트롤러가 HID 장치로 감지되었습니다. lsusb -v 명령의 세부 사항은 다음과 같습니다.
Bus 001 Device 007: ID 147a:e001 Formosa Industrial Computing, Inc.
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x147a Formosa Industrial Computing, Inc.
idProduct 0xe001
bcdDevice 1.22
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 300mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 20
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 10
또한 이벤트가 생성 된 dev 폴더에서 대상 장치를 볼 수 있습니다
pi@raspberrypi /dev/input/by-id $ dir
usb-Cypress_Semiconductor_eDio_USB_Multi_Remote_Controlle-event-if00
이와 연관된 이벤트 핸들러는 다음 명령에서 볼 수 있듯이 다음과 같습니다.
pi@raspberrypi /proc/bus/input $ cat devices
I: Bus=0003 Vendor=147a Product=e001 Version=0110
N: Name="Cypress Semiconductor eDio USB Multi Remote Controlle"
P: Phys=usb-bcm2708_usb-1.2/input0
S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input2
U: Uniq=
H: Handlers=event0
B: PROP=0
B: EV=1
문제는 장치에 대해 작성된 이벤트 핸들러에서 출력을 읽으려고 할 때입니다. 첫 번째 키 입력은 등록되었지만 후속 키 입력은 CAT 명령으로 표시되지 않습니다.
pi@raspberrypi /dev/input $ cat event0 | xxd
0000000: e007 9450 9476 0900 0000 0000 0000 0000 ...P.v..........
장치를 작동 시키려면 어떻게해야하는지 제안하십시오. 첫 번째 키 입력 후 아무 키나 눌러도 장치를 다시 연결하지 않으면 아무 것도 반환되지 않습니다.
문제를 해결하기 위해 수행해야 할 작업을 제안하십시오.
|xxd
? 출력을 버퍼링합니다. 내가 사용하는 irw
패키지에서 lirc
내 원격으로 전송되는 키 코드를 얻을 수 있습니다.