Modulverwaltung
Ein Modul ist eine konfigurierte Instanz der Anwendung. Ihm gehört die Matching-Operation, mit eigenen Einstellungen und Ergebnissen:
hdvisionsystems/lumiscan-template-finder/<module-id>/find-template/...
Das Erstellen einer Vorlage ist nicht modulbezogen: Es schreibt in das eine Verzeichnis, das sich alle Module
teilen, und liegt deshalb auf dem Systemknoten als system/create-template. Siehe
Eine Vorlage erstellen.
Module können im laufenden Betrieb angelegt und entfernt werden. Eine neue Installation stellt ein Modul
bereit, mit dem Namen module-1.
|
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 |
Der Verwaltungsknoten liegt außerhalb der Module:
hdvisionsystems/lumiscan-template-finder/system/
Knoten
| Knoten | Typ | Beschreibung |
|---|---|---|
|
string array |
Die derzeit vorhandenen Module |
|
Methode |
Schneidet eine Vorlage aus einem Live-Bild aus und speichert sie in |
|
Methode |
Legt ein Modul und seinen Knoten-Teilbaum an |
|
string |
Name des anzulegenden Moduls. Nur Kleinbuchstaben, Ziffern, |
|
Methode |
Entfernt ein Modul und seinen Knoten-Teilbaum |
|
string |
Name des zu entfernenden Moduls |
|
Methode |
Speichert die Modulliste dauerhaft, sodass beim nächsten Start dieselben Module wieder angelegt werden |
|
Methode |
Speichert die Einstellungen eines Moduls dauerhaft |
|
string |
Name des Moduls, dessen Einstellungen gespeichert werden sollen |
Jede Methode hat außerdem output/status-code und output/status-text.
Ein Modul anlegen
-
Setzen Sie
system/create-module/input/module-idauf den neuen Namen -
Schreiben Sie auf
system/create-module/execute -
Prüfen Sie, dass
system/create-module/output/status-code1ist
Das Modul ist sofort aktiv, mit Standardeinstellungen, und erscheint in system/modules. Es ist nicht
dauerhaft, bis die Modulliste gespeichert wird.
Das Entfernen eines Moduls ist das Spiegelbild, über remove-module. Ein Modul wird mit -1 (belegt)
abgelehnt, solange eine seiner eigenen Operationen läuft, statt dass seine Knoten mitten in der Ausführung
zerstört werden.
|
Ein jetzt angelegtes Modul ist ein neues Modul: Es beginnt mit den Standardwerten der Eingaben, auch wenn ein
Modul dieses Namens vorher existierte und seine Einstellungen gespeichert wurden. Diese Einstellungen bleiben
auf dem Datenträger, bis das Entfernen dauerhaft gemacht wird - |
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 wieder angelegt werden; -
die Einstellungen jedes Moduls -
save-module-inputs, einmal pro Modul.
So speichern Sie die Einstellungen eines Moduls:
-
Setzen Sie
system/save-module-inputs/input/module-id -
Schreiben Sie auf
system/save-module-inputs/execute -
Prüfen Sie, dass
system/save-module-inputs/output/status-code1ist
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, von den eigenen Methoden des Streams - siehe In der Einstellungsdatei gespeichert.
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 einzigen Modul ein Modul enthält
Die Ebene <module-id> ist immer vorhanden, sodass sich die Adressen nicht ändern, wenn ein zweites Modul
hinzukommt: Ein heute für module-1 geschriebenes Programm funktioniert weiter. Das entspricht auch der
Pfadkonvention, die die anderen LumiScan-Anwendungen dokumentieren, siehe
Adressen und Module. Wie sich die Module der Finder von denen des Cam
Driver, von AI Object Matching und Calibration unterscheiden, fasst
Einstellungen, Module und Neustart zusammen.
Was Module gemeinsam haben
Module sind in allem unabhängig außer bei den Vorlagen. system/template-dir benennt ein Verzeichnis für die
gesamte Anwendung, system/create-template schreibt hinein, und jedes Modul durchsucht es; eine Vorlage muss
also nur einmal erstellt werden. Siehe
Speicherung der Vorlagen.