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)
Der Operator get_bar_code_result
gibt alphanumerische
Ergebnisse des Lesevorgangs zurück.
Um ein bestimmtes Ergebnis
zu erhalten, sind das Barcode-Modell (BarCodeHandle
)
und der Index des gelesenen Symbols oder Kandidaten
(CandidateHandle
) notwendig.
CandidateHandle
bezieht sich auf die gelesenen Kandidaten in der
Anordnung wie sie vom Operator find_bar_code
zurück gegeben
werden.
Dies bedeutet, die möglichen Werte für CandidateHandle
hängen vom
zurückgegebenen Ergebnis ab.
Bezieht es sich auf gelesene Symbole, sind Werte von 0 bis (n-1) möglich
(wobei n die Gesamtzahl an erfolgreich gelesener Barcodes ist).
Bezieht es sich auf Kandidaten, sind Werte von 0 bis (m-1) möglich
(wobei m die Gesamtzahl an Kandidaten ist).
Ist das gewünschte Ergebnis ein Einzelwert,
kann CandidateHandle
auch auf 'all' gesetzt werden, um
die Ergebnisse aller Symbole oder Kandidaten zurückzugeben.
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. Das bestimmte Ergebnis hängt vom Typ des Barcodes ab:
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 der entsprechenden Dekodiertabelle.
Für GS1-128 Codes stellen die Referenz-Zeichen die ASCII-Werte der dekodierten Daten dar (siehe auch Tupel / String-Operationen). Dabei ist das Sonderzeichen FNC1 als 102 dekodiert.
Für 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 als 29 dekodiert.
Für alle Codes der GS1-DataBar-Familie repräsentiert das erste Referenz-Zeichen das Linkage-Flag. Dieses hat einen Wert von 1, falls das Flag 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 einzelnen
Barcodestrichen. Falls die Orientierung der Barcodestriche nicht
eindeutig bestimmt werden kann, wie z.B. für verzerrte Codes, wird die
Orientierung der Scanlinien zurückgegeben. 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 oder nicht:
find_bar_code
wurde vollständig abgeschlossen.
find_bar_code
wurde durch ein Timeout abgebrochen,
siehe set_bar_code_param
.
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:2016 wird zurückgegeben.
Es ist zu beachten, dass diese Bewertung nur erfolgt, wenn der Barcode mit
find_bar_code
im 'persistence' -Modus gelesen wurde
(siehe set_bar_code_param
).
Das erste Element des Bewertungs-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.
Die Namen der einzelnen Grade können abgefragt werden, indem
ResultName
auf 'quality_isoiec15416_labels' gesetzt
wird, siehe weiter unten.
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 Parameter ein (Qualitäts)-Grad zugewiesen.
Aus Kompatibilitätsgründen werden die Grade mit einem Wert von 0 bis 4 bewertet, wobei 0 für den schlechtesten und 4 für den besten Grad steht. Mit 'quality_isoiec15416_float_grades' werden die einzelnen Grade dem Standard gemäß mit einer Genauigkeit von einer Dezimalstelle zurückgegeben. 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 Implementierung 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.
Das Tupel mit der Bewertung der Druckqualität hängt davon ab, ob es sich um einen einfachen 1D Barcode handelt oder einen zusammengesetzten Barcode:
Die Bewertung Druckqualität wird in einem Tupel mit den folgenden neun Elementen zusammengefasst:
Das arithmetische Mittel der Scanlinien-Gütegrade (scan reflectance profile grades) aller Scanlinien. Man beachte, dass dieser Wert in den meisten Fällen nicht das Minimum der anderen Gradwerte ist, da er von den jeweiligen Scanlinien-Gütegraden abhängt.
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.
Die Differenz zwischen maximalem und minimalem Reflexionswert des Grauwertprofils. Ein stärkerer Kontrast ergibt einen besseren Grad.
Auf 4 gesetzt, wenn der minimale Reflexionswert des Grauwertprofils kleiner oder gleich 0.5 des maximalen Reflexionswertes ist, andernfalls auf 0.
Bewertet den minimalen Kontrast zwischen zwei benachbarten Symbolelementen (helles zu dunkles oder dunkles zu helles Element) im Grauwertprofil.
Bewertet die Amplitude zwischen den Symbolelementen. Höhere Amplituden machen die Zuordnung der Elemente zu Strich oder Lücke zuverlässiger und resultiert in besserem Grad.
Reflektiert Unregelmäßigkeiten im Grauwertprofil innerhalb der Symbolelemente oder Ruhezonen.
Bezeichnet Abweichungen der Symbolelementbreiten von ihrem Nominalwert, der im entsprechenden Symbologiestandard festgelegt ist.
Ein Grad bezüglich weiterer symbologiespezifischen Anforderungen. Dies betrifft meist die Ruhezonen-Breiten (quiet zone widths), kann aber auch anderes betreffen, wie z.B. das Breit-Schmal-Verhältnis (wide/narrow ratio), die Zwischenzeichen-Lücken (inter character gaps), die umschließenden Muster (guarding patterns). Für die folgenden Codetypen kann es zu Abweichungen zu den Spezifikationen im dazugehörigen ISO/IEC Standard kommen. Dies liegt in der Regel daran, dass zur Berechnung der Zusätzlichen Anforderungen (additional requirements) metrische Informationen benötigt werden, welche dem Operator nicht zugänglich sind.
der Grad für die Zwischenzeichen-Lücken (inter character
gaps) hängt von der, im metrischen Maß gegebenen,
schmalsten Elementbreite (narrow element width) ab.
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 in der Annahme
die schmalste Elementbreite sei kleiner als 0,287 mm.
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 Gesamtwert den endgültigen Symbolgrad angibt, 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:2016 finden.
Die Druckqualitätsbewertung eines zusammengesetzten Barcodes wird in
einem Tupel gegeben, welches 24 Grade umfasst.
Zur besseren Übersicht sind die Grade in drei Gruppen eingeteilt:
GESAMTWERT (OVERALL)
, LINEAR (LINEAR)
und
ZUSAMMENGESETZT (COMPOSITE)
, wobei letztere eine Untergruppe
enthält.
Die Gesamtgrade sind in der Gruppe GESAMTWERT (OVERALL)
aufgeführt.
Die Grade in den Gruppen LINEAR (LINEAR)
und
ZUSAMMENGESETZT (COMPOSITE)
geben Auskunft über mögliche
Ursachen für schlechte Qualitätsbewertungen eines Symbols.
Im folgenden werden gruppenweise die einzelnen Tupelelemente mit jeweiligem Index sowie der Definition aufgelistet.
Die Gruppe GESAMTWERT (OVERALL)
:
Diese Grade geben das Minimum aller Grade der entsprechenden Gruppe.
Der endgültige Symbolgrad. Er gibt den schlechtesten aller Grade zurück.
Der Gesamtgrad der Gruppe LINEAR
, den linearen 1D
Symbolen. Dieser Grad gibt den schlechtesten Grad der
Gruppe zurück.
Der Gesamtgrad der Gruppe ZUSAMMENGESETZT
, den
zusammengesetzten 2D Symbolen. Dieser Grad gibt den
schlechtesten Grad der Gruppe zurück.
Die Gruppe LINEAR (LINEAR)
:
Die Interpretation der Grade dieser Gruppe entspricht jenen für einfache 1D Barcodes weiter oben.
Die Gruppe ZUSAMMENGESETZT (COMPOSITE)
:
Diese Grade entsprechen den Qualitätsgraden des PDF 417 Datacodes, den
Qualitätsgraden zweidimensionaler Datacodes nach ISO/IEC 15415:2011
(siehe 'quality_isoiec15415' in
get_data_code_2d_results
).
Dabei besteht jedoch folgender Unterschied:
Für PDF 417 Datacodes wird ein für die Bewertung der
Reflexionseigenschaften ein Start-/Stopmusters verwendet.
Für zusammengesetzte Barcodes werden statt des Start-/Stopmusters
so genannte Raw Adress Patterns (RAP) verwendet.
Die Grade dieser RAP Elemente sind in der Untergruppe
ZUSAMMENGESETZTE RAP (COMPOSITE RAP)
aufgeführt und stimmen
mit den Qualitätsgraden für einfache 1D Barcodes überein.
Grad zur Dekodierbarkeit des zusammengesetzten Symbols. Seine Bedeutung und Festlegung entspricht demjenigen für einfache 1D Barcodes, der oben beschrieben ist.
Minimum der Qualitätsgrade in der Untergruppe
ZUSAMMENGESETZTE RAP Elemente (COMPOSITE RAP elements)
.
Grad der Untergruppe ZUSAMMENGESETZTE RAP
Elemente (COMPOSITE RAP elements)
, entspricht jenem für einfache
1D Barcodes.
Grad der Untergruppe ZUSAMMENGESETZTE RAP
Elemente (COMPOSITE RAP elements)
, entspricht jenem für einfache
1D Barcodes.
Grad der Untergruppe ZUSAMMENGESETZTE RAP
Elemente (COMPOSITE RAP elements)
, entspricht jenem für einfache
1D Barcodes.
Grad der Untergruppe ZUSAMMENGESETZTE RAP
Elemente (COMPOSITE RAP elements)
, entspricht jenem für einfache
1D Barcodes.
Grad der Untergruppe ZUSAMMENGESETZTE RAP
Elemente (COMPOSITE RAP elements)
, entspricht jenem für einfache
1D Barcodes.
Grad der Untergruppe ZUSAMMENGESETZTE RAP
Elemente (COMPOSITE RAP elements)
, entspricht jenem für einfache
1D Barcodes.
zählt und berechnet den relativen Anteil der richtig dekodierten Codewörter, die unter den Scans liegen.
zählt und berechnet den relativen Anteil der falsch dekodierten Codewörter, die innerhalb der Fehlerkorrekturkapazität liegen.
bewertet die Gleichmäßigkeit der Reflexion der dunklen und hellen Module.
misst die Abweichung der Strich- und Lückenlängen von ihrem im Symbologiestandard vorgegebenen Werten.
bezeichnet Unregelmäßigkeiten im Scanprofil innerhalb einzelner Striche und Lücke.
Ein Tupel mit der gleichen Bewertung der Druckqualität wie
'quality_isoiec15416' .
Gemäß dem internationalen Standard ISO/IEC 15416:2016 werden die
Qualitätsgrade mit einer Dezimalstelle Genauigkeit zurückgegeben.
Die Namen der einzelnen Grade können abgefragt werden, indem
ResultName
auf 'quality_isoiec15416_labels' gesetzt
wird, siehe weiter unten.
Es ist zu beachten, dass diese Bewertung nur erfolgt, wenn der Barcode mit
find_bar_code
im 'persistence' -Modus gelesen wurde
(siehe set_bar_code_param
).
Ein Tupel aus Rohmesswerten für alle Grade, die 'direkt
messbar' sind. Das sind Grade, deren Definition im Standard
ISO/IEC 15416:2016 einer 'direkten Ableitung' der
Reflektionseigenschaften des abgebildeten Symbols entsprechen,
oder Grade, welche das Ergebnis eines 'direkten Zählens' sind.
Es ist zu beachten, dass diese Bewertung nur erfolgt, wenn der Barcode mit
find_bar_code
im 'persistence' -Modus gelesen wurde
(siehe set_bar_code_param
).
Die Namen der einzelnen Tupel-Elemente können abgefragt werden, indem
ResultName
auf 'quality_isoiec15416_labels' gesetzt
wird, siehe weiter unten.
Alle Werte (nicht Grade) sind zwischen 0.0 und 1.0 normiert. Somit entspricht z.B. ein Wert von 0.75 für den Grad Symbolkontrast einem Grauwert von 191.25 (für byte Bilder).
Aus welchen Werten sich das Tupel zusammensetzt hängt davon ab, ob es sich um einen einfachen 1D Barcode handelt oder einen zusammengesetzten Barcode:
Die folgenden Werte werden unter dem entsprechenden Index zurückgegeben:
Die folgenden Werte werden unter dem entsprechenden Index zurückgegeben:
Diese Tupel haben die selbe Länge wie die Grade, die zurückgegeben
werden, setzt man ResultName
auf
'quality_isoiec15416' , respektive
'quality_isoiec15416_float_grades' .
Für alle nicht aufgelisteten Elemente liefert der Operator den Wert
'N/A' zurück.
Bei einfachen 1D Barcodes haben die Einträge Decode (decode)
und Zusätzliche Anforderungen (additional requirements) keine
entsprechenden darunterliegenden Rohmesswerte und der Operator liefert
dementsprechend 'N/A' zurück.
Bei zusammengesetzten Barcodes gilt dies für die Grade
Decode (decode) (LINEAR (LINEAR)
),
Zusätzliche Anforderungen (additional requirements)
(LINEAR (LINEAR)
),
Decode (decode) (ZUSAMMENGESETZT (COMPOSITE)
) und
Gesamt-RAP (RAP overall)
(ZUSAMMENGESETZT (COMPOSITE)
).
Darüber hinaus ist zu beachten, dass, obwohl die Grade
Modulation (modulation) (ZUSAMMENGESETZT (COMPOSITE)
),
Dekodierbarkeit (decodability) (ZUSAMMENGESETZT
(COMPOSITE)
) und
Defekte (defects) (ZUSAMMENGESETZT (COMPOSITE)
)
auch das Grauwert-Profil des zusammengesetzten Symbols bewerten,
auch für sie 'N/A' zurückliefert wird.
Das liegt daran, dass diese Grade durch ein komplexes
Schema, welches die Dekodierungsroutine und den
Fehlerkorrekturmechanismus der Symbologie einbezieht, berechnet
werden. Demzufolge haben diese Grade keine direkten darunterliegenden
Rohmesswerte.
Gibt die Namen für die Elemente eines Bewertungstupels nach
ISO/IEC 15416:2016 zurück.
Das Bewertungstupel wird von get_bar_code_result
z.B. mit dem
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 (m-1) annehmen,
wobei m die Gesamtzahl an Kandidaten 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.
Zur Berechnung der zusätzlichen Informationen wird die angegebene
Kandidatenregion nochmals gescannt.
Dabei beendet sich der Barcode-Leser erst nach Auswertung aller Scanlinien
und nicht wie normalerweise nach erfolgreicher Dekodierung.
Dies ist rechenintensiv und sollte nur abgefragt werden, falls diese
zusätzlichen Informationen benötigt werden.
Für weitere Informationen zum Setzen von Scanparametern, welche die
Scanlinien betreffen, siehe set_bar_code_param
.
Der Operator gibt für jede Scanlinie der Kandidatenregion
eine Statusmeldung und möglicherweise eine Warnung zurück, welche an dem
String der Statusmeldung hinzugefügt wird.
Diese Meldungen sind in der gleichen Reihenfolge wie die Scanlinien selbst
vom Operator get_bar_code_object
mit dem Parameter
'scanlines_all' zurückgegeben werden.
Die möglichen Meldungen dieser Kategorien werden unten gelistet.
Statusmeldungen:
Die folgende Liste zeigt die möglichen Statusmeldungen, gruppiert nach Arbeitsphasen in denen die Meldung auftreten kann. Die Zahlen 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 außerhalb 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 unten gelisteten 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 Lücken 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 Lücken noch mehr zunimmt.
Die gemessene Breite der weißen Lücken 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 Lücken 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'
.
BarCodeHandle
(input_control) barcode →
(handle)
Handle des zu verwendenden Barcode-Modells.
CandidateHandle
(input_control) integer →
(string / integer)
Auswahl der Barcode-Ergebnisse oder Kandidaten, für die eine Information abgefragt werden soll.
Defaultwert: 'all'
Wertevorschläge: 0, 1, 2, 'all'
ResultName
(input_control) attribute.name →
(string)
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' , 'quality_isoiec15416_float_grades' , 'status' , 'status_id'
BarCodeResults
(output_control) attribute.value(-array) →
(string / integer / real)
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