首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JADE代理数据通信

JADE代理数据通信
EN

Stack Overflow用户
提问于 2014-08-03 00:55:35
回答 2查看 928关注 0票数 1

在我的agent程序中(使用jade),我有5个agent,其中一个agent是协调器,其他的是设备agent。所有4个设备代理都向协调器发送一个数组。

我希望协调器接收所有4个数组,并将它们存储为单个数组。我该怎么做呢?

我通过ACLmessage(字符串)发送消息

EN

回答 2

Stack Overflow用户

发布于 2019-07-12 18:52:50

你应该在4条消息中用msg.setContentObject((Serializable)yourObject)

  • At
    1. do a
    2. yourLocalObject=(yourObjectType) msg.getContentObject();
    3. Then globalarray.merge(yourLocalObject)

发送你的数组

票数 1
EN

Stack Overflow用户

发布于 2014-12-16 00:29:19

我建议协调员使用jade.proto.AchieveREInitiator行为。这允许与多个响应者进行简单的对话。

响应者,你的4个设备代理将以jade.proto.AchieveREResponder behiours响应。

在协调器端,代码应该看起来像这样

代码语言:javascript
复制
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)

            }

谷歌找到更多的合同网的例子,并实现沟通。

祝你好运

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25097365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档