无法访问任何逻辑中的消息发件人
Cannot access sender of message in anylogic
我正在尝试访问消息的发送者(发送者是个人代理)以评估发送者和接收者之间的连接作为转换的条件。
在 anylogic 帮助中,它说您可以使用 msg 访问有效的消息内容,并使用 sender 访问发件人。
我试过使用sender = msgSender
其中 msgSender 是一个变量。
但是我收到错误消息 sender cannot be resolved to a variable
将消息发送到 Link to agent
对象,而不是直接发送到状态图。
如果您的邮件是通过 Link to agent
块到达的,您可以访问发件人,例如默认的块 connections
,见下文:
在其中,您可以决定将消息转发到状态图(如果您的发件人是正确的)。
代理的 connections
元素(默认 Link 到代理)接收发送给该代理的 所有 消息(然后默认情况下也会将其传递给任何状态图,但您可以在 connections
属性中对其进行控制)。例外情况是消息来自双向连接(在这种情况下,消息只能在 that Link 到 agents 中访问在 'far end' 代理中)。
如果你有一组从母亲到 child 的单向连接(假设从母亲类型代理到 Child 类型代理,Link 到agents in Mother called children
) 那么你可以在 Child agent 的默认 connections
元素中访问消息和发件人(使用你在帮助中提到的关键字) .
您还需要确保通过适当的 Link 将消息发送给所有连接的 至代理 。所以你需要这样的东西:
(a) 在 Mother 代理中:
children.sendToAllConnected("Hello");
(b) 在 Child 代理 connections
收到消息时 操作:
traceln("Got message " + msg + " from sender " + sender);
(在你的情况下,显然你会有逻辑做一些依赖于发件人的事情。)
P.S。你说你想做 sender = msgSender
。这不太合理:您是否试图 设置 消息发件人?您不能这样做:sender
仅在接收代理的 Link 到代理 操作中可用,并且始终引用实际的发送代理。 (例如,您不能 'fake' 发件人,也不必设置它。)
我正在尝试访问消息的发送者(发送者是个人代理)以评估发送者和接收者之间的连接作为转换的条件。 在 anylogic 帮助中,它说您可以使用 msg 访问有效的消息内容,并使用 sender 访问发件人。
我试过使用sender = msgSender
其中 msgSender 是一个变量。
但是我收到错误消息 sender cannot be resolved to a variable
将消息发送到 Link to agent
对象,而不是直接发送到状态图。
如果您的邮件是通过 Link to agent
块到达的,您可以访问发件人,例如默认的块 connections
,见下文:
在其中,您可以决定将消息转发到状态图(如果您的发件人是正确的)。
代理的 connections
元素(默认 Link 到代理)接收发送给该代理的 所有 消息(然后默认情况下也会将其传递给任何状态图,但您可以在 connections
属性中对其进行控制)。例外情况是消息来自双向连接(在这种情况下,消息只能在 that Link 到 agents 中访问在 'far end' 代理中)。
如果你有一组从母亲到 child 的单向连接(假设从母亲类型代理到 Child 类型代理,Link 到agents in Mother called children
) 那么你可以在 Child agent 的默认 connections
元素中访问消息和发件人(使用你在帮助中提到的关键字) .
您还需要确保通过适当的 Link 将消息发送给所有连接的 至代理 。所以你需要这样的东西:
(a) 在 Mother 代理中:
children.sendToAllConnected("Hello");
(b) 在 Child 代理 connections
收到消息时 操作:
traceln("Got message " + msg + " from sender " + sender);
(在你的情况下,显然你会有逻辑做一些依赖于发件人的事情。)
P.S。你说你想做 sender = msgSender
。这不太合理:您是否试图 设置 消息发件人?您不能这样做:sender
仅在接收代理的 Link 到代理 操作中可用,并且始终引用实际的发送代理。 (例如,您不能 'fake' 发件人,也不必设置它。)