get_bar_code_resultT_get_bar_code_resultGetBarCodeResultGetBarCodeResultget_bar_code_result (Operator)

Name

get_bar_code_resultT_get_bar_code_resultGetBarCodeResultGetBarCodeResultget_bar_code_result — Abfrage von alphanumerischen Ergebnissen, die bei der Dekodierung von Barcode-Symbolen angefallen sind.

Signatur

get_bar_code_result( : : BarCodeHandle, CandidateHandle, ResultName : BarCodeResults)

Herror T_get_bar_code_result(const Htuple BarCodeHandle, const Htuple CandidateHandle, const Htuple ResultName, Htuple* BarCodeResults)

void GetBarCodeResult(const HTuple& BarCodeHandle, const HTuple& CandidateHandle, const HTuple& ResultName, HTuple* BarCodeResults)

HTuple HBarCode::GetBarCodeResult(const HTuple& CandidateHandle, const HString& ResultName) const

HTuple HBarCode::GetBarCodeResult(const HString& CandidateHandle, const HString& ResultName) const

HTuple HBarCode::GetBarCodeResult(const char* CandidateHandle, const char* ResultName) const

HTuple HBarCode::GetBarCodeResult(const wchar_t* CandidateHandle, const wchar_t* ResultName) const   ( Nur Windows)

static void HOperatorSet.GetBarCodeResult(HTuple barCodeHandle, HTuple candidateHandle, HTuple resultName, out HTuple barCodeResults)

HTuple HBarCode.GetBarCodeResult(HTuple candidateHandle, string resultName)

HTuple HBarCode.GetBarCodeResult(string candidateHandle, string resultName)

def get_bar_code_result(bar_code_handle: HHandle, candidate_handle: Union[int, str], result_name: str) -> Sequence[Union[int, float, str]]

def get_bar_code_result_s(bar_code_handle: HHandle, candidate_handle: Union[int, str], result_name: str) -> Union[int, float, str]

Beschreibung

Der Operator get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultget_bar_code_result gibt alphanumerische Ergebnisse des Lesevorgangs in BarCodeResultsBarCodeResultsBarCodeResultsbarCodeResultsbar_code_results zurück. Um ein bestimmtes Ergebnis zu erhalten, sind das Barcode-Modell (BarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandlebar_code_handle) und der Index des gelesenen Symbols oder Kandidaten (CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle) notwendig. ResultNameResultNameResultNameresultNameresult_name bestimmt welche Art von Ergebnis zurückgegeben werden soll.

CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle bezieht sich auf die gelesenen Kandidaten in der Anordnung wie sie vom Operator find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code zurückgegeben werden. Die möglichen Werte für CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle hängen daher vom abgefragten Ergebnis ab:

Ist das gewünschte Ergebnis ein Einzelwert, kann CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle auch auf 'all'"all""all""all""all" gesetzt werden, um die Ergebnisse aller Symbole oder Kandidaten zurückzugeben.

ResultNameResultNameResultNameresultNameresult_name kann folgende Werte annehmen:

'decoded_strings'"decoded_strings""decoded_strings""decoded_strings""decoded_strings":

Die dekodierte Zeichenfolge des Symbols wird als String in von Menschen lesbarem Format zurückgegeben. Es werden nur die reinen Datenzeichen zurückgegeben. Start-, Stopp- und Prüfzeichen werden entfernt. Für optionale Prüfzeichen hängt das Verhalten vom Wert des Parameters 'check_char'"check_char""check_char""check_char""check_char" (siehe set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param für Details) ab.

Das zurückgegebene Ergebnis ist ein Einzelwert.

'decoded_types'"decoded_types""decoded_types""decoded_types""decoded_types":

Der Typ des gefundenen Barcodes wird als String zurückgegeben. Dies ist insbesondere im Zusammenhang mit der Autodiskriminierung (siehe find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code) interessant.

Das zurückgegebene Ergebnis ist ein Einzelwert.

'decoded_data'"decoded_data""decoded_data""decoded_data""decoded_data":

Die dekodierte Zeichenfolge des Symbols wird als Tupel von Bytewerten zurückgegeben. Im Gegensatz zu 'decoded_reference'"decoded_reference""decoded_reference""decoded_reference""decoded_reference" handelt es sich hier um dieselben aufbereiteten Daten wie sie auch von 'decoded_strings'"decoded_strings""decoded_strings""decoded_strings""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.

'decoded_reference'"decoded_reference""decoded_reference""decoded_reference""decoded_reference":

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 sind die Referenz-Zeichen die Indizes in der entsprechenden Dekodiertabelle. 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.

Das Ergebnis wird als Tupel zurückgegeben.

'composite_strings'"composite_strings""composite_strings""composite_strings""composite_strings":

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'"composite_code""composite_code""composite_code""composite_code" Parameters von set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param.

Das zurückgegebene Ergebnis ist ein Einzelwert.

'composite_reference'"composite_reference""composite_reference""composite_reference""composite_reference":

Die dekodierte Zeichenfolge des GS1 Composite-Symbols wird als Tupel von Bytewerten zurückgegeben. Falls die erwarteten Daten binäre, nicht druckbare Zeichen enthalten, ist es sinnvoll diesen Parameter an Stelle von 'composite_strings'"composite_strings""composite_strings""composite_strings""composite_strings" zu nutzen.

'orientation'"orientation""orientation""orientation""orientation":

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. 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.

Das zurückgegebene Ergebnis ist ein Einzelwert.

Wertebereich: -180.0 .. 180.0.

'element_size'"element_size""element_size""element_size""element_size":

Die Elementgröße eines gelesenen Symbols wird ausgegeben.

Das zurückgegebene Ergebnis ist ein Einzelwert.

'aborted'"aborted""aborted""aborted""aborted":

Es wird ausgegeben, ob find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code im vorangegangenen Durchlauf vorzeitig abgebrochen wurde oder nicht:

0 - abgeschlossen

find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code wurde vollständig abgeschlossen.

1 - abgebrochen

find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code wurde durch ein Timeout abgebrochen, siehe set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param.

2 - abgebrochen

find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code wurde durch set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param mit 'abort'"abort""abort""abort""abort" abgebrochen.

Das zurückgegebene Ergebnis ist ein Einzelwert.

'quality_isoiec15416'"quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416":

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_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code im 'persistence'"persistence""persistence""persistence""persistence"-Modus gelesen wurde (siehe set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param).

Das erste Element des Bewertungstupels 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 ResultNameResultNameResultNameresultNameresult_name auf 'quality_isoiec15416_labels'"quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels""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'"quality_isoiec15416_float_grades""quality_isoiec15416_float_grades""quality_isoiec15416_float_grades""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.

Wenn ein Grad für den Barcode-Typen des gelesenen Symbols nicht definiert ist, wird 'N/A'"N/A""N/A""N/A""N/A" zurückgegeben. In diesem Fall ist die Gesamtqualität des Symbols (overall symbol grade) ebenfalls 'N/A'"N/A""N/A""N/A""N/A".

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:

Einfache 1D Barcodes:

Die Bewertung Druckqualität wird in einem Tupel mit den folgenden neun Elementen zusammengefasst:

0 - Gesamtwert (overall quality):

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.

1 - Decode (decode):

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.

2 - Symbolkontrast (symbol contrast):

Die Differenz zwischen maximalem und minimalem Reflexionswert des Grauwertprofils. Ein stärkerer Kontrast ergibt einen besseren Grad.

3 - Kleinster Reflexionswert (minimal reflectance):

Auf 4 gesetzt, wenn der minimale Reflexionswert des Grauwertprofils kleiner oder gleich 0.5 des maximalen Reflexionswertes ist, andernfalls auf 0.

4 - Kleinster Kantenkontrast (minimale edge contrast):

Bewertet den minimalen Kontrast zwischen zwei benachbarten Symbolelementen (helles zu dunkles oder dunkles zu helles Element) im Grauwertprofil.

5 - Modulation (modulation):

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.

6 - Defekte (defects):

Reflektiert Unregelmäßigkeiten im Grauwertprofil innerhalb der Symbolelemente oder Ruhezonen.

7 - Dekodierbarkeit (decodability):

Bezeichnet Abweichungen der Symbolelementbreiten von ihrem Nominalwert, der im entsprechenden Symbologiestandard festgelegt ist.

8 - Zusätzlichen Anforderungen (additional requirements):

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.

Code-39:

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_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code weder metrische Information eingehen noch berechnet werden können, gibt der Operator get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultget_bar_code_result nur den Grad zurück in der Annahme die schmalste Elementbreite sei kleiner als 0,287 mm.

EAN-13, EAN-8, UPC-A, UPC-E (inklusive Add-On-Varianten):

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.

Zusammengesetzten Barcodes (composite bar codes):

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.

    0 - Gesamtwert (overall quality):

    Der endgültige Symbolgrad. Er gibt den schlechtesten aller Grade zurück.

    1 - Gesamtwert Linear (overall linear):

    Der Gesamtgrad der Gruppe LINEAR, den linearen 1D Symbolen. Dieser Grad gibt den schlechtesten Grad der Gruppe zurück.

    2 - Gesamtwert Zusammengesetzt (overall composite):

    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.

    3 - Decode (decode)
    4 - Symbolkontrast (symbol contrast)
    5 - Kleinster Reflexionswert (minimal reflectance)
    6 - Kleinster Kantenkontrast (minimal edge contrast)
    7 - Modulation (modulation)
    8 - Defekte (defects)
    9 - Dekodierbarkeit (decodability)
    10 - Zusätzliche Anforderungen (additional requirements)
  • 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'"quality_isoiec15415""quality_isoiec15415""quality_isoiec15415""quality_isoiec15415" in get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResultsget_data_code_2d_results). Dabei besteht jedoch folgender Unterschied: Für PDF 417 Datacodes wird ein für die Bewertung der Reflexionseigenschaften ein Start-/Stoppmusters verwendet. Für zusammengesetzte Barcodes werden statt des Start-/Stoppmusters 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.

    11 - Decode (decode):

    Grad zur Dekodierbarkeit des zusammengesetzten Symbols. Seine Bedeutung und Festlegung entspricht demjenigen für einfache 1D Barcodes, der oben beschrieben ist.

    12 - Gesamt-RAP (RAP overall):

    Minimum der Qualitätsgrade in der Untergruppe ZUSAMMENGESETZTE RAP Elemente (COMPOSITE RAP elements).

    13 - RAP Kontrast (RAP contrast):

    Grad der Untergruppe ZUSAMMENGESETZTE RAP Elemente (COMPOSITE RAP elements), entspricht jenem für einfache 1D Barcodes.

    14 - RAP Kleinster Reflexionswert (RAP minimal reflectance):

    Grad der Untergruppe ZUSAMMENGESETZTE RAP Elemente (COMPOSITE RAP elements), entspricht jenem für einfache 1D Barcodes.

    15 - RAP Kleinster Kantenkontrast (RAP minimal edge contrast):

    Grad der Untergruppe ZUSAMMENGESETZTE RAP Elemente (COMPOSITE RAP elements), entspricht jenem für einfache 1D Barcodes.

    16 - RAP Modulation (RAP modulation):

    Grad der Untergruppe ZUSAMMENGESETZTE RAP Elemente (COMPOSITE RAP elements), entspricht jenem für einfache 1D Barcodes.

    17 - RAP Defekte (RAP defects):

    Grad der Untergruppe ZUSAMMENGESETZTE RAP Elemente (COMPOSITE RAP elements), entspricht jenem für einfache 1D Barcodes.

    18 - RAP Dekodierbarkeit (RAP decodability):

    Grad der Untergruppe ZUSAMMENGESETZTE RAP Elemente (COMPOSITE RAP elements), entspricht jenem für einfache 1D Barcodes.

    19 - Codewort-Ergebnis (codeword yield):

    zählt und berechnet den relativen Anteil der richtig dekodierten Codewörter, die unter den Scans liegen.

    20 - Nicht verwendete Fehlerkorrektur (unused error correction):

    zählt und berechnet den relativen Anteil der falsch dekodierten Codewörter, die innerhalb der Fehlerkorrekturkapazität liegen.

    21: Modulation (modulation):

    bewertet die Gleichmäßigkeit der Reflexion der dunklen und hellen Module.

    22 - Dekodierbarkeit (decodability):

    misst die Abweichung der Strich- und Lückenlängen von ihrem im Symbologiestandard vorgegebenen Werten.

    23 - Defekte (defects):

    bezeichnet Unregelmäßigkeiten im Scanprofil innerhalb einzelner Striche und Lücke.

'quality_isoiec15416_float_grades'"quality_isoiec15416_float_grades""quality_isoiec15416_float_grades""quality_isoiec15416_float_grades""quality_isoiec15416_float_grades":

Ein Tupel mit der gleichen Bewertung der Druckqualität wie 'quality_isoiec15416'"quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""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 ResultNameResultNameResultNameresultNameresult_name auf 'quality_isoiec15416_labels'"quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels" gesetzt wird, siehe weiter unten.

Es ist zu beachten, dass diese Bewertung nur erfolgt, wenn der Barcode mit find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code im 'persistence'"persistence""persistence""persistence""persistence"-Modus gelesen wurde (siehe set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param).

'quality_isoiec15416_values'"quality_isoiec15416_values""quality_isoiec15416_values""quality_isoiec15416_values""quality_isoiec15416_values":

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 Reflexionseigenschaften 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_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code im 'persistence'"persistence""persistence""persistence""persistence"-Modus gelesen wurde (siehe set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param).

Die Namen der einzelnen Tupel-Elemente können abgefragt werden, indem ResultNameResultNameResultNameresultNameresult_name auf 'quality_isoiec15416_labels'"quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels""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:

Einfache 1D Barcodes:

Die folgenden Werte werden unter dem entsprechenden Index zurückgegeben:

0 - Gesamtwert (overall quality)
2 - Symbolkontrast (symbol contrast)
3 - Kleinster Reflexionswert (minimal reflectance)
4 - Kleinster Kantenkontrast (minimale edge contrast)
5 - Modulation (modulation)
6 - Defekte (defects)
7 - Dekodierbarkeit (decodability)
Zusammengesetzten Barcodes (composite bar codes):

Die folgenden Werte werden unter dem entsprechenden Index zurückgegeben:

0 - Gesamtwert (overall quality)
1 - Gesamtwert Linear (overall linear)
2 - Gesamtwert Zusammengesetzt (overall composite)
4 - Symbolkontrast (symbol contrast)
5 - Kleinster Reflexionswert (minimal reflectance)
6 - Kleinster Kantenkontrast (minimal edge contrast)
7 - Modulation (modulation)
8 - Defekte (defects)
9 - Dekodierbarkeit (decodability)
13 - RAP Kontrast (RAP contrast)
14 - RAP Kleinster Reflexionswert (RAP minimal reflectance)
15 - RAP Kleinster Kantenkontrast (RAP minimal edge contrast)
16 - RAP Modulation (RAP modulation)
17 - RAP Defekte (RAP defects)
18 - RAP Dekodierbarkeit (RAP decodability)
19 - Codewort-Ergebnis (codeword yield)
20 - Nicht verwendete Fehlerkorrektur) (unused error correction)

Diese Tupel haben die selbe Länge wie die Grade, die zurückgegeben werden, setzt man ResultNameResultNameResultNameresultNameresult_name auf 'quality_isoiec15416'"quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416", respektive 'quality_isoiec15416_float_grades'"quality_isoiec15416_float_grades""quality_isoiec15416_float_grades""quality_isoiec15416_float_grades""quality_isoiec15416_float_grades". Für alle nicht aufgelisteten Elemente liefert der Operator den Wert 'N/A'"N/A""N/A""N/A""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'"N/A""N/A""N/A""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'"N/A""N/A""N/A""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.

Wenn ein Grad für den Barcode-Typen des gelesenen Symbols nicht definiert ist, wird als Wert 'N/A'"N/A""N/A""N/A""N/A" zurückgegeben. In diesem Fall ist der Wert der Gesamtqualität des Symbols (overall symbol grade) ebenfalls 'N/A'"N/A""N/A""N/A""N/A".

'quality_isoiec15416_labels'"quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels":

Gibt die Namen für die Elemente eines Bewertungstupels nach ISO/IEC 15416:2016 zurück. Das Bewertungstupel wird von get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultget_bar_code_result z.B. mit dem Parameter 'quality_isoiec15416'"quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416" ausgegeben.

Es ist zu beachten, dass der Operator den CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle eines erfolgreich gefundenen Ergebnisses braucht, um den einfachen 1D Barcode von dem composite Barcode Fall unterscheiden zu können.

'gs1_lint_passed'"gs1_lint_passed""gs1_lint_passed""gs1_lint_passed""gs1_lint_passed":

Falls das Symbol einen GS1 formatierten String enthält, können zusätzliche Tests auf dem String durchgeführt werden. 'gs1_lint_passed'"gs1_lint_passed""gs1_lint_passed""gs1_lint_passed""gs1_lint_passed" gibt 'true'"true""true""true""true" zurück, wenn diese erfolgreich sind. Sonst wird 'false'"false""false""false""false" zurückgegeben. Es wird überprüft, dass

  • ein AI (Application Identifier) nicht mehrmals mit unterschiedlichem Inhalt vorkommt,

  • AIs die von anderen AIs benötigt werden, vorhanden sind,

  • AIs die von anderen AIs ausgeschlossen werden, nicht vorhanden sind, und dass

  • spezielle Formatierungsregeln für AIs berücksichtigt wurden.

'gs1_lint_result'"gs1_lint_result""gs1_lint_result""gs1_lint_result""gs1_lint_result":

'gs1_lint_result'"gs1_lint_result""gs1_lint_result""gs1_lint_result""gs1_lint_result" führt die bei 'gs1_lint_passed'"gs1_lint_passed""gs1_lint_passed""gs1_lint_passed""gs1_lint_passed" genannten Tests durch und gibt eine Liste von menschenlesbaren Fehlermeldungen zurück falls der Test scheitert. Ansonsten wird 'ok'"ok""ok""ok""ok" zurückgegeben.

'status'"status""status""status""status":

Berechnet zusätzliche Informationen über Scanlinien einer Kandidatenregion und gibt diese im von Menschen lesbaren Format zurück. Der Status kann nur berechnet werden, wenn zuvor find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code oder decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2 aufgerufen wurde, während der Barcode-Leser im 'persistence'"persistence""persistence""persistence""persistence"-Modus war (siehe set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param). Zwischen dem Aufruf von find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_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_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_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_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObjectget_bar_code_object mit dem Parameter 'scanlines_all'"scanlines_all""scanlines_all""scanlines_all""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'"status_id""status_id""status_id""status_id" zurückgegeben werden (siehe unten).

    0: 'unknown status.'"unknown status.""unknown status.""unknown status.""unknown status."

    Der Status der Scanlinie ist unbekannt. Die Scanlinie wird in diesem Fall ignoriert.

    1 - 'success.'"success.""success.""success.""success."

    Die Scanlinie konnte erfolgreich dekodiert werden.

    2 - 'edges: not enough edges detected.'"edges: not enough edges detected.""edges: not enough edges detected.""edges: not enough edges detected.""edges: not enough edges detected."

    Die Anzahl der Kanten in dieser Scanlinie ist zu gering für diesen Barcode-Typ.

    3 - 'edges: not enough edges for a start, a stop and at least one data character.'"edges: not enough edges for a start, a stop and at least one data character.""edges: not enough edges for a start, a stop and at least one data character.""edges: not enough edges for a start, a stop and at least one data character.""edges: not enough edges for a start, a stop and at least one data character."

    Die Anzahl der Kanten in dieser Scanlinie ist zu gering um mindestens das Start-, Stopp- und ein Zeichenmuster zu finden.

    4 - 'edges: too many edges detected.'"edges: too many edges detected.""edges: too many edges detected.""edges: too many edges detected.""edges: too many edges detected."

    Die Anzahl der Kanten in dieser Scanlinie ist zu hoch für diesen Barcode-Typ.

    5 - 'edges: center of scanline not within image domain.'"edges: center of scanline not within image domain.""edges: center of scanline not within image domain.""edges: center of scanline not within image domain.""edges: center of scanline not within image domain."

    Das Zentrum der Scanlinie liegt nicht innerhalb der Bilddomäne.

    6 - 'decoding: could not find stop character.'"decoding: could not find stop character.""decoding: could not find stop character.""decoding: could not find stop character.""decoding: could not find stop character."

    Das Stopp-Zeichen konnte nicht gefunden werden.

    7 - 'decoding: could not find start and stop characters.'"decoding: could not find start and stop characters.""decoding: could not find start and stop characters.""decoding: could not find start and stop characters.""decoding: could not find start and stop characters."

    Die Start- und Stopp-Zeichen konnten nicht gefunden werden.

    8 - 'decoding: internal error when estimating the maximum string length.'"decoding: internal error when estimating the maximum string length.""decoding: internal error when estimating the maximum string length.""decoding: internal error when estimating the maximum string length.""decoding: internal error when estimating the maximum string length."

    Interner Fehler.

    9 - 'decoding: internal error when decoding a single character.'"decoding: internal error when decoding a single character.""decoding: internal error when decoding a single character.""decoding: internal error when decoding a single character.""decoding: internal error when decoding a single character."

    Interner Fehler.

    10 - 'decoding: number of wide bars of a single character is not equal to 2.'"decoding: number of wide bars of a single character is not equal to 2.""decoding: number of wide bars of a single character is not equal to 2.""decoding: number of wide bars of a single character is not equal to 2.""decoding: number of wide bars of a single character is not equal to 2."

    Für Barcode-Typen '2/5 Industrial'"2/5 Industrial""2/5 Industrial""2/5 Industrial""2/5 Industrial" und '2/5 Interleaved'"2/5 Interleaved""2/5 Interleaved""2/5 Interleaved""2/5 Interleaved" muss die Anzahl breiter Striche in einem Zeichen zwei sein.

    11 - 'decoding: invalid encoding pattern.'"decoding: invalid encoding pattern.""decoding: invalid encoding pattern.""decoding: invalid encoding pattern.""decoding: invalid encoding pattern."

    Das Kodiermuster entspricht keinem Zeichen in der symbolspezifischen Look-Up-Tabelle.

    12 - 'decoding: invalid mix of character sets.'"decoding: invalid mix of character sets.""decoding: invalid mix of character sets.""decoding: invalid mix of character sets.""decoding: invalid mix of character sets."

    Für die Barcode-Typen 'EAN-13'"EAN-13""EAN-13""EAN-13""EAN-13" und 'UPC-A'"UPC-A""UPC-A""UPC-A""UPC-A": Die linke Hälfte des Symbols enthält eine ungültige Kombination der Sets A und B.

    13 - 'decoding: error decoding the reference to a human readable string.'"decoding: error decoding the reference to a human readable string.""decoding: error decoding the reference to a human readable string.""decoding: error decoding the reference to a human readable string.""decoding: error decoding the reference to a human readable string."

    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.

    14 - 'decoding: could not detect center guard pattern.'"decoding: could not detect center guard pattern.""decoding: could not detect center guard pattern.""decoding: could not detect center guard pattern.""decoding: could not detect center guard pattern."

    Für die Barcode-Typen 'EAN-13'"EAN-13""EAN-13""EAN-13""EAN-13", 'EAN-8'"EAN-8""EAN-8""EAN-8""EAN-8" und 'UPC-A'"UPC-A""UPC-A""UPC-A""UPC-A" (inklusive Add-on-Varianten) konnte das obligatorische Center Guard-Pattern nicht gefunden werden.

    15 - 'decoding: could not detect left and/or right guard patterns.'"decoding: could not detect left and/or right guard patterns.""decoding: could not detect left and/or right guard patterns.""decoding: could not detect left and/or right guard patterns.""decoding: could not detect left and/or right guard patterns."

    Für die Barcode-Typen 'EAN-13'"EAN-13""EAN-13""EAN-13""EAN-13", 'EAN-8'"EAN-8""EAN-8""EAN-8""EAN-8" und 'UPC-A'"UPC-A""UPC-A""UPC-A""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'"UPC-E""UPC-E""UPC-E""UPC-E" (inklusive Add-on-Varianten) konnte entweder das linke Normal Guard-Pattern oder das rechte Special Guard-Pattern nicht gefunden werden.

    16 - 'decoding: could not detect add-on guard pattern.'"decoding: could not detect add-on guard pattern.""decoding: could not detect add-on guard pattern.""decoding: could not detect add-on guard pattern.""decoding: could not detect add-on guard pattern."

    Für die Barcode-Typen 'EAN-13'"EAN-13""EAN-13""EAN-13""EAN-13", 'EAN-8'"EAN-8""EAN-8""EAN-8""EAN-8", 'UPC-A'"UPC-A""UPC-A""UPC-A""UPC-A" und 'UPC-E'"UPC-E""UPC-E""UPC-E""UPC-E" mit Add-on-Symbolen konnte das obligatorische Add-On Guard-Pattern nicht gefunden werden.

    17 - 'decoding: could not detect enough finder patterns.'"decoding: could not detect enough finder patterns.""decoding: could not detect enough finder patterns.""decoding: could not detect enough finder patterns.""decoding: could not detect enough finder patterns."

    Für die Barcode-Typen der GS1-DataBar-Familie konnten nicht genug Finder-Pattern gefunden werden.

    18 - 'decoding: no segment found.'"decoding: no segment found.""decoding: no segment found.""decoding: no segment found.""decoding: no segment found."

    Für Stacked Barcode-Typen konnte kein Segment gefunden werden.

    19 - 'check: checksum test failed.'"check: checksum test failed.""check: checksum test failed.""check: checksum test failed.""check: checksum test failed."

    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'"check_char""check_char""check_char""check_char" im Operator set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param ausgeschaltet werden.

    20 - 'check: check of add-on symbol failed.'"check: check of add-on symbol failed.""check: check of add-on symbol failed.""check: check of add-on symbol failed.""check: check of add-on symbol failed."

    Für die Barcode-Typen 'EAN-13'"EAN-13""EAN-13""EAN-13""EAN-13", 'EAN-8'"EAN-8""EAN-8""EAN-8""EAN-8", 'UPC-A'"UPC-A""UPC-A""UPC-A""UPC-A" und 'UPC-E'"UPC-E""UPC-E""UPC-E""UPC-E" mit Add-On-Symbolen entspricht die Kombination der Sets A und B nicht dem impliziten Prüfzeichen.

    21 - 'check: detected EAN-13 bar code type instead of specified type.'"check: detected EAN-13 bar code type instead of specified type.""check: detected EAN-13 bar code type instead of specified type.""check: detected EAN-13 bar code type instead of specified type.""check: detected EAN-13 bar code type instead of specified type."

    Für die Barcode-Typen 'UPC-A'"UPC-A""UPC-A""UPC-A""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'"EAN-13""EAN-13""EAN-13""EAN-13"-kompatible Kombination der Sets A und B wurde gefunden. Der Barcode sollte als 'EAN-13'"EAN-13""EAN-13""EAN-13""EAN-13" dekodiert werden.

    22 - 'check: symbol region overlaps with another symbol region'"check: symbol region overlaps with another symbol region""check: symbol region overlaps with another symbol region""check: symbol region overlaps with another symbol region""check: symbol region overlaps with another symbol region"

    Der Barcode konnte dekodiert werden, aber die Symbolregion schneidet sich mit der Symbolregion eines bereits erfolgreich dekodierten Barcodes.

    23 - 'decoding: could not detect the bar code type.'"decoding: could not detect the bar code type.""decoding: could not detect the bar code type.""decoding: could not detect the bar code type.""decoding: could not detect the bar code type."

    Der Barcodeleser könnte das Barcodetyp nicht bestimmen. Dieser Zustand kann passieren nur wenn find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code mit CodeTypeCodeTypeCodeTypecodeTypecode_type='auto'"auto""auto""auto""auto") oder mit einer Liste von unterschiedlichen Barcodetypen ausgeführt wurde.

    24 - 'decoding: quiet zone is disturbed.'"decoding: quiet zone is disturbed.""decoding: quiet zone is disturbed.""decoding: quiet zone is disturbed.""decoding: quiet zone is disturbed."

    Die Überprüfung der Ruhezone ist fehlgeschlagen. Siehe den Abschnitt zu 'quiet_zone'"quiet_zone""quiet_zone""quiet_zone""quiet_zone" in set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param für weitere Informationen.

    25 - 'check: symbol region detected outside of the candidate region.'"check: symbol region detected outside of the candidate region.""check: symbol region detected outside of the candidate region.""check: symbol region detected outside of the candidate region.""check: symbol region detected outside of the candidate region."

    Ein Barcode wurde detektiert aber ganz am Rand von oder sogar weit außerhalb der Kandidatenregion. 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.

    26 - 'decoding: minimum code length not reached (see min_code_length).'"decoding: minimum code length not reached (see min_code_length).""decoding: minimum code length not reached (see min_code_length).""decoding: minimum code length not reached (see min_code_length).""decoding: minimum code length not reached (see min_code_length)."

    Die Anzahl dekodierter Zeichen im gefundenen Barcode ist kleiner als die erforderliche Anzahl. Siehe den Abschnitt zu 'min_code_length'"min_code_length""min_code_length""min_code_length""min_code_length" in set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param für weitere Informationen zur minimalen Anzahl dekodierten Zeichen.

    27 - 'decoding: maximum code length exceeded (see max_code_length).'"decoding: maximum code length exceeded (see max_code_length).""decoding: maximum code length exceeded (see max_code_length).""decoding: maximum code length exceeded (see max_code_length).""decoding: maximum code length exceeded (see max_code_length)."

    Die Anzahl dekodierter Zeichen im gefundenen Barcode überschreitet die maximal erlaubte Anzahl. Siehe den Abschnitt zu 'max_code_length'"max_code_length""max_code_length""max_code_length""max_code_length" in set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param für weitere Informationen zur maximalen 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'"Codabar""Codabar""Codabar""Codabar", '2/5 Industrial'"2/5 Industrial""2/5 Industrial""2/5 Industrial""2/5 Industrial", '2/5 Interleaved'"2/5 Interleaved""2/5 Interleaved""2/5 Interleaved""2/5 Interleaved", 'Code 39'"Code 39""Code 39""Code 39""Code 39", 'Code 93'"Code 93""Code 93""Code 93""Code 93", 'GS1-128'"GS1-128""GS1-128""GS1-128""GS1-128", 'Code 128'"Code 128""Code 128""Code 128""Code 128", 'MSI'"MSI""MSI""MSI""MSI", alle 'EAN'"EAN""EAN""EAN""EAN"-, 'UPC-A'"UPC-A""UPC-A""UPC-A""UPC-A"- und 'UPC-E'"UPC-E""UPC-E""UPC-E""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.

    1000 - 'White spaces too wide.'"White spaces too wide.""White spaces too wide.""White spaces too wide.""White spaces too wide."

    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.

    1001 - 'White spaces too narrow.'"White spaces too narrow.""White spaces too narrow.""White spaces too narrow.""White spaces too narrow."

    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.

    1002 - 'Bars too wide.'"Bars too wide.""Bars too wide.""Bars too wide.""Bars too wide."

    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.

    1003 - 'Bars too narrow.'"Bars too narrow.""Bars too narrow.""Bars too narrow.""Bars too narrow."

    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.

    1004 - 'Possible saturation of gray values.'"Possible saturation of gray values.""Possible saturation of gray values.""Possible saturation of gray values.""Possible saturation of gray values."

    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.

    1005 - 'No composite component found.'"No composite component found.""No composite component found.""No composite component found.""No composite component found."

    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.

    1006 - 'Used for merging.'"Used for merging.""Used for merging.""Used for merging.""Used for merging."

    Diese Information zeigt an, dass die Kanten der aktuellen Scanlinie benutzt wurden um die vereinigte Scanline zu berechnen.

'status_id'"status_id""status_id""status_id""status_id":

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'"status""status""status""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'.

'status_small_elements_robustness'"status_small_elements_robustness""status_small_elements_robustness""status_small_elements_robustness""status_small_elements_robustness":

Bestimmt zusätzliche Informationen über einen optionalen Dekodierversuch, der im Abschnitt über 'small_elements_robustness'"small_elements_robustness""small_elements_robustness""small_elements_robustness""small_elements_robustness" des Operators set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param beschrieben wird. Zusätzlich zu den Statusmeldungen, die im Abschnitt 'status'"status""status""status""status" beschrieben sind, wird hier die Meldung 'small_elements_robustness: no scan.'"small_elements_robustness: no scan.""small_elements_robustness: no scan.""small_elements_robustness: no scan.""small_elements_robustness: no scan." zurückgegeben falls der Algorithmus nicht ausgeführt wurde oder fehlschlug.

'decode_feature'"decode_feature""decode_feature""decode_feature""decode_feature":

Liefert das zur Dekodierung erfolgreich verwendete Verfahren zurück.

Das zurückgegebene Ergebnis ist ein Einzelwert.

Wertevorschläge: 'standard'"standard""standard""standard""standard", 'merge_scanlines'"merge_scanlines""merge_scanlines""merge_scanlines""merge_scanlines", 'small_elements_robustness'"small_elements_robustness""small_elements_robustness""small_elements_robustness""small_elements_robustness".

Ausführungsinformationen

Parameter

BarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandlebar_code_handle (input_control)  barcode HBarCode, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des zu verwendenden Barcode-Modells.

CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle (input_control)  integer HTupleUnion[int, str]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

Auswahl der Barcode-Ergebnisse oder Kandidaten, für die eine Information abgefragt werden soll.

Default: 'all' "all" "all" "all" "all"

Wertevorschläge: 0, 1, 2, 'all'"all""all""all""all"

ResultNameResultNameResultNameresultNameresult_name (input_control)  attribute.name HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Namen der Ergebnisse, die vom Barcode-Leser abgefragt werden sollen.

Default: 'decoded_types' "decoded_types" "decoded_types" "decoded_types" "decoded_types"

Wertevorschläge: 'decoded_types'"decoded_types""decoded_types""decoded_types""decoded_types", 'decoded_strings'"decoded_strings""decoded_strings""decoded_strings""decoded_strings", 'decoded_data'"decoded_data""decoded_data""decoded_data""decoded_data", 'decoded_reference'"decoded_reference""decoded_reference""decoded_reference""decoded_reference", 'element_size'"element_size""element_size""element_size""element_size", 'orientation'"orientation""orientation""orientation""orientation", 'composite_strings'"composite_strings""composite_strings""composite_strings""composite_strings", 'composite_reference'"composite_reference""composite_reference""composite_reference""composite_reference", 'aborted'"aborted""aborted""aborted""aborted", 'gs1_lint_result'"gs1_lint_result""gs1_lint_result""gs1_lint_result""gs1_lint_result", 'gs1_lint_passed'"gs1_lint_passed""gs1_lint_passed""gs1_lint_passed""gs1_lint_passed", 'quality_isoiec15416'"quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416", 'quality_isoiec15416_labels'"quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels", 'quality_isoiec15416_values'"quality_isoiec15416_values""quality_isoiec15416_values""quality_isoiec15416_values""quality_isoiec15416_values", 'quality_isoiec15416_float_grades'"quality_isoiec15416_float_grades""quality_isoiec15416_float_grades""quality_isoiec15416_float_grades""quality_isoiec15416_float_grades", 'status'"status""status""status""status", 'status_id'"status_id""status_id""status_id""status_id", 'status_small_elements_robustness'"status_small_elements_robustness""status_small_elements_robustness""status_small_elements_robustness""status_small_elements_robustness", 'decode_feature'"decode_feature""decode_feature""decode_feature""decode_feature"

BarCodeResultsBarCodeResultsBarCodeResultsbarCodeResultsbar_code_results (output_control)  attribute.value(-array) HTupleSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Liste mit den Ergebnissen.

Ergebnis

get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultget_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.

Vorgänger

find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code

Siehe auch

get_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObjectget_bar_code_object

Modul

Bar Code