Modulverwaltung

Ein Modul ist eine konfigurierte Instanz der Anwendung. Ihm gehört die Leseoperation, mit eigenen Einstellungen und Ergebnissen:

hdvisionsystems/lumiscan-text-reader/<module-id>/read-text/...

Module können angelegt und entfernt werden, während die Anwendung läuft. Eine frische 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 -11 abgelehnt, wenn keine Lizenz auf dem Gerät es abdeckt.

Der Verwaltungsknoten liegt außerhalb der Module:

hdvisionsystems/lumiscan-text-reader/system/

Knoten

Knoten Typ Beschreibung

modules

string array

Die Module, die derzeit existieren

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 noch nicht 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, damit beim nächsten Start dieselben Module wieder 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 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

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

Ein Modul zu entfernen 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 ein Modul dieses Namens vorher 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 unveränderten 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 wieder 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.

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 die 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 in allem unabhängig außer bei den Sprachmodellen: Jedes hat seine eigene Kamera, seine eigenen Leseeinstellungen, seine eigene Erkennungs-Engine und seine eigenen Ergebnisse. Die Modelle gelten anwendungsweit - system/tessdata-dir nennt ein Upload-Verzeichnis für die ganze Anwendung, und jedes Modul liest aus demselben Satz, jedes mit seinem eigenen input/language. Siehe Sprachmodelle.