【问题标题】:How can we avoid the TransmitException when writing to the channel写入通道时如何避免 TransmitException
【发布时间】:2021-01-12 09:47:31
【问题描述】:

我们使用的是 XU-A11 X-STICK 2.4GHZ USB TO XBEE 和 XU3-A11 XBEE3 USB ADAPTER 棒。以及 xbee-java 库版本 1.3.0

我们创建了一个测试,每 100 毫秒发送一次相同的数据。我们看到我们大约每分钟收到一次 TransmitException。 异常的详细信息:“传输 XBee API 数据包时出现问题。> 错误:未收到确认 (0x01)”

有没有办法避免出现这个异常?

代码sn-p:

while (true) {
  localDevice.sendData(xBee64BitAddress, data);
  Thread.sleep(100);
}

配置:

serialPort = /dev/ttyUSB0
baudRate = 9600
dataBits = 8
stopBits = 1
serialParityConfiguration = NONE

【问题讨论】:

    标签: xbee


    【解决方案1】:

    请注意,您以 9600 波特率每秒发送 10 个数据包,因此您的数据(有开销)需要为 96 字节或更少(9600 位/秒约为 960 字节/秒)。首先尝试提高波特率。

    可能无法完全避免该异常。如果其他设备离线或重新启动怎么办?编写一个异常处理程序来记录错误,然后根据需要对该错误采取行动。也许每秒有一个错误是可以接受的,但如果有超过 4 个错误的序列,你想对它做点什么。

    【讨论】:

    • 如果我们将超时设置为 5 秒,那么我们也会得到同样的异常。
    • 您的信号质量如何?模块之间的距离是多少?如果您的模块有天线连接器,您还记得连接天线吗?
    • 模块之间的距离约为1米。
    • 远程设备是否接收到数据?天线怎么样——这些模块是带有芯片天线的,还是需要连接天线的连接器?如果靠近,模块可以在没有天线的情况下工作,但可能会遇到丢包的情况。如果您可以连接到运行 XCTU 的计算机,则可以运行范围测试并测量信号质量。 digi.com/resources/documentation/Digidocs/90001456-13/concepts/…
    • 目前我们没有时间进行适当的测试,一旦我们有时间我会告诉你结果是什么。我们没有使用天线。
    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2010-12-22
    • 1970-01-01
    • 2015-11-25
    • 2018-12-31
    • 1970-01-01
    相关资源
    最近更新 更多