-
HINTERGRUND DER ERFINDUNG
-
Herkömmliche Strichcodeleser können durch das Scannen eines Strichcodes auf einer Client-Rechenvorrichtung, wie z. B. einem Smartphone, Tablet, Computer usw., aktualisiert oder mit Anwendungen oder anderen Funktionen konfiguriert werden. Mit der Verfügbarkeit von Softwareentwicklungs-Kits (Software Development Kits - SDK) für Host-Betriebssysteme kann jedoch praktisch jeder eine Anwendung zum Hochladen auf einen Strichcodescanner entwickeln, einschließlich schädlicher Anwendungen. Dieses Problem ist besonders akut bei Strichcodelesern in Umgebungen, die mit sensiblen Informationen umgehen, wie z. B. in Krankenhäusern. Während andere Verfahren zur Authentifizierung zur Verfügung stehen, wie z. B. ein Sicherheitspasswort oder eine private Identifikationsnummer (PIN), verfügen viele Strichcodeleser weder über eine Tastatur noch über ein Display. Darüber hinaus ist es zwar möglich, dass ein Strichcodeleser mit der MAC (Media Access Control) -Adresse aller Client-Rechenvorrichtungen versehen wird, die berechtigt sind, Anwendungen für den Strichcodeleser bereitzustellen, dies erfordert jedoch, dass alle Strichcodescanner in einem System, das aus Hunderten von Strichcodescannern bestehen kann, aktualisiert werden, wenn neue Client-Rechenvorrichtungen eingeführt oder entfernt werden, wodurch sich die Liste der MAC-Adressen ändert.
-
Dementsprechend besteht ein Bedarf an einem verbesserten Authentifizierungsverfahren zum Verbinden eines Strichcodelesers mit einer Client-Rechenvorrichtung, das sowohl die Notwendigkeit eines einfachen Verbindungsaufbaus als auch die Aufrechterhaltung der Sicherheit erfüllt.
-
BESCHREIBUNG
-
In einigen Ausführungsformen beschreibt die vorliegende Offenbarung eine Bildscanvorrichtung, die umfasst: ein Gehäuse mit einem Fenster; eine Bildgebungsbaugruppe, die innerhalb des Gehäuses positioniert ist, wobei die Bildgebungsbaugruppe einen Bildsensor und ein Sichtfeld (FOV) aufweist, das sich durch das Fenster erstreckt, wobei der Bildsensor so angepasst ist, dass er mindestens eines erfasst von: Licht, das von einem Symbol reflektiert wird, und Licht, das von dem Symbol emittiert wird; einen ersten Kommunikationssendeempfänger, der innerhalb des Gehäuses positioniert ist, wobei der erste Kommunikationssendeempfänger betreibbar ist, um eine elektronische Kommunikation über ein Kommunikationsprotokoll aufrechtzuerhalten; eine Steuerung, die betriebsfähig mit der Bildgebungsbaugruppe gekoppelt ist, wobei die Steuerung einen Prozessor und einen Speicher aufweist, wobei die Steuerung angepasst ist, um: ein Symbol zu dekodieren, das in einem von dem Bildsensor erfassten Bild erfasst wird, wobei das Symbol kodierte Daten umfasst, die (i) einen unverschlüsselten ersten Kommunikationsparameter, der sich auf einen zweiten Kommunikationssendeempfänger auf einer Client-Rechenvorrichtung bezieht, und (ii) einen Hash eines zweiten Kommunikationsparameters umfassen, wobei (i) der Hash des zweiten Kommunikationsparameters mit einem privaten Verschlüsselungsschlüssel signiert ist, (ii) das Symbol auf einem Display der Client-Rechenvorrichtung wiedergegeben wird, und (iii) der zweite Kommunikationsparameter Identifikationsdaten umfasst, die einen autorisierten Kommunikationssendeempfänger eindeutig identifizieren, zu validieren, ob der erste Kommunikationsparameter mit dem Hash des zweiten Kommunikationsparameters korrespondiert und ob die Signatur mit einem öffentlichen Schlüssel korrespondiert, der in dem Speicher gespeichert ist, den ersten Kommunikationssendeempfänger zu aktivieren, um eine elektronische Kommunikation mit dem zweiten Kommunikationssendeempfänger über das Kommunikationsprotokoll herzustellen, als Reaktion darauf, dass der erste Kommunikationsparameter mit dem Hash des zweiten Kommunikationsparameters korrespondiert und die Signatur mit dem öffentlichen Schlüssel korrespondiert, der in dem Speicher gespeichert ist, und ein Merkmal von der Client-Rechenvorrichtung über das Kommunikationsprotokoll in den Speicher herunterzuladen, als Reaktion auf die Aktivierung des ersten Kommunikationssendeempfängers.
-
Darüber hinaus beschreibt die vorliegende Offenbarung in einigen Ausführungsformen eine Client-Rechenvorrichtung, die umfasst: ein Gehäuse; ein in dem Gehäuse positioniertes Display; einen in dem Gehäuse positionierten ersten Kommunikationssendeempfänger, wobei der erste Kommunikationssendeempfänger betreibbar ist, um eine elektronische Kommunikation über ein Kommunikationsprotokoll aufrechtzuerhalten; eine Steuerung, die betriebsfähig mit dem ersten Kommunikationssendeempfänger und dem Display gekoppelt ist, wobei die Steuerung einen Prozessor und einen Speicher aufweist, wobei die Steuerung angepasst ist, um: einen Kommunikationsparameter zu hashen, der sich auf den ersten Kommunikationssendeempfänger bezieht, wobei der Kommunikationsparameter Identifikationsdaten enthält, die den ersten Kommunikationssendeempfänger eindeutig identifizieren; den gehashten Kommunikationsparameter unter Verwendung eines privaten Verschlüsselungsschlüssels digital zu signieren, und ein Bild eines Symbols auf dem Display zu erzeugen, wobei das Symbol kodierte Daten umfasst, die (i) den Kommunikationsparameter ohne Hashing, (ii) den gehashten Kommunikationsparameter und (iii) die digitale Signatur des gehashten Kommunikationsparameters enthalten; wobei: der erste Kommunikationssendeempfänger aktiv auf ein Signal hört, das (i) Identifikationsdaten, die den ersten Kommunikationssendeempfänger eindeutig identifizieren, und (ii) eine Anforderung zum Herstellen einer Kommunikationsverbindung mit dem ersten Kommunikationssendeempfänger enthält; und als Reaktion darauf, dass der erste Kommunikationssendeempfänger das Signal empfängt, der erste Kommunikationssendeempfänger und ein zweiter Kommunikationssendeempfänger die Kommunikationsverbindung herstellen, wobei die Kommunikationsverbindung über das Kommunikationsprotokoll erfolgt.
-
Darüber hinaus beschreibt die vorliegende Offenbarung in einigen Ausführungsformen ein System, das umfasst: eine Client-Rechenvorrichtung umfassend: ein Client-Rechenvorrichtungsgehäuse; ein Display, das innerhalb des Client-Rechenvorrichtungsgehäuses positioniert ist; einen ersten Kommunikationssendeempfänger, der innerhalb des Client-Rechenvorrichtungsgehäuses positioniert ist, wobei der erste Kommunikationssendeempfänger betriebsfähig ist, eine elektronische Kommunikation über ein Kommunikationsprotokoll aufrechtzuerhalten; eine erste Steuerung, die betriebsfähig mit dem ersten Kommunikationssendeempfänger und dem Display gekoppelt ist, wobei die erste Steuerung angepasst ist, um eine Media Access Control (MAC) -Adresse, die den ersten Kommunikationssendeempfänger eindeutig identifiziert, zu hashen; die gehashte MAC-Adresse unter Verwendung eines privaten Verschlüsselungsschlüssels digital zu signieren und ein Bild eines Symbols auf dem Display zu erzeugen, das die MAC-Adresse ohne Hashing, die gehashte MAC-Adresse und die digitale Signatur der gehashten MAC-Adresse kodiert; und einen Symbolleser umfassend: ein Symbollesergehäuse; eine Bildgebungsbaugruppe, die zumindest teilweise innerhalb des Symbollesergehäuses positioniert ist, wobei die Bildgebungsbaugruppe ein Sichtfeld (FOV) aufweist, wobei die Bildgebungsbaugruppe konfiguriert ist, um Bilddaten zu erfassen, die sich auf einen Symbolcode beziehen; einen zweiten Kommunikationssendeempfänger, der innerhalb des Symbollesergehäuses positioniert ist, wobei der zweite Kommunikationssendeempfänger betreibbar ist, um eine elektronische Kommunikation über das Kommunikationsprotokoll aufrechtzuerhalten; und eine zweite Steuerung, die kommunikativ mit dem zweiten Kommunikationssendeempfänger gekoppelt ist, wobei die zweite Steuerung einen Speicher und einen Prozessor aufweist, wobei als Reaktion darauf, dass die Bildgebungsbaugruppe ein Bild des Symbols erfasst: die zweite Steuerung den Speicher nach einem öffentlichen Schlüssel abfragt, der mit dem privaten Schlüssel korrespondiert; als Reaktion darauf, dass der öffentliche Schlüssel nicht in dem Speicher gespeichert ist, die zweite Steuerung den zweiten Kommunikationssendeempfänger aktiviert, um eine elektronische Kommunikation mit dem ersten Kommunikationssendeempfänger herzustellen; als Reaktion auf das Herstellen einer elektronischen Kommunikation mit dem ersten Kommunikationssendeempfänger die erste Steuerung den ersten Kommunikationssendeempfänger aktiviert, um den öffentlichen Schlüssel, der mit dem privaten Schlüssel korrespondiert, an den zweiten Sendeempfänger zu übertragen, als Reaktion darauf, dass der öffentliche Schlüssel im Speicher gespeichert ist, die zweite Steuerung validiert, ob die MAC-Adresse ohne Hashing mit dem Hash der MAC-Adresse korrespondiert und ob die Signatur mit dem im Speicher gespeicherten öffentlichen Schlüssel korrespondiert, als Reaktion darauf, dass die MAC-Adresse ohne Hashing mit dem Hash der MAC-Adresse korrespondiert und die Signatur mit dem im Speicher gespeicherten öffentlichen Schlüssel korrespondiert, die zweite Steuerung den zweiten Kommunikationssendeempfänger anweist, über das Kommunikationsprotokoll ein Signal zu übertragen, das (i) die MAC-Adresse, die den ersten Kommunikationssendeempfänger eindeutig identifiziert, und (ii) eine Anforderung zum Herstellen einer Kommunikationsverbindung mit dem ersten Kommunikationssendeempfänger umfasst; wobei der erste Kommunikationssendeempfänger aktiv auf das Signal hört, das (i) die MAC-Adresse, die den ersten Kommunikationssendeempfänger eindeutig identifiziert, und (ii) die Anforderung zum Herstellen der Kommunikationsverbindung mit dem ersten Kommunikationssendeempfänger, umfasst; und als Reaktion darauf, dass der erste Kommunikationssendeempfänger das Signal empfängt, der erste Kommunikationssendeempfänger und der zweite Kommunikationssendeempfänger die Kommunikationsverbindung herstellen, wobei die Kommunikationsverbindung über das Kommunikationsprotokoll auftritt; und als Reaktion auf das Herstellen der Kommunikationsverbindung der zweite Kommunikationssendeempfänger ein Merkmal von der Client-Rechenvorrichtung über das Kommunikationsprotokoll in den Speicher herunterlädt.
-
Figurenliste
-
Die beigefügten Figuren, in denen gleiche Bezugszeichen identische oder funktional ähnliche Elemente in den einzelnen Ansichten bezeichnen, sind zusammen mit der nachfolgenden detaillierten Beschreibung in die Offenbarung inkorporiert und bilden einen Bestandteil der Offenbarung und dienen dazu, hierin beschriebene Ausführungsformen von Konzepten, die die beanspruchte Erfindung umfassen, weiter zu veranschaulichen und verschiedene Prinzipien und Vorteile dieser Ausführungsformen zu erklären.
- 1 zeigt ein Kommunikationssystem zwischen Komponenten gemäß einer Ausführungsform der vorliegenden Erfindung.
- 2 zeigt eine perspektivische Ansicht eines Strichcodelesers aus 1 gemäß einer Ausführungsform der vorliegenden Erfindung.
- 3 zeigt ein Blockdiagramm einiger der Komponenten des Strichcodelesers von 1 gemäß einer Ausführungsform der vorliegenden Erfindung.
- 4 ist ein Flussdiagramm eines Authentifizierungsverfahrens zum Aktualisieren von Merkmalen auf dem Strichcodeleser, wie es von dem Smartphone aus 1 ausgeführt wird, gemäß einigen Ausführungsformen.
- 5 ist ein Flussdiagramm eines Authentifizierungsverfahrens zum Aktualisieren von Merkmalen auf dem Strichcodeleser, wie es vom Strichcodeleser aus 1 ausgeführt wird, gemäß einigen Ausführungsformen.
-
Fachleute werden erkennen, dass Elemente in den Figuren der Einfachheit und Klarheit halber dargestellt sind und nicht notwendigerweise maßstabsgetreu gezeichnet wurden. Zum Beispiel können die Dimensionen einiger der Elemente in den Figuren relativ zu anderen Elementen übertrieben sein, um das Verständnis von Ausführungsformen der vorliegenden Erfindung zu verbessern.
-
Die Vorrichtungs- und Verfahrenskomponenten wurden, wo es angemessen ist, durch herkömmliche Symbole in den Zeichnungen dargestellt, die nur jene spezifischen Details zeigen, die zum Verständnis der Ausführungsformen der vorliegenden Erfindung relevant sind, um somit die Offenbarung nicht mit Einzelheiten zu verdecken, die für die Fachleute auf dem Gebiet, die auf die vorliegende Beschreibung zurückgreifen, ohne weiteres ersichtlich sind.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
Unter Bezugnahme auf die Zeichnungen zeigt 1 verschiedene Aspekte einer beispielhaften Architektur, die ein System 100 zum Hochladen von Funktionen auf einen Strichcodeleser implementiert, einschließlich, aber nicht beschränkt auf Softwareanwendungen, Softwarefunktionen, Konfigurationseinstellungen, Firmware-Updates usw. Spezifischere Beispiele für die Funktionen umfassen, sind aber nicht beschränkt auf, Software zum Dekodieren verschiedener Symbologien (z. B. eindeutige Geräteidentifikation), Software zur optischen Zeichenerkennung, Software zum Parsen von Informationen auf einem Führerschein und Software zum Lesen mehrerer Strichcodes auf einer einzigen Oberfläche. Die High-Level-Architektur umfasst sowohl Hardware- und Software-Anwendungen als auch verschiedene Datenkommunikationskanäle zur Kommunikation von Daten zwischen den verschiedenen Hardware- und Software-Komponenten. Das System 100 zum Hochladen von Merkmalen auf einen Strichcodeleser kann verschiedene Software- und Hardware-Komponenten oder -Module enthalten.
-
Das System 100 zum Hochladen von Merkmalen auf einen Strichcodeleser umfasst Front-End-Komponenten, einschließlich eines oder mehrerer Strichcodeleser 102, 103 und einer Client-Rechenvorrichtung 104. Die Client-Rechenvorrichtung 104 kann ein Personal Computer, ein Smartphone, ein Tablet-Computer, eine Smartwatch, ein kopfbefestigtes Display, ein tragbarer Computer oder eine andere geeignete Client-Rechenvorrichtung sein. Die Client-Rechenvorrichtung 104 umfasst verschiedene Komponenten, die operativ miteinander gekoppelt sind, einschließlich einer Steuerung, die einen Mikrocontroller oder einen Prozessor 106, einen Programmspeicher 108, ein Display 110 und eine Bildgebungsbaugruppe 112, wie eine Kamera, mit einem Bildsensor umfasst, die alle über einen Adress-/Datenbus (nicht dargestellt) miteinander verbunden sind. Der Prozessor 106 der Client-Rechenvorrichtung 104 führt im Speicher 108 gespeicherte Anweisungen aus, um: 1) Bilder auf dem Display 110 zu erzeugen und 2) Bilder über die Bildgebungsbaugruppe 112 zu erfassen. Obwohl in 1 nur ein Prozessor 106 dargestellt ist, kann die Steuerung mehrere Prozessoren 106 enthalten. In ähnlicher Weise kann der Speicher 108 der Steuerung mehrere RAMs und mehrere Programmspeicher enthalten, die ein oder mehrere entsprechende Server-Anwendungsmodule speichern, je nach der besonderen Konfiguration der Steuerung. Der Speicher 108 kann in einer bekannten Form von Computerspeichermedien implementiert sein, einschließlich, aber nicht beschränkt auf, beispielsweise Halbleiterspeicher, magnetisch lesbare Speicher und/oder optisch lesbare Speicher, was aber nicht transitorische Medien wie Trägerwellen umfasst.
-
Aus 1 und der beiliegenden Beschreibung sollte ersichtlich sein, dass eine einzige Client-Rechenvorrichtung 104 zum Hochladen von Merkmalen auf mehrere Strichcodeleser verwendet werden kann. Obwohl nur zwei Strichcodeleser 102, 103 dargestellt sind, kann die Client-Rechenvorrichtung 104 zum Hochladen von Merkmalen auf eine beliebige Anzahl von Strichcodelesern verwendet werden. Obwohl nur eine Client-Rechenvorrichtung dargestellt ist, können mehrere Client-Rechenvorrichtungen im System 100 verwendet werden und mit den Backend-Komponenten kommunizieren, wobei jede Client-Rechenvorrichtung bestimmten Strichcodelesern zugewiesen ist oder jede Client-Rechenvorrichtung in der Lage ist, Merkmale auf einen beliebigen der mehreren Strichcodeleser hochzuladen.
-
Die Client-Rechenvorrichtung 104 enthält auch verschiedene Kommunikationskomponenten, einschließlich eines drahtgebundenen Kommunikationsanschlusses 114, z. B. eines Universal Serial Bus (USB), und/oder eines drahtlosen Nahfeld-Sendeempfängers 116, z. B. eines Bluetooth® -Sendeempfängers, zur Kommunikation mit anderen Front-End-Komponenten wie den Strichcodelesern 102, 103. Des Weiteren enthält die Client-Rechenvorrichtung 104 einen Mobilfunk-Sendeempfänger 118 und/oder einen lokalen Netzwerk-Sendeempfänger 120, wie z. B. einen WiFi-Sendeempfänger, der auf IEEE (Institute of Electrical and Electronics Engineers) 802.11-Standards basiert, zur Kommunikation mit Backend-Komponenten 122 über ein öffentliches Computernetzwerk 124. In einer Ausführungsform führt der Prozessor 106 der Client-Rechenvorrichtung 104 Anweisungen aus, um Daten von den Backend-Komponenten 122 über das Computernetzwerk 124 zu verwalten und zu empfangen, wie z. B. Daten für das Merkmal selbst, die auf den Strichcodeleser 102 hochgeladen werden sollen.
-
Das Computernetzwerk 124 kann ein Netzwerk wie das Internet oder eine andere Art von geeignetem Netzwerk sein (z. B. ein lokales Netzwerk (LAN), ein Metropolitan Area Network (MAN), ein Wide Area Network (WAN), ein mobiles, ein drahtgebundenes oder drahtloses Netzwerk usw.). Das Computernetzwerk 124 kann auch ein oder mehrere Mobilfunknetzwerke sein, wie z. B. ein CDMA (Code Division Multiple Access) -Netzwerk, ein GSM (Global System for Mobile Communications) -Netzwerk, ein WiMAX (Worldwide Interoperability for Microwave Access) -Netzwerk, ein LTE (Long Term Evolution) -Netzwerk, usw. Der Prozessor 106 der Client-Rechenvorrichtung 104 kann auch eine oder mehrere Anwendungen ausführen, um die oben beschriebenen Aufgaben zu erfüllen.
-
Die Backend-Komponenten 122 können einen Datenserver 128 und eine Kontodatenbank 131 umfassen. Die Backend-Komponenten 122 können über ein Kommunikationsnetzwerk 138 miteinander kommunizieren, wie z. B. ein lokales Netzwerk oder eine andere Art von geeignetem Netzwerk (z. B. das Internet, ein Metropolitan Area Network (MAN), ein Wide Area Network (WAN), ein mobiles, ein drahtgebundenes oder drahtloses Netzwerk, ein privates Netzwerk, ein virtuelles privates Netzwerk usw.).
-
Das System zum Hochladen von Merkmalen auf einen Strichcodeleser 102, 103 im Allgemeinen und den Datenserver 128 im Besonderen umfasst computerausführbare Anweisungen 130. In einer Ausführungsform führt ein Prozessor des Datenservers 128 die Anweisungen 130 aus, um ein Zugriffswerkzeug 132, ein Abrufwerkzeug 134 und ein Analysewerkzeug 136 zu instanziieren. Das Zugriffswerkzeug 132 empfängt Daten von der Client-Rechenvorrichtung 104 und speichert die Daten in einer oder mehreren Datenbanken, z. B. in der Kontodatenbank 131. Das Abrufwerkzeug 134 ruft Daten aus der Kontodatenbank 131 ab oder verwendet eine Kontokennung, um auf Kundenkontoinformationen aus der Kontodatenbank 131 zuzugreifen, die sich auf Lizenzen für Strichcodeleser beziehen, die dem Kunden gehören oder von ihm geleast wurden, sowie auf lizenzierte Funktionen für jeden der Strichcodeleser. Bei der Kontodatenbank 131 kann es sich um eine Datenspeichervorrichtung handeln, z. B. einen Arbeitsspeicher (RAM), ein Festplattenlaufwerk (HDD), einen Flash-Speicher, einen Flash-Speicher wie ein Solid-State-Laufwerk (SSD) usw. Das Analysewerkzeug 136 kann eine oder mehrere Analysen der Kundenkontodaten und/oder Anfragen von der Client-Rechenvorrichtung 104 durchführen, bevor es Aktivierungsdaten bereitstellt, um eine Funktion auf dem Strichcodeleser 102 zu aktivieren.
-
2 zeigt einen beispielhaften Strichcodeleser 102 mit einem Gehäuse 202 mit einem Griffteil 204, der auch als Griff 204 bezeichnet wird, und einem Kopfteil 206, der auch als Scankopf 206 bezeichnet wird. Der Kopfteil 206 umfasst ein Fenster 208 und ist so konfiguriert, dass er auf der Oberseite des Griffteils 204 positioniert werden kann. Der Griffteil 204 ist so konfiguriert, dass er von einem Benutzer des Lesers (nicht dargestellt) gegriffen werden kann, und umfasst einen Auslöser 210 zur Aktivierung durch den Benutzer. In der Ausführungsform ist auch eine Basis 212 enthalten, die an dem Griffteil 204 gegenüber dem Kopfteil 206 angebracht ist. Die Basis 212 ist so konfiguriert, dass sie auf einer Oberfläche steht und das Gehäuse 202 in einer allgemein aufrechten Position hält. Der Strichcodeleser 102 kann in einem Freihandmodus als stationärer Arbeitsplatz verwendet werden, wenn er auf der Arbeitsplatte steht. Der Strichcodeleser 102 kann auch in einem handgehaltenen Modus verwendet werden, wenn er von der Arbeitsplatte genommen und in der Hand eines Bedieners gehalten wird. Im Freihandmodus können Produkte an das Fenster 208 geschoben, vorbei gestrichen oder präsentiert werden. Im handgehaltenen Modus kann der Strichcodeleser 102 in Richtung eines Strichcodes auf einem Produkt bewegt werden, und der Auslöser 210 kann manuell gedrückt werden, um die Erfassung des Strichcodes zu starten. In einigen Implementierungen kann die Basis 212 weggelassen werden, und das Gehäuse 202 kann auch in anderen handgehaltenen Formen ausgeführt werden. Andere Implementierungen können nur handgehaltene oder nur Freihandkonfigurationen vorsehen.
-
3 zeigt ein schematisches Blockdiagramm eines Teils eines Strichcodelesers 102 gemäß einigen Ausführungsformen. Es sollte verstanden werden, dass 3 nicht maßstabsgetreu gezeichnet ist. Bezugnehmend auf 3 umfasst eine Bildgebungsbaugruppe einen lichterfassenden Sensor oder Bildsensor 211, der mit einer gedruckten Leiterplatte (PCB) 216 im Leser 102 operativ gekoppelt oder darauf montiert ist. In einer Ausführungsform ist der Bildsensor 211 eine Festkörpervorrichtung, z. B. ein CCD- oder ein CMOS-Bildsensor, mit einer eindimensionalen Anordnung von adressierbaren Bildsensoren oder Pixeln, die in einer einzigen Zeile angeordnet sind, oder einer zweidimensionalen Anordnung von adressierbaren Bildsensoren oder Pixeln, die in zueinander orthogonalen Zeilen und Spalten angeordnet sind, und die zum Erfassen von zurückkehrendem Licht dient, das von einer Bildgebungslinsenbaugruppe 215 über ein Sichtfeld entlang einer Bildgebungsachse 217 durch das Fenster 208 erfasst wird. Das zurückkehrende Licht wird von dem Ziel 213 über das Sichtfeld gestreut und/oder reflektiert. Die Bildgebungslinsenbaugruppe 215 dient zur Fokussierung des zurückkehrenden Lichts auf das Array von Bildsensoren, damit das Ziel 213 gelesen werden kann. Das Ziel 213 kann sich in einem beliebigen Arbeitsbereich von Abständen zwischen einem Naharbeitsabstand (WD1) und einem Fernarbeitsabstand (WD2) befinden. In einer bevorzugten Ausführungsform ist WD1 etwa einen halben Zoll vom Fenster 208 entfernt, und WD2 ist etwa dreißig Zoll vom Fenster 208 entfernt.
-
Im Bildgebungsleser 102 ist auch eine Beleuchtungslichtbaugruppe montiert. Die Beleuchtungslichtbaugruppe umfasst eine Beleuchtungslichtquelle, wie z. B. mindestens eine Leuchtdiode (LED) 219 und mindestens eine Beleuchtungslinse 221, und vorzugsweise eine Vielzahl von Beleuchtungs-LEDs und Beleuchtungslinsen, die so konfiguriert sind, dass sie ein im Wesentlichen gleichmäßig verteiltes Beleuchtungsmuster von Beleuchtungslicht auf und entlang des Ziels 213 erzeugen, das durch Bilderfassung gelesen werden soll. Zumindest ein Teil des gestreuten und/oder reflektierten zurückkehrenden Lichts wird aus dem Beleuchtungsmuster des Lichts auf und entlang des Ziels 213 abgeleitet.
-
Eine Ziellichtbaugruppe ist ebenfalls im Bildgebungsleser 102 montiert und umfasst vorzugsweise eine Ziellichtquelle 223 (z. B. eine oder mehrere Ziel-LEDs) und eine Ziellinse 225 zum Erzeugen und Richten eines sichtbaren Ziellichtstrahls vom Leser 102 weg auf das Symbol 213. Der Ziellichtstrahl hat einen Querschnitt mit einem Muster, z. B. einen allgemein kreisförmigen Punkt oder ein Fadenkreuz zur Platzierung in der Mitte des Symbols 213 oder eine Linie zur Platzierung quer über das Symbol 213 oder einen Satz von Rahmenlinien zur Begrenzung des Sichtfeldes, um einen Bediener bei der visuellen Lokalisierung des Symbols 213 innerhalb des Sichtfeldes vor der Bilderfassung zu unterstützen. Die Client-Rechenvorrichtung 104 umfasst auch verschiedene Kommunikationskomponenten, einschließlich eines drahtlosen Nahfeld-Sendeempfängers 230, wie z. B. eines Bluetooth® -Sendeempfängers, und/oder eines drahtgebundenen Kommunikationsanschlusses 231, wie z. B. eines Universal Serial Bus (USB), zur Kommunikation mit der Client-Rechenvorrichtung 104.
-
Wie ebenfalls in 3 gezeigt, sind der Bildsensor 211, die Beleuchtungs-LED 219, die Ziel-LED 223, der Nahfeld-Sendeempfänger 230 und der Kommunikationsanschluss 231 operativ mit einer Steuerung oder einem programmierten Mikroprozessor 227 verbunden, die/der den Betrieb dieser Komponenten steuert. Ein Speicher 229 ist mit der Steuerung 227 verbunden und zugänglich. Vorzugsweise ist der Mikroprozessor 227 derselbe, der für die Verarbeitung des eingefangenen zurückkehrenden Lichts vom beleuchteten Ziel 213 verwendet wird, um Daten in Bezug auf das Ziel 213 zu erhalten. Insbesondere ist der Mikroprozessor 227 derselbe, der für die Kommunikation mit der Client-Rechenvorrichtung 104 verwendet wird, einschließlich der Verarbeitung des eingefangenen zurückkehrenden oder emittierten Lichts von einem beleuchteten Ziel 213, das auf dem Bildschirm der Client-Rechenvorrichtung angezeigt wird, um Daten in Bezug auf das Ziel 213 zu erhalten, sowie der Kommunikation mit einem oder mehreren entsprechenden Sendeempfängern der Client-Rechenvorrichtung 104 über den Nahfeld-Sendeempfänger 230 und/oder den Kommunikationsanschluss 231. Die Offenbarung des Strichcodelesers 102 in den 2 und 3 gilt gleichermaßen für den Strichcodeleser 103 aus 1 und für jeden anderen Strichcodeleser innerhalb des Systems 100.
-
4 ist ein Flussdiagramm der Steuerung der Client-Rechenvorrichtung 104 zur Authentifizierung vor dem Herstellen einer Kommunikationsverbindung mit dem Strichcodeleser 102, 103 und dem Hochladen von Merkmalen auf den Strichcodeleser 102, 103 in den hier beschriebenen Ausführungsformen. Die folgende Offenbarung bezieht sich nur auf den Strichcodeleser 102, obwohl es sich versteht, dass diese Offenbarung gleichermaßen auf den Strichcodeleser 103 oder jeden anderen Strichcodeleser im System 100 anwendbar ist. Im Allgemeinen erzeugt die Client-Rechenvorrichtung 104 einen Paarungsstrichcode, der vom Strichcodeleser 102 gelesen wird, um zu überprüfen, ob die Client-Rechenvorrichtung 104 eine autorisierte Vorrichtung ist, von der Funktionen wie Anwendungen, Updates usw. heruntergeladen werden können. Sobald der Paarungsstrichcode validiert und die Client-Rechenvorrichtung 104 als autorisierte Vorrichtung validiert wurde, stellen der Strichcodeleser 102 und die Client-Rechenvorrichtung 104 eine Kommunikationsverbindung über ein Kommunikationsprotokoll her, das geeignet ist, die Funktion von der Client-Rechenvorrichtung 104 herunterzuladen, wie z. B. Kommunikationsprotokolle, die mit den Nahfeld-Sendeempfängern 116, 230 oder den Kommunikationsanschlüssen 114, 231 (und entsprechenden Sendeempfängern) verbunden sind.
-
Mit Bezug auf das Flussdiagramm von 3, wenn ein Merkmal auf den Strichcodeleser 102 hochgeladen werden soll, erzeugt eine Client-Rechenvorrichtung 104, die zum Hochladen von Merkmalen auf den Strichcodeleser 102 autorisiert ist, einen Paarungsstrichcode, von dem ein Bild auf dem Display 110 zum Scannen durch den Strichcodeleser 102 erzeugt wird. Ab Block 302, wenn eine Anwendung oder ein anderes Merkmal zum Hochladen auf den Strichcodeleser 102 bereit ist, verwendet die Client-Rechenvorrichtung 104 eine Hash-Funktion, um einen Hash-Wert aus einem für den Sendeempfänger eindeutigen Kommunikationsparameter zu erzeugen, der zum Hochladen des Merkmals verwendet wird. Wenn das Merkmal beispielsweise über Nahfeldkommunikation wie Bluetooth® hochgeladen werden soll, verwendet die Client-Rechenvorrichtung 104 die Hash-Funktion, um einen Hash-Wert aus der MAC (Media Access Control) -Adresse zu erzeugen, die den Nahfeld-Sendeempfänger 116 eindeutig identifiziert. Wenn der Strichcode auf dem Display 110 erzeugt wird, kodiert der Strichcode den Hash-Wert sowie den unverschlüsselten Kommunikationsparameter (z. B. die Klartext-MAC-Adresse), der für den Sendeempfänger der Client-Rechenvorrichtung 104, die den Strichcode anzeigt, eindeutig ist. Auf diese Weise kann ein Strichcodeleser 102 den unverschlüsselten Kommunikationsparameter aus dem Strichcode auslesen und bestimmen, ob er manipuliert wurde oder nicht, indem er seinen Hash-Wert mit dem im Strichcode kodierten Hash-Wert vergleicht. Wenn sich auch nur ein kleiner Teil des Kommunikationsparameters von dem unterscheidet, der zur Erstellung des Hash-Werts verwendet wurde, wird der Kommunikationsparameter als ungültig betrachtet. Beispielsweise kann der Strichcodeleser 102 nur Hochladevorgänge von autorisierten Client-Rechenvorrichtung akzeptieren, von denen jede durch ihre MAC-Adresse identifiziert wird. Wenn eine nicht autorisierte Client-Rechenvorrichtung versucht, eine MAC-Adresse einer autorisierten Client-Rechenvorrichtung zu „fälschen“, wird der Hash-Wert der MAC-Adresse einer autorisierten Client-Rechenvorrichtung (die dem Strichcodeleser 102 bekannt ist) nicht mit dem Hash-Wert der gefälschten MAC-Adresse korrespondieren. Als weiteres Beispiel vergleicht der Strichcodeleser 102 die im Strichcode kodierte Klartext-MAC-Adresse mit dem im Strichcode kodierten Hash-Wert, um zu überprüfen, dass die MAC-Adresse nicht manipuliert wurde.
-
Zusätzlich zur Erzeugung des Hash-Werts aus dem Kommunikationsparameter, der für den Sendeempfänger der Client-Rechenvorrichtung eindeutig ist, verwendet die Client-Rechenvorrichtung einen Signieralgorithmus, um den Hash-Wert in Block 304 digital zu signieren. Insbesondere verwendet eine autorisierte Client-Rechenvorrichtung eine asymmetrische Verschlüsselung unter Verwendung von Paaren aus privaten und öffentlichen Schlüsseln, wobei eine autorisierte Client-Rechenvorrichtung den öffentlichen Schlüssel an die Strichcodeleser verteilt und den entsprechenden privaten Schlüssel verwaltet. Ein Strichcodeleser ist somit in der Lage, die Authentizität des auf einer Client-Rechenvorrichtung angezeigten Strichcodes unter Verwendung ihres entsprechenden öffentlichen Schlüssels zu akzeptieren oder abzulehnen. In einer Ausführungsform wird der private Schlüssel verwendet, um nicht nur den Hash-Wert, sondern auch den unverschlüsselten Kommunikationsparameter (z. B. die Klartext-MAC-Adresse) digital zu signieren.
-
In Block 306 kodiert die Client-Rechenvorrichtung den digital signierten Hash-Wert und den unverschlüsselten Kommunikationsparameter (ob digital signiert oder unsigniert) in ein Strichcodesymbol. In einer Ausführungsform ist das Strichcodesymbol ein zwei- oder dreidimensionales Strichcodesymbol, mit dem mehr Informationen kodiert werden können als mit einem eindimensionalen Strichcode. Da eine digitale Signatur in der Regel recht groß ist, wird vorzugsweise ein zwei- oder dreidimensionales Strichcodesymbol verwendet. Eine Grafik oder ein Bild des Strichcodesymbols wird dann von der Client-Rechenvorrichtung auf dem Display 110 im Block 308 zum Scannen durch den Strichcodeleser 102 erzeugt. In einer Ausführungsform kann das Bild des Strichcodesymbols nur auf Aufforderung eines Benutzers der Client-Rechenvorrichtung erzeugt werden, wenn sie bereit ist, das Merkmal in den Strichcodeleser 102 hochzuladen.
-
Danach hört die Client-Rechenvorrichtung und insbesondere der Kurzstrecken-Kommunikationssendeempfänger zum Hochladen des Merkmals (z. B. der Sendeempfänger für den Kommunikationsanschluss 114 oder der Nahfeld-Sendeempfänger 116) aktiv auf ein Signal von einem Strichcodeleser, der das auf dem Display 110 der Client-Rechenvorrichtung 104 erzeugte Strichcodesymbol gescannt hat, im Block 310. In einer Ausführungsform enthält das Signal den Kommunikationsparameter (z. B. die MAC-Adresse) der Client-Rechenvorrichtung aus dem Strichcodesymbol zusammen mit einer Aufforderung, eine Kommunikationsverbindung zwischen dem Sendeempfänger der Client-Rechenvorrichtung und einem entsprechenden Sendeempfänger des Strichcodelesers 102 herzustellen. Als Reaktion auf das Empfangen des Signals bauen der Kurzstrecken-Kommunikationssendeempfänger der Client-Rechenvorrichtung und der Kurzstrecken-Sendeempfänger des Strichcodelesers eine Kommunikationsverbindung (z. B. eine bidirektionale Kommunikationsverbindung) unter Verwendung des Kurzstrecken-Kommunikationsprotokolls der Sendeempfänger (z. B. Bluetooth®) auf. Sobald das Signal von der Client-Rechenvorrichtung empfangen wird, stellt die Client-Rechenvorrichtung die Kommunikationsverbindung mit dem Strichcodeleser in Block 312 her und lädt in Block 314 das Merkmal auf den Strichcodeleser hoch.
-
In einigen Fällen wurde dem Strichcodeleser noch kein öffentlicher Schlüssel zur Verfügung gestellt, z. B. wenn der Strichcodeleser zum ersten Mal innerhalb des Systems 100 aktiviert wird. In solchen Fällen kann die Client-Rechenvorrichtung, wie weiter unten beschrieben, in Block 316 eine Anforderung des Strichcodelesers für einen öffentlichen Schlüssel empfangen. Vorausgesetzt, dass ein privater Schlüssel bereits erzeugt wurde und sich auf der Client-Rechenvorrichtung befindet (zusammen mit den entsprechenden öffentlichen Schlüsseln), überträgt die Client-Rechenvorrichtung den öffentlichen Schlüssel an den Strichcodeleser in Block 318, der verwendet wird, um die Signatur des privaten Schlüssels von Strichcodes zu authentifizieren, die weiteren Herunterladevorgängen von Funktionen von einer Client-Rechenvorrichtung zugeordnet sind.
-
5 ist ein Flussdiagramm der Steuerung des Strichcodelesers 102 zum Herunterladen von Merkmalen auf den Strichcodeleser 102 in den hier beschriebenen Ausführungsformen. Wenn die Client-Rechenvorrichtung 104 ein Bild des Symbols erzeugt, das die Authentifizierungsdaten einschließlich des Kommunikationsparameters, des Hash-Werts des Kommunikationsparameters und der Signatur des privaten Schlüssels auf dem Display 110 kodiert, erfasst der Bildsensor 211 des Strichcodelesers 102 ein Bild des Symbols in Block 402. Das Ziel 213 für den Strichcodeleser 102 ist in diesem Fall das auf der Client-Rechenvorrichtung 104 angezeigte Symbol. Die Ziel-LED 223 wird aktiviert, so dass der Strichcodeleser 102 auf das Ziel 213 gerichtet werden kann, und die Beleuchtungs-LED 219 wird aktiviert, um das Ziel 213 zu beleuchten. Der Bildsensor 211 erfasst dann ein Bild des Ziels 213.
-
In Block 404 verwendet die Steuerung 227 einen im Speicher 229 gespeicherten Dekodieralgorithmus, der mit dem Symboltyp des auf der Client-Rechenvorrichtung 104 angezeigten Symbols korrespondiert, um das Bild des Symbols zu dekodieren, das vom Bildsensor 211 erfasst wurde. Insbesondere wird das Bild des Symbols dekodiert, um die im Symbol kodierten Authentifizierungsdaten zu dekodieren. Wie oben erwähnt, enthalten die Authentifizierungsdaten nach der Dekodierung den Kommunikationsparameter, der den Sendeempfänger der Client-Rechenvorrichtung für das Herunterladen der Funktion eindeutig identifiziert (z. B. die MAC-Adresse des Bluetooth®-Sendeempfängers), den Hash-Wert aus dem Hashen des Kommunikationsparameters und die mit dem privaten Schlüssel erzeugte Signatur.
-
Zunächst prüft die Steuerung 227 in ihrem Speicher 229, ob dem Strichcodeleser 102 ein öffentlicher Schlüssel zur Verfügung gestellt wurde, mit dem die Authentizität der Signatur in Block 406 geprüft werden kann. Wenn der öffentliche Schlüssel im Speicher 229 gespeichert ist, fährt die Steuerung 227 mit der Authentifizierung der in dem Symbol kodierten Authentifizierungsdaten in Block 408 fort. Andererseits, wenn der öffentliche Schlüssel nicht im Speicher 229 gespeichert ist, kann die Steuerung 227 den Authentifizierungsprozess umgehen und eine Kommunikationsverbindung mit der Client-Rechenvorrichtung 104 in Block 414 herstellen, wobei sie an diesem Punkt eine Anzeige generieren und an die Client-Rechenvorrichtung 104 über den Nahfeld-Sendeempfänger 116 oder den Kommunikationsanschluss 114 unter Verwendung des unverschlüsselten Kommunikationsparameters, wie im Symbol vorgesehen, übertragen kann. Ein solcher Fall kann eintreten, wenn der Strichcodeleser 102 zum ersten Mal von einem Kunden zur Einführung in das System 100 in Betrieb genommen wird. Der Hinweis wird als Aufforderung für die Client-Kommunikationsvorrichtung 104 bereitgestellt, um das Paar aus öffentlichem und privatem Schlüssel zu erzeugen und/oder den öffentlichen Schlüssel, der mit seinem privaten Schlüssel korrespondiert, an den Strichcodeleser 102 zu übertragen. In einer Ausführungsform verfügt die Client-Kommunikationsvorrichtung 104 über einen Schlüsselerzeugungsalgorithmus, der in ihrem Speicher 108 gespeichert ist und von ihrem Prozessor 106 ausgeführt wird, um einen zufälligen privaten Schlüssel und einen korrespondierenden öffentlichen Schlüssel zu erzeugen. Sobald der Strichcodeleser 102 mit dem öffentlichen Schlüssel versehen wurde, speichert der Strichcodeleser 102 den öffentlichen Schlüssel in einem persistenten Speicher (welcher der Speicher 229, eine Partition des Speichers 229 oder ein separater Speicher sein kann), so dass zukünftige Downloads von einer Client-Rechenvorrichtung unter Verwendung des öffentlichen Schlüssels authentifiziert werden, selbst nach einem Zurücksetzen des Strichcodelesers 102 auf Werkseinstellungen.
-
Zurück zu Block 408 prüft die Steuerung 227, ob der für den Sendeempfänger der Client-Rechenvorrichtung 104 eindeutige Kommunikationsparameter, wie er im Symbol kodiert ist, mit dem im Symbol kodierten Hash-Wert korrespondiert. Beispielsweise ordnet der Strichcodeleser 102 den unverschlüsselten Kommunikationsparameter seinem Hash-Wert zu und bestimmt, ob der zugeordnete Hash-Wert mit dem im Symbol kodierten übereinstimmt. Wie bereits erwähnt, führt ein beeinträchtigter Kommunikationsparameter, wie z. B. eine MAC-Adresse, zu einem anderen Hash-Wert als dem im Symbol bereitgestellten. Auf diese Weise verifiziert der Strichcodeleser 102, dass die Client-Rechenvorrichtung eine autorisierte Client-Rechenvorrichtung ist, von der ein Merkmal heruntergeladen werden soll, und dass das Merkmal autorisiert ist, auf den Strichcodeleser 102 heruntergeladen zu werden.
-
In Block 410 verifiziert die Steuerung 227, dass die digitale Signatur der Authentifizierungsdaten mit einem privaten Schlüssel erstellt wurde, der mit dem im Speicher 229 gespeicherten öffentlichen Schlüssel korrespondiert. Beispielsweise kann die Steuerung 227 einen Algorithmus zur Überprüfung der Signatur ausführen, der angesichts der Authentifizierungsdaten, des öffentlichen Schlüssels und der Signatur die Authentizität der Authentifizierungsdaten entweder akzeptiert oder ablehnt. Wenn einer der Authentifizierungsschritte in den Blöcken 408, 410 fehlschlägt, kann die Steuerung 227 in Block 412 einen Fehler ausgeben, der mit einem visuellen oder akustischen Signal korrespondieren kann, dass das Symbol nicht authentifiziert wurde. Der Fehler in Block 412 führt dazu, dass die Steuerung 102 den Nahfeld-Sendeempfänger 230 und/oder den Kommunikationsanschluss 231 daran hindert, eine Kommunikationsverbindung mit dem korrespondierenden Sendeempfänger der Client-Rechenvorrichtung 104 herzustellen. Wenn andererseits der Authentifizierungsprozess in den Blöcken 408, 410 erfolgreich ist, aktiviert die Steuerung 227 den Sendeempfänger, der mit dem Sendeempfänger des unverschlüsselten Kommunikationsparameters korrespondiert, der in dem Symbol kodiert ist, und der Strichcodeleser 102 lädt das Merkmal von der Client-Rechenvorrichtung 104 über den Nahfeld-Sendeempfänger 230 oder den Kommunikationsanschluss 231 herunter, wenn er über eine drahtgebundene Kommunikation (z. B. ein USB-Kabel) angeschlossen ist. Sobald das Merkmal auf den Strichcodeleser 102 heruntergeladen wurde, installiert und aktiviert die Steuerung 227 das Merkmal im Speicher 229. Danach kann der Strichcodeleser 102 die Funktion nutzen.
-
In der vorstehenden Beschreibung wurden spezifische Ausführungsformen beschrieben. Ein Durchschnittsfachmann erkennt jedoch, dass verschiedene Modifikationen und Änderungen vorgenommen werden können, ohne den Schutzumfang der Erfindung, wie sie in den untenstehenden Ansprüchen definiert ist, abzuweichen. Dementsprechend sind die Beschreibung und die Figuren vielmehr in einem illustrativen als in einem einschränkenden Sinne zu betrachten, und alle derartigen Modifikationen sollen im Umfang der vorliegenden Lehren eingeschlossen sein.
-
Die Nutzen, Vorteile, Lösungen für Probleme und alle Elemente, die zum Auftreten oder einer Verstärkung eines Nutzens, eines Vorteils, oder einer Lösung führen können, sind nicht als kritische, erforderliche oder wesentliche Merkmale oder Elemente in einigen oder sämtlichen Ansprüchen zu verstehen. Die Erfindung ist lediglich durch die angehängten Ansprüche definiert, einschließlich jeglicher Änderungen, die während der Anhängigkeit dieser Anmeldung vorgenommen wurden und aller Äquivalente der erteilten Ansprüche.
-
Darüber hinaus können in diesem Dokument relationale Begriffe wie erster und zweiter, oberer und unterer und dergleichen lediglich verwendet sein, um eine Entität oder Aktion von einer anderen Entität oder Aktion zu unterscheiden, ohne notwendigerweise eine tatsächliche derartige Beziehung oder Reihenfolge zwischen solchen Entitäten oder Aktionen zu erfordern oder zu implizieren. Die Ausdrücke „umfasst“, „umfassend“, „hat“, „haben“, „aufweist“, „aufweisend“, „enthält“, „enthaltend“ oder jede andere Variation davon sollen eine nicht-ausschließliche Einbeziehung abdecken, derart, dass ein Prozess, Verfahren, Produkt oder Vorrichtung, das eine Liste von Elementen umfasst, hat, aufweist, enthält, nicht nur diese Elemente aufweist, sondern auch andere Elemente aufweisen kann, die nicht ausdrücklich aufgelistet sind oder einem solchen Prozess, Verfahren, Produkt oder Vorrichtung inhärent sind. Ein Element, dem „umfasst ... ein“, „hat ... ein“, „aufweist ... ein“ oder „enthält ...ein“ vorausgeht, schließt ohne weitere Einschränkungen die Existenz zusätzlicher identischer Elemente in dem Prozess, dem Verfahren, dem Produkt oder der Vorrichtung, die das Element umfasst, hat, aufweist oder enthält, nicht aus. Die Begriffe „ein“ und „eine“ sind als eine oder mehrere definiert, sofern es hierin nicht ausdrücklich anders angegeben wird. Die Begriffe „im Wesentlichen“, „im Allgemeinen“, „ungefähr“, „etwa“ oder jede andere Version davon sind so definiert, dass sie von einem Fachmann auf diesem Gebiet nahekommend verstanden werden, und in einer nicht-einschränkenden Ausführungsform ist der Ausdruck definiert als innerhalb von 10%, in einer weiteren Ausführungsform als innerhalb von 5%, in einer weiteren Ausführungsform als innerhalb von 1% und in einer weiteren Ausführungsform als innerhalb von 0,5%. Der Ausdruck „gekoppelt“, wie er hierin verwendet wird, ist als verbunden definiert, jedoch nicht notwendigerweise direkt und nicht notwendigerweise mechanisch. Eine Vorrichtung oder eine Struktur, die auf eine bestimmte Art „konfiguriert“ ist, ist zumindest auch so konfiguriert, kann aber auch auf Arten konfiguriert sein, die nicht aufgeführt sind.
-
Es versteht sich, dass einige Ausführungsformen von einem oder mehreren generischen oder spezialisierten Prozessoren (oder „Verarbeitungsgeräten“) wie Mikroprozessoren, digitale Signalprozessoren, kundenspezifische Prozessoren und Field-Programmable-Gate-Arrays (FPGAs) und einmalig gespeicherten Programmanweisungen (einschließlich sowohl Software als auch Firmware) umfasst sein können, die den einen oder die mehreren Prozessoren steuern, um in Verbindung mit bestimmten Nicht-Prozessorschaltungen einige, die meisten oder alle der hierin beschriebenen Funktionen des Verfahrens und/oder der Vorrichtung zu implementieren. Alternativ können einige oder alle Funktionen durch eine Zustandsmaschine implementiert sein, die keine gespeicherten Programmanweisungen aufweist, oder in einer oder mehreren anwendungsspezifischen integrierten Schaltungen (ASICs), in denen jede Funktion oder einige Kombinationen von bestimmten Funktionen als benutzerdefinierte Logik implementiert sind. Natürlich kann eine Kombination der beiden Ansätze verwendet werden.
-
Darüber hinaus kann eine Ausführungsform als ein computerlesbares Speichermedium implementiert sein, auf dem computerlesbarer Code gespeichert ist, um einen Computer (der zum Beispiel einen Prozessor umfasst) zu programmieren, um ein Verfahren auszuführen, wie es hierin beschrieben und beansprucht ist. Beispiele solcher computerlesbaren Speichermedien weisen eine Festplatte, eine CD-ROM, eine optische Speichervorrichtung, eine magnetische Speichervorrichtung, einen ROM (Nur-Lese-Speicher), einen PROM (programmierbarer Nur-Lese-Speicher), einen EPROM (löschbarer programmierbarer Nur-Lese-Speicher), einen EEPROM (elektrisch löschbarer programmierbarer Nur-Lese-Speicher) und einen Flash-Speicher auf, sind aber nicht hierauf beschränkt auf. Ferner wird davon ausgegangen, dass ein Durchschnittsfachmann, ungeachtet möglicher signifikanter Anstrengungen und vieler Designwahlen, die zum Beispiel durch verfügbare Zeit, aktuelle Technologie und wirtschaftliche Überlegungen motiviert sind, ohne Weiteres in der Lage ist, solche Softwareanweisungen und - programme und ICs mit minimalem Experimentieren zu generieren, wenn er durch die hierin offenbarten Konzepte und Prinzipien angeleitet wird.
-
Die Zusammenfassung der Offenbarung wird bereitgestellt, um es dem Leser zu ermöglichen, schnell das Wesen der technischen Offenbarung zu ermitteln. Sie wird mit dem Verständnis bereitgestellt, dass sie nicht zur Auslegung oder Einschränkung des Umfangs oder der Bedeutung der Ansprüche verwendet wird. Ferner kann der vorangehenden detaillierten Beschreibung entnommen werden, dass verschiedene Merkmale in verschiedenen Ausführungsformen zum Zwecke der Verschlankung der Offenbarung zusammengefasst sind. Diese Art der Offenbarung ist nicht so auszulegen, dass sie die Absicht widerspiegelt, dass die beanspruchten Ausführungsformen mehr Merkmale erfordern, als ausdrücklich in jedem Anspruch angegeben sind. Vielmehr ist es so, wie die folgenden Ansprüche zeigen, dass der erfinderische Gegenstand in weniger als allen Merkmalen einer einzigen offenbarten Ausführungsform liegt. Somit werden die folgenden Ansprüche hiermit in die detaillierte Beschreibung inkorporiert, wobei jeder Anspruch für sich als ein separat beanspruchter Gegenstand steht.