-
Technisches
Gebiet
-
Die
vorliegende Erfindung betrifft einen Strichcodeleser und ein Strichcodeleseverfahren
und insbesondere einen Strichcodeleser und ein Strichcodeleseverfahren,
bei welchem ein Strichcode mit einer Vielzahl von Zeichen durch
teilweises Lesen gelesen wird.
-
Stand der
Technik
-
In
den letzten Jahren wird die Warenbewirtschaftung oder dergleichen,
wie sie durch POS-Systeme bei Distributoren verkörpert wird, im Allgemeinen
durch Strichcodes durchgeführt.
Beispielsweise wird in einem POS-System von Läden Information, wie die Art
und der Preis von Waren, im Format eines Strichcodes codiert und
der Strichcode wird auf den Waren aufgedruckt. Danach wird das Ausbuchen durch
Lesen des Strichcodes auf einem Kassentisch durchgeführt und
die Anzahl der verkauften Waren wird in Echtzeit gezählt. Die
Anzahl der verkauften Waren wird im Lagerhaltungs- und Einkaufsmanagement
verwendet.
-
Strichcodes
werden grob in einen WPC-Code, wie einen JAN-Code, einen UPC-Code
oder einen EAN-Code und einen zweiten Code mit einer variablen Länge unterteilt.
Der WPC-Code hat, wie in 6 gezeigt, einen linken Führungsstrich
(left guard bar LGB: ebenso genannt Startführungsstrich (start guard bar
SGB)), der an dem linken Ende angeordnet ist, einen Zentralstrich
(centre bar CB), der im Zentrum angeordnet ist, und einen rechten
Führungsstrich
(right guard bar RGB: ebenfalls als Schlussführungsstrich (end guard bar
EGB)) bezeichnet, der am rechten Ende angeordnet ist. Ein linksseitiger
Datenblock, der durch sechs oder vier Datenzeichen (die nachfolgend
als "Zeichen" bezeichnet werden)
gebildet ist, ist zwischen dem LGB und dem CB gebildet. Ein rechtseitiger
Datenblock, der durch sechs oder vier Zeichen gebildet ist, ist
zwischen dem CB und dem RGB gebildet.
-
Das
Zeichen ist eine Minimaleinheit von codierten numerischen Werten
oder codierten Symbolen und ist durch eine Vielzahl von Modulen
gebildet.
-
Da
die Muster des LGB, CB und RGB durch Standards bestimmt sind, kann
ein Strichcodeleser den LGB, CB und den RGB ermitteln. Der Strichcodeleser
kann die Zeichen eines Strichcodes auf der Basis des LGB, des CB
und des RGB lesen. Der Strichcodeleser liest die Zeichen mittels
dreier Methoden, d.h. einem "kontinuierlichen
Lese"-Verfahren,
einem "Blocklese"-Verfahren und einem "Teillese"-Verfahren. Das "kontinuierliche Lese"-Verfahren ist ein Verfahren, bei welchem,
wenn ein LGB, ein CB und ein RGB durch Ausführen einer Strichcodeabtastverfolgung
einmal ermittelt ist, die Zeichen, die zwischen diesen Strichen
angeordnet sind, als ein Strichcode erkannt werden, um demoduliert
zu werden. Das "Blocklese"-Verfahren ist ein
Verfahren, bei welchem nur der Zeichenblock, der zwischen einem LGB
oder einem RGB und einem CB angeordnet ist, als ein Strichcode erkannt
wird, wobei die zwei Blöcke
unabhängig
demoduliert werden und die demodulierten Daten der Blöcke miteinander
synthetisiert (verbunden) werden und wobei Daten, die in einen Strichcode
moduliert werden, reproduziert werden. Das "Teillese"-Verfahren ist ein Verfahren, bei welchem
selbst eine Zeichenfolge, die zumindest mit einem Führungsstrich
oder einem Zentrumsstrich verbunden ist, als ein Strichcode erkannt
wird, wobei die Teile der demodulierten Daten dieser Zeichen, die unabhängig voneinander
gelesen werden, miteinander synthetisiert werden und die Daten entsprechend einem
gesamten Strichcode reproduziert werden. Aufgrund der Art des Vorbeiführens eines
Abtaststrahls über
einen Strichcode, wie in 7 gezeigt, sind die Teillese-Verfahren
in drei Verfahren klassifiziert: (1) ein "2-Teil"-Verfahren (siehe 7(A)),
bei welchem demodulierte Daten, die nur einen LGB beinhalten und
demodulierte Daten, die einen CB und einen RGB beinhalten, ermittelt
werden und miteinander synthetisiert werden, um die Daten des gesamten
Strichcodes zu erhalten, (2) ein "3-1-Teil"-Verfahren
(7(B)), bei welchem demodulierte Daten,
die nur einen LGB beinhalten, demodulierte Daten, die nur einen
CB beinhalten und demodulierte Daten, die nur einen RGB beinhalten,
ermittelt und miteinander synthetisiert werden, um die Daten des
gesamten Strichcodes zu erhalten, und (3) ein "3-2-Teil"-Verfahren (siehe 7(C)), bei welchem demodulierte Daten,
die nur einen LGB beinhalten, demodulierte Daten, die nur einen
CB beinhalten, und demodulierte Daten, die den CB und einen RGB
beinhalten, ermittelt und miteinander synthetisiert werden, um die
Daten des gesamten Strichcodes zu erhalten.
-
Bei
einem konventionellen Teilleseverfahren werden, wenn die demodulierten
Daten eines Datenblocks durch Synthetisieren zweier demodulierter Daten
gebildet werden, die folgenden Methoden eingesetzt. Insbesondere
werden, wenn ein linksseitiger Datenblock durch Synthese gebildet
wird, demodulierte Daten, die synthetisiert werden sollen, miteinander
verglichen, ob zwei Zeichen überlappen
(wie zum Beispiel in 7 gezeigt, die dritte und vierte Zeichen überlappen),
und es wird geprüft,
ob diese Zeichen die gleichen sind oder nicht. Zu diesem Zeitpunkt,
wenn die zwei überlappenden
Zeichen dieselben sind, werden die demodulierten Daten miteinander
synthetisiert.
-
Hier
werden, wenn das Verfahren in dem "2-Teil"-Verfahren ausgeführt wird, die demodulierten Daten
des gesamten Strichcodes zu diesem Zeitpunkt erhalten. Andererseits
wird, wenn das Verfahren im "3-1-Teil"-Verfahren oder dem "3-2-Teil"-Verfahren durchgeführt wird,
die durch dieses Verfahren synthetisierten modulierten Daten mit
anderen modulierten Daten synthetisiert, um die modulierten Daten des
gesamten Strichcodes zu erhalten. Danach werden die Zeichenzählüberprüfung und
die Modulüberprüfung an
den demodulierten Daten des gesamten Strichcodes durchgeführt. Wenn
bevorzugte Überprüfungsergebnisse
erhalten werden, werden die demodulierten Daten als normale demodulierte
Daten gehandhabt.
-
Das
obige Verfahren hat jedoch das nachfolgende Problem. Beispielsweise,
wie in 8(A) gezeigt ist, wird angenommen,
dass ein Strichcode (UPC/A-Code), bei welchem Datenblöcke, die
jeweils durch sechs Zeichen gebildet sind, zwischen einem LGB und
einem CB und zwischen dem CB und einem RGB gespeichert werden, vorhanden
ist. Dieser Strichcode hat die Daten "027000 388150".
-
In
diesem Fall wird angenommen, dass der Strichcode durch einen Abtaststrahl
(a) und einem Abtaststrahl (b) abgetastet wird. Die Abtastmittel
(a) starten von der Mitte des ersten Zeichens des linksseitigen
Datenblocks und passieren den CB nicht. Auf der anderen Seite streicht
der Abtaststrahl (b) von dem vierten Zeichen des linksseitigen Datenblocks
bis zum RGB. Zu diesem Zeitpunkt wird, wenn das Hell/Dunkelmuster
des ersten Zeichens von dem Teil, an dem der Taststrahl (a) vorbeistreicht,
derselbe ist, wie das Hell/Dunkelmuster des LGB, das erste Zeichen
fehlerhafterweise als ein LGB erkannt (dies wird als eine Bitverschiebung
(bit shift) bezeichnet). Als Ergebnis dienen die Teile der demodulierten
Daten, die durch den Abtaststrahl (a) erhalten werden als ein LGB,
ein erstes Zeichen (C1(0-2)), ein zweites Zeichen (C2(0-7)), ein
drittes Zeichen (C3(0-0)), ein viertes Zeichen (C4(0-0)) und ein
fünftes
Zeichen (C5(0-0)).
Auf der anderen Seite dienen die Stücke der demodulierten Daten,
die durch den Abtaststrahl (b) erhalten werden als ein viertes Zeichen
(C4(0-0)), ein fünftes
Zeichen (C5(0-0)), ein sechstes Zeichen (C6(0-0)), ein CB, Zeichen
eines rechtseitigen Datenblocks und als ein RGB.
-
Die
Stücke
der zwei modulierten Daten haben überlappende Teile in Bezug
auf die vierten und fünften
Blöcke
eines linksseitigen Blocks. Im normalen Code des linksseitigen Datenblocks
sind die überlappenden
Teile dieselben, wie in 8(B) gezeigt, da
die vierten bis sechsten Zeichen 0 sind. Aus diesem Grund werden
die Teile dieser demodulierten Daten miteinander als passende demodulierte
Daten synthetisiert, wobei die fehlerhaft gelesenen Daten "270000 388150" gebildet werden.
-
Danach
werden die Zeichenzählüberprüfung und
die Modulüberprüfung (Modul
10/Gewicht drei) auf die fehlerhaft gelesenen Daten angewendet und eine
Entscheidung über
die Genauigkeit wird gemacht. Die fehlerhaft demodulierten Daten
haben jedoch eine korrekte Anzahl von Zeichen eines Datenblocks
und ein korrektes Modulüberprüfungsergebnis.
Aus diesem Grund kann nicht ermittelt werden, dass die Daten fehlerhaft
gelesen worden sind.
-
Es
ist eine Aufgabe der vorliegenden Erfindung einen Strich codeleser
und ein Strichcodeleseverfahren bereitzustellen, welches verhindern
kann, dass ein Strichcode durch eine Bitverschiebung falsch gelesen
wird, wenn der Strichcode durch ein Teillese-Verfahren gelesen wird.
-
JP-A-09081663
und US-A-5 798 510 offenbaren einen Strichcodeleser umfassend: eine
Strichcodedatenermittlungseinheit zum Abtasten eines Strichcodes,
der durch eine Vielzahl von Zeichen gebildet ist, und zwar zumindest
zweimal, um die Strichcodedaten an dem Abtastort zu ermitteln; einen
Demodulationsbereich zur Demodulation der entsprechenden Strichcodedaten,
die durch die Strichcodedatenermittlungseinheit ermittelt worden
sind, einen ersten Beurteilungsbereich für das Ermitteln überlappender
Teile zwischen ersten demodulierten Daten an einem ersten Abtastort
und zweiten demodulierten Daten an einem zweiten Abtastort der demodulierten
Daten, die durch den Demodulationsbereich demoduliert wurden, um
zu beurteilen, ob die überlappenden
Teile durch eine vorbestimmte Anzahl von Zeichen gebildet werden
oder nicht (S002, S003).
-
Die
vorliegende Erfindung ist dadurch gekennzeichnet, dass der Strichcodeleser
ferner umfasst: einen zweiten Beurteilungsbereich zum Beurteilen,
ob die überlappenden
Teile zwischen den ersten demodulierten Daten und den zweiten demodulierten
Daten dieselben sind oder nicht, wenn durch den ersten Beurteilungsbereich
beurteilt wird, dass die überlappenden
Teile durch eine vorbestimmte Anzahl von Zeichen gebildet werden,
einen dritten Beurteilungsbereich zum Beurteilen, ob die Zeichen, die
die überlappenden
Teile der ersten oder zweiten demodulierten Daten bilden, dieselben
sind oder nicht, wenn durch den zweiten Beurteilungsbereich beurteilt
wird, dass die überlappenden
Teile dieselben sind, und einen vierten Beurteilungsbereich zum Beurteilen,
ob ein Zeichen genau vor dem überlappenden
Teil der ersten demodulierten Daten, ein Zeichen genau nach dem überlappenden
Teil der zweiten demodulierten Daten und Zeichen, die die überlappenden
Teile bilden, alle dieselben sind oder nicht, wenn durch den dritten
Beurteilungsbereich beurteilt wird, dass die Zeichen dieselben sind.
-
Die
vorliegende Erfindung umfasst ferner einen Synthetisierbereich zum
Synthetisieren der ersten demodulierten Daten und der zweiten demodulierten
Zeichen und kann so gestaltet sein, dass, wenn durch den vierten
Beurteilungsbereich beurteilt wird, dass die Zeichen alle die gleichen
sind, der Synthetisierbereich die ersten demodulierten Daten und die
zweiten demodulierten Daten nicht synthetisiert.
-
Der
erste Beurteilungsbereich der vorliegenden Erfindung kann so angeordnet
sein, dass die überlappenden
Teile durch eine vorbestimmte Anzahl von Zeichen gebildet werden,
wenn die überlappenden
Teile durch zwei Zeichen gebildet sind.
-
Gemäß der vorliegenden
Erfindung beurteilt der vierte Beurteilungsbereich, ob ein Zeichen
genau vor dem überlappenden
Teil der ersten demodulierten Daten, ein Zeichen genau nach dem überlappenden
Teil der zweiten demodulierten Daten und die Zeichen, die die überlappenden
Teile bilden, alle dieselben sind oder nicht. Zu diesem Zeitpunkt
tritt wahrscheinlich, wenn die Zeichen alle dieselben sind, das fehlerhafte
Lesen durch eine Bitverschiebung auf. Deshalb wird beispielsweise,
wenn durch den vierten Beurteilungsbereich beurteilt wird, dass
die Zeichen alle dieselben sind, der Synthetisierbereich die ersten
demodulierten Daten und die zweiten demodulierten Daten nicht miteinander
synthetisieren. In diesem Fall kann verhindert werden, dass ein
Strichcode durch eine Bitverschiebung fehlerhaft gelesen wird.
-
Der
vierte Beurteilungsbereich kann beurteilen, ob ein Zeichen genau
vor dem Zeichen genau vor dem überlappenden
Teil der ersten demodulierten Daten dasselbe Zeichen wie die Zeichen
ist oder nicht oder ob ein Zeichen genau nach dem Zeichen genau
nach dem überlappenden
Teil der zweiten demodulierten Daten dasselbe Zeichen wie die Zeichen ist
oder nicht.
-
Der
Strichcode ist beispielsweise ein WPC-Code, ein EAN-Code, ein JAN-Code
oder ein UPC-Code und kann einen Datenblock aufweisen, der durch
vier oder mehr Zeichen gebildet ist. Insbesondere wird die vorliegende
Erfindung vorzugsweise für beispielsweise
einen EAN-13-code oder einen UPC/A-Code verwendet.
-
Die
vorliegende Erfindung ist ein Strichcodeleseverfahren. Das Strichcodeleseverfahren
umfasst den ersten Schritt des Abtastens eines Strichcodes, der
durch eine Vielzahl von Zeichen gebildet ist, und zwar zumindest
zweimal, um die Strichcodedaten an dem Abtastort zu ermitteln, einen
zweiten Schritt des Demodulierens der entsprechenden Strichcodedaten,
die in dem ersten Schritt ermittelt worden sind, den dritten Schritt
des Vergleichens der ersten demodulierten Daten in einem ersten
Abtastort und zweiter demodulierter Daten an einem zweiten Abtastort
der demodulierten Daten, die in dem zweiten Schritt demoduliert
worden sind, und zum Beurteilen, ob die überlappenden Teile durch eine
vorbestimmte Anzahl von Zeichen gebildet sind oder nicht, wenn die
ersten demodulierten Daten und die zweiten demodulierten Daten überlappende
Teile aufweisen, den vierten Schritt des Beurteilens, ob die überlappenden
Teile zwischen den ersten demodulierten Daten und den zweiten demodulierten
Daten dieselben sind oder nicht, wenn in dem dritten Schritt beurteilt
wird, dass die überlappenden
Teile durch eine vorbestimmte Anzahl von Zeichen gebildet werden,
den fünften Schritt
des Beurteilens, ob die Zeichen, die die überlappenden Teile der ersten
oder zweiten demodulierten Daten bilden, dieselben sind oder nicht,
wenn im vierten Schritt beurteilt wird, dass die überlappenden Teile
dieselben sind und den sechsten Schritt des Beurteilens, ob ein
Zeichen genau vor dem überlappenden
Teil der ersten demodulierten Daten, ein Zeichen genau nach dem überlappenden
Teil der zweiten demodulierten Daten und die Zeichen, die die überlappenden
Teile bilden, alle dieselben sind oder nicht, wenn in dem fünften Schritt
entschieden wird, dass die Zeichen dieselben sind.
-
Das
Strichcodeleseverfahren der vorliegenden Erfindung umfasst ferner
den siebten Schritt des Synthetisierens der ersten demodulierten
Daten und der zweiten demodulierten Daten und ist vorzugsweise so
gestaltet, dass, wenn im sechsten Schritt beurteilt wird, dass die
Zeichen alle dieselben sind, der siebte Schritt nicht ausgeführt wird.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Diagramm der Konfiguration eines Strichcodelesers gemäß einer
Ausführungsform der
vorliegenden Erfindung.
-
2 ist
ein Diagramm zur Erklärung
der Puffer, die in 1 gezeigt sind.
-
3 ist
ein Flussdiagramm, das die Prozesse zeigt, die durch die CPU, die
in 1 gezeigt ist, durchgeführt werden.
-
4 ist
ein Flussdiagramm, das den Prozess der Überprüfung des überlappenden Teiles, wie in 3 gezeigt,
darstellt.
-
5 ist
ein Diagramm zur Erklärung
eines konkreten Beispiels des Verfahrens der Überprüfung des überlappenden Teiles, das in 4 gezeigt
ist.
-
6 ist
ein Diagramm zur Erklärung
eines WPC-Codes.
-
7 ist
ein Diagramm zur Erklärung
des Teil-Lesens.
-
8 ist
ein Diagramm, das ein konventionelles Problem zeigt.
-
Bevorzugte
Ausführungsformen
zur Ausführung
der Erfindung
-
Die
bevorzugte Ausführungsform
zur Ausführung
der Erfindung wird nachfolgend mit Bezug auf die Zeichnungen beschrieben.
-
<Konfiguration des Strichcodelesers>
-
1 ist
ein Blockdiagramm, das eine schematische Konfiguration eines Strichcodelesers
gemäß der Ausführungsform
der vorliegenden Erfindung zeigt. Der Strichcodeleser gemäß dieser
Ausführungsform
liest einen Strichcode 21 gemäß UPC/A und EAN-13 des WPC-Codes.
Der Strichcode 21 hat Führungsstriche,
d.h. einen linken Führungsstrich
(left guard bar LGB: Startführungsstrich (start
guard bar SGB)) und einen rechten Führungsstrich (right guard bar
RGB: Endführungsstrich
(end guard bar EGB)) und einen Zentralstrich (centre bar CB) sowie
einen Datenblock (linksseitigen Datenblock), der durch sechs Zeichen,
die zwischen dem LGB und dem CB angeordnet sind, gebildet ist, und einen
Datenblock (rechtseitigen Datenblock), der durch sechs Zeichen,
die zwischen dem CB und dem RGB (siehe 6) angeordnet
sind, gebildet ist.
-
In 1 weist
der Strichcodeleser eine CPU 1, einen Speicherpuffer 2 für eine Strichweitendatengruppe,
eine Kontrollbereichsschaltung 3, eine Schnittstellenschaltung 4,
ein ROM 5 und ein RAM 6 auf, die untereinander
durch einen Bus B verbunden sind. Der Strichcodeleser hat einen
Strichweitenzähler 16,
der mit dem Speicherpuffer 2 für die Strichweitendatengruppe
verbunden ist, einen Taktgeber 19 und einen A/D-Wandler 15,
der mit dem Strichweitenzähler 16 verbunden
ist, und ein lichtempfangendes Element 18, das mit dem
A/D-Wandler 15 verbunden ist. Darüber hinaus weist der Strichcodeleser
eine Motorantriebsschaltung 8, eine Laserantriebsschaltung 9,
einen Lautsprecher 10 und eine LED 11 auf, die
jeweils mit der Kontrollbereichsschaltung 3 verbunden sind,
einen Motor 12, der mit der Motorantriebsschaltung 8 verbunden
ist, ein optisches Abtastsystem 14, das durch den Motor 12 angetrieben wird
und einen Halbleiterlaser 13, der mit der Laserantriebsschaltung 9 verbunden
ist.
-
Das
ROM ist ein Nur-Lesespeicher, in welchem ein Strichcodeerkennungs-/Demodulationsverfahrensprogramm
gespeichert ist. Die CPU 1 führt das Strichcodeerkennungs/Demodulationsverfahrensprogramm,
das im ROM 5 gespeichert ist, aus, um den Strichcodeleser
als Gesamtes zu kontrollieren bzw. zu steuern, und demoduliert Strichweitendatengruppen,
die durch das Lesen des Strichcodes 21 erhalten werden,
um Daten entsprechend dem gesamten Strichcode 21 zu reproduzieren.
Diese CPU 1 funktioniert als ein Demodulationsbereich sowie ersten
bis vierten Beurteilungsbereichen gemäß der vorliegenden Erfindung.
-
Die
Schnittstellenschaltung 4 kontrolliert bzw. steuert den
Status des Busses B und kontrolliert bzw. steuert die Datenübertragung
oder dergleichen an eine übergeordnete
Maschine (Hauptcomputer (host computer)) (POS) 201.
-
Die
Kontrollbereichsschaltung 3 steuert bzw. kontrolliert die Motorantriebsschaltung 8,
die Laserantriebsschaltung 9, den Lautsprecher 10 und
die lichtemittierende Diode (LED) 11. Die Motorantriebsschaltung 8 treibt
den Motor 12 an, um den Polygonspiegel (nicht gezeigt)
zu rotieren, der das optische Abtastsystem 14 bildet. Die
Laserantriebsschaltung 9 treibt den Halbleiterlaser 13 an,
um zu verursachen, dass der Halbleiterlaser 13 einen Laserstrahl
L emittiert. Der Lautsprecher 10 erzeugt ein Signal, das
die Beendigung des Lesens des Strichcodes (Demodulation) anzeigt.
Die LED 11 ist ein Anzeigeelement zur Anzeige von einer
Information, wie z.B. dem Preis oder ähnliches von Waren, die als
Ergebnis der Demodulation des Strichcodes 21 erhalten werden.
-
Der
Laserstrahl L, der durch den Halbleiterlaser 13 emittiert
wird, strahlt auf das optische Abtastsystem 14 ein und
wird durch das optische Abtastsystem 14 polarisiert. Insbesondere
polarisiert das optische Abtastsystem 14 den Laserstrahl
L in eine Richtung durch den Polygonspiegel (nicht gezeigt), der
durch den Motor 12 rotiert wird. Auf der gegenüberliegenden
Seite des Polygonspiegels liegt eine Vielzahl von befestigten Spiegeln
vor. Deshalb wird der Laserstrahl L, der durch den Polygonspiegel
polarisiert wird, durch die jeweiligen befestigten Spiegel wieder
reflektiert, so dass die Polarisationsrichtung (Abtastrichtung)
des Laserstrahls in verschiedene Richtungen geändert wird. Gemäß dem optischen Abtastsystem 14 werden
Laserstrahlabtastspuren in einer Vielzahl von Richtungen kontinuierlich
mit hoher Geschwindigkeit innerhalb eines Polarisationszyklus, der
durch eine reflektierende Oberfläche
des Polygonspiegels erhalten wird, durchgeführt. Jede der Vielzahl von
Laserstrahlabtastspuren, die innerhalb des Polarisationszyklus,
der durch eine reflektive Oberfläche
des Polygonspiegels erhalten wird, durchgeführt wird, wird nachfolgend
eine Abtastspur in der nachfolgenden Beschreibung genannt.
-
Wenn
der Laserstrahl L, der wie oben beschrieben abtastet, auf den Strichcode 21 trifft,
wird der Laserstrahl L an der Oberfläche gestreut und ein Teil der
reflektierten Lichtkomponente R wird durch das lichtempfangende
Element (Fotodiode) 18 empfangen. Der A/D-Wandler 15 vergleicht
einen Stromwert, der die Helligkeit der reflektierten Lichtkomponente
R darstellt und durch das lichtempfangende Element 18 empfangen
wurde, mit einem vorbestimmten Schwellwert, und wandelt den Wert
in ein Binärsignal
um. Dieses Binärsignal
stellt "H" dar, wenn die Intensität der reflektierten
Lichtkomponente der Reflexion eines schwarzen Strichs in dem Strichcode 21 entspricht
und stellt "L" dar, wenn die Intensität der reflektierten
Lichtkomponente R der Reflexion eines weißen Strichs in dem Strichcode 21 entspricht.
-
Der
Strichweitenzähler 16 misst
eine Zeit von der Anfangszeit des Binärsignals zur Endzeit (von der
erwartet wird, dass sie mit der Weite eines schwarzen Strichs in
dem zweischichtigen Strichcode 21 korrespondiert) und eine
Zeit von der Anfangszeit des Binärsignals
zu der Endzeit (von der erwartet wird, dass sie mit der Weite eines
weißen Strichs
einem zweischichtigen Strichcode 21 entspricht) basierend
auf dem Binärsignaleingang
von dem A/D-Wandler 15. Der Strichweitenzähler 16 zählt die
Anzahl von Takten des Taktgebers 19 zur Messung der Zeiten,
die den Strichweiten entspricht. Die gelesenen Daten (Strichcodedaten)
der Striche, die von dem Strichweitenzähler ausgegeben werden, haben
eine Konfiguration, die durch Kombination der gezählten Werte
und eines Farbidentifikationssignals, welches weiß oder schwarz
entspricht, erhalten werden, und die gelesenen Daten werden kontinuierlich
während
jedes Abtastvorgangs des Laserstrahls ausgegeben. Die gelesenen
Daten, die während
jeder Abtastoperation erhalten werden und kontinuierlich in dieser
Weise ausgegeben werden, werden Strichweitendatengruppe genannt.
-
Die
Strichweitendatengruppe wird zeitweilig indem Speicherpuffer 2 für die Strichweitendatengruppe
gespeichert. Der Speicherpuffer 2 für die Strichweitendatengruppe
speichert sequentiell die Strichweitendatengruppen, die von dem
Strichweitenzähler 16 eingegeben
werden und gibt die Strichweitendatengruppen an die CPU 1 nacheinander
in der Reihenfolge der Speicherung auf Anforderung der CPU 1 ab.
-
Die
Kontrollbereichsschaltung 3, die Motorantriebsschaltung 8, die
Laserantriebsschaltung 9, der Motor 12, der Halbleiterlaser 13,
das optische Abtastsystem 14, der A/D-Wandler 15,
der Strichweitenzähler 16,
das lichtempfangende Element 18, der Taktgeber 19 und
der Speicherpuffer 2 für
die Strichweitendatengruppen entsprechen dem Strichweitenermittlungsbereich
gemäß der vorliegenden
Erfindung.
-
Der
Arbeitsbereich der CPU 1 wird in dem RAM 6 ausgestaltet.
Die Schnittstellenschaltung 4 weist einen L-Puffer 6a,
einen R-Puffer 6b und
einen C-Puffer 6c auf, die zeitweilig demodulierte Daten speichern,
die als Ergebnis eines Demodulationsprozesses für eine Strichweitendatengruppe
erhalten werden. In dem L-Puffer 6a werden demodulierte
Daten gespeichert, die erhalten werden, wenn ein LGB ermittelt wird
oder demodulierte Daten werden gespeichert, die erhalten werden,
wenn ein LGB und ein RGB durch eine Abtastspur ermittelt werden.
In dem R-Puffer 6b werden demodulierte Daten gespeichert, die
erhalten werden, wenn kein LGB, aber ein RGB ermittelt wird. In
dem C-Puffer 6c werden demodulierte Daten gespeichert,
die erhalten werden, wenn ein CB ermittelt wird, aber kein LBG und
kein RGB.
-
2 ist
ein Diagramm zur Erläuterung
der Puffer 6a bis 6c. Wie in 2 gezeigt,
weist jeder der Puffer 6a bis 6c eine Speicherkapazität von 15
Bytes auf und hat Speicherbereiche zur jeweiligen Speicherung von
Speicherinformation (1 Byte), einem Demodulationsstellenzähler (1
Byte) eines linksseitigen Datenblocks, einem Demodulationsstellenzähler (1 Byte)
eines rechtsseitigen Datenblocks, Demodulationsdaten (6 Bytes) des
linksseitigen Datenblocks und Demodulationsdaten (6 Bytes) des rechtsseitigen
Datenblocks.
-
In
diesem Fall wird in dem Speicherbereich für die Speicherinformation ein
Markierungszeichen, das die Anwesenheit/Abwesenheit der Speicherung von
Demodulationsbeendigungsdaten, darstellt, ein Markierungszeichen,
das ein Modulüberprüfungsresultat
der modulierten Daten darstellt, ein Markierungszeichen, das darstellt,
ob die demodulierten Daten Daten einer toten Zone sind, und ähnliches
gespeichert.
-
In
dem Speicherbereich für
den Demodulationsstellenzähler
des linksseitigen Datenblocks wird eine Stellenzahl (die Zahl der
Zeichen: irgendeine zwischen "1" bis "6") der demodulierten Daten, die in dem
Speicherbereich der demodulierten Daten des linksseitigen Datenblocks
gespeichert sind, eingespeichert. Wenn die demodulierten Daten erhalten werden,
wenn der LGB und der CB ermittelt werden, werden alle Zeichen der
demodulierten Daten, der LGB und der linksseitige Datenblock ermittelt.
Es wird jedoch "7" gespeichert, um
die demodulierten Daten von demodulierten Daten zu unterschieden, die
erhalten werden, wenn der CB nicht ermittelt wird.
-
In
dem Speicherbereich des demodulierten Demodulationsstellenzählers des
rechtsseitigen Datenblocks wird eine Stellenzahl (die Anzahl der
Zeichen: irgendeine zwischen "1" bis "6") der demodulierten Daten des rechtsseitigen
Datenblocks gespeichert. Wenn die demodulierten Daten erhalten werden,
wenn der RGB und der CB ermittelt werden, werden alle Zeichen der
demodulierten Daten, der RGB und der rechtsseitige Datenblock ermittelt.
Es wird jedoch "7" gespeichert, um
die demodulierten Daten von den demodulierten Daten zu unterscheiden,
die erhalten werden, wenn der CB nicht ermittelt wird.
-
Die
demodulierten Daten werden in den Speicherbereichen der demodulierten
Daten des linksseitigen Datenblocks und des rechtsseitigen Datenblocks
abhängig
von den Positionen der Zeichen gespeichert.
-
<Strichcodeerkennungs/Demodulationsprozess>
-
Die
konkreten Inhalte des Strichcodeerkennungs/Demodulationsprozesses,
der in dem ROM 5 gespeichert und durch die CPU 1 ausgeführt wird, wird
auf der Basis der Flussdiagramme der 3 und 4 beschrieben.
Das Flussdiagramm in 3, welches die Hauptroutine
des Strichcodeerkennungs/Demodulationsprozesses ist, wird so gestaltet,
dass eine Hauptenergieversorgung des Strichcodelesers angeschaltet
wird und eine Strichweitendatengruppe in dem Speicherpuffer 2 für die Strichweitendatengruppe
gespeichert wird.
-
Zuerst
extrahiert die CPU 1 sequentiell eine Vielzahl von Strichweitendatengruppen
von dem Speicherpuffer 2 für die Strichweitendatengruppe und
Demodulationsprozesse für
die Strichweitendatengruppen werden ausgeführt (S01). Im Detail ermittelt
die CPU 1 einen LGB, einen CB und einen RGB aus den Strichweitendatengruppen.
Wenn die CPU irgendeinen der Striche ermittelt, wird die Überprüfung der
Zeichenlänge
der Strichweitendaten des Strichs ausgeführt, die Anzahl der effektiven
Zeichen wird berechnet und demodulierte Daten entsprechend der Anzahl
der effektiven Zeichen werden demoduliert.
-
Nachfolgend
speichert die CPU die demodulierten Daten, die im Schritt S01 demoduliert
worden sind, in irgendeinem der L-Puffer 6a, der R-Puffer 6b und
der C-Puffer 6c, abhängig
von dem Status der demodulierten Daten (Ermittlungsstatus des LGB des
RGB und des CB) (S02).
-
Die
CPU beurteilt die Syntheseverfahren für die demodulierten Daten,
die in den Puffern 6a bis 6c gespeichert sind,
auf der Basis der Demodulationsstellenzähler der Datenblöcke, die
in den Puffern 6a bis 6c gespeichert sind (S03).
Im Detail versteht die CPU 1, wenn der Demodulationsstellenzähler des linksseitigen
Datenblocks und der Demodulationsstellenzähler des rechtsseitigen Datenblocks
in dem L-Puffer 6a, jeweils "7" ist,
dass die demodulierten Daten, die in dem L-Puffer 6a gespeichert
sind, demodulierte Daten sind, die erhalten wurden, wenn ein LGB,
ein CB und ein RGB durch eine Abtastspur (gesamter Strichcode wird
detektiert) ermittelt werden, und die CPU 1 beurteilt das
Syntheseverfahren als ein kontinuierliches Leseverfahren. Im Gegensatz
zu diesem beurteilt die CPU 1 das Syntheseverfahren als
ein Block-Leseverfahren, wenn der Demodulationsstellenzähler des
linksseitigen Datenblocks des L-Puffers 6a "7" ist und wenn der Demodulationsstellenzähler des
rechtsseitigen Datenblocks des R-Puffers 6b "7" ist.
-
Im
Gegensatz zu diesem beurteilt die CPU 1 das Syntheseverfahren
als ein "2-Teil"-Verfahren, wenn
der Demodulationsstellenzähler
des linksseitigen Datenblocks des L-Puffers 6a und der Demodulationsstellenzähler des
linksseitigen Datenblocks des R-Puffers 6b jeweils "7" sind und die Summe des Demodulationsstellenzählers des
rechtsseitigen Datenblocks des L-Puffers 6a und
des Demodulationsstellenzählers
des rechtsseitigen Datenblocks des R-Puffers 6b und die
Summe der Demodulationsstellenzähler
des linksseitigen Datenblocks des L-Puffers 6a und des
Demodulationsstellenzählers
des linksseitigen Datenblocks des R-Puffers 6b "8" oder jeweils mehr sind.
-
Darüber hinaus
wird die CPU 1 das Syntheseverfahren als ein "3-1-Teil"-Verfahren beurteilen, wenn die Summe
des Demodulationsstellenzählers des
linksseitigen Datenblocks des L-Puffers 6a und des Demodulationsstellenzählers des
linksseitigen Datenblocks des C-Puffers 6c und die Summe
des Demodulationsstellenzählers
des rechtsseitigen Datenblocks des C-Puffers 6c und des Demodulationsstellenzählers des
rechtsseitigen Datenblocks des R-Puffers 6b "8" oder jeweils mehr sind.
-
Wenn
der Demodulationsstellenzähler
des linksseitigen Datenblocks des L-Puffers 6a und der Demodulationsstellenzähler des
rechtsseitigen Datenblocks des R-Puffers 6b jeweils "7" sind und wenn die Summe des Demodulationsstellenzählers des rechtsseitigen
Datenblocks des C-Puffers 6c und des Demodulationsstellenzählers des
rechtsseitigen Datenblocks des R-Puffers 6b "8" oder mehr ist, beurteilt die CPU 1 das
Syntheseverfahren als ein "3-2-Teil"-Verfahren.
-
Die
CPU beurteilt, ob das Beurteilungsergebnis, das im Schritt S03 erhalten
worden ist, ein kontinuierliches Leseverfahren ist oder nicht (S04). Zu
diesem Zeitpunkt schiebt die CPU 1, wenn das Beurteilungsergebnis
ein kontinuierliches Leseverfahren (S04; Y) ist, den Prozess auf
Schritt S09, im anderen Fall (S04; N) schiebt die CPU 1 den
Prozess zum Schritt S05.
-
Wenn
die CPU 1 den Prozess zum Schritt S05 schiebt, beurteilt
die CPU 1, ob das Beurteilungsergebnis im Schritt S03 ein
Blockleseverfahren ist oder nicht. Zu diesem Zeitpunkt wird, wenn
das Beurteilungsergebnis das Blocklese-Verfahren ist (S05; Y), die
CPU 1 das Verfahren auf Schritt S08 schieben, andern falls
(S05; N) wird die CPU 1 das Beurteilungsergebnis als Teillese-Verfahren
verstehen, um den Prozess auf Schritt S06 zu schieben.
-
Wenn
die CPU 1 den Prozessor auf Schritt S06 schiebt, führt die
CPU 1 eine Unterroutine für die Überprüfung des Überlappungsteils (Flussdiagramm in 4)
aus. In 4 spezifiziert die CPU 1 zuerst zwei
demodulierte Daten, die gemäß dem Beurteilungsergebnis
der Syntheseergebnisse (S001) synthetisiert (verglichen) werden
sollen.
-
Zu
diesem Zeitpunkt, das Syntheseverfahren ist ein "Zwei-Teil"-Verfahren,
spezifiziert die CPU 1 die demodulierten Daten in dem L-Puffer 6a als
ein Stück
von demodulierten Daten (entsprechend den ersten demodulierten Daten
der vorliegenden Erfindung) und spezifiziert die demodulierten Daten
in den R-Puffer 6b als die anderen modulierten Daten (entsprechend
den zweiten demodulierten Daten der vorliegenden Erfindung). Im
Gegensatz dazu spezifiziert die CPU 1, wenn das Syntheseverfahren
ein "3-2-Teil"-Verfahren ist, die
demodulierten Daten in dem L-Puffer 6a als ein Stück von demodulierten
Daten und spezifiziert die demodulierten Daten in dem C-Puffer 6c als
das andere Stück
der demodulierten Daten.
-
Im
Kontrast dazu führt
die CPU 1, wenn das Syntheseverfahren ein "3-1-Teil"-Verfahren ist, den nachfolgenden
Prozess aus. Im Detail liest die CPU 1 einen Status des
Endmarkierungszeichens der vorbestimmten Überprüfung des Überlappungsteils. Zu diesem
Zeitpunkt spezifiziert die CPU 1, wenn das Endmarkierungszeichen "0" ist, die demodulierten Daten in den
L-Puffer 6a als ein Stück
demodulierter Daten und spezifiziert die demodulierten Daten in den
C-Puffer 6c als das andere Stück der demodulierten Daten.
Im Gegensatz dazu spezifiziert die CPU 1, wenn das Endmarkierungszeichen "1" ist, die demodulierten Daten in dem
C-Puffer 6c als ein Stück
demodulierter Daten und spezifiziert die demodulierten Daten in
dem R-Puffer 6b als das andere Stück der demodulierten Daten.
-
Das
Endmarkierungszeichen ist so gestaltet, dass es auf "0" gesetzt wird, wenn die Ausführung der
Subroutine beendet ist.
-
Anschließend vergleicht
die CPU 1 die zwei Teile der demodulierten Daten, die im
Schritt S001 spezifiziert worden sind, um zu beurteilen, ob überlappende
Teile (überlappende
Stellen (Zeichen)) zwischen den Datenblöcken, die synthetisiert werden sollen
(S002), existieren. Zu diesem Zeitpunkt beurteilt die CPU 1,
wenn keine überlappenden
Teile existieren (S002; N), dass die Überprüfung des Überlappungsteils nicht gut
ist (S008) und beendet die Ausführung
der Subroutine. Im Gegensatz dazu schiebt die CPU 1, wenn
die überlappenden
Teile existieren (S002; Y), das Verfahren zum Schritt S003.
-
Wenn
die CPU 1 den Prozess auf den Schritt S003 schiebt, beurteilt
die CPU 1, ob die überlappenden
Teile durch zwei Zeichen gebildet werden oder nicht. Zu diesem Zeitpunkt
beurteilt die CPU 1, wenn die überlappenden Teile nicht durch
zwei Zeichen gebildet werden (S003; N), dass die Überprüfung des Überlappungsteils
nicht gut ist (S008) und beendet die Ausführung der Subroutine R. Im
Gegensatz dazu, schiebt die CPU 1 den Prozess auf Schritt
S004, wenn die überlappenden
Teile durch zwei Zeichen gebildet werden (S003; Y).
-
Wenn
die CPU 1 den Prozess auf Schritt S004 schiebt, beurteilt
die CPU 1, ob die überlappenden
Teile dieselben sind oder nicht. Zu diesem Zeitpunkt beurteilt die
CPU 1, wenn die überlappenden Teile
nicht dieselben sind (S004; N), dass die Überprüfung des Überlappungsteils nicht gut
ist (S008) und beendet die Ausführung
der Subroutine R. Im Gegensatz dazu, schiebt die CPU 1 den
Ablauf auf S005, wenn die überlappenden
Teile dieselben sind (S004; Y).
-
Wenn
die CPU 1 den Prozess auf Schritt S005 schiebt, beurteilt
die CPU 1, ob die zwei Zeichen, die den überlappenden
Teil von einem oder dem anderen Teil der demodulierten Daten bilden, dieselben
sind oder nicht. Zu diesem Zeitpunkt schiebt die CPU 1,
wenn die zwei Zeichen nicht dieselben sind (S005; N) den Prozess
auf Schritt S007. Im Gegensatz dazu schiebt die CPU 1 den
Prozess auf Schritt S006, wenn die zwei Zeichen dieselben sind (S006;
Y).
-
Wenn
die CPU 1 den Prozess auf Schritt S006 schiebt,
beurteilt die CPU 1, ob ein Zeichen benachbart zu dem linken
des überlappenden
Teils von einem Stück
der demodulierten Daten, ein Zeichen benachbart zu dem rechten des überlappenden
Teils des anderen Stücks
der demodulierten Daten und die Zeichen, die die überlappenden
Teile von dem einen und dem anderen Stück der demodulierten Daten
bilden, alle die gleichen sind oder nicht. Zu diesem Zeitpunkt versteht
die CPU 1, wenn die Zeichen alle die gleichen sind (S006;
Y), dass die demodulierten Daten fehlerhaft gelesene Daten sind,
die durch eine Bitverschiebung erzeugt wurden, beurteilt dass die Überprüfung des Überlappungsteils
nicht gut ist (S008) und beendet die Ausführung der Subroutine. Im Gegensatz
dazu schiebt die CPU 1 den Prozess auf Schritt S007, wenn
die Zeichen nicht alle dieselben sind (S006; N).
-
Wenn
die CPU 1 den Prozess auf Schritt S007 schiebt, versteht
die CPU 1, dass ein Stück
der demodulierten Daten und das andere Stück der demodulierten Daten
die Bedingungen für
die Synthese (Kopplung) erfüllen,
beurteilt, dass die Überprüfung des Überlappungsteils
okay ist und schiebt den Prozess auf Schritt S009.
-
Wenn
die CPU den Prozess auf Schritt S009 schiebt, beurteilt die CPU 1,
ob das Beurteilungsergebnis in Schritt S03 ein "3-1-Teil"-Verfahren ist oder nicht.
Zu diesem Zeitpunkt beendet die CPU 1 die Ausführung der
Subroutine, wenn das Beurteilungsergebnis nicht das "3-1-Teil"-Verfahren (S009;
N) ist. Im Gegensatz dazu, schiebt die CPU 1 den Prozess auf
Schritt S010, wenn das Beurteilungsergebnis ein "3-1-Teil"-Verfahren (S009; Y) ist.
-
Wenn
die CPU 1 den Prozess auf Schritt S010 schiebt, beurteilt
die CPU 1, ob das Endmarkierungszeichen der Überprüfung des Überlappungsteils "1" ist oder nicht. Zu diesem Zeitpunkt
versteht die CPU 1, wenn das Endmarkungszeichen "1" (S010; Y) ist, dass die Überprüfung des Überlappungsteils
für zwei Bereiche
in dem "3-1-Teil"-Verfahren beendet
ist und beendet die Ausführung
der Subroutine R. Im Gegensatz dazu, setzt die CPU 1 das Endmarkierungszeichen
auf "1" (S011) und kehrt dann
zum Prozess bei Schritt S001 zurück,
wenn das Endmarkierungszeichen nicht "1" ist
(sondern "0" ist) (S010; Y).
-
In 5 ist
ein Diagramm zur Erklärung
eines konkreten Beispiels eines Prozesses, der durch eine Subroutine
für die Überprüfung des Überlappungsteils
ausgeführt
wird. In dem Beispiel, das in 5 gezeigt
ist, wird angenommen, dass demodulierte Daten der ersten bis fünften Zeichen "..XAB" des linksseitigen
Datenblocks als ein Stück
von demodulierten Daten spezifiziert ist und dass demodulierte Daten,
die die vierten bis sechsten Zeichen "CDY" des
linksseitigen Datenblocks beinhalten, als das andere Stück der demodulierten
Daten gemäß dem Prozess
von Schritt S01 spezifiziert worden ist.
-
In
diesem Fall werden "AB" des einen Stücks von
demodulierten Daten und "CD" des anderen Stücks von
demodulierten Daten als überlappende Teile
(S002; Y) spezifiziert und es wird beurteilt, dass die überlappenden
Teile durch zwei Zeichen (S003; Y) gebildet werden. Es wird beurteilt,
ob der überlappende
Teil "AB" und der überlappende
Teil "CD" dieselben sind oder
nicht (S004). Zu diesem Zeitpunkt wird beurteilt, wenn "AB" und "CD" dieselben sind (S004;
Y), ob die zwei Zeichen, die den überlappenden Teil "AB" bilden, d.h. "A" und "B",
dieselben sind oder nicht (S005). Zu diesem Zeitpunkt werden "C" und "D" als
dieselben Zeichen verstanden, wenn beurteilt wird, dass "A" und "B" dieselben
sind (S005; Y).
-
Danach
wird beurteilt, ob ein Zeichen (drittes Zeichen) "X" benachbart zu dem linken des Überlappungsbereichs "AB" und "A" (oder "B")
dieselben sind und ein Zeichen (sechstes Zeichen) "Y" benachbart zu dem rechten des Überlappungsbereichs "CD" und "A" (irgendeines von "B", "C", und "D")
dieselben sind oder nicht (S006). Zu diesem Zeitpunkt wird im Schritt
S008 die Beurteilung so durchgeführt,
dass die Überprüfung des Überlappungsteils
nicht gut ist, wenn "X" gleich "A" (irgendeines von "B", "C", und "D")
gleich "Y" erfüllt ist
(S006; Y).
-
Nach
Vervollständigung
der Subroutine für die Überprüfung des Überlappungsteils
schiebt die CPU 1 den Prozess auf Schritt S07 der Hauptroutine (siehe 3).
Im Schritt S07 beurteilt die CPU 1, ob das Überprüfungsergebnis
des Überlappungsteils okay
ist oder nicht in Ordnung ist. Zu diesem Zeitpunkt schiebt die CPU 1 den
Prozessor auf Schritt S11, wenn das Überprüfungsergebnis nicht gut ist (S07;
NG). Im Gegensatz dazu, schiebt die CPU 1 den Prozess auf
Schritt S08, wenn das Überprüfungsergebnis
okay ist (S07; okay).
-
Im
Schritt S08 führt
die CPU 1 den Syntheseprozess (Paarung) der demodulierten
Daten, die in den Puffern 6a bis 6c gespeichert
sind, aus, um die demodulierten Daten des gesamten Strichcodes zu erzeugen.
-
Nachfolgend
führt die
CPU 1 die Modulüberprüfung 10 in
Bezug auf die gebildeten demodulierten Daten im Schritt S08 aus
und beurteilt, ob das Überprüfungsergebnis
okay ist oder nicht in Ordnung ist (S09). Zu diesem Zeitpunkt schiebt
die CPU 1 den Prozess auf S10, wenn das Überprüfungsergebnis okay
ist (S09; okay). Im Gegensatz dazu, schiebt die CPU 1 den
Prozess auf S11, wenn das Überprüfungsergebnis
nicht gut ist (S09; NG).
-
Wenn
der Prozess auf Schritt S10 geschoben wird, versteht die CPU 1,
dass das Lesen des Strichcodes 21 okay ist, bringt den
Lautsprecher 10 dazu ein Signal zu erzeugen, das die Beendigung des
Lesens des Strichcodes 21 darstellt, und zeigt Information,
basierend auf dem Demodulationsergebnis des Strichcodes 21 auf
der LED 11. Die CPU 1 gibt eine Weisung zur Übertragung
des Demodulationsergebnisses des Strichcodes 21 an eine übergeordnete
Maschine 201 an die Schnittstellenschaltung 4.
Danach beendet die CPU 1 die Prozesse der Hauptroutine.
-
Wenn
der Prozess auf Schritt S11 geschoben wird, versteht die CPU 1,
dass das Lesen des Barcodes 21 nicht in Ordnung ist, verursacht
den Lautsprecher 10 ein Signal zu erzeugen, dass das Lesen
des Strichcodes 21 vollständig ist und zeigt auf der
LED 11 an, dass die Demodulation des Strichcodes 21 nicht
in Ordnung ist (dass das Lesen nicht in Ordnung ist). Danach beendet
die CPU 1 die Prozesse der Hauptroutine.
-
<Betrieb des Ausführungsbeispiels>
-
Gemäß dem Strichcodelaser
dieses Ausführungsbeispiels
werden die demodulierten Daten als fehlerhaft gelesene Daten, die
durch eine Bit-Verschiebung erzeugt wurden, gehandhabt, wenn ein Zeichen
benachbart dem linken des Überlappungsbereichs
des einen Stücks
der demodulierten Daten, ein Zeichen benachbart dem rechten des Überlappungsteils
des anderen Stücks
der demodulierten Daten und die Zeichen, die die Überlappungsbereiche
der einen und der anderen demodulierten Daten bilden, in dem Überprüfungsprozess
des Überlappungsbereichs
alle dieselben sind (siehe 4), und das
Lesen des Strichcodes 21 ist nicht in Ordnung.
-
Im
Detail werden im Beispiel, das in 8 gezeigt
ist, die dritten bis sechsten Zeichen so gehandhabt, dass die Synthesebedingungen
für demodulierte
Daten nicht erfüllt
sind, da alle die dritten bis sechsten Zeichen nach der Synthese "C" sind. Aus diesem Grund wird das Lesen
des Strichcodes 21 durch einen Demodulationssyntheseprozess
durchgeführt,
der eine andere Strichweitendatengruppe verwendet. Entsprechend
kann verhindert werden, dass der Strichcode 21 durch eine
Bitverschiebung falsch gelesen wird, wenn ein Teillesen durchgeführt wird.