把provisioner加入到client中,先对自身进行配置,然后对server进行组网配置,可以成功控制设备,但是在控制多个设备时,为什么总会偶尔出现某些设备接收不到消息(测试了reliable发送和unreliable发送)?是哪里出了问题呢?(开了中继模式,server设备6个,设备相隔很近,理论上来说,不存在一个设备收到而另外一个就在旁边的设备却没收到吧?(没收到数据的设备:随机出现,可以排除设备的信号问题))
Wireless-Tech
Wireless-Tech 配置自身这里是否还缺少步骤?
为了减少干扰源,同样的节点,你使用nRF Mesh App代替你的Client设备,情况是否是一样的?
Wireless-Tech 我没有抓包器,不过我用nrf_mesh_rx_cb_set(rx_cb);监听了一下广播包,确实是发出了数据,数据长度也不长,才24;
Wireless-Tech 用app不会,出现问题的机率非常小;用的就是client_ONOFF模型的,model_transition_t参数设置为NULL,用app控制的时候也是发出的24个字节啊
Wireless-Tech 是开发板,作为previsioner的client在自己配置自己的时候就会出现那个问题,但是用app配置这个client入网再连接其发送控制命令就不会,看起来像是configure self那里出问题,但是想不明白的是为什么同样配置的onoff_server,有些收到有些收不到,如果是configure self有问题,应该全部都收不到才对啊?
fancy
Wireless-Tech 我测试了一下,使用generic_onoff_client_set_unack,拉大发送次数到3和5的时候,好像就没有这个问题了,难道还真是丢包问题?
fancy 那你可以看看你默认之前是发了多少次,一般默认都会发3次,也就是说on_off这条命令会发3次,即在37,38,39三个通道各发3次
Wireless-Tech 之前一直使用generic_onoff_client_set,然后他只发一次,generic_onoff_client_set_unack的改成0了,好像也是只发一次
fancy 那就多发几次吧,设置发送3次。
Wireless-Tech 博主这里说多发几次是为了减少数据的丢失概率?
fancy 是的,spec都推荐多发几次,因为涉及到组播时,不可能每包都应答的,这样的话会容易将整个mesh网络搞死。