2016-10-13 3 views
0

Von der Welt der Embedded Micro Controller und C, zu C++ mit WxWidgets.Wie kann ich HIDAPI in wxWidgets abfragen?

Ich habe ein einfaches GUI-Programm erstellt, das Codeblocks und WxWidgets verwendet, um mit einem USB-Hid-Gerät zu kommunizieren, das ich mit der HIDAPI von signal11 gemacht habe.

Mit einfachen Tasten kann ich Firmware-Versionen auf dem Gerät verbinden, trennen und prüfen.

Was ich tun können, wollen, ist die GUI automatisch erkennen, ob ein Gerät vorhanden ist oder nicht, also wenn ich mein Gerät vom Netz trennen die GUI reagiert (Grays alles out) oder wieder alles ermöglicht, wenn eingesteckt.

Ist das etwas, das einen nie endenden Thread braucht, oder gibt es einen besseren Weg? Normalerweise würde ich so etwas in einer Interruptroutine auf einem Mikrocontroller machen, bin mir aber dessen Äquivalent auf der Desktop-Plattform nicht sicher?

+0

Ja, wahrscheinlich braucht es einen endlosen Thread, der die GUI über das Verbinden/Trennen von USB benachrichtigen wird. – Igor

Antwort

0

Verbindungen oder Verbindungsunterbrechungen von USB-Geräten werden nicht von wxWidgets verarbeitet. Daher müssen Sie plattformspezifische APIs verwenden, die sich je nach Plattform unterscheiden. Unter Windows benötigen Sie eigentlich keinen Hintergrundthread, da Sie diese Benachrichtigungen in der Form von Windows WM_DEVICECHANGE Nachricht erhalten, so können Sie einfach MSWHandleMessage() in dem Fenster außer Kraft setzen, für das Sie Windows zuvor aufgefordert hatten, diese Nachrichten an RegisterDeviceNotification() zu senden und zu behandeln die dort.

Verwandte Themen