在 Anylogic 中发送和接收两个带有消息的双精度数

sending and recieving two double with a message in Anylogic

我想在 Anylogic 模型中将消息从每个代理发送到消息有两个参数的其他代理。当另一个代理收到 "communication" 中的消息时,检查第一个参数。如果它通过了一个条件,我们以某种方式使用第二个参数,如果没有,我们以另一种方式使用它。 例如: X、Y、Z为智能体的参数。

我在过渡中发送消息。

并在 "connection-link to agent"

收到

我要的条件是:

if sender.X > receiver.X receiver.Z=receiver.Z + sender.Y;

如果 sender.X < receiver.X receiver.Z=receiver.Z - sender.Y;

所以我应该同时将 X 和 Y 从一个代理发送到另一个代理。 但我不能在转换中发送消息: sendToAllConnected(X,Y);

你能帮帮我吗?

我使用此代码("op" 是代理参数):

    if(msg.op<this.op)                                                                                                                  
    this.op=this.op+msg; 
    if (msg.op<this.op) 
    this.op=this.op-msg; 

和此代码:

    if (sender.op<this.op) 
    this.op=this.op+msg; 
    if (sender.op<this.op) 
    this.op=this.op-msg; 

但我有一个错误,op 无法解析或不是一个字段。

发送对发件人对象的引用。不要尝试发送 X 和 Y 值。一旦发送了发送方对象,接收方对象就可以对该消息对象(对发送方的引用)进行推理,并获得适用的 x 和 y 值。