Data-Layer-Referenz
Vollständige Liste der Knoten. Alle Pfade beginnen mit:
hdvisionsystems/lumiscan-template-finder/
Data Layer
LumiScan Template Finder bietet seine Funktionen auf dem Data Layer unter hdvisionsystems/lumiscan-template-finder an.
Auf ctrlX OS (ctrlX CORE oder ctrlX IPC) nutzt LumiScan Template Finder den ctrlX Data Layer.
Auf einem PC mit Windows 11 oder Ubuntu 24.04 nutzt LumiScan Template Finder LumiScan Keryx.
Knotenadressen, Typen und Aufrufmuster sind auf beiden gleich. LumiScan Template Finder bietet:
-
ein Stream-Abonnement auf eine Quelle (experimentell)
Wie Adressen aufgebaut sind, wie Funktionen aufgerufen werden, die Statuscodes und die Werkzeuge sind in LumiScan Keryx beschrieben.
Adressmuster
hdvisionsystems/lumiscan-template-finder/
├── system/ application-wide management
│ ├── modules
│ ├── template-dir the one directory templates live in
│ ├── templates what is in it
│ ├── set-template-dir/
│ ├── create-template/ application-wide, not per module
│ ├── create-module/
│ ├── remove-module/
│ ├── save-current-modules/
│ ├── save-module-inputs/
│ └── meta/subscription-schema what the stream's source must hold
└── <module-id>/ one per configured instance, e.g. module-1
├── find-template/
│ ├── execute
│ ├── input/...
│ └── output/{result, status-code, status-text}
├── control/subscribe/ the image stream (experimental)
│ ├── execute
│ ├── input/{enable, address, tag, queue-size, keep-latest-output}
│ └── output/stream/...
├── control/unsubscribe/{execute, input/address}
└── setting/{stream, settings-hash}
Jede Operation hat execute, output/status-code und output/status-text. Alles Weitere unter output/ ist
nur dort vorhanden, wo die Operation mehr zu melden hat.
|
Eine neue Installation stellt ein Modul bereit, |
system
| Knoten | Typ | Beschreibung |
|---|---|---|
|
string array |
Die derzeit vorhandenen Module |
|
string |
Verzeichnis, aus dem jedes Modul Vorlagen liest und in das sie geschrieben werden, relativ zum
Konfigurationsverzeichnis. Schreibgeschützt - ändern Sie es mit |
|
string array |
In diesem Verzeichnis verfügbare Vorlagen, ohne die Erweiterung |
|
Methode |
Richtet die Anwendung auf ein anderes Vorlagenverzeichnis |
|
string |
Verzeichnis, zu dem gewechselt wird. Es muss bereits vorhanden sein |
|
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 |
|
Methode |
Entfernt ein Modul und seinen Knoten-Teilbaum |
|
string |
Name des zu entfernenden Moduls |
|
Methode |
Speichert die Modulliste dauerhaft, sodass dieselben Module nach einem Neustart wieder da sind |
|
Methode |
Speichert die Eingaben eines Moduls dauerhaft |
|
string |
Modul, dessen Eingaben gespeichert werden sollen |
|
string |
Was der Knoten enthalten muss, den ein Modul abonniert, als JSON Schema (draft-04) seiner JSON-Form: hier
ein |
<module-id>/find-template
Eingaben
| Knoten | Typ | Standard | Beschreibung |
|---|---|---|---|
|
string |
(leer) |
Adresse des zu durchsuchenden Bildknotens |
|
string |
(leer) |
Gesuchte Vorlage, wie auf |
|
uint16 |
|
Linker Rand der zu durchsuchenden Region, Pixel |
|
uint16 |
|
Oberer Rand der zu durchsuchenden Region, Pixel |
|
uint16 |
|
Breite der Region. |
|
uint16 |
|
Höhe der Region. |
|
string |
|
|
|
double |
|
Kleinster Skalierungsfaktor |
|
double |
|
Größter Skalierungsfaktor |
|
double |
|
Schrittweite zwischen den Skalierungen |
|
double |
|
Kleinste Drehung, Grad |
|
double |
|
Größte Drehung, Grad |
|
double |
|
Schrittweite zwischen den Drehungen, Grad |
|
double |
|
Kleinster akzeptierter Score, 0-1 |
|
string |
|
Matching-Algorithmus |
|
bool |
|
Matching auf Graustufen |
|
double |
|
Stärke der Unschärfe in X; 0 oder weniger schaltet sie aus |
|
double |
|
Stärke der Unschärfe in Y; 0 bedeutet dieselbe wie in X |
|
uint32 |
|
Breite des Unschärfe-Kernels; 0 leitet sie aus der Stärke ab |
|
uint32 |
|
Höhe des Unschärfe-Kernels; 0 leitet sie aus der Stärke ab |
|
int32 |
|
Faktor der Verkleinerung; 1 schaltet sie aus |
<module-id> Bild-Stream (experimentell)
Die folgenden Adressen sind relativ zu <module-id>/, neben find-template/. Der Stream durchsucht jedes Bild
mit den Eingaben von find-template, alle außer input/input-image-address. Siehe
Vorlagen in einem Bild-Stream finden.
Eingaben
| Knoten | Typ | Standard | Beschreibung |
|---|---|---|---|
|
bool |
wie angewendet |
Stream-Modus: |
|
string |
wie angewendet |
Die eine Quelle, der Stream-Ordner einer Kamera, z. B. |
|
string |
wie angewendet |
Das Tag auf den Ergebnissen des Moduls: Der Schritt des Moduls in der Lineage jedes Stream-Ergebnisses trägt es. Leer: die Modul-ID, z. B. |
|
uint32 |
wie angewendet |
Bilder, die warten dürfen, während eines durchsucht wird, 1-64 |
|
bool |
wie angewendet |
|
|
string |
(leer) |
Die zu entfernende Quelle, wie |
Methoden
| Knoten | Typ | Beschreibung |
|---|---|---|
|
Methode |
Prüft die Eingaben von |
|
Methode |
Entfernt die von |
Einstellungen und Ausgaben
| Knoten | Typ | Beschreibung |
|---|---|---|
|
wie die Eingaben |
Was |
|
string |
Hash dessen, womit die Ergebnisse erzeugt werden, 16 Hexadezimalziffern. Schreibgeschützt |
|
bool |
|
|
flatbuffer |
Ein |
|
string |
Warum das letzte Bild, das nicht durchsucht werden konnte, fehlgeschlagen ist, mit der Quelle anhand ihrer Adresse |
|
uint64 |
Millisekunden seit dem Start des Streams |
|
uint64 |
Bilder, die das Abonnement geliefert hat |
|
uint64 |
Durchsuchte Bilder, jedes mit einem Ergebnis |
|
uint64 |
Bilder, die aus der Warteschlange gedrängt wurden oder warteten, als die Quelle ersetzt oder entfernt wurde |
|
uint64 |
Bilder, die nicht durchsucht werden konnten |
|
uint64 |
Bilder, die verloren gingen, bevor sie ankamen |
|
uint64 |
Suchzeit aller durchsuchten Bilder, summiert, Mikrosekunden |
Die Eingaben von control/subscribe beginnen mit dem, was angewendet ist, und nur control/subscribe/execute
wendet sie an. control/subscribe/execute wird für den Stream-Modus ohne Adresse oder mit einer
Warteschlangengröße außerhalb von 1-64 abgelehnt, control/unsubscribe/execute für eine Adresse, die nicht
die Quelle ist (Rejected, ctrlX: DL_INVALID_VALUE). Kann <module-id>.json nicht geschrieben werden,
antworten beide mit CreationFailed (ctrlX: DL_CREATION_FAILED) und ändern nichts. Die Stream-Knoten sind in
jedem Konsumenten gleich, siehe Streams.
system/create-template
Eingaben
| Knoten | Typ | Standard | Beschreibung |
|---|---|---|---|
|
string |
(leer) |
Adresse des Bildknotens, aus dem ausgeschnitten wird |
|
int32 |
|
Linker Rand der Region, Pixel |
|
int32 |
|
Oberer Rand der Region, Pixel |
|
int32 |
|
Breite der Region, Pixel |
|
int32 |
|
Höhe der Region, Pixel |
|
string |
(leer) |
Name, unter dem in |
Ergebnis-FlatBuffer
output/result ist ein hdv.template_match.Result:
| Feld | Typ | Beschreibung |
|---|---|---|
|
Array aus |
Ein Eintrag pro Vorkommen, nach Konfidenz sortiert |
|
ulong |
Index des besten Treffers; immer 0 |
|
float |
Konfidenz des besten Treffers; 0.0, wenn keiner |
|
string |
Verwendete Vorlage |
|
string |
Verwendeter Algorithmus |
|
float |
Angewendeter Schwellwert |
|
uint |
Breite des durchsuchten Bilds |
|
uint |
Höhe des durchsuchten Bilds |
|
ulong |
Mikrosekunden seit der Epoche |
Match:
| Feld | Typ | Beschreibung |
|---|---|---|
|
struct |
|
|
float |
Score, 0-1 |
|
float |
Skalierungsfaktor dieses Treffers |
|
float |
Drehung dieses Treffers, Grad |
control/subscribe/output/stream/result ist ein hdv.stream.StreamTemplateMatches
(stream_template_matches, registriert als
types/hdvisionsystems/lumiscan-template-finder/stream_template_matches): lineage, woher das Bild kam, und
result, das obige hdv.template_match.Result.
Erwarteter Bildknoten unter input-image-address
Die Adresse muss einen Bildknoten einer anderen Anwendung auf demselben Gerät benennen - derselben ctrlX CORE oder demselben ctrlX IPC oder demselben PC -, der Folgendes bereitstellt:
| Kindknoten | Typ | Beschreibung |
|---|---|---|
|
Array aus uint8 |
Rohe Pixeldaten |
|
uint64 |
Breite in Pixeln |
|
uint64 |
Höhe in Pixeln |
|
string |
Name des GenICam-Pixelformats |
Eine Adresse innerhalb dieser Anwendung wird mit Statuscode -2 abgelehnt.
Statuscodes
Die vollständige Tabelle steht in Ausführungsstatus.
Negativ ist immer ein Fehler; 0 bedeutet noch nicht ausgeführt; positiv bedeutet Erfolg. Das sind die eigenen
Codes der Finder, nicht der Modulstatus der anderen LumiScan-Apps, siehe
Ausführungsstatus der Finder.