gpt4 book ai didi

java - 使用 Digi xbee-java api 进行 Xbee 通信

转载 作者:太空宇宙 更新时间:2023-11-04 13:19:28 24 4
gpt4 key购买 nike

我已将一台 xbee pro 配置为协调器(API 模式),另一台配置为路由器(API 模式)。我尝试使用 xbee java api 将数据从协调器发送到路由器,但在路由器代码中我不断收到 null,我是否做错了什么。下面是发送数据(协调器)的代码:

public class MainApp {
private static final String PORT = "/dev/ttyUSB0";
private static final int BAUDRATE = 9600;

public static void main(String[] args)
{
String data = "Helloww";

XBeeDevice mycord = new XBeeDevice(PORT, BAUDRATE);

try {
mycord.open();
System.out.println("Port is opened\n");
System.out.println("remote device connection\n");
//mac of my router
RemoteXBeeDevice router = new RemoteXBeeDevice(mycord,
new XBee64BitAddress("0013A20040DD9BDD"));
System.out.println("Sending data\n");
mycord.sendData(router, data.getBytes());

} catch (XBeeException e) {
e.printStackTrace();
mycord.close();
System.exit(1);
}
}

}

路由器端代码

public class RecvApp {
private static final String PORT = "/dev/ttyUSB1";
private static final int BAUDRATE = 9600;

public static void main(String[] args)
{
XBeeDevice myrouter = new XBeeDevice(PORT, BAUDRATE);

try {
myrouter.open();
System.out.println("router port opened\n");
//mac of coordinator
RemoteXBeeDevice remotecord = new RemoteXBeeDevice(myrouter, new XBee64BitAddress("0013A20040D96FE5"));
XBeeMessage msg = myrouter.readDataFrom(remotecord);
System.out.print(msg);

} catch (XBeeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
myrouter.close();
System.exit(1);
}
}
}

最佳答案

在路由器上,您需要有一个循环来检查消息并将其打印出来。 API 应该有一个方法,您可以在调用 readDataFrom() 之前调用该方法来检查消息(或者您可能只是忽略空响应)。每次检查之间 hibernate 几毫秒。目前,在程序退出之前您的消息没有太多机会传递。

在调试此类问题时,首先要隔离您的问题。哪一方出现故障,是协调器还是路由器?您确定 XBee 模块已相互连接并且位于同一网络上吗?

一项测试是在连接到路由器的串行端口上运行一个简单的终端模拟器,您是否看到有任何帧通过?如果您查看字节的十六进制转储,您是否看到“Helloww”消息?如果没有,您需要先让协调器工作,然后再调试路由器。

关于java - 使用 Digi xbee-java api 进行 Xbee 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33233591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com