| Operatoren |
get_bar_code_result — Abfrage von alphanumerischen Ergebnissen, die bei der Dekodierung von Barcode-Symbolen angefallen sind.
get_bar_code_result( : : BarCodeHandle, CandidateHandle, ResultName : BarCodeResults)
Mit dem Operator get_bar_code_result können alphanumerische Ergebnisse des Lesevorgangs abgefragt werden. Um ein bestimmtes Ergebnis zu erhalten ist zunächst der Identifikator des Barcode-Modells (BarCodeHandle) und der Index des gelesenen Symbols oder Kandidaten (CandidateHandle) notwendig. CandidateHandle bezieht sich auf die geordnete Reihenfolge der gelesenen Symbole, wie sie vom Operator find_bar_code zurück gegeben werden. CandidateHandle kann dabei mindestens Werte von 0 bis (n-1) annehmen, wobei n die Gesamtanzahl an gefundenen Barcodes ist und - wie in der Beschreibung von ResultName (s.u.) angegeben - Werte von 0 bis (m-1), wobei m die Gesamtzahl an Kandidaten ist. Alternativ dazu kann CandidateHandle auch auf 'all' gesetzt werden, wenn ein Wert für alle Ergebnisse gewünscht ist. Die Option 'all' kann nur gewählt werden, wenn der gewünschte Wert nur ein Einzelwert und kein Tupelwert ist.
In BarCodeResults werden Ergebnisse zurückgeliefert, je nachdem was im ResultName ausgewählt wurde:
Die dekodierte Zeichenfolge des Symbols wird zurückgegeben. Ist CandidateHandle zum Beispiel gleich 0 gesetzt, so wird nur die Zeichenfolge für das erste Ergebnis ausgegeben. Steht CandidateHandle auf 'all' so gibt der Operator die Zeichenfolgen für alle Ergebnisse zurück. Es werden nur die reinen Datenzeichen zurückgegeben. Start-, Stop- und Prüfzeichen werden entfernt. Für optionale Prüfzeichen hängt das Verhalten vom Wert des Parameters 'check_char' ab.
Der Typ des gefundenen Barcodes wird zurückgegeben. Dies ist insbesondere im Zusammenhang mit der Autodiskriminierung (siehe find_bar_code) interessant. CandidateHandle gibt an, für welche gefundenen Barcodes die Typen zurückgegeben werden sollen. Beispielsweise wird CandidateHandle gleich 0 gesetzt, wenn nur der Typ des ersten Ergebnisses verlangt wird, oder CandidateHandle wird auf 'all' gesetzt, wenn die Typen für alle Ergebnisse zurückgegeben werden sollen.
Die dekodierte Zeichenfolge des Symbols wird als Tuple von Bytewerten zurückgegeben. Im Gegensatz zu 'decoded_reference' handelt es sich hier um dieselben aufbereiteten Daten wie sie auch von 'decoded_strings' geliefert werden. Falls die erwarteten Daten binäre, nicht druckbare Zeichen enthalten, ist es sinnvoll diesen Parameter zu nutzen. Insbesondere können Code 128 oder Code 93 auch NULL-Zeichen kodieren. In diesem Fall können die vollständigen Daten nur über diesen Parameter abgefragt werden, da das NULL-Zeichen ansonsten die Zeichenkette terminiert.
Die zu Grunde liegenden Referenz-Zeichen werden ausgegeben. Diese enthalten alle ursprünglichen Zeichen des Barcodes, einschließlich möglicher Start- oder Stopzeichen sowie Prüfzeichen. Für Barcodes, welche nur numerische Werte kodieren, wie z.B. die EAN/UPC Codes, die GS1 DataBar Codes (außer der GS1 DataBar Expanded Varianten), sowie die 2/5 Codes, stehen in den Referenz-Zeichen identische Werte wie in der dekodierten Zeichenfolge. Für alphanumerische Codes, wie z.B. Code 39 oder Code 128, sind die Referenz-Zeichen die Indizes in die entsprechende Dekodiertabelle. Für GS1-128, GS1 DataBar Expanded und GS1 DataBar Expanded Stacked Codes stellen die Referenz-Zeichen die ASCII-Werte der dekodierten Daten dar (siehe auch Tupel / String-Operationen). Dabei ist das Sonderzeichen FNC1 für GS1-128 als 102 und für GS1 DataBar Expanded und GS1 DataBar Expanded Stacked Codes als 29 dekodiert. Das erste Referenz-Zeichen für alle Codes der GS1-DataBar-Familie enthält das Linkage-Flag, das einen Wert von 1 hat, falls es gesetzt ist, bzw. 0 falls es nicht gesetzt ist. Da die Referenz-Zeichen ein Tupel sind, können diese nur für ein einzelnes Ergebnis abgerufen werden.
Die dekodierte Zeichenfolge eines am GS1 DataBar Barcode angehängten Composite-Symbols werden ausgegeben. Für weitere Erklärungen siehe die Beschreibung des 'composite_code' Parameters von set_bar_code_param.
Die dekodierte Zeichenfolge des GS1 Composite-Symbols wird als Tuple von Bytewerten zurückgegeben. Falls die erwarteten Daten binäre, nicht druckbare Zeichen enthalten, ist es sinnvoll diesen Parameter an Stelle von 'composite_strings' zu nutzen.
Die Orientierung des gelesenen Symbols wird ausgegeben. Die Orientierung eines Barcodes ist der Winkel zwischen der Leserichtung des Barcodes und der horizontalen Bildachse. Der Winkel ist positiv bei Drehung nach links und hat die Einheit Grad. Er kann im Wertebereich von [-180.0 .. 180.0] Grad liegen. Die Leserichtung ist senkrecht zu den Kanten der einzelnen Barcodestriche. Ist ResultName auf 'orientation' gesetzt, so werden die Orientierungen der Ergebnissen ausgegeben. Es wird ein einzelner Winkelwert ausgegeben, wenn nur ein Ergebnis abgefragt wird, z.B. wenn CandidateHandle auf 0 gesetzt ist. Sonst, wenn CandidateHandle auf 'all' gesetzt ist, wird ein Tupel mit Winkelwerten für alle Ergebnisse ausgegeben.
Die Elementgröße eines gelesenen Symbols wird ausgegeben.
Es wird ausgegeben, ob find_bar_code im vorangegangenen Durchlauf vorzeitig abgebrochen wurde. Dies kann durch Setzen eines Timeouts ('timeout' in set_bar_code_param oder durch einen manuellen Abbruch (siehe 'abort' in set_bar_code_param) verursacht worden.
| Value | Description |
|---|---|
| 0 | find_bar_code wurde vollständig abgeschlossen |
| 1 | find_bar_code wurde durch ein Timeout abgebrochen |
| 2 | find_bar_code wurde durch set_bar_code_param mit 'abort' abgebrochen |
Ein Tupel mit der Bewertung der Druckqualität gemäß dem internationalen Standard ISO/IEC 15416 wird zurückgegeben. Das erste Element des Tupels enthält immer die Gesamtqualität des Symbols. Die Länge des Tupels und die Bedeutung der restlichen Elemente hängen davon ab, ob ein einfaches 1D Barcodesymbol (z.B. EAN-13, Code 128, GS1 DataBar Omnidirectional usw.) oder ein zusammengesetztes (composite) Barcodesymbol (z.B. GS1 DataBar Omnidirectional CC-A, GS1 DataBar Limited CC-B usw.) bewertet wird.
Für die Bewertung der Druckqualität werden Scanlinien (scan reflectance profiles) durch das Symbol gelegt. Bei jeder dieser Scanlinien wird für jeden der evaluierten Paramter ein (Qualitäts)-Grad zugewiesen. Gemäß dem Standard werden die einzelnen Grade mit einem Wert von 0 bis 4 bewertet, wobei 0 für den niedrigsten und 4 für den höchsten Grad steht. Der niedrigste Grad von allen zuvor bestimmten Parametergraden einer Scanlinie ist als Scanlinien-Gütegrad (scan reflectance profile grade) definiert. Somit besitzt am Ende jede Scanlinie einen Grad, der den minimalen Grad aller Parametergrade der jeweiligen Scanlinie repräsentiert. Der arithmetische Mittelwert dieser Grade wird schließlich als die Gesamtqualität des Symbols (overall symbol grade) zurückgegeben.
Es ist zu beachten, dass, obwohl sich diese Implementation streng an den Standard hält, die Bewertung der Grade von der Barcode-Dekodierungsprozedur abhängt. Dadurch können die Bewertungsergebnisse leicht von den Ergebnissen anderer Barcodeleser (von anderen Anbietern) abweichen.
Für die einfachen 1D Barcodes wird die Bewertung der Druckqualität in einem Tupel mit acht Elementen zusammengefasst:
Der Gesamtwert (overall) ist der Minimalwert aller restlichen Gradwerte.
Der Wert für Decode ist auf 4 gesetzt, wenn das untersuchte Barcodesymbol entsprechend des Referenzdekodieralgorithmus für das jeweilige Symbol gelesen werden konnte. Andernfalls ist er 0. Es ist zu beachten, dass HALCONs Dekodieralgorithmus von dem des Referenzdekodieralgorithmus abweicht. So kann es oft sein, dass HALCON ein Symbol lesen kann, obwohl der Wert für Decode entsprechend dem Standard 0 ist.
Der Symbolkontrast (symbol contrast) ist die Differenz zwischen maximalem und minimalem Reflexionswert des Grauwertprofils. Ein stärkerer Kontrast ergibt einen besseren Grad.
Der kleinste Reflexionswert (minimal reflectance) ist auf 4 gesetzt, wenn der minimale Reflexionswert des Grauwertprofils kleiner oder gleich 0.5 der maximale Reflexionswert ist, und auf 0 anderenfalls.
Der kleinste Kantenkontrast (minimale edge contrast) bewertet den minimalen Kontrast zwischen zwei benachbarten Symbolelementen (helles zu dunkles oder dunkles zu helles Element) im Grauwertprofil.
Die Modulation bewertet die Amplitude zwischen den Symbolelementen. Höhere Amplituden bedingen, dass Striche und Löcher zuverlässiger voneinander unterschieden werden können und dieser Grad höher bewertet wird.
Die Defekte (defects) sind Unregelmäßigkeiten im Grauwertprofil innerhalb einzelner Symbolelemente oder der Ruhezonen, deren Vorhandensein mit niedrigerem Grad gekennzeichnet wird.
Die Dekodierbarkeit (decodability) bezeichnet Abweichungen der Symbolelementbreiten von ihrem Nominalwert, der im entsprechenden Symbologiestandard festgelegt ist.
Die Zusätzlichen Anforderungen (additional requirements) sind weitere symbologie-spezifische Anforderungen wie z.B.: die Ruhezonen-Breiten (quiet zone widths), das Breit-Schmal-Verhältnis (wide/narrow ratio), die Zwischenzeichen-Lücken (inter character gaps), die umschließenden Muster (guarding patterns) oder andere. Bei einigen Codetypen kann es bei den zusätzlichen Anforderungen zu Abweichungen zu den Spezifikationen im dazugehörigen ISO/IEC Standard kommen. Dies liegt in der Regel daran, dass zu ihrer Berechnung metrische Informationen benötigt werden, welche dem Operator nicht zugänglich gemacht werden können:
Bei Code-39 Symbolen wird der Grad für die Zwischenzeichen-Lücken (inter character gaps) in Abhängigkeit von der, im metrischen Maß gegebenen, schmalsten Elementbreite (narrow element width) berechnet. Da in find_bar_code weder metrische Information eingehen noch berechnet werden können, gibt der Operator get_bar_code_result nur den Grad zurück der sich für eine schmalste Elementbreite kleiner als 0,287 mm ergibt.
ISO/IEC 15420:2009 spezifiziert als zusätzliches Kriterium den Vergrößerungsfaktor (magnification factors). Die Berechnung dieses Kriteriums ist nicht möglich, da Wissen über die metrische Größe des Barcodes vorhanden sein müsste.
Während die Gesamtqualität der endgültige Symbolgrad ist, weisen die restlichen Grade auf mögliche qualitätsverringernde Ursachen hin. Eine Liste mit häufig vorkommenden Defekten und deren Effekt auf die einzelnen Qualitätsgrade kann man im Standard ISO/IEC 15416 finden. Die Namen und Zuordnung der Grade kann mithilfe des Parameters 'quality_isoiec15416_labels' des Operators get_bar_code_result abgefragt werden.
Die Druckqualitätsbewertung eines zusammengesetzten Barcodes (composite bar codes) umfasst die folgenden 24 Grade, welche der Übersicht halber in drei Gruppen (GESAMTWERT (OVERALL), LINEAR und ZUSAMMENGESETZT (COMPOSITE)) sowie eine Untergruppe (ZUSAMMENGESETZTER (COMPOSITE) RAP) organisiert sind:
GESAMTWERT (OVERALL): ZUSAMMENGESETZT (COMPOSITE):
1. Gesamtwert (overall) 12. Decode
2. Gesamtwert (Linear) (overall linear) 13. Gesamt-Rap (rap overall)
3. Gesamtwert (Zusammengesetzt) (overall composite) ZUSAMMENGESETZTER RAP (COMPOSITE RAP):
14. Kontrast (contrast)
LINEAR: 15. Kleinster Reflexionswert (minimal reflectance)
4. Decode 16. Kleinster Kantenkontrast (minimal edge contrast)
5. Symbolkontrast (symbol contrast) 17. Modulation
6. Kleinster Reflexionswert (minimal reflectance) 18. Defekte (defects)
7. Kleinster Kantenkontrast (minimal edge contrast) 19. Dekodierbarkeit (decodability)
8. Modulation 20. Codewort-Ergebnis (codeword yield)
9. Defekte (defects) 21. Nicht verwendete Fehlerkorrektur (unused error correction)
10. Dekodierbarkeit (decodability) 22. Modulation
11. Zusätzliche Anforderungen (additional requirements) 23. Dekodierbarkeit (decodability)
24. Defekte (defects)
Bei zusammengesetzten (compositen) Barcodes sind die ersten Elemente des Rückgabetupels die Gesamtgrade, die in der Gruppe GESAMTWERT (OVERALL) aufgelistet sind. Sie repräsentieren das jeweilige Minimum aller individuellen Grade jeder Gruppe. Die darauf folgenden Tupelelemente bestehen aus den Qualitätsgraden der Elemente innerhalb der Gruppen LINEAR und ZUSAMMENGESETZT (COMPOSITE). Sie geben Auskunft über mögliche Ursachen für schlechte Qualitätsbewertungen eines Symbols.
Die Grade der LINEAR Gruppe entsprechen denjenigen der einfachen 1D Barcodes, die oben beschrieben sind. Die Grade aus der Gruppe ZUSAMMENGESETZT (COMPOSITE) hingegegen entsprechen den PDF 417 Qualitätsgraden (siehe get_data_code_2d_results). Der Unterschied besteht jedoch darin, dass bei PDF 417 Data Code 2D Symbolen für die Bewertung der Reflexionseigenschaften ein start/stop Pattern verwendet wird, während für zusammengesetzte Barcodes so genannte Raw Adress Patterns (RAP) statt eines Start-/Stopmusters verwendet werden. Die Grade dieser RAP Elemente sind in der Untergruppe ZUSAMMENGESETZTE RAP (COMPOSITE RAP) aufgeführt und stimmen mit den Qualitätsgraden der einfachen 1D Barcodes überein.
Die Definition der einzelnen Elemente lautet wie folgt:
Der Grad Gesamtwert ist der endgültige Symbolgrad. Er ist der kleinere der zwei Gesamtgrade Gesamtwert (Linear) und Gesamtwert (Zusammengesetzt) aus den Gruppen LINEAR und ZUSAMMENGESETZT.
Der Grad Gesamtwert (Linear) ist der Gesamtgrad der linearen (1D) Symbole der Gruppe LINEAR.
Der Grad Gesamtwert (Zusammengesetzt) ist der Gesamtgrad der zusammengesetzten (2D) Symbole aus der Gruppe ZUSAMMENGESETZT.
Die Qualitätsgrade der Elemente in der Gruppe LINEAR entsprechen denjenigen der einfachen 1D Barcodes, die oben beschrieben sind.
Der Grad Decode entspricht demjenigen Decode-Grad für einfache 1D Barcodes, der oben beschrieben ist.
Der Grad Gesamt-RAP ist das Minimum aller individuellen Qualitätsgrade aus der Gruppe GESAMT RAP.
Die Elemente der ZUSAMMENGESETZTEN RAP-Gruppe stellen die einzelnen Grauwertprofilegrade des RAP Musters dar. Diese Grade stimmen mit den einfachen 1d Barcode Qualitätsgraden überein, die bereits oben beschrieben sind.
Der Grad Codewort-Ergebnis berechnet den relativen Anteil der richtig dekodierten Codewörter, die unter den Scans liegen.
Der Grad nicht verwendete Fehlerkorrektur berechnet den relativen Anteil der falsch dekodierten Codewörter, die innerhalb der Fehlerkorrekturkapazität liegen.
Der Grad Modulation bezeichnet die Amplitude zwischen den Symbolmodulen.
Der Grad Dekodierbarkeit misst die Abweichung der Modulbreiten von ihrem im Symbologiestandard vorgegebenen Werten.
Defekte bezeichnet Unregelmäßigkeiten im Scanprofil innerhalb einzelner Symbolmodule.
Es ist zu beachten, dass die Bewertung der Barcodequalität nur erfolgt, wenn der Barcode mit find_bar_code im 'persistence'-Modus gelesen wurde (siehe set_bar_code_param). Die Namen der einzelnen Grade können mithilfe des Parameters 'quality_isoiec15416_labels' des Operators get_bar_code_result abgefragt werden.
Tupel aus Rohmesswerten für alle Grade, die 'direkt messbar' sind. Das sind jene Grade, deren Definition im Standard ISO/IEC 15416 einer 'direkten Ableitung' der Reflektionseigenschaften des abgebildeten Symbols entsprechen, oder jene Grade, welche das Ergebnis eines 'direkten Zählens' sind.
Für die einfachen 1D Barcodes sind das die folgenden Grade:
| Symbolkontrast (symbol contrast) | Modulation |
| Minimale Reflexion (minimal reflectance) | Defekte (defects) |
| Kleinster Kantenkontrast (minimal edge contrast) | Dekodierbarkeit (decodability) |
Für die zusammengesetzten Barcodes sind das die folgenden Grade:
| Symbolkontrast (symbol contrast) | Rap-Kontrast (Rap Contrast) |
| Minimale Reflexion (minimal reflectance) | Rap-Minimale Reflexion (Rap Minimal Reflectance) |
| Kleinster Kantenkontrast (minimal edge contrast) | Rap-Kleinster Kantenkontrast (Rap Minimal Edge Contrast) |
| Modulation | Rap-Modulation (Rap Modulation) |
| Defekte (defects) | Rap-Defekte (Rap Defects) |
| Dekodierbarkeit (decodability) | Rap-Dekodierbarkeit (Rap Decodability) |
| Codewort-Ergebnis (Codeword Yield) | |
| Nicht verwendete Fehlerkorrektur (Unused Error Correction) |
Die Elemente des Tupels werden in derselben Reihenfolge zurückgegeben wie die Elemente einer entsprechenden 'quality_isoiec15416'-Abfrage. Für alle Grade, welche von dieser Liste ausgeschlossen sind, liefert der Operator den Wert 'N/A' zurück. Bei einfachen 1D Barcodes haben Decode und Zusätzliche Anforderungen (additional requirements) keine entsprechenden darunterliegenden Rohmesswerte und der Operator liefert dementsprechend 'N/A' zurück. Bei zusammengesetzten Barcodes ist dies für die Grade Decode (Linear), Decode (Zusammengesetzt), Gesamt-RAP (Rap Overall) und Zusätzliche Anforderungen Linear (linear additional requirements) der Fall. Darüber hinaus ist zu beachten, dass, obwohl die Grade Zusammengesetzte Modulation (composite modulation), Zusammengesetzte Dekodierbarkeit (composite decodability) und Zusammengesetzte Defekte (composite defects) auch das Grauwert-Profil des zusammengesetzten Symbols bewerten, 'quality_isoiec15416_values' auch für sie 'N/A' zurückliefert. Das liegt daran, dass diese Grade durch ein komplexes Schema, welches die Dekodierungsroutine und den Fehlerkorrekturmechanismus der Symbologie einbezieht, berechnet werden. Zur Folge haben diese Grade keine direkten darunterliegenden Rohmesswerte. Für Gesamtwert (overall) bei einfachen 1D Barcodes sowie für Gesamtwert (linear) und Gesamtwert (composite) bei zusammengesetzten Barcodes werden deren Grade auf eine Dezimalstelle genau zurückgegeben.
Alle Werte sind zwischen 0.0 und 1.0 normalisiert. Somit entspricht z.B. ein Wert von 0.75 für den Grad Symbolkontrast einem Grauwert von 191.25 (für BYTE Bilder).
Gibt die Namen der Elemente des Qualitätsgradtupels zurück. Das Qualitätsgradtupel wird von get_bar_code_result mit Parameter 'quality_isoiec15416' ausgegeben. Es ist zu beachten, dass der Operator den CandidateHandle eines erfolgreich gefundenen Ergebnisses braucht, um den einfachen 1D Barcode von dem composite Barcode Fall unterscheiden zu können.
Berechnet zusätzliche Informationen über Scanlinien einer Kandidatenregion und gibt diese im Klartext zurück. CandidateHandle) kann hier Werte von 0 bis (n-1) annehmen, wobei n die Gesamtanzahl an gefundenen Barcodes ist. Der Status kann nur berechnet werden, wenn zuvor find_bar_code oder decode_bar_code_rectangle2 aufgerufen wurde, während der Barcode-Leser im 'persistence'-Modus war (siehe set_bar_code_param). Zwischen dem Aufruf von find_bar_code und dieser Statusabfrage dürfen keine Änderungen an Parametern des Barcode-Lesers durchgeführt werden. Das Berechnen der zusätzlichen Scanlinien-Informationen ist rechnerisch teuer und sollte nur abgefragt werden, falls diese zusätzlichen Informationen benötigt werden.
Jede Kandidatenregion enthält eine bestimmte Anzahl Scanlinien die vom Barcode-Typ abhängt oder mit set_bar_code_param mit dem Parameter 'num_scanlines' festgelegt wurde. Normalerweise beendet sich der Barcode-Leser sobald genügend Scanlinien dekodiert werden konnten. Standardmäßig muss nur eine Scanlinie erfolgreich dekodiert werden, das kann aber mit 'min_identical_scanlines' geändert worden sein.
Wenn 'status' in get_bar_code_result benutzt wird, so wird die angegebene Kandidatenregion nochmals gescannt. Dabei werden nun jedoch alle Scanlinien ausgewertet. Der Operator gibt dann die Statusinformationen für jede Scanlinie dieser Kandidatenregion in der gleichen Reihenfolge zurück, wie die Scanlinien selbst vom Operator get_bar_code_object mit dem Parameter 'scanlines_all' zurückgegeben werden.
Die folgende Liste zeigt die möglichen Statusmeldungen, gruppiert nach Arbeitsphasen in denen die Meldung auftreten kann. Die Zahlen in Klammern sind die zugehörigen Statuscodes die mit 'status_id' zurückgegeben werden (siehe unten).
Der Status der Scanlinie ist unbekannt. Die Scanlinie wird in diesem Fall ignoriert.
Die Scanlinie konnte erfolgreich dekodiert werden.
Die Anzahl der Kanten in dieser Scanlinie ist zu gering für diesen Barcode-Typ.
Die Anzahl der Kanten in dieser Scanlinie ist zu gering um mindestens das Start-, Stop- und ein Zeichenmuster zu finden.
Die Anzahl der Kanten in dieser Scanlinie ist zu hoch für diesen Barcode-Typ.
Das Zentrum der Scanlinie liegt nicht innerhalb der Bilddomäne.
Das Stop-Zeichen konnte nicht gefunden werden.
Die Start- und Stop-Zeichen konnten nicht gefunden werden.
Interner Fehler.
Interner Fehler.
Für Barcode-Typen '2/5 Industrial' und '2/5 Interleaved' muss die Anzahl breiter Striche in einem Zeichen zwei sein.
Das Kodiermuster entspricht keinem Zeichen in der symbolspezifischen Look-Up-Tabelle.
Für die Barcode-Typen 'EAN-13' und 'UPC-A': Die linke Hälfte des Symbols enthält eine ungültige Kombination der Sets A und B.
Fehler bei der Dekodierung der Referenzdaten in einen lesbaren String. Dies kann beispielsweise auftreten, wenn (abhängig davon ob ein Prüfzeichen erwartet wird) nicht genügend Zeichen gefunden wurden.
Für die Barcode-Typen 'EAN-13', 'EAN-8' und 'UPC-A' (inklusive Add-on-Varianten) konnte das obligatorische Center Guard Pattern nicht gefunden werden.
Für die Barcode-Typen 'EAN-13', 'EAN-8' und 'UPC-A' (inklusive Add-on-Varianten) konnte entweder das obligatorische linke oder rechte Normal Guard Pattern nicht gefunden werden. Für die Barcode-Typen 'UPC-E' (inklusive Add-on-Varianten) konnte entweder das linke Normal Guard Pattern oder das rechte Special Guard Pattern nicht gefunden werden.
Für die Barcode-Typen 'EAN-13', 'EAN-8', 'UPC-A' und 'UPC-E' mit Add-on-Symbolen konnte das obligatorische Add-On Guard Pattern nicht gefunden werden.
Für die Barcode-Typen der GS1-DataBar-Familie konnten nicht genug Finder Pattern gefunden werden.
Für Stacked Barcode-Typen konnte kein Segment gefunden werden.
Die Überprüfung des Prüfzeichens ist fehlgeschlagen. Für Barcodes mit einem nicht-verpflichtenden Prüfzeichen kann die Überprüfung mit dem Parameter 'check_char' im Operator set_bar_code_param ausgeschaltet werden.
Für die Barcode-Typen 'EAN-13', 'EAN-8', 'UPC-A' und 'UPC-E' mit Add-On-Symbolen entspricht die Kombination der Sets A und B nicht dem impliziten Prüfzeichen.
Für die Barcode-Typen 'UPC-A' und dessen Add-on-Varianten muss die linke Hälfte des Symbols aus sechs Zeichen des Sets A bestehen, aber eine 'EAN-13'-kompatible Kombination der Sets A und B wurde gefunden. Der Barcode sollte als 'EAN-13' dekodiert werden.
Der Barcode konnte dekodiert werden, aber die Symbolregion schneidet sich mit der Symbolregion eines bereits erfolgreich dekodierten Barcodes.
Der Barcodeleser könnte das Barcodetyp nicht bestimmen. Dieser Zustand kann passieren nur wenn find_bar_code mit CodeType='auto') oder mit einer Liste von unterschiedlichen Barcodetypen ausgeführt wurde.
Die Überprüfung der Ruhezone ist fehlgeschlagen. Siehe den Abschnitt zu 'quiet_zone' in set_bar_code_param für weitere Informationen.
Ein Barcode wurde detektiert aber ganz am Rand von oder sogar weit ausserhalb der Kandidatregion. Das ist eine Indikation dafür, dass die Scanlinien zufällig Strichsequenzen gelesen haben, welche eher zu einem anderen und nicht zu dem aktuellen Kandidat gehören.
Die Anzahl dekodierter Zeichen im gefundenen Barcode ist kleiner als die erforderliche Anzahl. Siehe den Abschnitt zu 'min_code_length' in set_bar_code_param für weitere Informationen zur minimalen Anzahl dekodierten Zeichen.
Warnungen:
Die folgenden Meldungen sind nur Warnungen, keine Fehler. Sie können in Kombination mit einer Statusmeldung auftreten und werden dann an die Statusmeldung angehängt. Diese Meldungen werden zurückgegeben, falls der Barcode-Leser mögliche Qualitätsprobleme im Eingabebild feststellt. Die Meldungen 1000 bis 1003 können nur bei erfolgreich dekodierten Scanlinien auftreten und nur für folgende Barcode-Typen: 'Codabar', '2/5 Industrial', '2/5 Interleaved', 'Code 39', 'Code 93', 'GS1-128', 'Code 128', 'MSI', alle 'EAN'-, 'UPC-A'- und 'UPC-E'-Varianten. Zu beachten ist, dass diese Warnungen in Fällen in denen die Scanlinie bereits inkorrekt dekodiert wurde, aber vom Barcode-Leser nicht als ungültig erkannt wurde, falsch sind und ignoriert werden müssen.
Die gemessene Breite der weißen Leerräume ist größer als intern erwartet. Dies ist kein Dekodierfehler, sondern eine Warnung, dass es zu Dekodierfehlern kommen könnte, wenn die Breite der weißen Leerräume noch mehr zunimmt.
Die gemessene Breite der weißen Leerräume ist kleiner als intern erwartet. Dies ist kein Dekodierfehler, sondern eine Warnung, dass es zu Dekodierfehlern kommen könnte, wenn die Breite der weißen Leerräume noch mehr abnimmt.
Die gemessene Breite der Striche ist größer als intern erwartet. Dies ist kein Dekodierfehler, sondern eine Warnung, dass es zu Dekodierfehlern kommen könnte, wenn die Breite der Striche noch mehr zunimmt.
Die gemessene Breite der Striche ist kleiner als intern erwartet. Dies ist kein Dekodierfehler, sondern eine Warnung, dass es zu Dekodierfehlern kommen könnte, wenn die Breite der Striche noch mehr abnimmt.
Ein interner Algorithmus zeigt, dass die weißen Pixel in der Symbolregion in Sättigung sein könnten. Diese Warnung ist nicht spezifisch für einen Barcode-Typ. Diese Warnung wird für jede Scanlinie ausgegeben. Beispielsweise ist die Kombination der Statusmeldungen 1001/1004 oder 1003/1004 ein Hinweis darauf, dass die Eingabebilder überbelichtet sein könnten.
Das Linkage-Flag in der linearen Barcode-Komponente zeigt an, dass eine Composite-Komponente existiert, aber die Composite-Komponente konnte nicht gefunden werden. Der Dekodierer gab nur die lineare Komponente zurück. Diese Warnung wird für jede Scanlinie in der entsprechenden Kandidatenregion ausgegeben.
Diese Information zeigt an, dass die Kanten der aktuellen Scanlinie benutzt wurden um die Merged Scanline zu berechnen.
Berechnet zusätzliche Informationen über Scanlinien und gibt diese in einem numerischen Format zurück, das leicht weiterverarbeitet werden kann. Die Beschreibung dieser Funktionalität und die Zahlen der Nachrichten werden bei dem Parameter 'status' (s.o.) beschrieben. Die Zahlen der Warnungen können zusammen mit anderen Status-Zahlen zurückgegeben werden. Die einzelnen Zahlen der Statusmeldungen und Warnungen werden als String, getrennt durch ein Semikolon, zurückgegeben, beispielsweise als '1;1000;1004'.
Handle des zu verwendenden Barcode-Modells.
Auswahl der Barcode-Ergebnisse oder Kandidaten, für die eine Information abgefragt werden soll.
Defaultwert: 'all'
Wertevorschläge: 0, 1, 2, 'all'
Namen der Ergebnisse, die vom Barcode-Leser abgefragt werden sollen.
Defaultwert: 'decoded_types'
Wertevorschläge: 'decoded_types', 'decoded_strings', 'decoded_data', 'decoded_reference', 'element_size', 'orientation', 'composite_strings', 'composite_reference', 'aborted', 'quality_isoiec15416', 'quality_isoiec15416_labels', 'quality_isoiec15416_values', 'status', 'status_id'
Liste mit den Ergebnissen.
get_bar_code_result liefert den Wert 2 (H_MSG_TRUE), falls die übergebenen Parameter korrekt und die angeforderten Ergebnisse für die letzte Symbolsuche verfügbar sind. Ansonsten wird eine Fehlerbehandlung durchgeführt.
Bar Code
| Operatoren |