set_message_objT_set_message_objSetMessageObjSetMessageObjset_message_obj (算子)

名称

set_message_objT_set_message_objSetMessageObjSetMessageObjset_message_obj — 在消息中添加键/对象对。

签名

set_message_obj(ObjectData : : MessageHandle, Key : )

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

void SetMessageObj(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)

static void HOperatorSet.SetMessageObj(HObject objectData, HTuple messageHandle, HTuple key)

void HMessage.SetMessageObj(HObject objectData, HTuple key)

void HMessage.SetMessageObj(HObject objectData, string key)

def set_message_obj(object_data: HObject, message_handle: HHandle, key: Union[str, int]) -> None

描述

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

ObjectDataObjectDataObjectDataObjectDataobjectDataobject_data is copied by the operation (copying the object data in HALCON's object database, see copy_objcopy_objCopyObjCopyObjCopyObjcopy_obj), 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 (KeyKeyKeyKeykeykey), the old data is destroyed by set_message_objset_message_objSetMessageObjSetMessageObjSetMessageObjset_message_obj and replaced by ObjectDataObjectDataObjectDataObjectDataobjectDataobject_data

The KeyKeyKeyKeykeykey 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_objget_message_objGetMessageObjGetMessageObjGetMessageObjget_message_obj

执行信息

此算子修改后续输入参数的状态:

在执行此算子时,若该参数值需在多个线程间使用,则必须对其访问进行同步。

参数

ObjectDataObjectDataObjectDataObjectDataobjectDataobject_data (输入对象)  object(-array) objectHObjectHObjectHObjectHobject

Object to be associated with the key.

MessageHandleMessageHandleMessageHandleMessageHandlemessageHandlemessage_handle (输入控制,状态被修改)  message HMessage, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Message handle.

元素数量: MessageHandle == 1

限制: MessageHandle != 0

KeyKeyKeyKeykeykey (输入控制)  string HTupleUnion[str, int]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

Key string or integer.

元素数量: Key == 1

示例(HDevelop)

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

结果

If the operation succeeds, set_message_tupleset_message_tupleSetMessageTupleSetMessageTupleSetMessageTupleset_message_tuple 返回 2 ( H_MSG_TRUE )。否则将抛出异常。 Possible error conditions include invalid parameters (handle or key) or resource allocation error.

可能的前趋

create_messagecreate_messageCreateMessageCreateMessageCreateMessagecreate_message

可能的后继

enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessageenqueue_message, set_message_tupleset_message_tupleSetMessageTupleSetMessageTupleSetMessageTupleset_message_tuple

替代

set_message_tupleset_message_tupleSetMessageTupleSetMessageTupleSetMessageTupleset_message_tuple

另见

create_messagecreate_messageCreateMessageCreateMessageCreateMessagecreate_message, clear_messageclear_messageClearMessageClearMessageClearMessageclear_message, set_message_tupleset_message_tupleSetMessageTupleSetMessageTupleSetMessageTupleset_message_tuple, get_message_tupleget_message_tupleGetMessageTupleGetMessageTupleGetMessageTupleget_message_tuple, get_message_objget_message_objGetMessageObjGetMessageObjGetMessageObjget_message_obj, set_message_paramset_message_paramSetMessageParamSetMessageParamSetMessageParamset_message_param, get_message_paramget_message_paramGetMessageParamGetMessageParamGetMessageParamget_message_param, enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessageenqueue_message, dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessagedequeue_message

模块

基础