如何将ACLMessage从Windows上运行的JADE平台发送到Raspberry pi(Raspbian)上运行的另一个JADE平台?

问题描述 投票:2回答:1

我正在尝试在分布式网络上安装多代理系统(Windows计算机和安装了Raspbian OS的Raspberry pi)。我使用以下命令在Windows上启动我的Jade平台:

java mylibrary jade.Boot -gui -platfrom-id Platform1 -agents starter:Starter

我也使用以下命令在Raspbian上启动我的Jade平台:

java mylibrary jade.Boot -gui -platform-id Raspy1 -agents starter:Starter

这是两台计算机上的Starter.java:

import jade.core.Agent;
import jade.core.behaviours.CyclicBehaviour;
import jade.lang.acl.ACLMessage;

import java.util.Arrays;

public class Starter extends Agent {

    @Override
    protected void setup() {
        System.out.println("Setup of starter agent");

        addBehaviour(new ReceiveBehaviour());

    }

    private class ReceiveBehaviour extends CyclicBehaviour {

        @Override
        public void action() {
            ACLMessage msg = myAgent.receive();
            if (msg != null) {
                System.out.println(msg.getContent());
                System.out.println(Arrays.toString(msg.getSender().getAddressesArray()));
                ACLMessage reply = msg.createReply();
                reply.setContent("I got it. Thank you " + msg.getSender().getName());
                myAgent.send(reply);
            } else {
                block();
            }
        }
    }
}

另外,这是我的Windows中的mtpaddress:http://192.168.1.6:7778/acc,这也是我的树莓派上的mtpaddress:http://192.168.1.6:7778/acc

我的两台计算机都使用wifi连接到本地网络(无线调制解调器)。

现在发生的事情是,我在两台计算机上都启动了平台,在Windows上启动了DummyAgent,并尝试向raspbian平台发送消息。因此,我添加了一个接收器,然后将名称和地址放入图像中,如[>]

以下:http://raspy1:7778/acc

这是控制台输出:

http://raspy1:7778/acc

我可以从树莓派上的DummyAgent发送消息到我的Windows平台,但是不会发生相反的情况。我该怎么办?

我正在尝试在分布式网络上安装多代理系统(Windows计算机和安装了Raspbian OS的Raspberry pi)。我使用以下命令在Windows上启动我的Jade平台:java ...

java raspberry-pi raspbian agents-jade
1个回答
0
投票

我们正在分布式智能电网环境中广泛使用不同机器(Win,Linux,Mac)之间的JADE通信。

© www.soinside.com 2019 - 2024. All rights reserved.