你好,我想使用CH579作為網(wǎng)關(guān),通過LWNS的MESH協(xié)議和二十幾個CH573通信。
其中設(shè)備的LWNS通信地址使用的是藍(lán)牙的硬件MAC。
我該怎么實(shí)現(xiàn)他們的組網(wǎng)呢?
是不是只能提前通過廣播方式讓CH579和CH573記錄對方的地址?
但是我發(fā)現(xiàn)最開始的時(shí)候,如果沒有通信過,使用lwns_route_lookup找不到對方,不知道該如何解決?
你好,我想使用CH579作為網(wǎng)關(guān),通過LWNS的MESH協(xié)議和二十幾個CH573通信。
其中設(shè)備的LWNS通信地址使用的是藍(lán)牙的硬件MAC。
我該怎么實(shí)現(xiàn)他們的組網(wǎng)呢?
是不是只能提前通過廣播方式讓CH579和CH573記錄對方的地址?
但是我發(fā)現(xiàn)最開始的時(shí)候,如果沒有通信過,使用lwns_route_lookup找不到對方,不知道該如何解決?
也就是說如何在不知道中間隔了幾個路由節(jié)點(diǎn)的情況下添加某個已知地址的節(jié)點(diǎn)到路由表中,并自動理順路由的前后關(guān)系
lwns只是網(wǎng)絡(luò)層協(xié)議棧,使用的是RF-PHY收發(fā)(2.4G),沒有使用BLE協(xié)議,只要網(wǎng)絡(luò)參數(shù)一致(密鑰,channel等),即為同一個網(wǎng)絡(luò),可以互相通信。
使用mesh模塊進(jìn)行設(shè)備通信時(shí)是需要知道對方的地址的,不然無法發(fā)起路由請求,可以按照你的想法添加配網(wǎng)階段,使用lwns的廣播將節(jié)點(diǎn)573和579網(wǎng)關(guān)交換地址參數(shù),573記錄下579網(wǎng)關(guān)地址,即可給579網(wǎng)關(guān)設(shè)備發(fā)送消息。579也就可以得到573的地址。當(dāng)然也可以將573的地址都存到579中。
如果不想添加配網(wǎng)階段,可以使用lwns的netflood模塊,netflood模塊和藍(lán)牙m(xù)esh一樣,無需對方地址即可發(fā)起一個網(wǎng)絡(luò)內(nèi)設(shè)備都可以收到的消息。lwns_route_lookup是從路由表中查詢信息,上電時(shí)路由表并沒有存放信息,所以查詢不到
只需要調(diào)用lwns_mesh_send函數(shù),如果路由表中沒有目標(biāo)節(jié)點(diǎn)的路由信息,就會發(fā)起路由請求,自動建立路由表,無需手動干預(yù)。
或者收到了一個節(jié)點(diǎn)的mesh消息,也會自動添加路由信息到路由表。詳細(xì)文檔可以去https://gitee.com/rvmcu/lwns下載LWNS開發(fā)指南查看
好的,謝謝解答,我去試一下