---
title: "Data-Layer-Referenz"
product: "LumiScan Barcode Reader"
component: "lumiscan-barcode-reader-de"
version: "1.0.0"
display_version: "1.0.0.5"
latest_version: true
language: "de"
url: "https://docs.hdvisionsystems.com/de/lumiscan-barcode-reader-de/1.0.0/lumiscan-barcode-reader/datalayer-reference.html"
---

# Data-Layer-Referenz – LumiScan Barcode Reader

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](https://docs.hdvisionsystems.com/de/lumiscan-barcode-reader-de/1.0.0/lumiscan-barcode-reader/datalayer-reference.html#stream) aufgeführten Knoten, und [System](https://docs.hdvisionsystems.com/de/lumiscan-barcode-reader-de/1.0.0/lumiscan-barcode-reader/datalayer-reference.html#system) sagt, was seine Quelle enthalten muss.

## Data Layer {#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](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/ctrlx-data-layer.html).

Auf einem PC mit Windows 11 oder Ubuntu 24.04 nutzt LumiScan Barcode Reader [LumiScan Keryx](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/keryx.html).

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

- [Execute-Methoden](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/execute.html)
- ein [Stream](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/streams.html)-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](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/index.html) 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. |

> [!NOTE]
> `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](https://docs.hdvisionsystems.com/de/lumiscan-barcode-reader-de/1.0.0/lumiscan-barcode-reader/the-result.html). |

## Bild-Stream (experimentell) {#stream}

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](https://docs.hdvisionsystems.com/de/lumiscan-barcode-reader-de/1.0.0/lumiscan-barcode-reader/reading-codes-on-an-image-stream.html).

| 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](https://docs.hdvisionsystems.com/de/lumiscan-barcode-reader-de/1.0.0/lumiscan-barcode-reader/reading-codes-on-an-image-stream.html#statistics). |

| 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](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/status-codes.html#method-results) aufgeführt.

## System (experimentell) {#system}

| 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.
