Einen Code lesen

Ein Lauf hat zwei Schritte: angeben, welches Bild gelesen werden soll, und dann execute aufrufen. Alle Pfade unten sind relativ zum Basispfad der Anwendung, hdvisionsystems/lumiscan-dmc-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 Data-Matrix-Code, der in diesem Bild gefunden wurde – 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 verlangt.

  3. Durchsucht das gesamte Bild nach ECC 200 Data-Matrix-Codes.

  4. Schreibt jeden gefundenen Code in output/results.

Es gibt keine Region of Interest und keine Teilsuche: Jeder Lauf liest den vollständigen 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; der Knoten enthält weiterhin die Codes des vorherigen Laufs. Diese Version veröffentlicht keinen Statusknoten und gibt keine Kennung zurück, sodass das Ergebnis allein nicht verrät, 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 Data-Matrix-Code enthielt.