请问LWNS的MESH网络有没有类似可靠单播的机制,能确保消息发送成功?
我现在的环境是这样的:设备在教室使用,教室上下左右都有可能会有设备,每个教室都有一个网关(CH579)和二十个左右的模块(CH573),教室大小不一致,有的如阶梯教室比较大,有的如自习室比较小。大的模块和网关的间距有十几米。模块只需要和网关通信即可,不需要互相通信。
因为设备量太多,所以没有用蓝牙主从协议。我现在使用的是LWNS的MESH协议。发现通信消息有的时候会发送不到,有什么更好的解决方案吗?
PS:现在的测试环境使用RUC可靠单播通信距离会不够(中间隔着两堵墙,隔着铁皮讲台)
现在的情况是,使用mesh组网时会发生接收不到的情况,打印的时候发现是接收CRC错误
该种场景下适合使用蓝牙mesh,蓝牙sigmesh每个数据包都会重传好几次,每次在3个广播通道发送,每次发送间延迟很多。lwnsmesh默认延迟略小。lwnsmesh模块没有重传机制,需要手动添加。
可以增大发送间隔和发送次数来确保收包率。修改lwns_adapter_blemesh_mac.h中BLE_PHY_ONE_PACKET_MAX_625US(发送间隔时间)、LWNS_MAC_TRANSMIT_TIMES(发送次数)。蓝牙sigmesh基本次数都在6次以上,lwns默认了2次。这两个参数改大后,要注意数据包的发送频率要相应降低。
lwnsmesh模块是在netflood模块之上通过路由减少网络间数据包的mesh方法,带来的可能就是数据包有可能发送不成功,如果一定要确保数据包的收包率,可以考虑直接使用netflood模块或者uninetflood。
谢谢,我试一下。
另外我发现实际测试的时候使用蓝牙主从模式的传输距离,比LWNS的MESH传输距离要远一倍左右,请问除了修改发射功率之外是不是还有其他地方有设置选项影响通信距离?
无其他直接提升通信距离的方法。蓝牙主从模式中,主从机之间的频率和accessaddress都是不断变化的,抗干扰强,而lwns的频率是固定的。可以修改lwns中ble mesh mac中的发送通道集合ble_phy_channelmap中的三个通道值,改为干扰小的通道。