2016-06-01 12 views
0

Ziel: In unserem Embedded-Linux-System möchten wir Qt verwenden, um die Einfügung eines USB-Speichergeräts zu erkennen, das System zu informieren, wenn das USB-Speichergerät eingesteckt oder entfernt ist, dann können wir sein Dateisystem mounten. Später können wir auf die Dateien auf dem USB-Speichergerät zugreifen.Wie erkennt man USB-Speicher in Qt?

Ich suchte ein wenig, es scheint, es gibt zwei Lösungen: libusb und dbus. Aber ich weiß immer noch nicht, wie ich es benutzen soll. Hat jemand einige Beispiele?

+0

Der USB-Stift sollte ein Zeigergerät sein, nicht wahr? Sind Sie sicher, dass es richtig installiert ist? Und weil Sie Linux verwenden, ist es sehr gut möglich, mit Xorg auf die spezifischen USB-Ereignisse zuzugreifen. Ich hoffe, dass jemand eine nette Lösung finden wird. –

+0

@ Md.MinhazulHaque Die Frage bezieht sich nicht auf ein Eingabegerät, sondern auf ein Speichergerät, das an manchen Orten als USB-Stick bekannt ist. –

+0

"Ich habe ein wenig gesucht, es scheint, es gibt zwei Lösungen: [...] dbus." DBus ist keine Lösung für dieses konkrete Problem, es ist ein Messaging-Bus. Sie sprechen wahrscheinlich von einem Dienst, der über DBus kommuniziert (wahrscheinlich UDisks). –

Antwort

0

Der typische Weg zu auto-mount USB-Speicher ist über udev. Udev kann notify you wenn ein Gerät hinzugefügt/bereitgestellt wird. Sie können mit udisks über dbus sprechen, um auch über das Hinzufügen/Entfernen von Speicher benachrichtigt zu werden.

libusb ist nur tangential verwandt, Sie sollten es nicht verwenden, es sei denn, Sie möchten viel bereits vorhandenen Code neu implementieren.

+0

Haben Sie einen Beispielcode dafür? Wie ich es verstehe, ist es über kernel-> hotplug-> udev-> hal/udisks-> dbus. –

+0

@ James.Zhou Die Links, die ich gepostet habe, enthalten einige Beispiele, die dbus umgehen - das sollte ausreichen. Ich habe keine Links für dbus Beispiele, aber google sollte dein Freund sein. –