2014-08-02 5 views
1

В моей программе агента (с использованием нефрита) у меня есть 5 агентов, в которых один агент является координатором, другими являются агенты устройства. Все 4 устройства передают массив координатору.JADE agent data communication

Я хочу, чтобы координатор получил все 4 массива и сохранил их как единый массив. Как мне это сделать?

Я отправлять сообщения через ACLMessage (строки)

+0

Как вы обрабатываете полученные сообщения в координаторе? –

ответ

0

Я предлагаю использовать поведение jade.proto.AchieveREInitiator Координатором. Это позволяет вести простой разговор с несколькими респондентами.

Ответчики, ваши 4 устройства будут отвечать jade.proto.AchieveREResponder behiours.

Код должен выглядеть Алил что-то вроде этого на стороне координатора

class CoordinatorRequestService extends AchieveREInitiator 
{ 

    String agentName; 
      String Service; 

    public CoordinatorRequestService (Agent a, ACLMessage msg,String Service ,String agentLocalID) { 
     super(a, msg); 
     // TODO Auto-generated constructor stub 
     this.agentName=agentLocalID; 
        this.Service=Service; 
    } 

    protected Vector prepareRequests(ACLMessage predefinedRequest) 
    { 


       ACLMessage requestmsg=new ACLMessage(ACLMessage.REQUEST); 
       requestmsg.addreciever(//add your agents here) 
       requestMsgVector.add(requestmsg); 
       return requestMsgVector; 
    } 

protected void handleInform(ACLMessage inform) 
      { 
       recieveData=inform.extractDataRecieved(); 
       globalarray.append(recieveData) 

      } 

Google, чтобы найти больше примеров сети контракта и достижения связи.

Goodluck