Семейство продуктов: XBP24-ZB Функция набор: ZigBee координатор API Версия прошивки: 21A7Использование XBee Java библиотеки Digi в с XBee в API 2 (Сбежал режим)
Здравствуйте, Я в настоящее время использую XBee Java Library Digi в с API (AP = 1), и он работает правильно. Однако другой узел моей сети связан с Arduino, и я хочу использовать «Arduino Library для связи с XBee в режиме API» (https://github.com/andrewrapp/xbee-arduino). Для библиотеки Arduino требуется API с экранированным режимом работы (API 2). Это не должно было быть проблемой, поскольку XBee Java Library поддерживает API 2. Тем не менее, я получил сообщение об ошибке при попытке открыть последовательное соединение с XBee.
package com.digi.xbee.example;
import com.digi.xbee.api.XBeeDevice;
import com.digi.xbee.api.exceptions.XBeeException;
public class MainApp {
/* Constants */
// TODO Replace with the port where your sender module is connected to.
private static final String PORT = "COM4";
// TODO Replace with the baud rate of your sender module.
private static final int BAUD_RATE = 9600;
private static final String DATA_TO_SEND = "Hello XBee World!";
public static void main(String[] args) {
XBeeDevice myDevice = new XBeeDevice(PORT, BAUD_RATE);
byte[] dataToSend = DATA_TO_SEND.getBytes();
try {
myDevice.open();
System.out.format("Sending broadcast data: '%s'", new String(dataToSend));
myDevice.sendBroadcastData(dataToSend);
System.out.println(" >> Success");
} catch (XBeeException e) {
System.out.println(" >> Error");
e.printStackTrace();
System.exit(1);
} finally {
myDevice.close();
}
}
}
Ошибка com.digi.xbee.api.exceptions.TimeoutException: Был таймаут при выполнении запрошенной операции. на com.digi.xbee.api.AbstractXBeeDevice.sendXBeePacket (AbstractXBeeDevice.java:989) в com.digi.xbee.api.AbstractXBeeDevice.sendATCommand (AbstractXBeeDevice.java:806) в com.digi.xbee.api. AbstractXBeeDevice.sendParameter (AbstractXBeeDevice.java:1983) на com.digi.xbee.api.AbstractXBeeDevice.getParameter (AbstractXBeeDevice.java:1925) в com.digi.xbee.api.AbstractXBeeDevice.readDeviceInfo (AbstractXBeeDevice.java:365) на com.digi.xbee.api.XBeeDevice.open (XBeeDevice.java:219) в com.digi.xbee.example.MainApp.main (MainApp.java:20)
Есть ли разница между API и API 2 при программировании с помощью этой библиотеки Java?
Спасибо за ваш ответ, но это будет мой следующий шаг. Теперь я просто хочу открыть и закрыть последовательную связь с местным XBee. И, как я сказал, он работает правильно с API 1. Когда я меняю его на API 2, я получаю ошибку. –
Мне было любопытно, поэтому я попробовал ваш код, и это сработало для меня. Однако мне пришлось изменить скорость передачи в бодах, чтобы соответствовать скорости моего робота. Может быть, вам тоже нужно изменить? Исключения для таймаута при открытии обычно возникают, когда скорость передачи данных неверна. – Bone
Скорость передачи данных - 9600 в коде и в XBee.Я сбросил XBee и изменил с API 1 на API 2. Все еще не работает. –