hi,
On Wednesday 19 September 2012, lago20@gmx.de wrote:
Die Bücher und Bibliotheksausweise sollen mit Balkencode (oder QR-Code) versehen sein.
zumindest zu dem Teil kann ich was sagen:
Nimm einfache 1-dimensionale Barcodes (Code-39, Code 128, EAN, ...) - die eindimensionalen Reader sind um einiges billiger als die Scanner für 2- dimensionale Codes und die besseren Reader können normalerweise auch ältere Codes lesen. 2-dimensionale Codes haben auch das Problem dass sie leichter durcheinandergeraten kommen können - ein Knick oder Kratzer und der Code ist nahezu unlesbar.
Wie schon von "morphium" geschrieben: die meisten Scanner kommen als verkappte Tastatur daher. Es gibt hunderte Modelle mit sehr unterschiedlichem Support für Codes und Hardware-Schnittstellen. Im Wesentlichen findest Du folgende Varianten:
CCD+LED vs. Laser - einfache CCD/LED-basierte Scanner sind billiger, Du musst sie aber in einem bestimmten Abstand über den Code ziehen, diese können nur 1- dimensional lesen - moderne CCD/LED-basierte Scanner, die 2-dimensional lesen können haben eine bessere Fokusierung, aber sind auch teurer - Laser-basierte Scanner projizieren ein Muster auf das Papier - der Code kann in nahezu beliebiger Orientierung liegen, solange ein "Strahl" in vollständig erfaßt, diese Scanner sind wesentlich teurer als die ganz einfachen (manchmal günstig auf Ebay)
Schnittstellen: - seriell: übertragen ein ASCII-basiertes Protokoll, modellspeziefisch, vom Aussterben bedroht (zum Glück) - PS/2: werden an den Tastaturport angeschlossen, Tastatur wird durchgeschleift - USB: melden sich als USB-Tastatur am Computer an - WLAN/Ethernet: für Industrieanwendungen, können offline arbeiten, proprietäre Protokolle, wahnsinnig teuer
Außer bei den ganz komplexen passiert die Konfiguration über spezielle Barcodes im Manual des Scanners. Man kann alle möglichen Parameter einstellen: * welche Codes erkannt werden (je weniger, umso besser funktionieren die verbliebenen, je mehr umso mehr verschiedene Anwendungen sind möglich) * Verhalten mit Checksummen (durchreichen, ignorieren, prüfen) * weitere Einstellungen zu Codes (Übermittlung des Code-Typs, ...) * Lesegeschwindigkeit * Schnittstelleneinstellungen * simuliertes Tastaturlayout
Zum Thema Codes:
Code-39 gehört zu den robustesten. Nachteil ist dass die codierbaren Zeichen auf Großbuchstaben, Ziffern und einige wenige Sonderzeichen beschränkt sind. Damit der Code scannbar bleibt sollte man bis zu 10 Zeichen codieren, maximal 12.
Code-128 ist kompakter, kann den ganzen ASCII-Satz (oder kompakte Zahlen) codieren, ist aber leichter zu korrumpieren.
Interleave-25 ist zwar schön kompakt und beliebt, aber hat schlimme Lesefehler.
EAN würde ich nicht einsetzen, da Du es sonst sehr einfach mit dem Barcode der ISBN verwechseln kannst (den würde ich übrigens auch nicht überkleben, manchmal braucht man die ISBN).
Diese Codes werden von fast jedem Scanner verstanden, egal ob er als 1-D oder 2-D Scanner verkauft wird oder eine Handy-App ist
Erzeugung von Barcodes:
Sogenannte Barcode-Fonts sind bestenfalls eine Notlösung - Du musst genau nachschauen dass Du das richtige Start- und Stopzeichen benutzt, musst die Checksummen selbst berechnen, es darf keine Abstände zwischen den Zeichen geben, ....
Aus Scripts heraus macht sich GNU barcode zum Erzeugen recht gut. Wenn Dein gewähltes Programm selbst Barcodes erzeugt - nimm diese Funktion. Ansonsten kann ich Dir C++-Code anbieten, der Qt-Images mit Code-39 erzeugt.
Thema Codierung:
Versuch einen Code zu nehmen, der nicht nur Ziffern enthält, damit es keine Verwechslung mit EAN, ISBN oder ISSN gibt.
Konrad