Data-Layer-Referenz

Alle Knoten liegen unter dem Basispfad der Anwendung:

hdvisionsystems/lumiscan-barcode-reader/

Die Pfade unten sind relativ dazu angegeben. Ein einzelner Lesevorgang verwendet vier Knoten; der Bild-Stream (experimentell) ergänzt die unter Bild-Stream aufgeführten Knoten, und System sagt, was seine Quelle enthalten muss.

Data Layer

LumiScan Barcode Reader bietet seine Funktionen auf dem Data Layer unter hdvisionsystems/lumiscan-barcode-reader an.

Auf ctrlX OS (ctrlX CORE oder ctrlX IPC) nutzt LumiScan Barcode Reader den ctrlX Data Layer.

Auf einem PC mit Windows 11 oder Ubuntu 24.04 nutzt LumiScan Barcode Reader LumiScan Keryx.

Knotenadressen, Typen und Aufrufmuster sind auf beiden gleich. LumiScan Barcode Reader bietet:

  • Execute-Methoden

  • ein Stream-Abonnement auf eine Quelle (experimentell)

  • keine Modulebene: Seine Knoten liegen direkt unter hdvisionsystems/lumiscan-barcode-reader

Wie Adressen aufgebaut sind, wie Funktionen aufgerufen werden, die Statuscodes und die Werkzeuge sind in LumiScan Keryx beschrieben.

Knotenbaum

hdvisionsystems/lumiscan-barcode-reader/
├── input/
│   ├── image-address        (string)      address of the image node to read
│   └── parameter            (flatbuffers) detection parameters
├── execute                  (method)      read every barcode in that image
├── output/
│   └── results              (flatbuffers) one entry per code found
├── control/
│   ├── subscribe/                         the image stream (experimental)
│   │   ├── execute
│   │   ├── input/{enable,address,tag,queue-size,keep-latest-output}
│   │   └── output/stream/...              the image stream's results
│   └── unsubscribe/{execute,input/address}
├── setting/{stream,settings-hash}
└── system/meta/subscription-schema    (string)      what the stream's source must hold

Eingabe

Knoten Typ Zugriff Beschreibung

input/image-address

string

lesen, schreiben

Adresse des Data-Layer-Bildknotens, der gelesen werden soll. Der Reader hängt /data, /width, /height und /pixel-type an. Standardmäßig leer; ein Lauf schlägt dann fehl, bis die Adresse gesetzt ist.

input/parameter

flatbuffers

lesen, schreiben

Erkennungsparameter, Typ types/hdvisionsystems/lumiscan-barcode-reader/code_detect_parameters. Siehe den Hinweis unten.

input/parameter enthält in dieser Version keine Einstellungen - seine Tabelle DetectionParameters ist leer. Der Knoten existiert, damit Feineinstellungen ergänzt werden können, ohne den Knotenbaum zu ändern. Ein Schreibvorgang darauf ändert nichts daran, wie ein Code gelesen wird. Auch der Bild-Stream liest ihn nicht.

Methode

Knoten Blockierend Wirkung

execute

Ja

Liest das Bild an input/image-address und schreibt jeden gefundenen Barcode in output/results. Nimmt kein Argument entgegen - schreiben Sie einen leeren Wert.

Ausgabe

Knoten Typ Zugriff Beschreibung

output/results

flatbuffers

lesen

Jeder Code, den der letzte erfolgreiche Lauf gefunden hat, Typ types/hdvisionsystems/lumiscan-barcode-reader/code_detect_result. Leeres Array, wenn das Bild keinen Code enthielt. Siehe Das Ergebnis.

Bild-Stream (experimentell)

Der Reader liest jeden Frame des Cam-Driver-Streams, den er abonniert, so wie execute ein Bild liest, und veröffentlicht ein Ergebnis pro Frame. Siehe Codes auf einem Bild-Stream lesen.

Knoten Typ Zugriff Beschreibung

control/subscribe/input/enable

bool

lesen, schreiben

Stream-Modus: true lässt den Stream laufen, false stoppt ihn.

control/subscribe/input/address

string

lesen, schreiben

Die eine Quelle: der Stream-Ordner einer Kamera, zum Beispiel hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream. Eine andere Adresse ersetzt sie.

control/subscribe/input/tag

string

lesen, schreiben

Das Tag auf den Ergebnissen des Readers: Der Schritt des Readers in der Lineage jedes Stream-Ergebnisses trägt es. Leer: der Name des Readers, lumiscan-barcode-reader. Ein neues Tag behält die Quelle; das nächste Ergebnis trägt es.

control/subscribe/input/queue-size

uint32

lesen, schreiben

Wie viele Frames warten dürfen, während ein Frame gelesen wird, 1 bis 64.

control/subscribe/input/keep-latest-output

bool

lesen, schreiben

true, um jedes Stream-Ergebnis zusätzlich in output/results zu schreiben.

control/unsubscribe/input/address

string

lesen, schreiben

Die Quelle, die entfernt werden soll, so wie setting/stream/address sie anzeigt.

setting/stream/enable, address, tag, queue-size, keep-latest-output

wie die Eingaben

lesen

Was control/subscribe/execute oder control/unsubscribe/execute zuletzt angewendet hat, so wie barcode-reader.json es unter stream speichert.

setting/settings-hash

string

lesen

Der Hash dessen, womit die Ergebnisse erzeugt werden, als 16 Hexadezimalziffern.

control/subscribe/output/stream/active

bool

lesen

true, solange der Stream läuft.

control/subscribe/output/stream/result

flatbuffers

lesen

Ein Ergebnis pro gelesenem Frame, Typ types/hdvisionsystems/lumiscan-barcode-reader/stream_codes: die lineage des Frames und result, die Tabelle, die auch output/results enthält. Abonnieren Sie den Knoten, um jedes Ergebnis zu erhalten.

control/subscribe/output/stream/last-failure

string

lesen

Warum der letzte Frame, der nicht gelesen werden konnte, fehlgeschlagen ist; nennt die Quelle mit ihrer Adresse.

control/subscribe/output/stream/statistics/elapsed-ms, received-frames, processed-frames, skipped-frames, failed-frames, lost-frames, processing-us

uint64

lesen

Die Zähler des Streams, siehe Die Statistik lesen.

Knoten Blockierend Wirkung

control/subscribe/execute

Ja

Prüft die Eingaben von control/subscribe gemeinsam, speichert sie in barcode-reader.json und wendet sie dann an. Eine Eingabe allein zu schreiben ändert nichts. Abgelehnt bei Stream-Modus ohne Adresse oder bei einer Warteschlangengröße außerhalb von 1 bis 64.

control/unsubscribe/execute

Ja

Entfernt die in control/unsubscribe/input/address genannte Quelle, womit der Stream-Modus endet; das Tag bleibt. Wird wie ein Subscribe in barcode-reader.json gespeichert. Abgelehnt, wenn die Adresse nicht die Quelle ist.

Die Eingaben von control/subscribe sind mit dem vorbelegt, was angewendet ist, und nur control/subscribe/execute wendet sie an. Kann barcode-reader.json nicht geschrieben werden, antworten beide Methoden mit DL_CREATION_FAILED und ändern nichts. Die Ergebnisse eines Methodenaufrufs auf jedem Data Layer sind in Ergebnisse eines Methodenaufrufs aufgeführt.

System (experimentell)

Knoten Typ Zugriff Beschreibung

system/meta/subscription-schema

string

lesen

Was der Knoten, den der Reader abonniert, enthalten muss: ein JSON Schema (draft-04) seiner JSON-Form. Hier der Knoten frame des abonnierten Stream-Ordners, ein stream_image: ein Objekt mit lineage und image. Experimentell.

In dieser Version nicht vorhanden

Wer von den anderen LumiScan-Anwendungen kommt, sollte wissen, was diese Anwendung nicht veröffentlicht:

  • Kein Statusknoten. Es gibt weder status-code noch status-text; ein fehlgeschlagener Lauf wird nur im Protokoll der Anwendung gemeldet und lässt in output/results die Codes des vorherigen Laufs stehen.

  • Kein Daten-Identifier. Es gibt nichts, was zurückgegeben wird; ein Ergebnis lässt sich also nicht dem Request zuordnen, der es erzeugt hat.

  • Kein Ergebnisbild. Die Anwendung rendert nichts - keinen Knoten result-image und keine Methode plot. Verwenden Sie LumiScan Cockpit, um die Codes im Bild eingezeichnet zu sehen.

  • Keine Module. Ein Reader pro Installation, unter dem einen Basispfad oben.

  • Keine Region of Interest. Jeder Lauf durchsucht das ganze Bild.