公司的产品,之前的配置只能在1~11信道上工作,对于12/13信道,配网包有概率收不到。有时候会出现收到了配网包但是无法连接至网络的情况,影响用户体验。
检查配网脚本,发现对12/13信道做了特殊处理,即若收到的配网包中的ssid在1~11信道上不存在的话,就手动设置为13信道并重启wifi,等待5秒,查找目标ssid。
但根本问题在于,进入配网模式时,系统配置决定了只在1~11信道监听,收到13信道的配网包属于相信道串包现象(只有1,6,11之间是完全不互相干扰的)。此时造成的后果是,13信道的配网包难以收到,配网成功率低。
后期配网时,对12,13信道做异常处理其实也未从根本上解决问题,而且5秒钟可能不足以完成连接,造成配置回切,配网失败。
后来的解决方案是,在编译固件时,option channel设置为13,此时,ralink.sh脚本会将region设置为1类,即支持1~13信道(ralink.sh的设置为如果是1~11,则设置为0类region)。
这也说明之前的配网成功率测试不够完全。需要考虑信道分布,网络拥堵情况,信道兼容性,路由器兼容性等。