无法访问anylogic中的消息发件人

我正在尝试访问消息的发送方(发送方是个人代理),以评估发送方和接收方之间的连接,作为过渡的条件。 在anylogic帮助中,它说您可以使用msg访问有效的邮件内容,并使用sender访问发件人。

我尝试使用sender = msgSender

其中msgSender是变量。 但是我收到错误消息sender cannot be resolved to a variable

jimon_chang 回答:无法访问anylogic中的消息发件人

将消息发送到Link to agent对象,而不是直接发送到状态图。

如果您的消息是通过Link to agent块到达的,则可以访问发件人,例如默认的connections块,请参见下文: enter image description here

在其中,您可以决定将邮件转发到状态图(如果发件人是正确的)。

,

代理的connections元素(默认为与代理的链接)接收发送给该代理的所有消息(默认情况下,这些消息也将传递给任何状态图) ,但您可以在connections属性中进行控制)。如果消息来自双向连接,则为例外(在这种情况下,消息只能在“远端”代理中的 链接到代理中访问)。 / p>

如果您有一组从母亲到孩子的单向连接(例如,从母亲类型的座席到孩子类型的座席,而母亲中的指向座席的链接称为children),那么您可以在子代理的默认connections元素中访问消息和发件人(使用您在帮助中提到的关键字)。

您还需要确保通过适当的指向代理的链接将消息发送给所有连接的。所以你需要像这样的东西:

(a)在母亲代理人中: children.sendToAllConnected("Hello");

(b)在子级代理connections收到消息时操作: traceln("Got message " + msg + " from sender " + sender);

(在您的情况下,显然您会根据发件人执行逻辑操作。)

P.S。您说您正在尝试做sender = msgSender。这不太有意义:您是否试图将消息发件人设置?您不能这样做:sender仅在接收代理的链接到代理操作中可用,并且始终引用实际的发送者代理。 (例如,您不能“伪造”发件人,也不必进行设置。)

本文链接:https://www.f2er.com/3124771.html

大家都在问