Я хотел бы прочитать строку со сканера USB HID с Python на OS X. Приведенный ниже пример является моей отправной точкой, и я смог адаптировать код для своего сканера: я смог выполнить команду:h.open () успешно распечатывает строки производителя и продукта. коды сканирования были проверены с помощью EVDEV со сканером.
Задача заключается в интерпретации возвращенных данных и сопоставлении их со строкой ascii.
Это сообщениепредоставляет пример кода Python HIDAPI :
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]"
^Closing the device
Traceback (most recent call last):
File "try.py", line 17, in <module>
d = h.read(64)
KeyboardInterrupt
Вопросы
Мне не удалось найти хорошие примеры (как найденные с EVDEV ).Любая ссылка на эквивалент будет невероятно полезной. Трудно интерпретировать вывод без хорошей документации. h.read () возвращает список
Почему для h.read () выбрано 64?
d = h.read (64)
Когда 64 заменяется на число от 1,2,3 ... 8, количество элементов в спискета же.9 или более результатов - список из 8 элементов.
Почему переменная 'd' является выходным списком из 8 элементов?(8 нигде не указано)
print ('read: "{}"'. Format (d))
Что представляет собой каждый напечатанный список вывода?1 напечатанный символ?
Что каждый столбец в списке вывода представляет \ кодировать?
Есть ли опубликованная таблица, которая отображает числа вклавиатура?
Я с нетерпением жду ответов: Если у вас есть опыт использования HIDAPI (особенно с Python), пожалуйста, укажите это в своем ответе.Войдите в двойной бонусный раунд для опыта HID-сканера