Einen Code lesen

Ein Lauf hat zwei Schritte: angeben, welches Bild gelesen werden soll, dann execute aufrufen. Alle Pfade unten sind relativ zum Basispfad der Anwendung, hdvisionsystems/lumiscan-barcode-reader.

1. Den Reader auf ein Bild richten

Schreiben Sie die Adresse des Bildknotens in input/image-address:

hdvisionsystems/lumiscan-cam-driver/camera1/output/image

Das ist die Adresse des Bildknotens selbst, nicht die seines Kindknotens data - der Reader hängt beim Lesen /data, /width, /height und /pixel-type an.

Die Adresse wird gemerkt; sie muss also nur neu gesetzt werden, wenn sich die Bildquelle ändert.

2. execute aufrufen

Schreiben Sie einen leeren Wert in die Methode execute.

Der Aufruf ist blockierend: Er kehrt zurück, wenn die Suche abgeschlossen ist. Danach enthält output/results jeden in diesem Bild gefundenen Barcode - siehe Das Ergebnis.

Was ein Lauf tut

  1. Liest die Adresse aus input/image-address.

  2. Liest data, width, height und pixel-type von dieser Adresse und wandelt die Pixel in ein Bild um - mit De-Bayering, wenn das Format es verlangt.

  3. Durchsucht das gesamte Bild nach Barcodes.

  4. Schreibt jeden gefundenen Code in output/results.

Es gibt keine Region of Interest und keine Teilsuche: Jeder Lauf liest den gesamten aktuellen Inhalt des Bildknotens.

Wenn ein Lauf fehlschlägt

Ein Lauf schlägt fehl, wenn das Bild nicht gelesen werden kann - keine Adresse gesetzt, eine Adresse, die sich nicht auflösen lässt, ein fehlender oder zu kurzer data-Puffer oder ein Pixelformat, das der Reader nicht unterstützt. Der Grund wird in das Protokoll der Anwendung geschrieben; auf ctrlX OS ist das das Systemprotokoll.

Ein fehlgeschlagener Lauf lässt output/results unverändert, mit den Codes des vorherigen Laufs. Diese Version veröffentlicht keinen Statusknoten und gibt keinen Identifier zurück; am Ergebnis allein lässt sich also nicht erkennen, ob es aktuell ist. Kommt es auf den Ausgang eines Laufs an, prüfen Sie das Protokoll - oder lesen Sie output/results vorher und nachher und vergleichen Sie.

Ein leeres output/results bedeutet, dass das Bild erfolgreich gelesen wurde und keinen Barcode enthielt.