我想设计两个代理Agent1在不同的时间向Agent2发送两个消息值。然后,Agent2根据收到的值实施操作。
使用Jade,我尝试编写以下内容:
-Agent1有两个addBehaviour(新的TickerBehaviour(this,time)方法
-Agent2有addBehaviour(新的CyclicBehaviour()
当我运行程序时,我得不到任何东西..如果我只发送一个值,同样的程序也可以工作..
有什么建议吗?
由于
答案 0 :(得分:6)
无需同时创建循环和自动收录器行为 你只需要先运行接收器代理,然后发送你的消息,测试下面的例子:
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);
}
}
答案 1 :(得分:0)
请参见this example