set_spy — Steuern des HALCON Debugging Tools.
set_spy ist das HALCON Debugging Tool.
Es erlaubt die flexible Überwachung der Ein- und Ausgabedaten
von HALCON-Operatoren - sowohl graphisch
als auch textuell. Aktiviert wird die Datenkonrolle mittels
set_spy(::'mode','on':),
ausgeschaltet mittels
set_spy(::'mode','off':).
Außerdem kann das Debugging Tool mit der Environmentvariable HALCONSPY aktiviert werden: Wenn diese Variable definiert ist, entspricht das dem Aufruf mit 'mode' und 'on'.
Folgende Überwachungsmodi können (natürlich in beliebiger Kombination)
über Class/Value eingestellt werden:
Class Bedeutung / Value
Bei Aufruf einer Routine werden deren Name und die Namen ihrer Parameter (in TRIAS Notation) ausgegeben.
Value: 'on' oder 'off'
default: 'off'
Bei Aufruf einer Routine werden die Namen und Werte der Eingabesteuerparameter ausgegeben.
Value: 'on' oder 'off'
default: 'off'
Bei Aufruf einer Routine werden die Namen und Werte der Ausgabesteuerparameter ausgegeben.
Value: 'on' oder 'off'
default: 'off'
Informationen über die 4 Relationen in der
HALCON-Datenbank. Dies ist insbesondere bei der
Suche nach vergessenen clear_obj zu suchen.
Value: 'on' oder 'off'
default: 'off'
Ergänzung zu 'input_control' und 'output_control': Gibt an, wieviele Werte pro Parameter maximal ausgegeben werden sollen (maximale Tupellänge für Ausgabe).
Value: Tupellänge (integer)
default: 4
Bei jedem lesenden Zugriff auf eine Grauwertkomponente eines (Eingabe-)Bildobjektes, wird diese auf dem angegebenen Fenster ausgegeben (Window-ID; 'none' schaltet diese Überwachung aus).
Value: Window-ID (integer) oder 'none'
default: 'none'
Bei jedem lesenden Zugriff auf die Region eines (Eingabe-)Bildobjektes wird diese auf dem angegebenen Fenster ausgegeben (Window-ID; 'none' schaltet diese Überwachung aus).
Value: Window-ID (integer) oder 'none'
default: 'none'
Bei jedem lesenden Zugriff auf die XLD wird diese auf dem angegebenen Fenster ausgegeben (Window-ID; 'none' schaltet diese Überwachung aus).
Value: Window-ID (integer) oder 'none'
default: 'none'
Rechenzeit für die Ausführung des Operators
Value: 'on' oder 'off'
default: 'off'
Legt fest, ob nach jeder Einzelaktion ('multiple') oder nur jeweils am Operatorende ('single') gewartet werden soll. Der Parameter ist nur von Bedeutung, wenn mit 'timeout' oder 'button_window' das Warten eingeschaltet wurde.
Value: 'single' oder 'multiple'
default: 'multiple'
Value: 'single' oder 'multiple'
default: 'multiple'
Nach jeder Ausgabe wird die angegebene Anzahl von Sekunden gewartet.
Value: Sekunden (real)
default 0.0
Alternative zu 'timeout': Nach jeder Ausgabe wartet spy, bis mit der Maus in das angegebene Fenster gezeigt ('button_click' = 'off') oder geklickt ('button_click' = 'on') wird (Window-ID; 'none' schaltet diese Überwachung aus).
Value: Window-ID (integer) oder 'none'
default: 'none'
Ergänzung zu 'button_window': Legt fest, ob nach einer Ausgabe auf einen Mausklick gewartet werden soll oder nicht.
Value: 'on' oder 'off'
default: 'off'
Ist 'button_notify' eingeschaltet, erzeugt spy nach jeder Ausgabe einen Piepston. Dies ist in Kombination mit 'button_window' sinnvoll.
Value: 'on' oder 'off'
default: 'off'
Umleitung der Textausgabe von spy in ein File, das mit open_file geöffnet wurde.
Value: ein File Handle (siehe open_file)
Ist 'error' eingeschaltet, gibt spy beim Auftreten eines internen Fehlers die Prozeduren (Datei/Zeilennummer) aus, bei denen der Fehler auftritt.
Value: 'on' oder 'off'
default: 'off'
Ist 'internal' eingeschaltet, gibt spy vor dem Aufruf eines internen HALCON-Operators den Prozedurname mit ihren Parametern (Datei/Zeilennummer) aus.
Value: 'on' oder 'off'
default: 'off'
Jede Ausgabe beginnt mit dem thread handle, gefolgt von einem globalen Zähler, welcher die Reihenfolge der Ausgaben markiert. In multi-threaded Anwendungen kann mit dieser Information die Ausgabe einzelnen User Threads zugeordnet und der chronologische Ablauf rekonstruiert werden.
Unter Windows funktioniert die Ausgabe auf stdout nur in Konsolenapplikationen. Dies bedeutet, dass man diesen Mechanismus zum Beispiel nicht in Kombination mit HDevelop verwenden kann.
Class (input_control) string → (string)
Überwachungsmodus
Defaultwert: 'mode'
Werteliste: 'button_click', 'button_notify', 'button_window', 'db', 'error', 'halt', 'input_control', 'input_gray_window', 'input_region_window', 'input_region_window', 'input_xld_window', 'internal', 'log_file', 'mode', 'operator', 'output_control', 'parameter_values', 'time', 'timeout'
Value (input_control) string → (string / integer / real)
Einzustellender Status des Überwachungsmodus.
Defaultwert: 'on'
Wertevorschläge: 'on', 'off', 1, 2, 3, 4, 5, 10, 50, 0.0, 1.0, 2.0, 5.0, 10.0
/* init spy: Setting of the wished control modi */
set_spy("mode","on");
set_spy("operator","on");
set_spy("input_control","on");
set_spy("output_control","on");
/* calling of program section, that will be examined */
set_spy("mode","off");
set_spy liefert den Wert 2 (H_MSG_TRUE), falls die Parameter korrekt sind.
Ansonsten wird eine Fehlerbehandlung durchgeführt.
Foundation