配个网操碎了心~

这个是一个找到了解决方法但没找到根本原因的问题。先记录下来,也许以后变得更厉害了就明白了。

 

配个网操碎了心~_第1张图片

物联网设备要入网首先得配网,即需要APP来告诉他应该去连哪个网络密码是啥,配网的方式一般有softAPsmartCfg、蓝牙配网等。

 

今天就说softAP,配网过程如下:物联网设备上的wifi模组作为sofAP启动,手机连接该softAP(事先定好了账号和密码),然后手机和wifi模组建立tcp连接,wifitcp server,手机为tcp client,进行tcp通信,手机把网络账号密码发给wifi模组。

配个网操碎了心~_第2张图片

问题是这样的,配网本来是好好的,没什么问题,成功率几乎是100%很少出错,能达到要求。

 

后来产品增加了一个功能:本地升级,用于售后维护人员在产品有问题时去现场给产品进行升级。

 

升级过程如下图,电脑首先连接到一个特定账号的路由并设定一个固定IP,物联网设备会自动去该连接路由,并与电脑上HFS应用建立tcp链接,通过http通信协议HFSota 文件传输给物联网设备,完成本地ota升级。

配个网操碎了心~_第3张图片

原来物联网设备进入配网模式后,重启上电直接进行配网流程,增加了本地升级功能以后,程序流程如下。

配个网操碎了心~_第4张图片

增加了本地升级功能之后,设备进入配网模式重启后,首先扫描周围wifi热点,看是否有用于升级的热点名称,如果有,走升级流程,如果没有走配网流程。

 

增加了热点搜索后,进行自动化配网压测,发现配网成功的概率大大降低了,由原来的100%降到了90%以下,用的wifi模组为RTL 8711SDK版本为3.5b

是因为增加了扫描影响了?扫描用的是SDK的接口,扫描过程会切换信道,轮流扫描每一个信道,扫描三次后发现没有扫描到升级的热点,启动SoftAp开始配网流程。

 

分析配网失败log看到,手机连接softAP后又主动断开了,然后又连上断开连上断开几次,但最后是连上的,连上后设备端wifi板作为tcp server 一直没有收到手机的socket 连接请求。

 

查看配网成功的log手机连上wifi板的softAP以后也会断开一次,然后再连上,但中间只断开了一次。

 

配网失败时手机和wifi板之间的连接有问题了?网络层问题?传输层问题?从log看到wifi板已经分配了IP给手机了。

 

是扫描热点影响了配网成功率?

 

扫描以后再重启wifi板,上电后直接走配网流程测试100多次,没有再出现上面失败的情况了!看起来好像是扫描热点影响了后面配网!

 

是否是SDK版本太旧?目前用的SDK比较旧,用最新版的4.0a版本的SDK以后问题还是存在。

 

SDK tcp/IP协议栈的问题?

做了一个demo程序,wifi板起来后扫描周围热点,然后wifi启动softAP,手机来连接softAP,后面都能收到socket连接请求,说明扫描并没有影响后面softAP和手机之间的tcp 连接。

 

是否是手机端的问题?手机APP端为啥每次连上了softTAp之后还要断开再连上?配网失败时断开连上的次数就更多了。

 

手机端APP是合作公司的APP,配网部分是我们提供SDK他们调用我们的SDK接口实现的,

那为什么配网过程中间会断开一次? 经过与APP端人员分析,配网过程UI交互上是用户先选择一个刷出来的softAP去连接,连好后点击开始配网,此时APP调用我们的SDKSDK里面又自己先断开与softAP的连接再去连了一遍我们的wifisoftAp

 

APP端修改,SDK里不再去断开再连上softAP以后测试,你猜结果怎么样?

 

问题解决了!测试了700多次没有再出现!

那么这个问题到底在哪里?是APP端问题还是wifi端问题?

 

Wifi端增加了扫描之后,会出现手机反复断开连上断开连上softAP,是此时APP端发现连接已经有问题了所以才会反复断开连上?

 

只能说明:配网失败时softAp和手机端之间的连接有问题了,是网络层连接问题还是tcpTCP链接问题?无法说明。

 

是手机端本身bug还是增加扫描后引起连接有问题的?表面看起来像是增加扫描之后引入的问题,而且还是概率性问题,也是很头疼。

 

后来由于忙着别的事情这个问题根本原因也没有去追究,先记下来。

想起毕业入职第一家公司的部门领导跟我们说做开发一定要有打破砂锅问题到底的精神,要去找root cause,他还说“遇到事情总找理由不是一个好习惯”,很多话言犹在耳,都还记得。


1.灵魂拷问:嵌入式行业真的没前途吗?

2.@嵌友,这里有职位在等你!

3.当谈起嵌入式工程师,究竟在谈些什么?

4.传英伟达已与软银洽谈收购Arm,苹果接触后没兴趣

5.【揭秘】C语言类型转换时发生了什么?

6.美国公司找到芯片提速新方法!破解2D微缩关键瓶颈

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

你可能感兴趣的:(嵌入式,网络,物联网,wifi,蓝牙)