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-aztec-code-reader.

1. Den Reader auf ein Bild richten

Schreiben Sie die Adresse des Bildknotens nach 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 auf 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 Aztec-Code — siehe Das Ergebnis.

Was ein Lauf tut

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

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

  3. Durchsucht das ganze Bild nach Aztec-Codes.

  4. Schreibt jeden gefundenen Code nach 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: das Systemprotokoll von ctrlX OS (ctrlX OS) oder die Konsolenausgabe der App (PC).

Ein fehlgeschlagener Lauf lässt output/results unverändert; der Knoten enthält weiterhin die Codes des vorherigen Laufs. Diese Version veröffentlicht keinen Statusknoten und gibt keinen Identifier zurück, sodass sich am Ergebnis allein nicht erkennen lässt, ob es aktuell ist. Wenn der Ausgang eines Laufs wichtig ist, 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 Aztec-Code enthielt.