我想设计两个代理Agent1在不同的时间向Agent2发送两个消息值。然后,Agent2根据接收到的值实施操作。

使用Jade,我尝试编写以下代码:

-Agent1有两个addBehaviour(new TickerBehaviour(this,time)方法

-Agent2具有addBehaviour(new CyclicBehaviour()

当我运行该程序时,我什么也没得到。如果只发送一个值,则同一个程序也可以工作。

有什么建议吗?

谢谢

最佳答案

无需同时创建循环行为和股票行情
您只需要先运行接收器代理,然后发送您的消息即可,下面的示例已通过测试:

import jade.core.Agent;
import jade.lang.acl.ACLMessage;


public class AgentReceiver extends Agent {
    public void setup(){
      ACLMessage msg = null;
      msg = blockingReceive();
      System.out.println(msg.getContent());
    }
}


然后运行发送者之一:

import jade.core.AID;
import jade.core.Agent;
import jade.lang.acl.ACLMessage;


public class AgentSender extends Agent {
  public void setup(){
      ACLMessage message = new ACLMessage(ACLMessage.INFORM);
      message.addReceiver(new AID("AgentReceiver", AID.ISLOCALNAME));
      message.setContent("Hello The World");
      send(message);
  }
}

关于agents-jade - Jade 二特工沟通,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28671830/

10-13 08:57