2012-03-30 2 views
2

Ich habe einen Barcode-Scanner mit USB-Schnittstelle, so dass es als ein HID erscheint.Wie kann man ein Human Interface Device debuggen?

Es gibt Gründe, warum ich muss Breakpoint auf das erste Zeichen.

Das bringt meine Delphi-IDE nach vorne, sie stoppt am Breakpoint und der Rest des Barcodes wird in meinen Code injiziert, als ob er vor der Tastatur getippt worden wäre (was in gewisser Weise als Der USB-Scanner ist nur ein weiterer HID).

Gibt es eine Möglichkeit, dies zu vermeiden? Oder um eine erste Überprüfung der Quelle der Eingabe hinzuzufügen?

Es nervt mich so sehr, dass ich jetzt nach einem Scanner mit einer RS232-Schnittstelle suche.

+1

Vielleicht könnten Sie einige Testbarcodes mit nur einem Zeichen gleichzeitig erstellen? – Charles

+0

+1 keine perfekte Lösung, aber es könnte das Leben leichter machen. Vielen Dank. – Mawg

+2

Kannst du nicht die Windows-Nachrichten abfangen (wm_char?), Sie in ein Array irgendeiner Art setzen und die Nachricht so einstellen, dass sie bearbeitet und dann durch Code an deine Eingabe weitergeleitet wird? –

Antwort

1

Das Problem ist, dass HID "Geräte" Informationen zurück an den Computer in Paketen senden, die als "Berichte" bekannt sind.
Im Fall eines Magnetstreifenlesers oder Strichcode-Scanners enthält der "Bericht" die gesamte Nummer.

Das heißt, Sie erhalten keine Berichte Zeichen für Zeichen, sondern die gesamte Zeichenfolge auf einmal. (Im Falle eines Mag-Swipe erhalten Sie alle zwei oder drei Tracks im selben Bericht).

So Ihr Code nicht bricht „auf dem ersten Zeichen“, bricht es „auf dem gesamten Bericht“. Die Tatsache, dass die restlichen Charaktere da sind, kann man sich als Bonus vorstellen (wenn man sie nicht sehen will, muss man das nicht). Aber Sie erhalten keine weiteren "Berichte" für nachfolgende Zeichen.

Ich kann mir keinen Grund vorstellen, warum Sie nicht möchten den Barcode gleichzeitig wissen wollen. Die meisten Mag-Swipe- und Barcode-Scanner können jedoch so konfiguriert werden, dass sie eine Tastatur statt eines generischen HID-Geräts emulieren. In diesem Fall erhalten Sie mehrere WM_KEYDOWN Nachrichten.

Verwandte Themen