Передача данных агента JADE

В моей агентской программе (использующей jade) у меня есть 5 агентов, в которых один агент является координатором, другие - агентами устройств. Все 4 агента устройств отправляют массив координатору.

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

Я отправляю сообщения через ACLmessage(strings)


person user3856930    schedule 02.08.2014    source источник
comment
Как вы обрабатываете полученные сообщения в координаторе?   -  person Jorge Martins    schedule 20.08.2014


Ответы (2)


  1. Вы должны отправить свои массивы в 4 сообщениях с msg.setContentObject((Serializable)yourObject)
  2. At the reception :
    1. do a cast : yourLocalObject=(yourObjectType) msg.getContentObject();
    2. Затем globalarray.merge(yourLocalObject)
person Hc.    schedule 12.07.2019

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

Респонденты, ваши 4 агента устройств, ответят поведением jade.proto.AchieveREResponder.

Код должен выглядеть примерно так на стороне координатора

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, чтобы найти больше примеров контрактной сети и установить связь.

Удачи

person Clintus    schedule 15.12.2014