2015-02-23 38 views
1

我想設計兩個代理Agent1在不同的時間向Agent2發送兩個消息值。然後,Agent2根據收到的值執行操作。Jade Two Agents communication

用玉,我試着寫:

-Agent1兩個addBehaviour(新TickerBehaviour(這個時間)方法

-Agent2有addBehaviour(新CyclicBehaviour()

當我運行程序我得到什麼..同樣的程序工作,如果我只發送一個值..

任何建議?

由於

回答

3

也沒有必要同時創建循環和股票的行爲 你只需要先運行接收器代理,然後發出消息,下面的例子測試:

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); 
    } 
}