Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 5, 2011 03:44:11

boltayka
От:
Зарегистрирован: 2009-10-07
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с USB HID через Python

Всем привет.
Убил 4 часа жизни на гугление и попытки, затем ещё 5 минут на поиск по форуму и теперь смело пишу вопрос…

Задача такая: нужно принимать сигналы с usb-hid устройства (клавиатуры, короче говоря)… Win7x64. Py27 (при необходимости могу поставить любую другую версию питона)
Нашел библиотеку PyUsb, через сорцы установил.
По туториалу написал следующий код

import usb.core
import usb.util

dev = usb.core.find(idVendor=0x04D9, idProduct=0x1702)

if dev is None:
raise ValueError('Device not found')
И получил ошибку
Traceback (most recent call last):
File "C:\Python27\keyboard.py", line 4, in <module>
dev = usb.core.find(idVendor=0x04D9, idProduct=0x1702)
File "C:\Python27\lib\usb\core.py", line 829, in find
raise ValueError('No backend available')
ValueError: No backend available
Погуглив ошибку узнал, что нужно установить backend - libusb. По инструкциям долгими трудами установил…

Но все-равно скрипт не работает.
Что подскажите? Может есть какие-то аналоги для работы с USB… Обычное считывание клавиш не подойдёт, т.к. мне нужно работать только с одной клавиатурой… Заранее благодарю.

Офлайн

#2 Авг. 5, 2011 10:55:34

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Работа с USB HID через Python

boltayka
Но все-равно скрипт не работает.
Какая ошибка?



Офлайн

#3 Авг. 5, 2011 12:10:12

boltayka
От:
Зарегистрирован: 2009-10-07
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с USB HID через Python

Lexander
Какая ошибка?
тоже самое:
ValueError: No backend available

Отредактировано (Авг. 5, 2011 12:10:30)

Офлайн

#4 Авг. 5, 2011 15:56:31

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Работа с USB HID через Python

Уверены, что установили правильно и libusb находится в PythonPath?



Офлайн

#5 Авг. 5, 2011 19:39:40

boltayka
От:
Зарегистрирован: 2009-10-07
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с USB HID через Python

Впервые слышу, что оно должно в PyPath ставиться… Нигде ничего на эту тему нету…
Lexander (и не только), может вы знаете как и куда ставить?..

Офлайн

#6 Авг. 6, 2011 03:19:06

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Работа с USB HID через Python

А может отложить установку библиотек и, используя winapi, работать с Raw Input Device?



Офлайн

#7 Авг. 6, 2011 14:43:46

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Работа с USB HID через Python

boltayka
Впервые слышу, что оно должно в PyPath ставиться…
И не должна, это я ошибся.

Ничего лучшего, чем описано тут: http://sourceforge.net/apps/trac/libusb-win32/wiki предложить не могу.



Офлайн

#8 Авг. 6, 2011 23:59:50

boltayka
От:
Зарегистрирован: 2009-10-07
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с USB HID через Python

Ох, сколько я сегодня прочитал и попробовал… Проблема ещё и в 64х-разрядной оси (с дуру поставил…)
Но теперь я принципиально должен это реализовать.
pyuser, спасибо за идею. А можно какие-нибудь ХОРОШИЕ примеры работы с win32api?…
Хорошо бы затронуть http://msdn.microsoft.com/en-us/library/ms645549%28v=vs.85%29.aspx

И ещё очень интересно про Ctypes подробнее. Работает ли он с C#, можно ли в нем (ctypes) запустить эту http://sites.google.com/site/hidlibrary или http://www.florian-leitner.de/index.php/projects/usb-hid-driver-library эту либы?

Lexander, спасибо, но в эту ссылку я уже раз 20 тыкался. Не меньше.



p.s. сейчас ещё подкинули идею - pyserial. Посмотрим, что он может

Отредактировано (Авг. 7, 2011 00:07:14)

Офлайн

#9 Авг. 8, 2011 09:57:33

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Работа с USB HID через Python

boltayka
pyuser, спасибо за идею. А можно какие-нибудь ХОРОШИЕ примеры работы с win32api?…
Хорошо бы затронуть http://msdn.microsoft.com/en-us/library … 85%29.aspx
Я с RawInput пару лет назад работать пытался, поэтому ссылок сейчас не вспомню.
здесь порт сишного хедера для работы с RawInput
здесь пример получения информации о подключенных устройствах
здесь тоже самое, но на питоне



Отредактировано (Авг. 8, 2011 10:00:17)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version