Ich versuche, Python zu verwenden, um mit einem generischen HID-Gerät zu kommunizieren.
Ich habe gelesen, dass die in C geschriebene HIDAPI-Bibliothek die libusb1.0 in Bezug auf einfache und stabile plattformübergreifende HID-Kommunikation übertrifft. Allerdings hat niemand jemals die Mühe gemacht, zu zeigen, wie die HIDAPI-Funktionen aus einem Python-Skript aufrufen, und das ist, wo ich Probleme habe.
Ich verstehe genug ctypes, um wirklich einfache C-Funktionen aufzurufen wie:
int add(int n1, int n2) {
return n1 + n2;
}
Das Problem ist, dass die HIDAPI-Funktionen komplizierter sind, wie zum Beispiel (in der HIDAPI-Header-Datei ):
struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id);
die auf diese Struktur verweist (in der mac-Zweig C-Datei ):
struct hid_device_info HID_API_EXPORT *hid_enumerate(unsigned short vendor_id, unsigned short product_id)
{
...
}
wobei "..." eine ganze Menge Code auf Betriebssystemebene ist, der am Ende "einen Zeiger auf eine verknüpfte Liste vom Typ struct #hid_device, die Informationen über das HID-Gerät enthält" zurückgibt
Wie würden Sie ctypes oder ein anderes Tool verwenden, um eine Funktion wie diese in einem Python-Skript aufzurufen? Ich hoffe, dass diese Stackoverflow-Seite als Leitfaden für alle anderen Leute dienen wird, die das gleiche Problem lösen möchten, also geben Sie bitte viele Details an, danke.