Skip to content

set_message_objSetMessageObjSetMessageObjset_message_objT_set_message_objπŸ”—

Short descriptionπŸ”—

set_message_objSetMessageObjSetMessageObjset_message_objT_set_message_obj β€” Add a key/object pair to the message.

SignatureπŸ”—

set_message_obj( object ObjectData, message MessageHandle, string Key )void SetMessageObj( const HObject& ObjectData, const HTuple& MessageHandle, const HTuple& Key )static void HOperatorSet.SetMessageObj( HObject objectData, HTuple messageHandle, HTuple key )def set_message_obj( object_data: HObject, message_handle: HHandle, key: Union[str, int] ) -> None

Herror T_set_message_obj( const Hobject ObjectData, const Htuple MessageHandle, const Htuple Key )

void HMessage::SetMessageObj( const HObject& ObjectData, const HTuple& Key ) const

void HMessage::SetMessageObj( const HObject& ObjectData, const HString& Key ) const

void HMessage::SetMessageObj( const HObject& ObjectData, const char* Key ) const

void HMessage::SetMessageObj( const HObject& ObjectData, const wchar_t* Key ) const (Windows only)

void HMessage.SetMessageObj( HObject objectData, HTuple key )

void HMessage.SetMessageObj( HObject objectData, string key )

DescriptionπŸ”—

set_message_objSetMessageObj stores an object associated with a key in the message, which behaves as a dictionary-like data container. The message is denoted by the MessageHandlemessageHandlemessage_handle parameter.

ObjectDataobjectDataobject_data is copied by the operation (copying the object data in HALCON’s object database, see copy_objCopyObj), and can thus be immediately reused. Both an empty object or an object tuple are considered as a valid value that can be associated with the key. If any data (tuple or object) was already associated with given key (Keykeykey), the old data is destroyed by set_message_objSetMessageObj and replaced by ObjectDataobjectDataobject_data.

The Keykeykey has to be a string or an integer. String keys are treated case sensitive.

The object data for the given key can be retrieved again from the message using get_message_objGetMessageObj.

Execution informationπŸ”—

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

This operator modifies the state of the following input parameter:

During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.

ParametersπŸ”—

ObjectDataobjectDataobject_data (input_object) object(-array) β†’ objectHObjectHObjectHObjectHobject

Object to be associated with the key.

MessageHandlemessageHandlemessage_handle (input_control, state is modified) message β†’ (handle)HTuple (HHandle)HMessage, HTuple (IntPtr)HHandleHtuple (handle)

Message handle.

Number of elements: MessageHandle == 1
Restriction: MessageHandle != 0

Keykeykey (input_control) string β†’ (string / integer)HTuple (HString / Hlong)HTuple (string / int / long)Union[str, int]Htuple (char* / Hlong)

Key string or integer.

Number of elements: Key == 1

ExampleπŸ”—

(HDevelop)

create_message (Message)
read_image( Image, 'filename')
set_message_obj (Image, Message, 'my_image')

ResultπŸ”—

If the operation succeeds, set_message_tupleSetMessageTuple returns 2 (H_MSG_TRUE). Otherwise an exception is raised. Possible error conditions include invalid parameters (handle or key) or resource allocation error.

Combinations with other operatorsπŸ”—

Combinations

Possible predecessors

create_messageCreateMessage

Possible successors

enqueue_messageEnqueueMessage, set_message_tupleSetMessageTuple

Alternatives

set_message_tupleSetMessageTuple

See also

create_messageCreateMessage, clear_messageClearMessage, set_message_tupleSetMessageTuple, get_message_tupleGetMessageTuple, get_message_objGetMessageObj, set_message_paramSetMessageParam, get_message_paramGetMessageParam, enqueue_messageEnqueueMessage, dequeue_messageDequeueMessage

ModuleπŸ”—

Foundation