这几天客户在使用我们的WiFi无线手柄时遇到了一些问题,我们紧急做了详细的分析。
并迅速给出解决方案,客户很满意。
2.有一定概率上位机无法通过模块的http接口控制模块。
3.无线控制器安装在控制箱内。关门后信号差,无法接通。
4.无线控制器的AP热点不能隐藏或关闭。
说明:
无线控制器中有一个TCP服务器和一个TCP客户端,其中TCP服务器用于实现一个HTTP服务器,提供内置网页。
其中,连接到TCP服务器的客户端是随机不确定的,无法通过定时心跳来监控服务器的可靠性。
但是,TCP客户端使用服务器的定时心跳来实时监控可靠性。一旦检测到异常,WiFi模块将被重置。
在目前的应用中,长期控制连接是通过TCP客户端连接的,而TCP server只用于编程、设置等短期使用。
对于TCP服务器在多并发情况下的长期可靠工作,目前还没有足够的实践验证。
可能存在的问题:
当TCP服务器由于bug等原因无法连接时,无线控制器无法自动检测到异常,然后复位恢复。
建议措施:
上位机设计一个TCP服务器,将无线控制器的TCP客户端连接到服务器(上位机代码提供了演示程序。网);
通过消息缓存限制并发(上位机代码需要新设计);
稳定性由定时心跳保证(无线控制器功能,已实现)。
超过一个TCP连续会出现通信中断情况
说明:
在设计无线控制器时,考虑其功能相对简单。为了确保可靠性、消息队列和响应机制,它被设计成确保TCP连接。
当有多个TCP连接时,只保证恢复一个连接时功能自动恢复正常,并发时通信中断。
可能存在的问题:
上位机每隔一段时间通过http接口与无线控制器通信时,会出现网页打不开的情况。
当网页被打开时,主机和无线控制器之间的通信被中断。
建议措施:
当需要打开网页设置时,停止上位机与无线控制器之间的常规查询。
正常工作时,关闭无线控制器的所有内置网页,上位机需要采用一定的机制避免与无线控制器的多次连接。
无线控制器采用板内的PCB天线
说明:
目前无线控制器采用PCB布线的WiFi模块作为天线。
可能存在的问题:
当无线控制器距离所连接的AP较远,有障碍物,或者无线控制器放在金属控制箱内时,无线信号差,无线连接失败,无线连接不稳定。
建议措施:
加WiFi中继,特别是无线控制器放在控制盒里的时候,可以在控制盒里加一个可以外接吸盘天线的WiFi中继,天线放在控制盒外面。
2.对于上位机,新设计了WebClent类,连接超时设置为3s左右。
3.对于上位机,与无线控制器的TCP连接要统一管理,保证只有一个连接(可以根据测试情况决定)。
4.对于上位机,考虑设计一个TCP服务器,无线控制器可以作为TCP客户端与之通信(可以根据测试情况决定)。
5.无线控制器需要重新上电才能恢复正常的问题,目前还没有测试过,我们暂时不做处理,再根据测试情况决定是否进一步分析。
4.采用两个WiFi模块冗余设计,增加可靠性。
WiFi模块代码
用visualstudio开发简单的自动测试软件,用多线程创建10个左右的TCP客户端,以100ms的时间间隔与无线控制器通信。
经过几天几夜的连续测试,丢包概率低,没有卡顿现象。
自动测试