Einen Barcodescanner programmieren – episches aus längst vergangenen Tagen!

Artikel des Jahres

Tach zusammen,

das hier schreibe ich nur, weil ich feiern muss, wie episch das einfach ist!

Ich habe einen Barcodescanner Manhatten SG 303, den ich per USB an meinen Rechner anschließe. Voll geil – du scannst etwas und dann steht die Nummer auf dem Bildschirm. Kennt ihr das?

Ich erkläre euch das kurz mal:
Ihr schließt den Barcodescanner per USB an den Rechner an. Windows 10 bringt auch gleich einen Standardtreiber mit (warum eigentlich?). Der Scanner wird als Tastatur erkannt. Dann Knopf drücken und Feuer. Das funktioniert halt einfach Plug&Play. Einfach so. Total geil! Das was der Scanner scannt wird als Tastendruck an den PC gereicht – Zeichen für Zeichen. Als ob du das einfach abtippst. So simpel und doch so episch!

Nun hatte ich aber immer das Problem, dass nach dem Scan im Firefox und im Chrome sich der Downloadstab geöffnet hat. Hä? Ja, das war jedes Mal so. Ich hatte das die letzten Jahre einfach akzeptiert. Hatte früher einen Scanner einer anderen Marke, der das nicht gemacht hat. Also dachte ich, dass die Scanner für eine gewisse Software, z.B. Kasse, programmiert sind und die dann noch ein Steuerzeichen hinterher schicken, was dieses System halt braucht. Und wenn der alte kill0rz jetzt bei eBay so einen Scanner für einen Fünfer schießt, dann brauch er sich nicht zu wundern, wenn der nicht so funktioniert wie erwartet! 😀

Nach vielleicht 2 oder 3 Jahren mit dem Gerät kam mir folgender Gedanke: Fang doch mal das Zeichen ab, was er da eintippt und versuche das via Browserplugin oder wie auch immer zu umgehen. Einfach, weil es nervt und manchmal auch komische Reaktionen zeigt (Seitenzoom auf 20% zum Beispiel). Also mit JS einfach mal eine Textarea gebaut und mir das Zeichen für Zeichen ausgeben lassen:

 <html>

 <head>
     <title>Tester</title>
     <script type="text/javascript" charset="utf-8">
     document.getElementById("EANlist").addEventListener("keypress", showInput)

     function showInput() {
         console.log(document.getElementById("EANlist").value);
     }
     </script>
 </head>

 <body>
     <textarea name="EANlist" id="EANlist" onkeypress="showInput()"></textarea>
 </body>

 </html>

Und siehe da: Nur die EAN wird angezeigt:

Vermutung: Der Scanner schickt Steuerzeichen, die vom Browser eher interpretiert werden als vom JS. Folgerichtig habe ich das mal gegoogelt:

Der Scanner schickt nach jeder Eingabe ein CL RF mit raus, was zu unerwartetem Verhalten führt. Scheiß Windows!

Mein Gedanke: Na klar, das ist per USB angeschlossen, da gibt es sicher einen programmer für. HAHAHAHAHAHAHHA!!!hahaha11!!!       HA!
Als ob! Das ist total geil! Bei Conrad habe ich ein Manual gefunden: https://asset.conrad.com/media10/add/160267/c1/-/en/000914408ML01/bedienungsanleitung-914408-manhattan-401517-usb-kit-barcode-scanner-kabelgebunden-1d-schwarz-hand-scanner-usb.pdf
Und jetzt kommts: Man scannt einen Barcode, scannt einen Barcode und dann einen Barcode und es geht. Ab Seite 10 steht alles beschrieben.
Man Scannt also zunächst den Start der Konfiguration:

Der Scanner piept 3x statt 1x. Da muss jetzt also irgendwo in dem Teil ein Zwischenspeicher sein, der sich merkt, dass jetzt Einstellungen kommen.
Dann scannst du deine Einstellung, bei mir jetzt ein CR (weil das mit aus irgendwelchen Gründen funktioniert):

Und dann den Abschluss der Konfiguration:

Zack fertig, geht. Man kann noch einen ganzen Haufen scheiß konfigurieren, aber das könnt ihr in der PDF selber nachlesen.

Witzig ist auch die Versionsausgabe:

Ausgabe:
T32V5.10.04?G 2004.01.29
2004?! Das Ding ist einfach mal 16 Jahre alt! Feierlich!

kill0rz

This entry was posted in Allgemein, Computer/Laptops, Internet, kill0rz, Tutorials. Bookmark the permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte löse die Rechnung! * Time limit is exhausted. Please reload CAPTCHA.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.