我想设计两个代理Agent1发送两个消息值在不同的时间到Agent2。然后,Agent2根据接收到的值实现一个操作。
使用Jade,我尝试编写以下代码:
带有两个addBehaviour的-Agent1 (新的TickerBehaviour(this,time)方法
-Agent2有addBehaviour(新的CyclicBehaviour()
当我运行这个程序时,我什么也得不到。如果我只发送一个值,同样的程序也可以工作。
有什么建议吗?
谢谢
发布于 2015-03-05 02:35:19
没有必要同时创建循环和自动收报机行为,您只需首先运行接收器代理,然后发送您的消息,下面的示例进行了测试:
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());
}
}然后运行发送器one:
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);
}
}发布于 2019-07-12 18:42:02
()就足够了。
请参阅this example
https://stackoverflow.com/questions/28671830
复制相似问题