請問LWNS的MESH網(wǎng)絡(luò)有沒有類似可靠單播的機(jī)制,能確保消息發(fā)送成功?
我現(xiàn)在的環(huán)境是這樣的:設(shè)備在教室使用,教室上下左右都有可能會有設(shè)備,每個(gè)教室都有一個(gè)網(wǎng)關(guān)(CH579)和二十個(gè)左右的模塊(CH573),教室大小不一致,有的如階梯教室比較大,有的如自習(xí)室比較小。大的模塊和網(wǎng)關(guān)的間距有十幾米。模塊只需要和網(wǎng)關(guān)通信即可,不需要互相通信。
因?yàn)樵O(shè)備量太多,所以沒有用藍(lán)牙主從協(xié)議。我現(xiàn)在使用的是LWNS的MESH協(xié)議。發(fā)現(xiàn)通信消息有的時(shí)候會發(fā)送不到,有什么更好的解決方案嗎?
PS:現(xiàn)在的測試環(huán)境使用RUC可靠單播通信距離會不夠(中間隔著兩堵墻,隔著鐵皮講臺)
現(xiàn)在的情況是,使用mesh組網(wǎng)時(shí)會發(fā)生接收不到的情況,打印的時(shí)候發(fā)現(xiàn)是接收CRC錯(cuò)誤
該種場景下適合使用藍(lán)牙m(xù)esh,藍(lán)牙sigmesh每個(gè)數(shù)據(jù)包都會重傳好幾次,每次在3個(gè)廣播通道發(fā)送,每次發(fā)送間延遲很多。lwnsmesh默認(rèn)延遲略小。lwnsmesh模塊沒有重傳機(jī)制,需要手動(dòng)添加。
可以增大發(fā)送間隔和發(fā)送次數(shù)來確保收包率。修改lwns_adapter_blemesh_mac.h中BLE_PHY_ONE_PACKET_MAX_625US(發(fā)送間隔時(shí)間)、LWNS_MAC_TRANSMIT_TIMES(發(fā)送次數(shù))。藍(lán)牙sigmesh基本次數(shù)都在6次以上,lwns默認(rèn)了2次。這兩個(gè)參數(shù)改大后,要注意數(shù)據(jù)包的發(fā)送頻率要相應(yīng)降低。
lwnsmesh模塊是在netflood模塊之上通過路由減少網(wǎng)絡(luò)間數(shù)據(jù)包的mesh方法,帶來的可能就是數(shù)據(jù)包有可能發(fā)送不成功,如果一定要確保數(shù)據(jù)包的收包率,可以考慮直接使用netflood模塊或者uninetflood。
謝謝,我試一下。
另外我發(fā)現(xiàn)實(shí)際測試的時(shí)候使用藍(lán)牙主從模式的傳輸距離,比LWNS的MESH傳輸距離要遠(yuǎn)一倍左右,請問除了修改發(fā)射功率之外是不是還有其他地方有設(shè)置選項(xiàng)影響通信距離?
無其他直接提升通信距離的方法。藍(lán)牙主從模式中,主從機(jī)之間的頻率和accessaddress都是不斷變化的,抗干擾強(qiáng),而lwns的頻率是固定的??梢孕薷膌wns中ble?mesh?mac中的發(fā)送通道集合ble_phy_channelmap中的三個(gè)通道值,改為干擾小的通道。