KlassenKlassenKlassenKlassen | | | | Operatoren

get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult (Operator)

Name

get_bar_code_resultget_bar_code_resultGetBarCodeResultget_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 get_bar_code_result(const Hlong BarCodeHandle, const char* CandidateHandle, const char* ResultName, char* BarCodeResults)

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

Herror get_bar_code_result(const HTuple& BarCodeHandle, const HTuple& CandidateHandle, const HTuple& ResultName, char* BarCodeResults)

Herror get_bar_code_result(const HTuple& BarCodeHandle, const HTuple& CandidateHandle, const HTuple& ResultName, HTuple* BarCodeResults)

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

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

void HOperatorSetX.GetBarCodeResult(
[in] VARIANT BarCodeHandle, [in] VARIANT CandidateHandle, [in] VARIANT ResultName, [out] VARIANT* BarCodeResults)

VARIANT HBarCodeX.GetBarCodeResult(
[in] VARIANT CandidateHandle, [in] BSTR ResultName)

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

Mit dem Operator get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult können alphanumerische Ergebnisse des Lesevorgangs abgefragt werden. Um ein bestimmtes Ergebnis zu erhalten ist zunächst der Identifikator des Barcode-Modells (BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandle) und der Index des gelesenen Symbols oder Kandidaten (CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle) notwendig. CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle bezieht sich auf die geordnete Reihenfolge der gelesenen Symbole, wie sie vom Operator find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode zurück gegeben werden. CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle kann dabei mindestens Werte von 0 bis (n-1) annehmen, wobei n die Gesamtanzahl an gefundenen Barcodes ist und - wie in der Beschreibung von ResultNameResultNameResultNameResultNameResultNameresultName (s.u.) angegeben - Werte von 0 bis (m-1), wobei m die Gesamtzahl an Kandidaten ist. Alternativ dazu kann CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle auch auf 'all'"all""all""all""all""all" gesetzt werden, wenn ein Wert für alle Ergebnisse gewünscht ist. Die Option 'all'"all""all""all""all""all" kann nur gewählt werden, wenn der gewünschte Wert nur ein Einzelwert und kein Tupelwert ist.

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

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

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

'decoded_types'"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_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode) interessant. CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle gibt an, für welche gefundenen Barcodes die Typen zurückgegeben werden sollen. Beispielsweise wird CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle gleich 0 gesetzt, wenn nur der Typ des ersten Ergebnisses verlangt wird, oder CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle wird auf 'all'"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""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""decoded_reference" handelt es sich hier um dieselben aufbereiteten Daten wie sie auch von 'decoded_strings'"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""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. Für Barcodes, welche nur numerische Werte kodieren, wie z.B. die EAN/UPC Codes, die GS1 DataBar Codes (außer der GS1 DataBar Expanded Varianten), sowie die 2/5 Codes, stehen in den Referenz-Zeichen identische Werte wie in der dekodierten Zeichenfolge. Für alphanumerische Codes, wie z.B. Code 39 oder Code 128, sind die Referenz-Zeichen die Indizes in die entsprechende Dekodiertabelle. Für GS1-128, GS1 DataBar Expanded und GS1 DataBar Expanded Stacked Codes stellen die Referenz-Zeichen die ASCII-Werte der dekodierten Daten dar (siehe auch Tupel / String-Operationen). Dabei ist das Sonderzeichen FNC1 für GS1-128 als 102 und für GS1 DataBar Expanded und GS1 DataBar Expanded Stacked Codes als 29 dekodiert. Das erste Referenz-Zeichen für alle Codes der GS1-DataBar-Familie enthält das Linkage-Flag, das einen Wert von 1 hat, falls es gesetzt ist, bzw. 0 falls es nicht gesetzt ist. Da die Referenz-Zeichen ein Tupel sind, können diese nur für ein einzelnes Ergebnis abgerufen werden.

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

'composite_reference'"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""composite_strings" zu nutzen.

'orientation'"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 Kanten der einzelnen Barcodestriche. Ist ResultNameResultNameResultNameResultNameResultNameresultName auf 'orientation'"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 CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle auf 0 gesetzt ist. Sonst, wenn CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle auf 'all'"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""element_size":

Die Elementgröße eines gelesenen Symbols wird ausgegeben.

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

Es wird ausgegeben, ob find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode im vorangegangenen Durchlauf vorzeitig abgebrochen wurde. Dies kann durch Setzen eines Timeouts ('timeout'"timeout""timeout""timeout""timeout""timeout" in set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam oder durch einen manuellen Abbruch (siehe 'abort'"abort""abort""abort""abort""abort" in set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam) verursacht worden.

Value Description
0 find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode wurde vollständig abgeschlossen
1 find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode wurde durch ein Timeout abgebrochen
2 find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode wurde durch set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam mit 'abort' abgebrochen

'quality_isoiec15416'"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 wird zurückgegeben. Das erste Element des Tupels enthält immer die Gesamtqualität des Symbols. Die Länge des Tupels und die Bedeutung der restlichen Elemente hängen davon ab, ob ein einfaches 1D Barcodesymbol (z.B. EAN-13, Code 128, GS1 DataBar Omnidirectional usw.) oder ein zusammengesetztes (composite) Barcodesymbol (z.B. GS1 DataBar Omnidirectional CC-A, GS1 DataBar Limited CC-B usw.) bewertet wird.

Für die Bewertung der Druckqualität werden Scanlinien (scan reflectance profiles) durch das Symbol gelegt. Bei jeder dieser Scanlinien wird für jeden der evaluierten Paramter ein (Qualitäts)-Grad zugewiesen. Gemäß dem Standard werden die einzelnen Grade mit einem Wert von 0 bis 4 bewertet, wobei 0 für den niedrigsten und 4 für den höchsten Grad steht. Der niedrigste Grad von allen zuvor bestimmten Parametergraden einer Scanlinie ist als Scanlinien-Gütegrad (scan reflectance profile grade) definiert. Somit besitzt am Ende jede Scanlinie einen Grad, der den minimalen Grad aller Parametergrade der jeweiligen Scanlinie repräsentiert. Der arithmetische Mittelwert dieser Grade wird schließlich als die Gesamtqualität des Symbols (overall symbol grade) zurückgegeben.

Es ist zu beachten, dass, obwohl sich diese Implementation streng an den Standard hält, die Bewertung der Grade von der Barcode-Dekodierungsprozedur abhängt. Dadurch können die Bewertungsergebnisse leicht von den Ergebnissen anderer Barcodeleser (von anderen Anbietern) abweichen.

Für die einfachen 1D Barcodes wird die Bewertung der Druckqualität in einem Tupel mit acht Elementen zusammengefasst:

1. Gesamtwert

Der Gesamtwert (overall) ist der Minimalwert aller restlichen Gradwerte.

2. Decode

Der Wert für Decode ist auf 4 gesetzt, wenn das untersuchte Barcodesymbol entsprechend des Referenzdekodieralgorithmus für das jeweilige Symbol gelesen werden konnte. Andernfalls ist er 0. Es ist zu beachten, dass HALCONs Dekodieralgorithmus von dem des Referenzdekodieralgorithmus abweicht. So kann es oft sein, dass HALCON ein Symbol lesen kann, obwohl der Wert für Decode entsprechend dem Standard 0 ist.

3. Symbolkontrast

Der Symbolkontrast (symbol contrast) ist die Differenz zwischen maximalem und minimalem Reflexionswert des Grauwertprofils. Ein stärkerer Kontrast ergibt einen besseren Grad.

4. Kleinster Reflexionswert

Der kleinste Reflexionswert (minimal reflectance) ist auf 4 gesetzt, wenn der minimale Reflexionswert des Grauwertprofils kleiner oder gleich 0.5 der maximale Reflexionswert ist, und auf 0 anderenfalls.

5. Kleinster Kantenkontrast

Der kleinste Kantenkontrast (minimale edge contrast) bewertet den minimalen Kontrast zwischen zwei benachbarten Symbolelementen (helles zu dunkles oder dunkles zu helles Element) im Grauwertprofil.

6. Modulation

Die Modulation bewertet die Amplitude zwischen den Symbolelementen. Höhere Amplituden bedingen, dass Striche und Löcher zuverlässiger voneinander unterschieden werden können und dieser Grad höher bewertet wird.

7. Defekte

Die Defekte (defects) sind Unregelmäßigkeiten im Grauwertprofil innerhalb einzelner Symbolelemente oder der Ruhezonen, deren Vorhandensein mit niedrigerem Grad gekennzeichnet wird.

8. Dekodierbarkeit

Die Dekodierbarkeit (decodability) bezeichnet Abweichungen der Symbolelementbreiten von ihrem Nominalwert, der im entsprechenden Symbologiestandard festgelegt ist.

9. Zusätzliche Anforderungen

Die Zusätzlichen Anforderungen (additional requirements) sind weitere symbologie-spezifische Anforderungen wie z.B.: die Ruhezonen-Breiten (quiet zone widths), das Breit-Schmal-Verhältnis (wide/narrow ratio), die Zwischenzeichen-Lücken (inter character gaps), die umschließenden Muster (guarding patterns) oder andere. Bei einigen Codetypen kann es bei den zusätzlichen Anforderungen zu Abweichungen zu den Spezifikationen im dazugehörigen ISO/IEC Standard kommen. Dies liegt in der Regel daran, dass zu ihrer Berechnung metrische Informationen benötigt werden, welche dem Operator nicht zugänglich gemacht werden können:

Code-39

Bei Code-39 Symbolen wird der Grad für die Zwischenzeichen-Lücken (inter character gaps) in Abhängigkeit von der, im metrischen Maß gegebenen, schmalsten Elementbreite (narrow element width) berechnet. Da in find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode weder metrische Information eingehen noch berechnet werden können, gibt der Operator get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult nur den Grad zurück der sich für eine schmalste Elementbreite kleiner als 0,287 mm ergibt.

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 die Gesamtqualität der endgültige Symbolgrad ist, weisen die restlichen Grade auf mögliche qualitätsverringernde Ursachen hin. Eine Liste mit häufig vorkommenden Defekten und deren Effekt auf die einzelnen Qualitätsgrade kann man im Standard ISO/IEC 15416 finden. Die Namen und Zuordnung der Grade kann mithilfe des Parameters 'quality_isoiec15416_labels'"quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels" des Operators get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult abgefragt werden.

Die Druckqualitätsbewertung eines zusammengesetzten Barcodes (composite bar codes) umfasst die folgenden 24 Grade, welche der Übersicht halber in drei Gruppen (GESAMTWERT (OVERALL), LINEAR und ZUSAMMENGESETZT (COMPOSITE)) sowie eine Untergruppe (ZUSAMMENGESETZTER (COMPOSITE) RAP) organisiert sind:

            GESAMTWERT (OVERALL):                                       ZUSAMMENGESETZT (COMPOSITE):
         1.   Gesamtwert (overall)                                  12.   Decode
         2.   Gesamtwert (Linear) (overall linear)                  13.   Gesamt-Rap (rap overall)
         3.   Gesamtwert (Zusammengesetzt) (overall composite)          ZUSAMMENGESETZTER RAP (COMPOSITE RAP):
                                                                    14.   Kontrast (contrast)
            LINEAR:                                                 15.   Kleinster Reflexionswert (minimal reflectance)
         4.   Decode                                                16.   Kleinster Kantenkontrast (minimal edge contrast)
         5.   Symbolkontrast (symbol contrast)                      17.   Modulation
         6.   Kleinster Reflexionswert (minimal reflectance)        18.   Defekte (defects)
         7.   Kleinster Kantenkontrast (minimal edge contrast)      19.   Dekodierbarkeit (decodability)
         8.   Modulation                                            20.   Codewort-Ergebnis (codeword yield)
         9.   Defekte (defects)                                     21.   Nicht verwendete Fehlerkorrektur (unused error correction)
        10.   Dekodierbarkeit (decodability)                        22.   Modulation
        11.   Zusätzliche Anforderungen (additional requirements)   23.   Dekodierbarkeit (decodability)
                                                                    24.   Defekte (defects)
    
     

Bei zusammengesetzten (compositen) Barcodes sind die ersten Elemente des Rückgabetupels die Gesamtgrade, die in der Gruppe GESAMTWERT (OVERALL) aufgelistet sind. Sie repräsentieren das jeweilige Minimum aller individuellen Grade jeder Gruppe. Die darauf folgenden Tupelelemente bestehen aus den Qualitätsgraden der Elemente innerhalb der Gruppen LINEAR und ZUSAMMENGESETZT (COMPOSITE). Sie geben Auskunft über mögliche Ursachen für schlechte Qualitätsbewertungen eines Symbols.

Die Grade der LINEAR Gruppe entsprechen denjenigen der einfachen 1D Barcodes, die oben beschrieben sind. Die Grade aus der Gruppe ZUSAMMENGESETZT (COMPOSITE) hingegegen entsprechen den PDF 417 Qualitätsgraden (siehe get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResults). Der Unterschied besteht jedoch darin, dass bei PDF 417 Data Code 2D Symbolen für die Bewertung der Reflexionseigenschaften ein start/stop Pattern verwendet wird, während für zusammengesetzte Barcodes so genannte Raw Adress Patterns (RAP) statt eines Start-/Stopmusters verwendet werden. Die Grade dieser RAP Elemente sind in der Untergruppe ZUSAMMENGESETZTE RAP (COMPOSITE RAP) aufgeführt und stimmen mit den Qualitätsgraden der einfachen 1D Barcodes überein.

Die Definition der einzelnen Elemente lautet wie folgt:

1. Gesamtwert (overall)

Der Grad Gesamtwert ist der endgültige Symbolgrad. Er ist der kleinere der zwei Gesamtgrade Gesamtwert (Linear) und Gesamtwert (Zusammengesetzt) aus den Gruppen LINEAR und ZUSAMMENGESETZT.

2. Gesamtwert (Linear) (overall linear)

Der Grad Gesamtwert (Linear) ist der Gesamtgrad der linearen (1D) Symbole der Gruppe LINEAR.

3. Gesamtwert (Zusammengesetzt) (overall composite)

Der Grad Gesamtwert (Zusammengesetzt) ist der Gesamtgrad der zusammengesetzten (2D) Symbole aus der Gruppe ZUSAMMENGESETZT.

4.-11. LINEARE Elemente

Die Qualitätsgrade der Elemente in der Gruppe LINEAR entsprechen denjenigen der einfachen 1D Barcodes, die oben beschrieben sind.

12. Decode

Der Grad Decode entspricht demjenigen Decode-Grad für einfache 1D Barcodes, der oben beschrieben ist.

13. Gesamt-RAP (Rap Overall)

Der Grad Gesamt-RAP ist das Minimum aller individuellen Qualitätsgrade aus der Gruppe GESAMT RAP.

14.-19. ZUSAMMENGESETZTE RAP Elemente (COMPOSITE RAP elements)

Die Elemente der ZUSAMMENGESETZTEN RAP-Gruppe stellen die einzelnen Grauwertprofilegrade des RAP Musters dar. Diese Grade stimmen mit den einfachen 1d Barcode Qualitätsgraden überein, die bereits oben beschrieben sind.

20. Codewort-Ergebnis (codeword yield)

Der Grad Codewort-Ergebnis berechnet den relativen Anteil der richtig dekodierten Codewörter, die unter den Scans liegen.

21. Nicht verwendete Fehlerkorrektur (unused error correction)

Der Grad nicht verwendete Fehlerkorrektur berechnet den relativen Anteil der falsch dekodierten Codewörter, die innerhalb der Fehlerkorrekturkapazität liegen.

22. Modulation

Der Grad Modulation bezeichnet die Amplitude zwischen den Symbolmodulen.

23. Dekodierbarkeit (decodability)

Der Grad Dekodierbarkeit misst die Abweichung der Modulbreiten von ihrem im Symbologiestandard vorgegebenen Werten.

24. Defekte (defects)

Defekte bezeichnet Unregelmäßigkeiten im Scanprofil innerhalb einzelner Symbolmodule.

Es ist zu beachten, dass die Bewertung der Barcodequalität nur erfolgt, wenn der Barcode mit find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode im 'persistence'"persistence""persistence""persistence""persistence""persistence"-Modus gelesen wurde (siehe set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam). Die Namen der einzelnen Grade können mithilfe des Parameters 'quality_isoiec15416_labels'"quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels""quality_isoiec15416_labels" des Operators get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult abgefragt werden.

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

Tupel aus Rohmesswerten für alle Grade, die 'direkt messbar' sind. Das sind jene Grade, deren Definition im Standard ISO/IEC 15416 einer 'direkten Ableitung' der Reflektionseigenschaften des abgebildeten Symbols entsprechen, oder jene Grade, welche das Ergebnis eines 'direkten Zählens' sind.

Für die einfachen 1D Barcodes sind das die folgenden Grade:

Symbolkontrast (symbol contrast) Modulation
Minimale Reflexion (minimal reflectance) Defekte (defects)
Kleinster Kantenkontrast (minimal edge contrast) Dekodierbarkeit (decodability)

Für die zusammengesetzten Barcodes sind das die folgenden Grade:

Symbolkontrast (symbol contrast) Rap-Kontrast (Rap Contrast)
Minimale Reflexion (minimal reflectance) Rap-Minimale Reflexion (Rap Minimal Reflectance)
Kleinster Kantenkontrast (minimal edge contrast) Rap-Kleinster Kantenkontrast (Rap Minimal Edge Contrast)
Modulation Rap-Modulation (Rap Modulation)
Defekte (defects) Rap-Defekte (Rap Defects)
Dekodierbarkeit (decodability) Rap-Dekodierbarkeit (Rap Decodability)
Codewort-Ergebnis (Codeword Yield)
Nicht verwendete Fehlerkorrektur (Unused Error Correction)

Die Elemente des Tupels werden in derselben Reihenfolge zurückgegeben wie die Elemente einer entsprechenden 'quality_isoiec15416'"quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416"-Abfrage. Für alle Grade, welche von dieser Liste ausgeschlossen sind, liefert der Operator den Wert 'N/A'"N/A""N/A""N/A""N/A""N/A" zurück. Bei einfachen 1D Barcodes haben Decode und Zusätzliche Anforderungen (additional requirements) keine entsprechenden darunterliegenden Rohmesswerte und der Operator liefert dementsprechend 'N/A'"N/A""N/A""N/A""N/A""N/A" zurück. Bei zusammengesetzten Barcodes ist dies für die Grade Decode (Linear), Decode (Zusammengesetzt), Gesamt-RAP (Rap Overall) und Zusätzliche Anforderungen Linear (linear additional requirements) der Fall. Darüber hinaus ist zu beachten, dass, obwohl die Grade Zusammengesetzte Modulation (composite modulation), Zusammengesetzte Dekodierbarkeit (composite decodability) und Zusammengesetzte Defekte (composite defects) auch das Grauwert-Profil des zusammengesetzten Symbols bewerten, 'quality_isoiec15416_values'"quality_isoiec15416_values""quality_isoiec15416_values""quality_isoiec15416_values""quality_isoiec15416_values""quality_isoiec15416_values" auch für sie 'N/A'"N/A""N/A""N/A""N/A""N/A" zurückliefert. Das liegt daran, dass diese Grade durch ein komplexes Schema, welches die Dekodierungsroutine und den Fehlerkorrekturmechanismus der Symbologie einbezieht, berechnet werden. Zur Folge haben diese Grade keine direkten darunterliegenden Rohmesswerte. Für Gesamtwert (overall) bei einfachen 1D Barcodes sowie für Gesamtwert (linear) und Gesamtwert (composite) bei zusammengesetzten Barcodes werden deren Grade auf eine Dezimalstelle genau zurückgegeben.

Alle Werte sind zwischen 0.0 und 1.0 normalisiert. Somit entspricht z.B. ein Wert von 0.75 für den Grad Symbolkontrast einem Grauwert von 191.25 (für BYTE Bilder).

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

Gibt die Namen der Elemente des Qualitätsgradtupels zurück. Das Qualitätsgradtupel wird von get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult mit Parameter 'quality_isoiec15416'"quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416" ausgegeben. Es ist zu beachten, dass der Operator den CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle eines erfolgreich gefundenen Ergebnisses braucht, um den einfachen 1D Barcode von dem composite Barcode Fall unterscheiden zu können.

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

Berechnet zusätzliche Informationen über Scanlinien einer Kandidatenregion und gibt diese im Klartext zurück. CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle) kann hier Werte von 0 bis (n-1) annehmen, wobei n die Gesamtanzahl an gefundenen Barcodes ist. Der Status kann nur berechnet werden, wenn zuvor find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode oder decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 aufgerufen wurde, während der Barcode-Leser im 'persistence'"persistence""persistence""persistence""persistence""persistence"-Modus war (siehe set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam). Zwischen dem Aufruf von find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode und dieser Statusabfrage dürfen keine Änderungen an Parametern des Barcode-Lesers durchgeführt werden. Das Berechnen der zusätzlichen Scanlinien-Informationen ist rechnerisch teuer und sollte nur abgefragt werden, falls diese zusätzlichen Informationen benötigt werden.

Jede Kandidatenregion enthält eine bestimmte Anzahl Scanlinien die vom Barcode-Typ abhängt oder mit set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam mit dem Parameter 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines" festgelegt wurde. Normalerweise beendet sich der Barcode-Leser sobald genügend Scanlinien dekodiert werden konnten. Standardmäßig muss nur eine Scanlinie erfolgreich dekodiert werden, das kann aber mit 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines" geändert worden sein.

Wenn 'status'"status""status""status""status""status" in get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult benutzt wird, so wird die angegebene Kandidatenregion nochmals gescannt. Dabei werden nun jedoch alle Scanlinien ausgewertet. Der Operator gibt dann die Statusinformationen für jede Scanlinie dieser Kandidatenregion in der gleichen Reihenfolge zurück, wie die Scanlinien selbst vom Operator get_bar_code_objectget_bar_code_objectGetBarCodeObjectget_bar_code_objectGetBarCodeObjectGetBarCodeObject mit dem Parameter 'scanlines_all'"scanlines_all""scanlines_all""scanlines_all""scanlines_all""scanlines_all" zurückgegeben werden.

Die folgende Liste zeigt die möglichen Statusmeldungen, gruppiert nach Arbeitsphasen in denen die Meldung auftreten kann. Die Zahlen in Klammern sind die zugehörigen Statuscodes die mit 'status_id'"status_id""status_id""status_id""status_id""status_id" zurückgegeben werden (siehe unten).

'unknown status.'"unknown status.""unknown status.""unknown status.""unknown status.""unknown status." (0):

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

'success.'"success.""success.""success.""success.""success." (1):

Die Scanlinie konnte erfolgreich dekodiert werden.

'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.""edges: not enough edges detected." (2):

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

'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.""edges: not enough edges for a start, a stop and at least one data character." (3):

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

'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.""edges: too many edges detected." (4):

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

'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.""edges: center of scanline not within image domain." (5)

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

'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.""decoding: could not find stop character." (6):

Das Stop-Zeichen konnte nicht gefunden werden.

'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.""decoding: could not find start and stop characters." (7):

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

'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.""decoding: internal error when estimating the maximum string length." (8):

Interner Fehler.

'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.""decoding: internal error when decoding a single character." (9):

Interner Fehler.

'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.""decoding: number of wide bars of a single character is not equal to 2." (10):

Für Barcode-Typen '2/5 Industrial'"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""2/5 Interleaved" muss die Anzahl breiter Striche in einem Zeichen zwei sein.

'decoding: invalid encoding pattern.'"decoding: invalid encoding pattern.""decoding: invalid encoding pattern.""decoding: invalid encoding pattern.""decoding: invalid encoding pattern.""decoding: invalid encoding pattern." (11):

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

'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.""decoding: invalid mix of character sets." (12):

Für die Barcode-Typen 'EAN-13'"EAN-13""EAN-13""EAN-13""EAN-13""EAN-13" und 'UPC-A'"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.

'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.""decoding: error decoding the reference to a human readable string." (13):

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.

'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.""decoding: could not detect center guard pattern." (14):

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

'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.""decoding: could not detect left and/or right guard patterns." (15):

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

'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.""decoding: could not detect add-on guard pattern." (16):

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

'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.""decoding: could not detect enough finder patterns." (17):

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

'decoding: no segment found.'"decoding: no segment found.""decoding: no segment found.""decoding: no segment found.""decoding: no segment found.""decoding: no segment found." (18):

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

'check: checksum test failed.'"check: checksum test failed.""check: checksum test failed.""check: checksum test failed.""check: checksum test failed.""check: checksum test failed." (19):

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

'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.""check: check of add-on symbol failed." (20):

Für die Barcode-Typen 'EAN-13'"EAN-13""EAN-13""EAN-13""EAN-13""EAN-13", 'EAN-8'"EAN-8""EAN-8""EAN-8""EAN-8""EAN-8", 'UPC-A'"UPC-A""UPC-A""UPC-A""UPC-A""UPC-A" und 'UPC-E'"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.

'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.""check: detected EAN-13 bar code type instead of specified type." (21):

Für die Barcode-Typen 'UPC-A'"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""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""EAN-13" dekodiert werden.

'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""check: symbol region overlaps with another symbol region" (22):

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

'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.""decoding: could not detect the bar code type." (23):

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

'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.""decoding: quiet zone is disturbed." (24):

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

'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.""check: symbol region detected outside of the candidate region." (25):

Ein Barcode wurde detektiert aber ganz am Rand von oder sogar weit ausserhalb der Kandidatregion. Das ist eine Indikation dafür, dass die Scanlinien zufällig Strichsequenzen gelesen haben, welche eher zu einem anderen und nicht zu dem aktuellen Kandidat gehören.

'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).""decoding: minimum code length not reached (see min_code_length)." (26):

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""min_code_length" in set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam für weitere Informationen zur minimalen Anzahl dekodierten Zeichen.

Warnungen:

Die folgenden Meldungen sind nur Warnungen, keine Fehler. Sie können in Kombination mit einer Statusmeldung auftreten und werden dann an die Statusmeldung angehängt. Diese Meldungen werden zurückgegeben, falls der Barcode-Leser mögliche Qualitätsprobleme im Eingabebild feststellt. Die Meldungen 1000 bis 1003 können nur bei erfolgreich dekodierten Scanlinien auftreten und nur für folgende Barcode-Typen: 'Codabar'"Codabar""Codabar""Codabar""Codabar""Codabar", '2/5 Industrial'"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""2/5 Interleaved", 'Code 39'"Code 39""Code 39""Code 39""Code 39""Code 39", 'Code 93'"Code 93""Code 93""Code 93""Code 93""Code 93", 'GS1-128'"GS1-128""GS1-128""GS1-128""GS1-128""GS1-128", 'Code 128'"Code 128""Code 128""Code 128""Code 128""Code 128", 'MSI'"MSI""MSI""MSI""MSI""MSI", alle 'EAN'"EAN""EAN""EAN""EAN""EAN"-, 'UPC-A'"UPC-A""UPC-A""UPC-A""UPC-A""UPC-A"- und 'UPC-E'"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.

'White spaces too wide.'"White spaces too wide.""White spaces too wide.""White spaces too wide.""White spaces too wide.""White spaces too wide." (1000):

Die gemessene Breite der weißen Leerräume ist größer als intern erwartet. Dies ist kein Dekodierfehler, sondern eine Warnung, dass es zu Dekodierfehlern kommen könnte, wenn die Breite der weißen Leerräume noch mehr zunimmt.

'White spaces too narrow.'"White spaces too narrow.""White spaces too narrow.""White spaces too narrow.""White spaces too narrow.""White spaces too narrow." (1001):

Die gemessene Breite der weißen Leerräume ist kleiner als intern erwartet. Dies ist kein Dekodierfehler, sondern eine Warnung, dass es zu Dekodierfehlern kommen könnte, wenn die Breite der weißen Leerräume noch mehr abnimmt.

'Bars too wide.'"Bars too wide.""Bars too wide.""Bars too wide.""Bars too wide.""Bars too wide." (1002):

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.

'Bars too narrow.'"Bars too narrow.""Bars too narrow.""Bars too narrow.""Bars too narrow.""Bars too narrow." (1003):

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.

'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.""Possible saturation of gray values." (1004):

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.

'No composite component found.'"No composite component found.""No composite component found.""No composite component found.""No composite component found.""No composite component found." (1005):

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.

'Used for merging.'"Used for merging.""Used for merging.""Used for merging.""Used for merging.""Used for merging." (1006):

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

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

Parallelisierung

Parameter

BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandle (input_control)  barcode HBarCode, HTupleHTupleHBarCode, HTupleHBarCodeX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des zu verwendenden Barcode-Modells.

CandidateHandleCandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong) (BSTR / Hlong) (char* / Hlong)

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

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

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

ResultNameResultNameResultNameResultNameResultNameresultName (input_control)  attribute.name HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

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

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

Wertevorschläge: 'decoded_types'"decoded_types""decoded_types""decoded_types""decoded_types""decoded_types", 'decoded_strings'"decoded_strings""decoded_strings""decoded_strings""decoded_strings""decoded_strings", 'decoded_data'"decoded_data""decoded_data""decoded_data""decoded_data""decoded_data", 'decoded_reference'"decoded_reference""decoded_reference""decoded_reference""decoded_reference""decoded_reference", 'element_size'"element_size""element_size""element_size""element_size""element_size", 'orientation'"orientation""orientation""orientation""orientation""orientation", 'composite_strings'"composite_strings""composite_strings""composite_strings""composite_strings""composite_strings", 'composite_reference'"composite_reference""composite_reference""composite_reference""composite_reference""composite_reference", 'aborted'"aborted""aborted""aborted""aborted""aborted", 'quality_isoiec15416'"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_labels", 'quality_isoiec15416_values'"quality_isoiec15416_values""quality_isoiec15416_values""quality_isoiec15416_values""quality_isoiec15416_values""quality_isoiec15416_values", 'status'"status""status""status""status""status", 'status_id'"status_id""status_id""status_id""status_id""status_id"

BarCodeResultsBarCodeResultsBarCodeResultsBarCodeResultsBarCodeResultsbarCodeResults (output_control)  attribute.value(-array) HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Liste mit den Ergebnissen.

Ergebnis

get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult 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_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode

Siehe auch

get_bar_code_objectget_bar_code_objectGetBarCodeObjectget_bar_code_objectGetBarCodeObjectGetBarCodeObject

Modul

Bar Code


KlassenKlassenKlassenKlassen | | | | Operatoren