你好,我想使用CH579作为网关,通过LWNS的MESH协议和二十几个CH573通信。
其中设备的LWNS通信地址使用的是蓝牙的硬件MAC。
我该怎么实现他们的组网呢?
是不是只能提前通过广播方式让CH579和CH573记录对方的地址?
但是我发现最开始的时候,如果没有通信过,使用lwns_route_lookup找不到对方,不知道该如何解决?
你好,我想使用CH579作为网关,通过LWNS的MESH协议和二十几个CH573通信。
其中设备的LWNS通信地址使用的是蓝牙的硬件MAC。
我该怎么实现他们的组网呢?
是不是只能提前通过广播方式让CH579和CH573记录对方的地址?
但是我发现最开始的时候,如果没有通信过,使用lwns_route_lookup找不到对方,不知道该如何解决?
也就是说如何在不知道中间隔了几个路由节点的情况下添加某个已知地址的节点到路由表中,并自动理顺路由的前后关系
lwns只是网络层协议栈,使用的是RF-PHY收发(2.4G),没有使用BLE协议,只要网络参数一致(密钥,channel等),即为同一个网络,可以互相通信。
使用mesh模块进行设备通信时是需要知道对方的地址的,不然无法发起路由请求,可以按照你的想法添加配网阶段,使用lwns的广播将节点573和579网关交换地址参数,573记录下579网关地址,即可给579网关设备发送消息。579也就可以得到573的地址。当然也可以将573的地址都存到579中。
如果不想添加配网阶段,可以使用lwns的netflood模块,netflood模块和蓝牙mesh一样,无需对方地址即可发起一个网络内设备都可以收到的消息。lwns_route_lookup是从路由表中查询信息,上电时路由表并没有存放信息,所以查询不到
只需要调用lwns_mesh_send函数,如果路由表中没有目标节点的路由信息,就会发起路由请求,自动建立路由表,无需手动干预。
或者收到了一个节点的mesh消息,也会自动添加路由信息到路由表。详细文档可以去https://gitee.com/rvmcu/lwns下载LWNS开发指南查看
好的,谢谢解答,我去试一下