Einen Code lesen

Ein Durchlauf hat zwei Schritte: angeben, welches Bild zu lesen ist, dann execute aufrufen. Alle Pfade unten sind relativ zum Basispfad der Anwendung, hdvisionsystems/lumiscan-qr-code-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 beendet ist. Danach enthält output/results jeden QR-Code, der in diesem Bild gefunden wurde — siehe Das Ergebnis.

Was ein Durchlauf 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 erfordert.

  3. Durchsucht das gesamte Bild nach QR-Codes.

  4. Schreibt jeden gefundenen Code in output/results.

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

Wenn ein Durchlauf fehlschlägt

Ein Durchlauf 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 Anwendungsprotokoll geschrieben: das Systemprotokoll von ctrlX OS (ctrlX OS) oder die Konsolenausgabe der App (PC).

Ein fehlgeschlagener Durchlauf lässt output/results unverändert; es enthält weiterhin die Codes des vorherigen Durchlaufs. 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 Durchlaufs 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 QR-Code enthielt.