set_spyset_spySetSpySetSpyset_spy (Operator)


set_spyset_spySetSpySetSpyset_spy — Control of the HALCON Debugging Tools.


set_spy( : : Class, Value : )

Herror set_spy(const char* Class, const char* Value)

Herror T_set_spy(const Htuple Class, const Htuple Value)

void SetSpy(const HTuple& Class, const HTuple& Value)

static void HSystem::SetSpy(const HString& Class, const HTuple& Value)

static void HSystem::SetSpy(const HString& Class, const HString& Value)

static void HSystem::SetSpy(const char* Class, const char* Value)

static void HSystem::SetSpy(const wchar_t* Class, const wchar_t* Value)   (Windows only)

static void HOperatorSet.SetSpy(HTuple classVal, HTuple value)

static void HSystem.SetSpy(string classVal, HTuple value)

static void HSystem.SetSpy(string classVal, string value)

def set_spy(class_val: str, value: Union[str, int, float]) -> None


The operator set_spyset_spySetSpySetSpySetSpyset_spy is the HALCON debugging tool. This tool allows the flexible control of the input and output data of HALCON-operators - in graphical as well as in textual form. The data control is activated by using


and deactivated by using


The debugging tool can further be activated with the help of the environment variable HALCONSPY. The definition of this variable corresponds to calling up 'mode'"mode""mode""mode""mode""mode" and 'on'"on""on""on""on""on".

The following control modes can be tuned (in any desired combination of course) with the help of ClassClassClassClassclassValclass/ValueValueValueValuevaluevalue:

Class Meaning / Value


When a routine is called, its name and the names of its parameters will be given (in TRIAS notation).

Value: 'on' or 'off'

default: 'off'


When a routine is called, the names and values of the input control parameters will be given.

Value: 'on' or 'off'

default: 'off'


When a routine is called, the names and values of the output control parameters are given.

Value: 'on' or 'off'

default: 'off'


Additional information on 'input_control' and 'output_control': indicates how many values per parameter shall be displayed at most (maximum tuple length of the output).

Value: tuple length (integer)

default: 4


Information concerning the 4 relations in the HALCON-database. This is especially valuable in looking for forgotten clear_objclear_objClearObjClearObjClearObjclear_obj.

Value: 'on' or 'off'

default: 'off'


Processing time of the operator

Value: 'on' or 'off'

default: 'off'


Spy can hereby divert the text output into a file having been opened with open_file.

Value: a file handle (see open_fileopen_fileOpenFileOpenFileOpenFileopen_file)


If 'error' is activated and an internal error occurs, spy will show the internal procedures (file/line) concerned.

Value: 'on' or 'off'

default: 'off'


If 'internal' is activated, spy will display the internal procedures and their parameters (file/line) while an HALCON-operator is processed.

Value: 'on' or 'off'

default: 'off'

Each output starts with the thread handle, followed by a global counter that marks the order of the outputs. In multi-threaded applications, this information can be used to assign the output to individual user threads and to reconstruct the chronological sequence.


Note that under Windows the output on stdout works only in combination with a console application, i.e., you can not use it together with HDevelop.

Execution Information


ClassClassClassClassclassValclass (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Control mode

Default value: 'mode' "mode" "mode" "mode" "mode" "mode"

List of values: 'db'"db""db""db""db""db", 'error'"error""error""error""error""error", 'input_control'"input_control""input_control""input_control""input_control""input_control", 'internal'"internal""internal""internal""internal""internal", 'log_file'"log_file""log_file""log_file""log_file""log_file", 'mode'"mode""mode""mode""mode""mode", 'operator'"operator""operator""operator""operator""operator", 'output_control'"output_control""output_control""output_control""output_control""output_control", 'parameter_values'"parameter_values""parameter_values""parameter_values""parameter_values""parameter_values", 'time'"time""time""time""time""time"

ValueValueValueValuevaluevalue (input_control)  string HTupleUnion[str, int, float]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

State of the control mode to be set.

Default value: 'on' "on" "on" "on" "on" "on"

Suggested values: 'on'"on""on""on""on""on", 'off'"off""off""off""off""off", 1, 2, 3, 4, 5, 10, 50, 0.0, 1.0, 2.0, 5.0, 10.0

Example (C)

/* init spy: Setting of the wished control modi */
/* calling of program section, that will be examined */


The operator set_spyset_spySetSpySetSpySetSpyset_spy returns the value 2 (H_MSG_TRUE) if the parameters are correct. Otherwise an exception is raised.

Possible Predecessors


See also

get_spyget_spyGetSpyGetSpyGetSpyget_spy, query_spyquery_spyQuerySpyQuerySpyQuerySpyquery_spy