Modulverwaltung
Ein Modul ist eine konfigurierte Instanz der Anwendung. Es besitzt die Erkennungsoperation mit eigenen Einstellungen und eigenen Ergebnissen:
hdvisionsystems/lumiscan-area-detector/<module-id>/detect-area/...
Module können angelegt und entfernt werden, während die Anwendung läuft. Eine frische Installation
bedient ein Modul namens 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-area-detector/system/
Knoten
| Knoten | Typ | Beschreibung |
|---|---|---|
|
string-Array |
Die Module, die derzeit existieren |
|
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, damit 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. Wie sich diese Module von
denen der anderen LumiScan-Apps unterscheiden, ist in
Einstellungen, Module und Neustart
beschrieben.
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 Standard-Eingabewerten, 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 -
|
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.
Eine Einstellung, deren Knoten nach einem Software-Update nicht mehr existiert, wird mit einem Protokolleintrag übersprungen; eine ältere Konfiguration verhindert also nie den Start der Anwendung.
Warum die Adresse auch bei einem Modul ein Modul enthält
Die Ebene <module-id> ist immer vorhanden, damit 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.
Was Module gemeinsam haben
Module sind vollständig unabhängig: Jedes hat seine eigene Kamera, seine eigenen Erkennungseinstellungen und seine eigenen Ergebnisse, und die Anwendung hält keinen gemeinsamen Zustand, um den sie konkurrieren könnten. Die Erkennung braucht kein gespeichertes Referenzbild, es gibt also nichts anwendungsweit zu konfigurieren.