Я пытаюсь использовать python для связи с обычным HID-устройством.
Я читал, что библиотека HIDAPI, написанная на C, превосходит libusb1.0 для простой и стабильной межплатформенной связи HID. Однако, никто никогда не потрудился показать, как вызывать функции HIDAPI из сценария python, и именно здесь у меня возникают проблемы.
Я понимаю достаточно ctypes, чтобы вызывать действительно простые функции C, такие как:
int add(int n1, int n2) {
return n1 + n2;
}
Проблема в том, что функции HIDAPI более сложны, например (в заголовочном файле HIDAPI ):
struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id);
, который указывает на эту структуру (в файле C ветви Mac ):
struct hid_device_info HID_API_EXPORT *hid_enumerate(unsigned short vendor_id, unsigned short product_id)
{
...
}
где '...' - это большой объем кода уровня ОС, который в конечном итоге возвращает «указатель на связанный список типа struct #hid_device, содержащий информацию об устройстве HID»
Как бы вы поступили с использованием ctypes или любой другой инструмент для вызова такой функции в скрипте Python? Я надеюсь, что эта страница stackoverflow будет служить руководством для всех других людей, которые хотели бы решить ту же проблему, так что, пожалуйста, опишите подробно, спасибо.