---
title: "Modulverwaltung"
product: "LumiScan Object Finder"
component: "lumiscan-object-finder-de"
version: "1.1.0"
display_version: "1.1.0.7"
latest_version: true
language: "de"
url: "https://docs.hdvisionsystems.com/de/lumiscan-object-finder-de/1.1.0/lumiscan-object-finder/module-management.html"
---

# Modulverwaltung – LumiScan Object Finder

Ein **Modul** ist eine konfigurierte Instanz der Anwendung. Es besitzt die Matching-Operation mit eigenen Einstellungen und Ergebnissen:

```
hdvisionsystems/lumiscan-object-finder/<module-id>/find-object/...
```

Das Anlegen einer Vorlage ist **nicht** modulbezogen: Es schreibt in das eine Verzeichnis, das alle Module teilen, und liegt daher auf dem System-Knoten als `system/create-object`. Siehe [Ein Objekt anlegen](https://docs.hdvisionsystems.com/de/lumiscan-object-finder-de/1.1.0/lumiscan-object-finder/creating-an-object.html).

Module können angelegt und entfernt werden, während die Anwendung läuft. Eine frische Installation bedient ein Modul mit dem Namen `module-1`.

> [!IMPORTANT]
> **Auf ctrlX OS deckt eine Lizenz zehn Module ab.** Das elfte Modul belegt eine zweite Lizenz desselben Schlüssels, und ein Modul wird mit Status `-11` abgelehnt, wenn keine Lizenz auf dem Gerät es abdeckt.

Der Verwaltungsknoten liegt außerhalb der Module:

```
hdvisionsystems/lumiscan-object-finder/system/
```

## Knoten

| Knoten | Typ | Beschreibung |
| --- | --- | --- |
| `modules` | string array | Die derzeit vorhandenen Module |
| `create-object/execute` | Methode | Schneidet eine Vorlage aus einem Live-Bild aus und speichert sie in `object-dir`, zur Verwendung durch jedes Modul. Siehe [Ein Objekt anlegen](https://docs.hdvisionsystems.com/de/lumiscan-object-finder-de/1.1.0/lumiscan-object-finder/creating-an-object.html) |
| `create-module/execute` | Methode | Legt ein Modul und seinen Knoten-Teilbaum an |
| `create-module/input/module-id` | string | Name des anzulegenden Moduls. Nur Kleinbuchstaben, Ziffern, `-` und `_`; darf nicht `system` sein und darf nicht bereits existieren |
| `remove-module/execute` | Methode | Entfernt ein Modul und seinen Knoten-Teilbaum |
| `remove-module/input/module-id` | string | Name des zu entfernenden Moduls |
| `save-current-modules/execute` | Methode | Speichert die Modulliste dauerhaft, sodass dieselben Module beim nächsten Start erneut angelegt werden |
| `save-module-inputs/execute` | Methode | Speichert die Einstellungen eines Moduls dauerhaft |
| `save-module-inputs/input/module-id` | string | Name des Moduls, dessen Einstellungen gespeichert werden |

Jede Methode hat außerdem `output/status-code` und `output/status-text`.

## Ein Modul anlegen

1. Setzen Sie `system/create-module/input/module-id` auf den neuen Namen
2. Schreiben Sie auf `system/create-module/execute`
3. Prüfen Sie, ob `system/create-module/output/status-code` `1` ist

Das Modul ist sofort aktiv, mit Standardeinstellungen, und erscheint in `system/modules`. Es ist **nicht** dauerhaft, bis die Modulliste gespeichert ist.

Das Entfernen eines Moduls ist das Spiegelbild, über `remove-module`. Ein Modul wird mit `-1` (busy) abgelehnt, solange eine seiner eigenen Operationen läuft, statt dass seine Knoten mitten in der Ausführung zerstört werden.

> [!NOTE]
> Ein jetzt angelegtes Modul ist ein **neues** Modul: Es beginnt mit den Standardeingabewerten, auch wenn vorher ein Modul dieses Namens existierte und seine Einstellungen gespeichert wurden. Diese Einstellungen bleiben auf dem Datenträger, bis das Entfernen dauerhaft gemacht wird - `save-current-modules` löscht die gespeicherten Eingaben jedes Moduls, das die neue Liste nicht mehr nennt, denn bis die Liste geschrieben ist, ist ein Entfernen nicht dauerhaft, und ein Neustart bringt das Modul mit intakten Einstellungen zurück.

## Speichern

Zwei Dinge werden getrennt gespeichert, und beide müssen gespeichert werden, um einen Neustart zu überstehen:

- **die Modulliste** - `save-current-modules`, damit dieselben Module erneut angelegt werden;
- **die Einstellungen jedes Moduls** - `save-module-inputs`, einmal pro Modul.

So speichern Sie die Einstellungen eines Moduls:

1. Setzen Sie `system/save-module-inputs/input/module-id`
2. Schreiben Sie auf `system/save-module-inputs/execute`
3. Prüfen Sie, ob `system/save-module-inputs/output/status-code` `1` ist

Jede Eingabe dieses Moduls wird in das Konfigurationsverzeichnis der Anwendung geschrieben und beim nächsten Start wiederhergestellt. Ergebnisse werden nicht gespeichert - sie werden vom nächsten Durchlauf erzeugt. Die Bild-Stream-Einstellungen eines Moduls werden in derselben Datei gespeichert, durch die eigenen Methoden des Streams - siehe [In der Einstellungsdatei erhalten](https://docs.hdvisionsystems.com/de/lumiscan-object-finder-de/1.1.0/lumiscan-object-finder/processing-an-image-stream.html#saving).

Eine Einstellung, deren Knoten nach einem Software-Update nicht mehr existiert, wird mit einem Protokolleintrag übersprungen, sodass eine ältere Konfiguration die Anwendung nie am Starten hindert.

## Warum die Adresse auch bei einem Modul ein Modul enthält

Die Ebene `<module-id>` ist immer vorhanden, sodass sich Adressen nicht ändern, wenn ein zweites Modul hinzukommt: Ein heute gegen `module-1` geschriebenes Programm funktioniert weiter. Das entspricht auch der Pfadkonvention, die die anderen LumiScan-Anwendungen dokumentieren, siehe [Adressen und Module](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/addresses.html). Wie sich die Module der Finder von denen des Cam Driver, AI Object Matching und Calibration unterscheiden, ist in [Einstellungen, Module und Neustart](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/settings-and-modules.html#registry-apps) zusammengefasst.

## Was zwischen Modulen geteilt wird

Module sind in allem unabhängig außer bei den Vorlagen. `system/object-dir` nennt ein Verzeichnis für die gesamte Anwendung, `system/create-object` schreibt hinein, und jedes Modul durchsucht es, sodass eine Vorlage immer nur einmal angelegt werden muss. Siehe [Objektspeicher](https://docs.hdvisionsystems.com/de/lumiscan-object-finder-de/1.1.0/lumiscan-object-finder/object-storage.html).
