get_bar_code_resultT_get_bar_code_resultGetBarCodeResultGetBarCodeResult (Operator)

Name

get_bar_code_resultT_get_bar_code_resultGetBarCodeResultGetBarCodeResult — 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)

Beschreibung

Der Operator get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultGetBarCodeResult gibt alphanumerische Ergebnisse des Lesevorgangs zurück. Um ein bestimmtes Ergebnis zu erhalten, sind das Barcode-Modell (BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandle) und der Index des gelesenen Symbols oder Kandidaten (CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle) notwendig.

CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle bezieht sich auf die gelesenen Kandidaten in der Anordnung wie sie vom Operator find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCode zurück gegeben werden. Dies bedeutet, die möglichen Werte für CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle 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 CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle auch auf 'all'"all""all""all""all" gesetzt werden, um die Ergebnisse aller Symbole oder Kandidaten zurückzugeben.

In BarCodeResultsBarCodeResultsBarCodeResultsBarCodeResultsbarCodeResults werden Ergebnisse zurückgeliefert, je nachdem was im ResultNameResultNameResultNameResultNameresultName ausgewählt wurde:

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

Die dekodierte Zeichenfolge des Symbols wird zurückgegeben. Ist CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle zum Beispiel gleich 0 gesetzt, so wird nur die Zeichenfolge für das erste Ergebnis ausgegeben. Steht CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle auf 'all'"all""all""all""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'"check_char""check_char""check_char""check_char" ab.

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

Der Typ des gefundenen Barcodes wird zurückgegeben. Dies ist insbesondere im Zusammenhang mit der Autodiskriminierung (siehe find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCode) interessant. CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle gibt an, für welche gefundenen Barcodes die Typen zurückgegeben werden sollen. Beispielsweise wird CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle gleich 0 gesetzt, wenn nur der Typ des ersten Ergebnisses verlangt wird, oder CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle wird auf 'all'"all""all""all""all" gesetzt, wenn die Typen für alle Ergebnisse zurückgegeben werden sollen.

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

Die dekodierte Zeichenfolge des Symbols wird als Tuple 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:

Da die Referenz-Zeichen ein Tupel sind, können diese nur für ein einzelnes Ergebnis abgerufen werden.

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

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

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'"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. 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 ResultNameResultNameResultNameResultNameresultName auf 'orientation'"orientation""orientation""orientation""orientation" gesetzt, so werden die Orientierungen der Ergebnissen ausgegeben. Es wird ein einzelner Winkelwert ausgegeben, wenn nur ein Ergebnis abgefragt wird, z.B. wenn CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle auf 0 gesetzt ist. Sonst, wenn CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle auf 'all'"all""all""all""all" gesetzt ist, wird ein Tupel mit Winkelwerten für alle Ergebnisse ausgegeben.

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

Die Elementgröße eines gelesenen Symbols wird ausgegeben.

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

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

0 - abgeschlossen

find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCode wurde vollständig abgeschlossen.

1 - abgebrochen

find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCode wurde durch ein Timeout abgebrochen, siehe set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParam.

2 - abgebrochen

find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCode wurde durch set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParam mit 'abort'"abort""abort""abort""abort" abgebrochen.

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

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

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, welche dem Operator nicht zugänglich sind.

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_codeFindBarCodeFindBarCodeFindBarCode weder metrische Information eingehen noch berechnet werden können, gibt der Operator get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultGetBarCodeResult 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_resultsGetDataCode2dResultsGetDataCode2dResultsGetDataCode2dResults). 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.

    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 ResultNameResultNameResultNameResultNameresultName 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_codeFindBarCodeFindBarCodeFindBarCode im 'persistence'"persistence""persistence""persistence""persistence"-Modus gelesen wurde (siehe set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParam).

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

Die Namen der einzelnen Tupel-Elemente können abgefragt werden, indem ResultNameResultNameResultNameResultNameresultName 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 ResultNameResultNameResultNameResultNameresultName 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.

'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_resultGetBarCodeResultGetBarCodeResultGetBarCodeResult z.B. mit dem Parameter 'quality_isoiec15416'"quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416" ausgegeben.

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

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

Berechnet zusätzliche Informationen über Scanlinien einer Kandidatenregion und gibt diese im Klartext zurück. CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle 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_codefind_bar_codeFindBarCodeFindBarCodeFindBarCode oder decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 aufgerufen wurde, während der Barcode-Leser im 'persistence'"persistence""persistence""persistence""persistence"-Modus war (siehe set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParam). Zwischen dem Aufruf von find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCode 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_paramSetBarCodeParamSetBarCodeParamSetBarCodeParam.

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

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

Ausführungsinformationen

Parameter

BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandle (input_control)  barcode HBarCode, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des zu verwendenden Barcode-Modells.

CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle (input_control)  integer HTupleHTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

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

Defaultwert: 'all' "all" "all" "all" "all"

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

ResultNameResultNameResultNameResultNameresultName (input_control)  attribute.name HTupleHTupleHtuple (string) (string) (HString) (char*)

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

Defaultwert: '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", '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"

BarCodeResultsBarCodeResultsBarCodeResultsBarCodeResultsbarCodeResults (output_control)  attribute.value(-array) HTupleHTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Liste mit den Ergebnissen.

Ergebnis

get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultGetBarCodeResult 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_codeFindBarCodeFindBarCodeFindBarCode

Siehe auch

get_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObjectGetBarCodeObject

Modul

Bar Code