产测工具
产测工具
又是一个多月过去了,在WiFi功能完成差不多后,我又需要做一个产测工具,用于工厂生产和测试。在不知不觉中这个产品的开发已经进入收尾了,要开始产测了。
产测工具已经完成,并出差去了工厂现场调试,现将方案和遇到的问题做一个记录
需求
主要分为五个工作站,分别为固件下载,WiFi校准,功能测试,驻网测试,打印标签。功能和流程如下图:
工具设计
工具和设备主要使用UDP进行通信,设备作为一个udp server,工具作为client,通过定义好的规则,工具可以向设备发送命令,获取信息,设置参数等
工具功能:
- 固件下载:使用USB进行下载
- WiFi校准:WiFi校准使用第三方工具,产测工具调用wifi校准工具,校准工具成功后产测工具给予反馈
- 功能测试:功能测试时设备通过网线和电脑连接,其余网口连接配置了IP地址的交换机,LAN口功能测试时ping对应的IP即可,其他功能测试也是通过UDP进行
- 驻网测试:本次未做此功能
- 打标签:打印标签时,设备已经完成组装,使用USB连接设备,通过AT命令获取所需信息并一键打印
流程:
- 选择模式,计划登陆成功后,选择需要的功能
- 扫描SN:扫描设备的SN
- 途程检测:检测设备是否通过之前的功能测试
- 开始测试:进行测试
- 过站:测试通过就流入下一个工作站,进行下一项测试
工具实现
决定使用QT进行开发,QT支持跨平台编译,有很高的可移植性;QT拥有丰富的模块,包括多达 250 个以上的 C++ 类;QT有自己的编辑器Qt Creator,方便配置编译器;QT还拥有很多工具,比如语言家,设计家等,可以更方便的将应用release出来
QT开发有三种方式,纯代码,纯UI,以及代码UI结合的方式,本次为了提高开发效率使用代码和UI结合的方式进行开发(上一个高通的5G MIFI采用纯代码开发)
标签打印使用codesoft6,完成标签模板,设置变量,产测工具通过接口将变量传给codesoft6进行打印
放几张界面图片:
流程控制
流程控制是工具对接工厂的MES系统
MES系统是一套面向制造企业车间执行层的生产信息化管理系统。MES可以为企业提供包括制造数据管理、计划排程管理、生产调度管理、库存管理、质量管理、人力资源管理、工作中心/设备管理、工具工装管理、采购管理、成本管理、项目看板管理、生产过程控制、底层数据集成分析、上层数据集成分解等管理模块,为企业打造一个扎实、可靠、全面、可行的制造协同管理平台。
输入SN后工具和MES系统交互,进行途程检测,检测通过后再进行测试,测试结果通过接口上传给MES系统进行保存和数据分析
开发遇到的问题
QT使用UDP进行广播
使用现成的 QUdpSocket 模块进行开发
LAN口ping测试
使用QProcess执行CMD命令进行测试
进行LAN口ping测试时,界面假死
创建线程执行CMD命令
打印标签时串口开发
使用的QT4.8.7没有对应模块,升级到QT5使用自带的QSerialPort进行开发
对接MES系统时,参数异常(QString 转 char* 出现异常)
错误写法和正确写法如下,为什么不能一步写完,还没有查找原因:
1
2
3
4
5
6
7
8
9//错误写法
QString SN = "test";
char *sn = SN.toLatin1().data();
//正确写法
QByteArray tmp;
QString SN = "test";
tmp = SN.toLatin1();
char *sn = tmp.data();线程中调用某些成员函数失败
在不同的线程中使用信号和槽的方式进行函数调用
结语
QT的基础使用是比较简单的,有空的话记录一下QT的一些简单的使用