Fehlerbehebung
Diese Seite beschreibt Probleme und Fehlermeldungen von LumiScan Template Finder, nach Kategorien geordnet. Beginnen Sie mit den allgemeinen Prüfungen und suchen Sie dann unten Ihr Symptom: Jedes Problem nennt die Symptome, die möglichen Ursachen, eine Diagnose und die Lösung. Probleme des Data Layer selbst sind in der Fehlerbehebung des Data Layer beschrieben, Lizenzprobleme in der Fehlerbehebung der Lizenzierung.
Allgemeine Prüfungen
-
Prüfen Sie den Statuscode. Lesen Sie
output/status-codeder Operation, die fehlgeschlagen ist. Erwartet:1. Ein Wert größer als 0 bedeutet Erfolg,0bedeutet, dass die Operation seit dem Start der Anwendung nicht ausgeführt wurde, und ein Wert kleiner als 0 bedeutet, dass sie fehlgeschlagen ist und nichts erzeugt hat. Die Codes stehen in Ausführungsstatus. -
Lesen Sie den Statustext. Lesen Sie
output/status-textderselben Operation. Er beginnt mitok:odererror:und nennt jede ungültige Eingabe und ihren Wert. Ein fehlgeschlagener Schreibvorgang aufexecuteantwortet nur mit einem Statuscode (über REST ein bloßes400); der Grund steht also nur aufoutput/status-text. -
Lesen Sie das Protokoll der Anwendung. Es enthält denselben Text, mit einer eigenen Warnzeile für jede ungültige Eingabe: auf ctrlX OS im ctrlX Logbook oder mit
journalctl, auf einem PC in der Konsolenausgabe der Anwendung. Wie viel protokolliert wird, legtlogLevelim Blocksystemvonlumiscan-template-finder.jsonfest (TRACE,DEBUG,INFO,WARN,ERROR,FATALoderOFF); ohne den Schlüssel protokolliert die Anwendung aufDEBUG. Der Level wird einmal, beim Start, gelesen; starten Sie die Anwendung nach einer Änderung also neu.TRACEist der Wert, den Sie setzen, bevor Sie ein Problem für einen Support-Bericht reproduzieren. Siehe Speicherung der Vorlagen. -
Prüfen Sie die Bildquelle. Die Kameraanwendung, normalerweise LumiScan Cam Driver, muss auf demselben Gerät laufen - demselben ctrlX CORE oder ctrlX IPC oder demselben PC - und ein Bild aufgenommen haben. Ein Zugriff auf einen entfernten Data Layer wird nicht unterstützt. Erwartet: Der in
input/input-image-addressgenannte Knoten stelltdata,width,heightundpixel-typebereit. -
Prüfen Sie die Reihenfolge der Aufrufe. Ein Modul führt jeweils eine Operation aus, und jeder Durchlauf leert beim Start seine Ausgaben. Erwartet: Ihr Programm wartet, bis
executezurückkehrt, liest die Ausgaben und löst erst dann den nächsten Durchlauf aus. -
Prüfen Sie die Lizenz (ctrlX OS). Erwartet: Die Anwendung läuft nach dem Start weiter. Ohne Lizenz beendet sie sich kurz nach dem Start; siehe Problem: Die Anwendung beendet sich kurz nach dem Start.
Das Konfigurationsverzeichnis enthält lumiscan-template-finder.json, die Moduldateien <module-id>.json, den Ordner templates und settings-history/:
| Plattform | Konfigurationsverzeichnis |
|---|---|
ctrlX OS |
|
PC (Windows) |
|
Statuscodes und Fehlermeldungen
Problem: Statuscode -1 (belegt)
output/status-code von find-template ist -1. Der Schreibvorgang auf execute antwortet mit TooManyOperations (ctrlX: DL_TOO_MANY_OPERATIONS). Es wurde nichts getan, und output/result behält seinen Wert. Bei einer streamenden Kamera passiert das häufig. Auch system/remove-module kann mit -1 (belegt) antworten.
-
Eine andere Operation desselben Moduls lief noch. Ein zweiter Aufruf wird nicht in eine Warteschlange gestellt; er kehrt sofort zurück und tut nichts.
-
Der Bild-Stream des Moduls durchsucht gerade ein Bild. Der Stream und
find-templatelaufen auf einem Modul nie gleichzeitig.
-
Prüfen Sie in Ihrem Programm, ob es erneut auf
executedesselben Moduls schreibt, bevor der vorherige Schreibvorgang zurückgekehrt ist. Erwartet: ein Aufruf pro Modul zur Zeit. -
Lesen Sie
<module-id>/control/subscribe/output/stream/active.truebedeutet, dass der Stream dieses Moduls läuft.
-
Wenn eine andere Operation noch lief: Warten Sie, bis das laufende
executezurückkehrt, und rufen Sie die Methode dann erneut auf. Die Sperre gilt pro Modul, andere Module werden also nicht aufgehalten. -
Wenn der Stream des Moduls läuft:
-
Stoppen Sie den Stream, bevor Sie die Methode aufrufen: Setzen Sie
control/subscribe/input/enableauffalseund schreiben Sie aufcontrol/subscribe/execute. Oder rufen Sie die Methode erneut auf. -
Um stattdessen die Ergebnisse des Streams zu verwenden, schalten Sie
control/subscribe/input/keep-latest-outputein und lesenfind-template/output/result.
-
-
Wenn
system/remove-modulemit belegt antwortet: Stoppen Sie zuerst den Stream des Moduls. Das Entfernen eines Moduls stoppt seinen Stream.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit der Modul-ID, der Antwort des Schreibvorgangs auf execute und dem Wert von control/subscribe/output/stream/active.
Problem: Statuscode -2 (ungültige Eingabe)
output/status-code ist -2. output/status-text beginnt mit error: und nennt jede fehlerhafte Eingabe und ihren Wert, zum Beispiel min-scale must be > 0, got 0. Jede wird zusätzlich als Warnung protokolliert.
-
Eine erforderliche Eingabe ist leer:
input/input-image-addressoderinput/template-name. -
Der Matching-Modus ist falsch geschrieben.
input/match-modeakzeptiertTM_SQDIFF,TM_SQDIFF_NORMED,TM_CCORR,TM_CCORR_NORMED,TM_CCOEFFundTM_CCOEFF_NORMED. -
Ein Suchparameter liegt außerhalb des zulässigen Bereichs, zum Beispiel
input/scale/min-scaleoderinput/rotation/step-rotnicht größer als 0 oder eine Drehung außerhalb von 0 bis 360. -
Die Bildadresse zeigt auf diese Anwendung selbst.
-
Ein Ordner- oder Dateiname ist ein absoluter Pfad, etwa
/tmp/templates, oder ein Pfad, der aus dem Konfigurationsverzeichnis hinausführt, etwa../../etc.
-
Lesen Sie
output/status-textder Operation. Erwartet: Er nennt jede fehlerhafte Eingabe und ihren Wert. -
Lesen Sie das Protokoll der Anwendung. Jede fehlerhafte Eingabe wird als Warnung protokolliert.
-
Wenn eine erforderliche Eingabe leer ist: Setzen Sie sie.
input/template-namenimmt einen Eintrag vonsystem/templates. -
Wenn der Matching-Modus falsch geschrieben ist: Schreiben Sie einen der akzeptierten Namen auf
input/match-mode. -
Wenn ein Suchparameter außerhalb des Bereichs liegt: Korrigieren Sie ihn, siehe Die Suche abstimmen.
-
Wenn die Bildadresse auf diese Anwendung zeigt: Setzen Sie
input/input-image-addressauf den Bildknoten der Kameraanwendung, zum Beispielhdvisionsystems/lumiscan-cam-driver/camera1/output/image. -
Wenn ein Pfad absolut ist oder das Konfigurationsverzeichnis verlässt: Geben Sie ihn relativ zum Konfigurationsverzeichnis an. Ein Pfad, der innerhalb bleibt, ist auch dann in Ordnung, wenn er
..enthält.
Führen Sie die Operation dann erneut aus. Erwartet: output/status-code ist 1. Siehe Ausführungsstatus und Speicherung der Vorlagen.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von output/status-text.
Problem: Statuscode -3 (Bild konnte nicht gelesen werden)
output/status-code von find-template oder system/create-template ist -3.
-
Die Kameraanwendung läuft nicht, oder sie läuft auf einem anderen Gerät.
-
Die Kameraanwendung hat noch kein Bild aufgenommen.
-
Die Adresse in
input/input-image-addressist falsch. -
Der Bildknoten an der Adresse fehlt, ist leer oder inkonsistent.
-
Das Bild verwendet ein nicht unterstütztes Pixelformat. Unterstützt werden
Mono8,Mono12,RGB8,RGB12,BGR8,BGR12,BayerGR8,BayerGR12,BayerRG8undBayerRG12.
-
Prüfen Sie, ob die Kameraanwendung, normalerweise LumiScan Cam Driver, auf demselben Gerät läuft. Erwartet: Sie läuft auf demselben ctrlX CORE oder ctrlX IPC oder auf demselben PC.
-
Vergleichen Sie
input/input-image-addressmit der Adresse des Bildknotens der Kamera, zum Beispielhdvisionsystems/lumiscan-cam-driver/camera1/output/image. Erwartet: identisch.system/create-templateundfind-templatehaben jeweils einen eigenen Adressknoten. -
Lesen Sie
width,heightundpixel-typedes Bildknotens. Erwartet: Werte größer als 0 und einpixel-typeaus der obigen Liste.
-
Wenn die Kameraanwendung nicht läuft: Starten Sie sie auf demselben Gerät und nehmen Sie ein Bild auf.
-
Wenn noch kein Bild aufgenommen wurde: Nehmen Sie in der Kameraanwendung ein Bild auf.
-
Wenn die Adresse falsch ist: Korrigieren Sie
input/input-image-address. -
Wenn das Pixelformat nicht unterstützt wird: Verwenden Sie eines der unterstützten Pixelformate, siehe Voraussetzungen.
Führen Sie die Operation dann erneut aus. Erwartet: output/status-code ist 1.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von output/status-text, der Bildadresse und dem pixel-type des Bildknotens.
Problem: Statuscode -4 (Quelle nicht gefunden)
output/status-code von find-template ist -4. output/status-text nennt ein Verzeichnis oder eine Datei.
-
Die Meldung nennt ein Verzeichnis: Der Vorlagenordner existiert nicht. Der Standardordner
templateswird beim Start angelegt; entweder wurde er gelöscht, oder der Ordnername ist falsch. -
Die Meldung nennt eine Datei: Der Ordner existiert, enthält aber keine solche Datei.
-
Die Datei ist vorhanden, wird aber nicht gefunden: Sie liegt in einem anderen Ordner als dem verwendeten. Alle Module teilen sich einen Vorlagenordner.
-
Lesen Sie
output/status-text. Erwartet: Er nennt ein Verzeichnis oder eine Datei. -
Vergleichen Sie
input/template-namemitsystem/templates. Erwartet: Der Name ist aufgeführt, in derselben Schreibweise. -
Lesen Sie
system/template-dir. Erwartet: Es nennt den Ordner, der die Datei enthält.
-
Wenn der Ordner nicht existiert: Wechseln Sie mit
system/set-template-dirzu einem vorhandenen Ordner, oder korrigieren Sie seinen Namen. Der Ordner muss bereits vorhanden sein; er wird nicht für Sie angelegt. -
Wenn der Ordner keine solche Datei enthält: Korrigieren Sie die Schreibweise von
input/template-name, oder erstellen Sie die Vorlage mitsystem/create-template. -
Wenn die Datei in einem anderen Ordner liegt: Verschieben Sie die Datei in den Ordner, den
system/template-dirnennt, oder wechseln Sie mitsystem/set-template-dir.
Führen Sie find-template dann erneut aus. Erwartet: output/status-code ist 1. Siehe Speicherung der Vorlagen.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von output/status-text, input/template-name, system/template-dir und system/templates.
Problem: Die Ausschnittsregion passt nicht in das Bild
system/create-template antwortet mit Status -5 (ungültige Ausschnittsregion), und output/status-text nennt die tatsächliche Bildgröße. Bei find-template nennt output/status-text die Eingabe und die Grenze, die sie verletzt hat, zum Beispiel:
crop/startX + crop/width (100 + 541 = 641) exceeds the image width 640
Im Bild-Stream schlägt das Bild fehl, und control/subscribe/output/stream/last-failure nennt eine Ausschnittsregion, die nicht in das Bild passt.
-
Die Region reicht über einen Rand des Bildes hinaus. Eine Region, die über einen Rand hinausreicht, wird abgelehnt und nicht beschnitten.
-
Bei
find-templateist die Region kleiner als die Vorlage. Das wird mit Status-5abgelehnt. -
Bei
system/create-templateistinput/crop/widthoderinput/crop/height0. Beide müssen größer als 0 sein.
-
Lesen Sie die Bildgröße aus der Meldung ab, oder
widthundheightdes Bildknotens. -
Addieren Sie
input/crop/startXundinput/crop/widthsowieinput/crop/startYundinput/crop/height. Erwartet: Die Summen sind nicht größer als die Bildbreite und die Bildhöhe. -
Bei
find-templatevergleichen Sie die Region mit der Größe der Vorlage. Erwartet: Die Region ist mindestens so groß wie die Vorlage.
-
Wenn die Region über einen Rand hinausreicht: Korrigieren Sie
input/crop/startX,startY,widthoderheight, sodass die Region in das Bild passt. Eine Breite oder Höhe von null reicht bis zum rechten bzw. unteren Rand. -
Wenn die Region kleiner als die Vorlage ist: Vergrößern Sie die Region.
-
Wenn Breite oder Höhe 0 ist (
create-template): Setzen Sie beide auf die Größe der Region, größer als 0.
Führen Sie die Operation dann erneut aus. Erwartet: output/status-code ist 1. Siehe Eine Vorlage finden und Eine Vorlage erstellen.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von output/status-text und den vier Werten unter input/crop/.
Problem: Statuscode -6 (Schreiben fehlgeschlagen)
output/status-code von system/save-module-inputs oder system/create-template ist -6.
-
Eine Datei konnte nicht geschrieben werden - meist ein Berechtigungsproblem oder ein voller Datenträger.
-
Das Konfigurationsverzeichnis ist nicht beschreibbar. Dasselbe Problem wird beim Start im Protokoll gemeldet.
-
Lesen Sie
output/status-textder Operation. Erwartet: Er nennt die Datei, die nicht geschrieben werden konnte. -
Lesen Sie das Protokoll der Anwendung beim Start. Erwartet: keine Meldung, dass das Konfigurationsverzeichnis nicht beschreibbar ist.
-
Prüfen Sie das Konfigurationsverzeichnis (siehe Allgemeine Prüfungen). Erwartet: Es existiert, und die Anwendung kann hineinschreiben.
-
Wenn das Konfigurationsverzeichnis nicht beschreibbar ist: Machen Sie es für die Anwendung beschreibbar.
-
Wenn der Datenträger voll ist: Geben Sie auf dem Gerät Speicherplatz frei.
Führen Sie die Operation dann erneut aus. Erwartet: output/status-code ist 1.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von output/status-text und dem Protokoll des Starts.
Suchergebnisse
Problem: Das Ergebnis ist leer, obwohl der Statuscode 1 ist
output/status-code von find-template ist 1, aber matches in output/result ist leer, und best_score ist 0.0.
Eine leere Liste matches mit Statuscode 1 bedeutet, dass die Suche korrekt gelaufen ist und nichts gefunden hat. Das ist ein normales Ergebnis: Das Teil ist nicht da oder nicht ähnlich genug, um den Schwellwert zu erreichen. Wird ein vorhandenes Teil nicht gefunden:
-
Die Vorlage wurde aus der falschen Region oder dem falschen Bild ausgeschnitten, siehe Problem: Die Vorlage wird nicht einmal in dem Bild gefunden, aus dem sie ausgeschnitten wurde.
-
Das Teil ist gedreht oder liegt in einem anderen Abstand als in der Vorlage, siehe Problem: Das Teil wird nicht gefunden, wenn es gedreht ist oder in einem anderen Abstand liegt.
-
input/cropschließt das Teil aus. -
Die Vorlage berührt den Bildrand. Eine solche Vorlage kann nahe dem gegenüberliegenden Rand nicht gefunden werden, weil die Vorlage vollständig in das durchsuchte Bild passen muss.
-
Die Vorlage enthält Hintergrund, der sich von Teil zu Teil ändert; er senkt jeden Score.
-
Lesen Sie
output/status-code. Erwartet:1. Ist er negativ, ist der Durchlauf fehlgeschlagen: Lesen Sieoutput/status-textund sehen Sie sich die Einträge unter Statuscodes und Fehlermeldungen an. -
Durchsuchen Sie das Bild, aus dem die Vorlage ausgeschnitten wurde. Erwartet: ein Treffer in der Mitte der angegebenen Region, mit einer Konfidenz nahe 1.
-
Vergleichen Sie Ausrichtung und Größe des Teils im Bild mit der Vorlage.
-
Lesen Sie die vier Werte unter
input/crop/. Erwartet: alle0(das ganze Bild) oder eine Region, die das Teil enthält. -
Lesen Sie
match_threshinoutput/result: den angewendeten Schwellwert (Standard0.9).
-
Wenn die Vorlage nicht in ihrem eigenen Bild gefunden wird: Folgen Sie Problem: Die Vorlage wird nicht einmal in dem Bild gefunden, aus dem sie ausgeschnitten wurde.
-
Wenn das Teil gedreht ist oder in einem anderen Abstand liegt: Folgen Sie Problem: Das Teil wird nicht gefunden, wenn es gedreht ist oder in einem anderen Abstand liegt.
-
Wenn der Ausschnitt das Teil ausschließt: Vergrößern Sie die Region, oder setzen Sie alle vier Werte unter
input/crop/auf0. -
Wenn die Vorlage den Bildrand berührt oder wechselnden Hintergrund enthält: Erstellen Sie die Vorlage erneut aus einer Region, die vom Bildrand Abstand hält, das enthält, was das Teil kennzeichnet, und das ausschließt, was variiert. Siehe Eine Vorlage erstellen.
-
Wenn das Teil nicht im Bild war: Das Ergebnis ist korrekt; es muss nichts geändert werden.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit input/template-name, der Vorlagendatei und output/result.
Problem: Die Vorlage wird nicht einmal in dem Bild gefunden, aus dem sie ausgeschnitten wurde
Eine Suche in genau dem Bild, aus dem die Vorlage ausgeschnitten wurde, meldet den Treffer nicht in der Mitte der angegebenen Region mit einer Konfidenz nahe 1.
-
Die beim Erstellen der Vorlage angegebene Region ist falsch.
-
Die Bildadresse ist falsch: Die Vorlage wurde aus einem anderen Bild ausgeschnitten als dem durchsuchten.
system/create-template/input/input-image-addressund<module>/find-template/input/input-image-addresssind getrennte Knoten.
Die Suchparameter sind nicht die Ursache, und keine Abstimmung behebt es.
-
Vergleichen Sie
system/create-template/input/input-image-addressmit<module>/find-template/input/input-image-address. Erwartet: derselbe Bildknoten. -
Lesen Sie die vier Werte unter
system/create-template/input/crop/. Erwartet: eine Region, die das Teil in diesem Bild enthält. -
Lesen Sie
system/create-template/output/template-path. Erwartet: die Datei, nach der Sie suchen, zum Beispieltemplates/screw.png.
-
Korrigieren Sie
input/input-image-addressund die Ausschnittsregion, und erstellen Sie die Vorlage dann erneut. Bei einer Suche im selben Bild muss sie genau in der Mitte der angegebenen Region gefunden werden - (195, 250) für eine Region, die bei (100, 200) beginnt und 190 x 100 Pixel groß ist -, mit einer Konfidenz nahe 1.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Eingaben von system/create-template, der Vorlagendatei und output/result.
Problem: Das Teil wird nicht gefunden, wenn es gedreht ist oder in einem anderen Abstand liegt
Die Vorlage wird in dem Bild gefunden, aus dem sie ausgeschnitten wurde, aber nicht in einem neuen Bild, in dem das Teil gedreht ist oder näher an der Kamera oder weiter von ihr entfernt liegt.
-
Die Standardwerte suchen die Vorlage nur in ihrer ursprünglichen Größe und Ausrichtung.
-
Lesen Sie
input/rotation/min-rot,max-rotundinput/scale/min-scale,max-scaledes Moduls. Bei den Standardwerten (0.0,0.0,1.0,1.0) werden nur die ursprüngliche Ausrichtung und Größe gesucht. -
Vergleichen Sie das Teil im neuen Bild mit der Vorlage. Erwartet: Sie wissen, ob es in der Ausrichtung, in der Größe oder in beidem variiert.
Erweitern Sie nur, was tatsächlich variiert, einen Bereich nach dem anderen, und hören Sie auf, sobald das Teil zuverlässig gefunden wird:
-
Wenn sich das Teil dreht: Setzen Sie
input/rotation/max-rot(zum Beispiel360) mit einem grobeninput/rotation/step-rot(zum Beispiel5). -
Wenn sich der Abstand des Teils ändert: Setzen Sie
input/scale/min-scale,input/scale/max-scaleundinput/scale/step-scale(zum Beispiel0.9,1.1,0.05).
Jede Kombination aus Skalierung und Drehung ist ein eigener Durchlauf über das Bild; 72 Drehungen und 5 Skalierungen sind also 360 Durchläufe. Liefert ein weiterer Bereich Treffer an falschen Stellen, siehe Problem: Eine weite Suche meldet schwache Treffer an falschen Stellen. Siehe Die Suche abstimmen.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Eingaben für Skalierung und Drehung und output/result.
Problem: Eine weite Suche meldet schwache Treffer an falschen Stellen
Mit einem Skalierungs- oder Drehungsbereich enthält matches den echten Treffer und daneben Treffer an Stellen, die nichts damit zu tun haben.
-
Die Konfidenz ist kein absolutes Maß. Die Score-Karte wird für jeden Skalierungs-/Drehungsschritt neu skaliert, sodass die beste Stelle jedes Schritts eine Konfidenz nahe 1 erreicht und
input/match-threshpro Schritt wirkt. Nur Wiederholungen an derselben Stelle werden entfernt; ein schwacher Treffer an einer anderen Stelle kann also weiterhin erscheinen.
-
Lesen Sie
matches[0]undbest_score. Erwartet: Der echte Treffer ist der Eintrag mit der höchsten Konfidenz, an Index 0. -
Lesen Sie die Eingaben für Skalierung und Drehung. Eine Suche mit einer Skalierung und einer Drehung verhält sich wie erwartet; ein Bereich kann Scheintreffer melden.
-
Erhöhen Sie
input/match-thresh, zum Beispiel auf0.95, oder verkleinern Sie den Skalierungs- und Drehungsbereich.
Siehe Die Suche abstimmen.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Eingaben von find-template und output/result.
Problem: output/result ist leer, obwohl die Suche eben noch funktioniert hat
Ein Durchlauf hat Treffer erzeugt, und kurz danach ist output/result leer.
-
Der nächste Durchlauf hat begonnen. Jeder Durchlauf löscht seine eigenen Ausgaben, sobald er beginnt, noch vor allem, was fehlschlagen kann. Wer
executeerneut auslöst und dann liest, erhält den neuen Durchlauf - möglicherweise fehlgeschlagen oder noch leer -, nicht den vorherigen. -
Ein mit
-1(belegt) abgelehnter Aufruf löscht nichts; wurde der zweite Aufruf abgelehnt, ist das also nicht die Ursache.
-
Prüfen Sie die Reihenfolge der Aufrufe in Ihrem Programm. Erwartet: Es liest
output/result, bevor es das nächsteexecuteauslöst. -
Lesen Sie
output/status-codedes letzten Durchlaufs. Ein negativer Wert bedeutet, dass dieser Durchlauf fehlgeschlagen ist undoutput/resultleer hinterlassen hat.
-
Wenn der nächste Durchlauf zu früh begonnen hat: Warten Sie, bis
executezurückkehrt, lesen Sie die Ausgaben, und lösen Sie erst dann den nächsten Durchlauf aus. -
Wenn der letzte Durchlauf fehlgeschlagen ist: Folgen Sie dem Eintrag zu seinem Statuscode.
Siehe Eine Methode ausführen.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit der Abfolge der Aufrufe Ihres Programms.
Vorlagen
Problem: Die Vorlagendatei liegt auf dem Gerät, fehlt aber in system/templates
Eine .png-Datei liegt im Vorlagenordner, aber system/templates führt sie nicht auf.
-
Die Datei ist auf anderem Weg in den Ordner gelangt - durch ein Hochladen über die ctrlX-Weboberfläche auf ctrlX OS oder durch Kopieren in den Ordner auf einem PC -, und die Liste wurde nicht aktualisiert. Die Liste wird beim Start aktualisiert, wenn
system/set-template-direrfolgreich ist und wennsystem/create-templateeine Vorlage speichert. -
Die Erweiterung ist nicht
.pngin Kleinbuchstaben.SCREW.PNGwird ignoriert. -
Die Datei liegt in einem anderen Ordner als dem verwendeten.
-
Lesen Sie
system/template-dir. Erwartet: Es nennt den Ordner, der die Datei enthält. -
Prüfen Sie den Dateinamen. Erwartet: Er endet auf
.pngin Kleinbuchstaben.
-
Wenn die Erweiterung nicht
.pngin Kleinbuchstaben ist: Benennen Sie die Datei mit.pngin Kleinbuchstaben um. -
Wenn die Liste nicht aktualisiert wurde: Führen Sie
system/set-template-direrneut mit demselben Ordner aus. Erwartet: Sein Statuscode ist1, undsystem/templatesführt die Vorlage auf.
Eine Vorlage, die bei laufender Anwendung hinzugefügt wird, kann sofort gesucht werden: Die Datei wird jedes Mal gelesen, nicht beim Start zwischengespeichert. Siehe Speicherung der Vorlagen.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit system/template-dir, system/templates und dem Dateinamen.
Bild-Stream (experimentell)
Problem: Der Bild-Stream liefert keine Ergebnisse
control/subscribe/output/stream/active bleibt false, auf control/subscribe/output/stream/result treffen keine Ergebnisse ein, oder control/subscribe/output/stream/statistics/failed-frames wächst.
-
Nur die Eingaben wurden geschrieben.
control/subscribe/input/enableallein zu schreiben startet nichts;control/subscribe/executewendet die Eingaben an. -
control/subscribe/executewurde abgelehnt (Rejected, ctrlX:DL_INVALID_VALUE): Stream-Modus ohne Adresse oder eine Warteschlangengröße außerhalb von1bis64. -
Die Einstellungsdatei
<module-id>.jsonkonnte nicht geschrieben werden, zum Beispiel weil sie kein gültiges JSON ist (CreationFailed, ctrlX:DL_CREATION_FAILED). Nichts wurde geändert. -
Der Stream des Cam Driver läuft nicht, es treffen also keine Bilder ein.
-
Die Quelle kann nicht abonniert werden. Das Modul versucht es alle 5 Sekunden erneut, solange der Stream läuft, und protokolliert den ersten Fehlschlag.
-
Bilder können nicht durchsucht werden, aus den Gründen, die
find-templatein seinemstatus-textnennt.
-
Lesen Sie
hdvisionsystems/lumiscan-cam-driver/<camera name>/control/publish/output/stream/active. Erwartet:true. -
Lesen Sie
setting/stream/enableundsetting/stream/addressdes Moduls. Erwartet:trueund der Stream-Ordner der Kamera, zum Beispielhdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream. Sie zeigen, was zuletzt angewendet wurde. -
Prüfen Sie die Antwort des Schreibvorgangs auf
control/subscribe/execute. Erwartet:Ok(ctrlX:DL_OK). Diese Methoden haben keinenstatus-text; der Grund für eine Ablehnung steht im Protokoll der Anwendung. -
Lesen Sie
control/subscribe/output/stream/active. Erwartet:true. -
Lesen Sie
received-frames,processed-framesundfailed-framesuntercontrol/subscribe/output/stream/statistics/. Der erste Zähler, der nicht wächst, zeigt, wo die Kette abbricht. -
Wächst
failed-frames, lesen Siecontrol/subscribe/output/stream/last-failure. Er nennt den Grund für das letzte fehlgeschlagene Bild, zum Beispiel:a frame of 'hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream' failed: invalid input: template-name is empty
-
Wenn nur die Eingaben geschrieben wurden: Setzen Sie
control/subscribe/input/enableauftrueund schreiben Sie aufcontrol/subscribe/execute. Warten Sie, biscontrol/subscribe/output/stream/activetrueist. -
Wenn der Aufruf abgelehnt wurde (
Rejected,DL_INVALID_VALUE): Schreiben Sie den Stream-Ordner der Kamera aufcontrol/subscribe/input/address, setzen Siecontrol/subscribe/input/queue-sizeauf einen Wert von1bis64und schreiben Sie erneut aufcontrol/subscribe/execute. -
Wenn die Einstellungsdatei nicht geschrieben werden konnte (
CreationFailed,DL_CREATION_FAILED): Machen Sie<module-id>.jsonim Konfigurationsverzeichnis wieder zu gültigem JSON, ohne Kommentare, und schreiben Sie dann erneut aufcontrol/subscribe/execute. -
Wenn der Stream des Cam Driver nicht läuft: Starten Sie ihn. Er bleibt nach einem Neustart nicht erhalten: Rufen Sie nach jedem Start sein
control/publish/executemitenable=trueauf, und verbinden Sie zuerst die Kamera. Siehe Ein Stream liefert nichts. -
Wenn die Quelle nicht abonniert werden kann: Prüfen Sie, ob
control/subscribe/input/addressder Stream-Ordner der Kamera ist und der Cam Driver auf demselben Gerät läuft. -
Wenn Bilder fehlschlagen: Korrigieren Sie die Eingabe, die
last-failurenennt, wie bei einem einzelnen Aufruf vonfind-template.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Werten unter setting/stream/, den Zählern unter control/subscribe/output/stream/statistics/, control/subscribe/output/stream/last-failure und der <module-id>.json des Moduls.
Module, Einstellungen und Lizenzierung
Problem: Meine Einstellungen oder Module sind nach einem Neustart weg
Nach einem Neustart der Anwendung fehlt ein Modul in system/modules, oder die Eingaben eines Moduls stehen wieder auf ihren Standardwerten.
-
Die Modulliste wurde nicht gespeichert. Einstellungen und neue Module sind sofort wirksam, aber erst dauerhaft, wenn sie gespeichert werden; die Modulliste und die Einstellungen jedes Moduls werden getrennt gespeichert.
-
Die Einstellungen des Moduls wurden nicht gespeichert.
-
Ein Speichern ist fehlgeschlagen:
system/save-module-inputsodersystem/save-current-moduleshat nicht Status1gemeldet. -
<module-id>.jsonenthält Kommentare. Der Stream liest eine solche Datei, aber die Eingaben des Moduls werden dann beim Start nicht wiederhergestellt; das Protokoll meldet die Datei als unlesbar. -
Eine Einstellung, deren Knoten nach einem Software-Update nicht mehr existiert, wird mit einem Protokolleintrag übersprungen.
Ergebnisse werden nicht gespeichert; sie entstehen beim nächsten Durchlauf. Vorlagendateien sind bereits dauerhaft: Es sind Dateien im Konfigurationsverzeichnis, auf ctrlX OS Teil der aktiven Solution.
-
Lesen Sie
system/modulesnach dem Neustart. Erwartet: alle Ihre Module. -
Prüfen Sie das Konfigurationsverzeichnis (siehe Allgemeine Prüfungen). Erwartet:
lumiscan-template-finder.jsonnennt Ihre Module, und für jedes Modul, dessen Einstellungen Sie gespeichert haben, gibt es eine<module-id>.json. -
Lesen Sie das Protokoll der Anwendung beim Start. Erwartet: keine als unlesbar gemeldete Moduldatei, keine übersprungene Einstellung.
-
Wenn die Einstellungen oder die Modulliste nicht gespeichert wurden:
-
Setzen Sie
system/save-module-inputs/input/module-id(zum Beispielmodule-1) und schreiben Sie aufsystem/save-module-inputs/execute. Tun Sie das für jedes Modul. -
Schreiben Sie auf
system/save-current-modules/execute. -
Prüfen Sie, dass beide Status
1melden.
-
-
Wenn die Moduldatei Kommentare enthält: Entfernen Sie sie aus
<module-id>.json. Von Hand an der Datei vorgenommene Änderungen wirken beim nächsten Start. -
Wenn nach einem Update eine Einstellung übersprungen wurde: Setzen Sie die Eingabe erneut und speichern Sie die Einstellungen des Moduls.
Die Bild-Stream-Einstellungen eines Moduls brauchen keinen zusätzlichen Schritt: control/subscribe/execute speichert sie selbst in <module-id>.json. Damit das Modul selbst wieder da ist, speichern Sie zusätzlich die Modulliste. Siehe Modulverwaltung und In der Einstellungsdatei gespeichert.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit lumiscan-template-finder.json und den Moduldateien <module-id>.json.
Problem: Die Anwendung beendet sich kurz nach dem Start
Auf ctrlX OS beendet sich die Anwendung kurz nach dem Start. Ihre Knoten unter hdvisionsystems/lumiscan-template-finder verschwinden aus dem Data Layer.
-
Die Lizenz fehlt. Der Grund wird in das Systemprotokoll geschrieben.
-
Die Anwendung benötigt mehr Lizenzen, als installiert sind. Eine Lizenz deckt zehn Module ab, siehe Problem: Statuscode
-11(Lizenz nicht verfügbar).
-
Öffnen Sie das Systemprotokoll von ctrlX OS (ctrlX Logbook oder
journalctl). Erwartet: Es nennt den Grund und die fehlende Lizenz. -
Vergleichen Sie die Lizenz mit der ctrlX-Lizenz von LumiScan Template Finder,
SWL-W-XCx-TEMPLxFDxxHDVS-V1NN. Erwartet: Sie ist auf dem Gerät installiert, auf dem die Anwendung läuft.
-
Wenn die Lizenz fehlt: Installieren Sie eine gültige Lizenz auf dem Gerät und starten Sie die Anwendung erneut. Erwartet: Sie läuft weiter, und ihre Knoten sind im Data Layer.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Zeilen des Systemprotokolls, die die Lizenz nennen. Für Lizenzen wenden Sie sich an licenses@hdvisionsystems.com.
Problem: Statuscode -11 (Lizenz nicht verfügbar)
Ein Modul wird mit Statuscode -11 abgelehnt.
-
Keine Lizenz auf dem Gerät deckt das Modul ab. Eine Lizenz deckt zehn Module ab; das elfte Modul belegt eine zweite Lizenz desselben Schlüssels.
-
Zählen Sie die Einträge von
system/modules. Erwartet: nicht mehr als zehn Module pro Lizenz auf dem Gerät. -
Lesen Sie
output/status-textder Operation, die mit-11geantwortet hat.
-
Wenn mehr Module existieren, als die Lizenzen abdecken: Entfernen Sie die nicht benötigten Module mit
system/remove-moduleund speichern Sie die Modulliste mitsystem/save-current-modules, oder beschaffen Sie eine weitere Lizenz.
Siehe Modulverwaltung.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit system/modules. Für Lizenzen wenden Sie sich an licenses@hdvisionsystems.com.
Informationen für den Support
Besteht ein Problem weiterhin, senden Sie diese Informationen an den Support:
-
Softwareversion: die Version von LumiScan Template Finder, die Sie verwenden. Die Dateien in
settings-history/im Konfigurationsverzeichnis halten sie alssoftware.versionfest. -
Plattform: ctrlX OS (ctrlX CORE oder ctrlX IPC) und die Version von ctrlX OS, oder ein PC mit Windows 11 oder Ubuntu 24.04. Nennen Sie auch die Bezugsquelle: HD Vision Systems oder ctrlX Store.
-
Data Layer: der ctrlX Data Layer (ctrlX OS) oder LumiScan Keryx (PC). Auf einem PC auch die Data-Layer-Adresse, die die Anwendung verwendet.
-
Protokoll: das Protokoll der Anwendung zum Zeitpunkt des Fehlers - auf ctrlX OS aus dem ctrlX Logbook oder mit
journalctl, auf einem PC die Konsolenausgabe der Anwendung. Bevor Sie das Problem reproduzieren, setzen SielogLevelim Blocksystemvonlumiscan-template-finder.jsonaufTRACEund starten Sie die Anwendung neu. -
Zeitpunkt: Datum und Uhrzeit des Fehlers.
-
Kommunikationsstatus:
output/status-codeundoutput/status-textder fehlgeschlagenen Operation und die Antwort des Schreibvorgangs aufexecute(zum BeispielTooManyOperationsoderDL_TOO_MANY_OPERATIONS). -
Konfigurationsdateien:
lumiscan-template-finder.json, die<module-id>.jsondes betroffenen Moduls, die Vorlagendatei und, für den Bild-Stream, die Datei insettings-history/, die sein Einstellungs-Hash nennt. Wo sie liegen, steht unter Allgemeine Prüfungen.
Wenden Sie sich an den Customer Success von HD Vision Systems unter customer.success@hdvisionsystems.com oder +49 6221 6721905; für Lizenzen an licenses@hdvisionsystems.com. Siehe auch Bevor Sie den Support kontaktieren in der LumiScan-FAQ.