HID 바코드 스캐너 (키보드를 에뮬레이트)에 대한 evdev를 폴링하는 python 스크립트를 작성했습니다.이 스크립트는 Linux 플랫폼 (Ubuntu)에서 잘 작동합니다. 거기에 기존 Python 스크립트의 마이너 포팅을 허용 evdev에 대한 OS X 파이썬 이에 상응하는 있나요?OSX 용 Python evdev equivalent
Python 사용 경험이 있고 HID 장치 입력 용으로 구성한 경우 사용자 응답에이를 표시하십시오.
HID 바코드 스캐너 (키보드를 에뮬레이트)에 대한 evdev를 폴링하는 python 스크립트를 작성했습니다.이 스크립트는 Linux 플랫폼 (Ubuntu)에서 잘 작동합니다. 거기에 기존 Python 스크립트의 마이너 포팅을 허용 evdev에 대한 OS X 파이썬 이에 상응하는 있나요?OSX 용 Python evdev equivalent
Python 사용 경험이 있고 HID 장치 입력 용으로 구성한 경우 사용자 응답에이를 표시하십시오.
마지막으로 리눅스 커널에 의존하기 때문에 mac os에는 evdev 포트가 없다고 생각합니다. 당신은 몇 가지 높은 수준의 추상화를 제안 의견에서 사용해야 맥 OS에서 HID에 대한 몇 가지 비즈니스 로직을 구현하려는 경우. 그러나 당신이 낮은 수준에서 evdev을 원한다면, 나는 그렇게 쉬운 방법이라고 생각한다. using the Docker. Mac OS에서 HID 장치에 대한 경험이 없지만 다른 드라이버에서 같은 문제가 해결되었습니다.
(설치 가능 : pip install hidapi
-이 것은 주석에 링크 된 것과 다르지만 기능면에서는 유사 함)을 사용하여 간단한 테스트를 수행했습니다. 나는 또한 macports에서 hidapi-devel
을 설치했지만 포트가 비활성화 된 후에도 계속 작동하므로이 작업이 필요하다고 확신하지는 않습니다. VID를를 사용하는 예를 try.py을 수정하여
는/마이크로 소프트 USB 무선 키보드/마우스 장치의 PID는
from __future__ import print_function
import hid
import time
print("Opening the device")
h = hid.device()
h.open(1118, 2048) # A Microsoft wireless combo keyboard & mouse
print("Manufacturer: %s" % h.get_manufacturer_string())
print("Product: %s" % h.get_product_string())
print("Serial No: %s" % h.get_serial_number_string())
try:
while True:
d = h.read(64)
if d:
print('read: "{}"'.format(d))
finally:
print("Closing the device")
h.close()
을 다음과 나는 다음과 같은 출력을 얻을 수 있었다 $ sudo python try.py
실행과 같이
Opening the device
Manufacturer: Microsoft
Product: Microsoft® Nano Transceiver v2.0
Serial No: None
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
--8<-- snip lots of repeated lines --8<--
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[0, 0, 21, 0, 0, 0, 0, 0]"
read: "[0, 0, 21, 0, 0, 0, 0, 0]"
read: "[0, 0, 21, 0, 0, 0, 0, 0]"
read: "[0, 0, 21, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[0, 0, 4, 0, 0, 0, 0, 0]"
read: "[0, 0, 4, 22, 0, 0, 0, 0]"
read: "[0, 0, 4, 22, 0, 0, 0, 0]"
read: "[0, 0, 4, 22, 0, 0, 0, 0]"
read: "[0, 0, 4, 22, 0, 0, 0, 0]"
read: "[0, 0, 4, 22, 0, 0, 0, 0]"
read: "[0, 0, 4, 0, 0, 0, 0, 0]"
read: "[0, 0, 4, 0, 0, 0, 0, 0]"
read: "[0, 0, 4, 9, 0, 0, 0, 0]"
read: "[0, 0, 4, 9, 0, 0, 0, 0]"
read: "[0, 0, 4, 9, 0, 0, 0, 0]"
read: "[0, 0, 4, 9, 0, 0, 0, 0]"
read: "[0, 0, 4, 9, 7, 0, 0, 0]"
read: "[0, 0, 4, 9, 7, 0, 0, 0]"
read: "[0, 0, 7, 0, 0, 0, 0, 0]"
^CClosing the device
Traceback (most recent call last):
File "try.py", line 17, in <module>
d = h.read(64)
KeyboardInterrupt
을
내가 사용하고있는 특정 장치는 키보드의 여러 HID 장치로 숫자가 열거 된 것처럼 보입니다. & 마우스가 다른 것들 사이에 있기 때문에 바코드 스캐너의 경우에는 약간 랜덤 한 것처럼 보입니다. 그것은 꽤 솔직해야합니다.
답변이 없지만 [this] (http://www.signal11.us/oss/hidapi/) 및 'ioreg -rtn IOHIDKeyboard'명령이 있습니다. – Potatoswatter
https://github.com/apmorton/pyhidapi를 사용해 보셨나요? – pigletfly