Speicherung der Vorlagen

Vorlagen sind gewöhnliche PNG-Dateien im Konfigurationsverzeichnis der Anwendung. Sie können sie mit normalen Werkzeugen ansehen, kopieren und sichern, und eine anderswo vorbereitete Vorlage kann einfach hochgeladen (ctrlX OS) oder hineinkopiert werden (PC).

Wo sie liegen

Das Konfigurationsverzeichnis und darin ein Ordner templates werden beim ersten Start der Anwendung angelegt, sodass es auf einer ganz neuen Installation einen Ort zum Hochladen oder Kopieren gibt. Wo es liegt, hängt von der Plattform ab.

Auf ctrlX OS

Auf einem ctrlX-Gerät ist das Konfigurationsverzeichnis Teil der aktiven Solution:

/var/snap/rexroth-solutions/common/solutions/activeConfiguration/lumiscan-template-finder

Weil es zur Solution gehört, werden Vorlagen beim Export der Solution mitgenommen und mit ihr auf einem anderen Gerät wiederhergestellt.

Auf einem PC

Unter Windows ist das Konfigurationsverzeichnis %APP_RESOURCE_DIR%\etc\lumiscan-template-finder; ohne APP_RESOURCE_DIR C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-templ-find\etc\lumiscan-template-finder.

Aufbau

<configuration directory>/
├── lumiscan-template-finder.json   module list, chosen template folder, log level
├── module-1.json                   saved settings of one module
└── templates/                      default template folder
    ├── screw.png
    └── bracket.png

Ein Ordner dient der gesamten Anwendung, nicht einer pro Modul: Jedes Modul durchsucht ihn, und create-template schreibt hinein; eine von einem Modul erstellte Vorlage ist also sofort für alle nutzbar.

module-1.json wird von system/save-module-inputs geschrieben - siehe Modulverwaltung.

Log-Level

lumiscan-template-finder.json enthält auch, wie viel die Anwendung protokolliert, im selben Block system, den die anderen LumiScan-Anwendungen verwenden:

{
    "system": {
        "logLevel": "TRACE"
    }
}

Akzeptiert werden TRACE, DEBUG, INFO, WARN, ERROR, FATAL und OFF, von den meisten Details bis zu keinen. TRACE ist der Wert, den Sie setzen, bevor Sie ein Problem für einen Support-Bericht reproduzieren.

Der Level wird einmal, beim Start gelesen; starten Sie die Anwendung nach einer Änderung also neu. Fügen Sie den Block von Hand hinzu: Die Anwendung schreibt in diese Datei nur template-dir und modules und lässt alles andere darin unverändert.

Der Schlüssel ist optional. Ohne ihn protokolliert die Anwendung auf ihrem eingebauten Level DEBUG, und ein Wert, der keiner der obigen Namen ist, wird im Protokoll gemeldet und ändert nichts - ein Tippfehler hier kann die Anwendung nie zum Schweigen bringen.

Den Ordner wählen

system/template-dir                          read-only, the folder in use
system/templates                             read-only, what is in it
system/set-template-dir/execute              change it
system/set-template-dir/input/template-dir   the folder to change to

template-dir und templates sind schreibgeschützte Ausgaben von set-template-dir, sodass die Liste nie von dem Ordner abweichen kann, aus dem sie stammt. Um den Ordner zu wechseln, schreiben Sie set-template-dir/input/template-dir, führen dann die Methode aus und prüfen, dass set-template-dir/output/status-code 1 ist.

Der Ordner muss bereits vorhanden sein. Er wird nicht für Sie angelegt: Der Standardordner templates wird beim Start angelegt; ein fehlender Ordner bedeutet also, dass der Name falsch ist, und stillschweigend einen leeren anzulegen würde den Fehler verbergen. Die Wahl wird gespeichert und beim nächsten Start wiederhergestellt.

Wird der Aufruf abgelehnt, ändert sich nichts - die Anwendung verwendet weiter den bisherigen Ordner.

system/templates

Jede Vorlage im Ordner, ohne die Erweiterung .png, sortiert:

["bracket", "screw"]

Ein Eintrag kann direkt in find-template/input/template-name übernommen werden. Die Liste wird beim Start, nach einem erfolgreichen set-template-dir und beim Speichern einer neuen Vorlage durch create-template aktualisiert.

Sie wird nicht aktualisiert, wenn eine Datei auf anderem Weg ankommt, etwa durch ein Hochladen über die ctrlX-Weboberfläche (ctrlX OS) oder eine in den Ordner kopierte Datei (PC). Führen Sie set-template-dir erneut mit demselben Ordner aus, um eine solche Datei zu übernehmen.

Nur Dateien, die auf .png in Kleinbuchstaben enden, werden aufgeführt. SCREW.PNG wird ignoriert.

Vorlagen auf das Gerät bringen

Aus einem Live-Bild

Eine Vorlage erstellen schreibt die Datei direkt. Keine Dateiübertragung nötig.

Über die ctrlX-Weboberfläche (ctrlX OS)

Der Datenordner der Anwendung ist durchsuchbar, sodass ein vorbereitetes PNG in templates hochgeladen werden kann.

Mit der Solution (ctrlX OS)

Vorlagen, die in der Konfiguration der aktiven Solution gespeichert sind, wandern mit ihr auf ein anderes Gerät.

Durch Kopieren (PC)

Ein vorbereitetes PNG kann in templates im Konfigurationsverzeichnis kopiert werden.

Eine im laufenden Betrieb hinzugefügte Vorlage wird bei der nächsten Suche übernommen - die Datei wird jedes Mal gelesen, nicht beim Start zwischengespeichert; ein Neustart ist also nicht nötig.

Dateiformat

  • PNG, 8-Bit-RGB. Erstellte Vorlagen werden immer so geschrieben, unabhängig vom Pixelformat der Kamera.

  • Ein Graustufen-PNG funktioniert ebenfalls.

  • .png wird angehängt, wenn der Name keine Erweiterung hat; screw und screw.png bezeichnen also dieselbe Datei.

Pfadregeln

Ordner- und Dateinamen werden immer relativ zum Konfigurationsverzeichnis interpretiert. Zwei Dinge werden mit Statuscode -2 abgelehnt:

  • ein absoluter Pfad, etwa /tmp/templates

  • ein Pfad, der aus dem Konfigurationsverzeichnis hinausführt, etwa ../../etc

Die Anwendung kann also immer nur innerhalb ihres eigenen Konfigurationsverzeichnisses lesen und schreiben. Ein Pfad, der darin bleibt, ist in Ordnung, auch wenn er .. enthält.

Fehlerbehebung

Probleme mit dem Vorlagenordner und den Vorlagendateien sind Schritt für Schritt unter Fehlerbehebung beschrieben:

Mit einem Beispiel beginnen (PC)

Auf einem PC schreibt der Template Finder ein Beispiel seiner Einstellungen in einen Ordner Ihrer Wahl und beendet sich, ohne zu starten. Zum Beispiel unter Windows:

lumiscan-templ-find --generate-settings C:\work\template-finder-settings

Ohne Ordner (-g allein) schreibt er in den aktuellen Ordner. Das Beispiel ist die Einstellungsdatei der Anwendung lumiscan-template-finder.json, die das Modul module-1 benennt, und daneben die Moduldatei module-1.json: jede Eingabe von find-template mit ihrem Standardwert, außer der Bildadresse, die auf camera1 des Cam Driver zeigt. Daneben, in schemas/, liegen die Schemas, die die beiden Dateien in "$schema" nennen: lumiscan-template-finder.schema.json, lumiscan-template-finder-module.schema.json und stream.schema.json für den Abschnitt stream einer Moduldatei. Sie beschreiben jeden Schlüssel, den der Template Finder liest - jede Eingabe von find-template mit ihrem Typ, ihrem Standardwert und dem Bereich, den ein Durchlauf akzeptiert -, sodass ein Editor, der JSON Schema versteht, die Dateien prüfen und zeigen kann, was jeder Wert bedeutet. Kopieren Sie den Ordner schemas zusammen mit den Dateien: system/save-module-inputs behält das "$schema" einer Moduldatei bei, die es speichert. Vorhandene Dateien werden nie überschrieben: Liegt eine von ihnen bereits im Ordner, wird nichts geschrieben, und der Template Finder nennt welche.

Der Template Finder nennt dann den Ordner, aus dem er seine Einstellungen liest - unter Windows standardmäßig C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-templ-find\etc\lumiscan-template-finder. Bearbeiten Sie das Beispiel, kopieren Sie es dorthin und starten Sie den Template Finder. Siehe auch Speicherorte der Dateien (Windows).