---
title: "Einstellungen auf dem Data Layer"
product: "LumiScan AI Object Matching"
component: "lumiscan-ai-object-matching-de"
version: "2.1.0"
display_version: "2.1.0.9"
latest_version: true
language: "de"
url: "https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/settings-on-the-data-layer.html"
---

# Einstellungen auf dem Data Layer – LumiScan AI Object Matching

## Data Layer {#data-layer}

LumiScan AI Object Matching bietet seine Funktionen auf dem Data Layer unter `hdvisionsystems/lumiscan-ai-object-matching` an.

Auf ctrlX OS (ctrlX CORE oder ctrlX IPC) nutzt LumiScan AI Object Matching 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 AI Object Matching [LumiScan Keryx](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/keryx.html).

Knotenadressen, Typen und Aufrufmuster sind auf beiden gleich. LumiScan AI Object Matching bietet:

- [ready/request-Handshakes](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/handshake.html)
- [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)

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.

LumiScan AI Object Matching zeigt die Einstellungen, mit denen es gestartet wurde, auf dem Data Layer unter `hdvisionsystems/lumiscan-ai-object-matching/system/settings`. Sie können sie dort ohne Zugriff auf den Konfigurationsordner lesen und dort ändern: Die Anwendung prüft eine Änderung, speichert sie in ihren Einstellungsdateien und verlangt einen Neustart. `hdvisionsystems/lumiscan-ai-object-matching/system/control/restart/execute` startet sie neu.

Das funktioniert auf dem ctrlX Data Layer und auf LumiScan Keryx gleich. Der Knoten `system` der LumiScan-Anwendungen ist allgemein in [Einstellungen, Module und Neustart](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/settings-and-modules.html) beschrieben. Wo eine Methode auf den beiden Data Layern unterschiedlich antwortet, sind unten beide Namen angegeben, als ctrlX Data Layer / LumiScan Keryx.

## Was der Knoten zeigt {#what-the-node-shows}

`settings` enthält ein JSON-Dokument, als Text:

- die Einstellungsdatei der Anwendung, `lumiscan-ai-object-matching.json`, wie sie gelesen wurde;
- in ihrer Liste `modules` den Inhalt jeder Modulkonfigurationsdatei anstelle des Dateinamens. `"$file"` nennt die Datei, aus der jedes Modul stammt;
- eine Moduldatei, die nicht gelesen werden konnte, erscheint als `{"$file": ..., "$error": ...}`, wobei `"$error"` den Grund nennt. Das ist auch der Grund, warum das Modul nicht gestartet ist;
- jeder Wert namens `password` wird als `"***"` angezeigt.

Zum Beispiel:

```json
{
  "$schema": "schemas/lumiscan-ai-object-matching.schema.json",
  "meta": { ... },
  "modules": [
    {
      "$file": "lumiscan-ai-object-matching-example-module.json",
      "$schema": "schemas/lumiscan-ai-object-matching-module.schema.json",
      "name": "ood",
      "neuralNetworkConfig": "models/ood-description.json",
      ...
    }
  ],
  "system": { ... }
}
```

Kommentare in den Dateien werden nicht angezeigt.

Der Knoten zeigt die Dateien so, wie die Anwendung sie beim Start gelesen hat. Der Reset eines Moduls liest seine Moduldatei erneut (siehe [Allgemeines Konzept des Handshakes](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/general-concept-of-handshake.html)), und der Knoten zeigt diese Datei dann so, wie sie gelesen wurde. Ein Reset wendet nur einen Teil der Datei an: das Netz und den Abschnitt `stream`. Was `control/subscribe/execute` und `control/unsubscribe/execute` speichern - den Abschnitt `stream` -, wird hier sofort angezeigt.

## Einstellungen ändern {#changing-the-settings}

Lesen Sie `settings`, ändern Sie, was Sie brauchen, und schreiben Sie das gesamte Dokument zurück. Dabei gelten diese Regeln:

- Jedes Modul behält sein `"$file"`. Es muss eine der Moduldateien der Anwendung nennen: Ein Modul kann hier nicht hinzugefügt werden. Wie Sie eines hinzufügen, siehe [Module hinzufügen und entfernen](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/settings-on-the-data-layer.html#adding-and-removing-modules).
- Ein Modul, das aus `modules` weggelassen wird, ist in `lumiscan-ai-object-matching.json` nicht mehr aufgeführt. Seine Datei bleibt, wo sie ist.
- `"***"` für ein Passwort behält das Passwort, das die Datei enthält. Jeder andere Wert ersetzt es.
- Eine Datei, deren Inhalt sich nicht ändert, wird nicht geschrieben. Eine geänderte Datei wird nur dort geändert, wo sich ihr Inhalt geändert hat: Kommentare und Layout bleiben. Ein neuer Schlüssel oder ein neues Listenelement kommt hinter das letzte dort vorhandene; ein entfernter Schlüssel verschwindet mit seiner Zeile, einschließlich eines Kommentars in dieser Zeile. Nur ein Objekt, das Schlüssel sowohl gewonnen als auch verloren hat, oder eine Liste, die ein Element verloren hat, wird neu geschrieben, ohne die Kommentare darin. Die vorherige Datei bleibt daneben als `<file>.bak` erhalten.
- Ein Schlüssel wie `"_comment"` ist Inhalt wie jeder andere, wird also angezeigt und behalten.

Die Anwendung prüft die Änderung, bevor etwas geschrieben wird: Die Konfigurationsdatei der Anwendung und jede geänderte Modulkonfigurationsdatei müssen die Prüfungen bestehen, die die Anwendung beim Start durchführt. Zum Beispiel muss die Netzbeschreibung existieren. Eine Änderung, die die Prüfung ablehnt oder die kein gültiges JSON ist, wird mit `DL_INVALID_VALUE` / `Rejected` beantwortet. Der Grund steht im Log, und nichts wird geschrieben.

Eine Änderung, die nichts schreibt, antwortet mit `DL_OK` / `Ok` und ändert nichts.

### Neustart erforderlich {#restart-required}

Eine gespeicherte Änderung wirkt erst mit dem nächsten Start. Bis dahin läuft die Anwendung mit Einstellungen, die nicht mehr die ihrer Dateien sind, und stellt deshalb ihre Arbeit ein:

- `hdvisionsystems/lumiscan-ai-object-matching/system/restart-required` ist `true`;
- `hdvisionsystems/lumiscan-ai-object-matching/system/status-text` nennt die geänderten Dateien;
- jedes Modul meldet Status `-5` (`restartRequired`). Es beantwortet keinen Request, und seine `ready`-Signale sind `false`;
- jede `execute`-Methode eines Moduls antwortet mit `DL_RESOURCE_UNAVAILABLE` / `ResourceUnavailable`. Das schließt `reset` ein, das sonst einen Teil der neuen Einstellungen laden würde;
- ein laufender Bild-Stream stoppt.

Nur ein Neustart beendet diesen Zustand. Ein Reset nicht. Das Log enthält die Meldung auf der Stufe Fehler.

Weitere Änderungen sind in der Zwischenzeit möglich. Nach einer Änderung zeigt `settings` die Dateien wie gespeichert, also das, was der nächste Start lädt, nicht das, womit die Anwendung läuft.

Konnte eine Datei nicht gespeichert werden, antwortet der Schreibvorgang mit `DL_CREATION_FAILED` / `CreationFailed`. Zuvor geänderte Dateien bleiben geändert, sodass die Anwendung trotzdem einen Neustart erfordert. Korrigieren Sie die Dateien und starten Sie dann neu.

## Module hinzufügen und entfernen {#adding-and-removing-modules}

Drei Methoden von `hdvisionsystems/lumiscan-ai-object-matching/system` verwalten Module, jede unter `control/<method>/`, so wie `control/restart`. Jede nimmt die ID des Moduls, den Namen seiner Datei ohne `.json`, in `control/<method>/input/module-id` entgegen:

| Methode | Was sie tut |
| --- | --- |
| `create-module` | Schreibt die Moduldatei `<module-id>.json` mit dem JSON aus `control/create-module/input/content`. Die Anwendung prüft es so, wie sie eine geänderte Moduldatei prüft. Das Modul ist noch nicht aktiv, daher muss nichts neu gestartet werden. Eine vorhandene Datei wird nicht überschrieben: Ändern Sie sie über `settings`. |
| `activate-module` | Fügt `<module-id>.json`, das existieren muss, der Liste `modules` hinzu, nachdem die Anwendung das Modul geprüft hat. Es läuft ab dem nächsten Start, sodass die Anwendung danach einen Neustart erfordert (siehe [Neustart erforderlich](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/settings-on-the-data-layer.html#restart-required)). |
| `deactivate-module` | Entfernt `<module-id>.json` aus der Liste `modules`. Die Datei bleibt erhalten, sodass `activate-module` sie wieder aufführen kann. Es stoppt mit dem nächsten Start, sodass die Anwendung danach einen Neustart erfordert. |

> [!IMPORTANT]
> AI Object Matching führt ein Modul aus. `activate-module` wird abgelehnt, solange ein Modul aktiv ist: Deaktivieren Sie es zuerst.

Jede Methode meldet auf `control/<method>/output/status-code` und `control/<method>/output/status-text`:

| Code | Bedeutung |
| --- | --- |
| 1 | Erledigt. |
| -2 | Die Eingabe oder das Modul wurde abgelehnt: `status-text` nennt den Grund. Nichts wurde geschrieben. |
| -6 | Eine Datei konnte nicht geschrieben werden. |
| -9 | `activate-module`: Es gibt keine solche Datei. `deactivate-module`: Das Modul ist nicht aktiv. |
| -10 | `create-module`: Die Datei existiert. `activate-module`: Das Modul ist bereits aktiv. |

Die Methode antwortet mit `DL_OK` / `Ok`, wenn sie erledigt ist, mit `DL_INVALID_VALUE` / `Rejected`, wenn sie abgelehnt hat, und mit `DL_CREATION_FAILED` / `CreationFailed`, wenn eine Datei nicht geschrieben werden konnte. Um zum Beispiel das Modul `ood2` hinzuzufügen:

1. Schreiben Sie das JSON des Moduls auf `hdvisionsystems/lumiscan-ai-object-matching/system/control/create-module/input/content` und `ood2` auf `control/create-module/input/module-id`, und rufen Sie dann `control/create-module/execute` auf.
2. Schreiben Sie `ood2` auf `control/activate-module/input/module-id`, und rufen Sie dann `control/activate-module/execute` auf.
3. Rufen Sie `hdvisionsystems/lumiscan-ai-object-matching/system/control/restart/execute` auf.

## Anwendung neu starten {#restarting}

`hdvisionsystems/lumiscan-ai-object-matching/system/control/restart/execute` beendet die Anwendung und startet sie erneut. Sie liest ihre Einstellungsdateien neu ein, was auch von Hand an den Dateien vorgenommene Änderungen anwendet, und beendet `restart-required`.

- **Auf ctrlX OS:** Die Anwendung beendet sich, und ctrlX OS startet sie nach etwa fünf Sekunden erneut.
- **Auf einem PC:** Die Anwendung startet sich selbst erneut, sobald sie alles freigegeben hat, was sie belegt hatte. Sie verwendet dasselbe Programm, dieselben Argumente und denselben Arbeitsordner. Es ist ein neuer Prozess in derselben Konsole, und seine Ausgabe geht dorthin, wohin die des ersten ging.

Die Methode antwortet mit `DL_OK` / `Ok`, sobald der Neustart begonnen hat. Die Knoten der Anwendung verschwinden dann, bis sie wieder läuft: Warten Sie, bis `hdvisionsystems/lumiscan-ai-object-matching/system/restart-required` wieder gelesen werden kann.

> [!NOTE]
> Ein Neustart ist nicht an eine Änderung gebunden. Er startet auch eine Anwendung neu, deren Einstellungen sich nicht geändert haben.

## Mit einem Beispiel beginnen (PC) {#generate-settings}

Auf einem PC schreibt AI Object Matching ein Beispiel seiner Einstellungen in einen Ordner Ihrer Wahl und beendet sich, ohne zu starten:

**Beispiel (Windows)**

```shell
lumiscan-ai-obj-mat --generate-settings C:\work\ai-object-matching-settings
```

Ohne Ordner (`-g` allein) schreibt es in den aktuellen Ordner. Das Beispiel besteht aus der Einstellungsdatei der Anwendung `lumiscan-ai-object-matching.json`, ihrer Beispiel-Moduldatei `lumiscan-ai-object-matching-example-module.json`, der Netzbeschreibung, die dieses Modul benennt, `models\example-network-description.json`, und den fünf Schemas in `schemas\`, mit denen ein Editor sie prüft. Die Modelldatei, die die Beschreibung benennt, `example.onnx`, gehört nicht dazu: Diese müssen Sie selbst bereitstellen. Vorhandene Dateien werden nie überschrieben: Liegt eine davon bereits im Ordner, wird nichts geschrieben, und AI Object Matching nennt sie.

AI Object Matching nennt dann den Ordner, aus dem es seine Einstellungen liest, standardmäßig (Windows) `C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-ai-obj-mat\etc\lumiscan-ai-object-matching`. Bearbeiten Sie das Beispiel, kopieren Sie es dorthin, und starten Sie AI Object Matching.
