整体框架内容
Guides
Part1 PC工具的场景和需求
开发工具之前首先需要清晰工具投入使用需要用到的基础技术内容(例如TCP\Uart\http\USB),依据场景进行分析,采用什么样的通讯方式更为合适,首先需要清晰所处理的机器具备怎么样的接口,这些接口在何种情况下能够被使用
如何给产线使用尽可能的方便,发布软件可以不用关心系统版本和环境安装情况。能够尽可能使工位上的人少动外设(鼠标、键盘),尽可能不用关心一些物料文件的使用逻辑和位置
Part2 如何快速实现和接手工具?
1.统一协议标准
• 工具开发内容中,通讯模块需要优先确定好一套协议。
• 目前确定的协议内容包括:
串口通讯协议:
data_packet
{
"HEAD", //4 byte for signed
command, //2 byte command type code
section_index //2 byte index of section
section_length//8 byte length of section
data //section_length byte section data
crc32 //calculate crc value from "GIEC" to data
}
• 工厂服务器http协议:
get post接口
2.模块化设计和调试
2.1.模块化设计的主要目的
①软件模块需要更好的弹性,增加适用范围;
②软件模块需要有更好的可移植性,增加适用范围;
③软件模块需要更清晰地定义接口,避免模糊含混;
④软件模块需要有更好的稳定性,避免错误影响范围扩散;
⑤软件模块需要有更好的独立性,避免引用牵连模块,形成依赖链。
2.2.快速开发的过程中,模块化调试很有必要,一方面帮助我们验证接口与外对接是否正常,另一方面排除了其他模块的干扰,加速定位问题。
3.借助和复用现有模块内容
使用一些已经开发过的模块当然是最直接能够加速工具开发速度的途径。目前我们的工具已经做过的模块内容:
①CRC数据计算
②http请求和获取
③串口协议命令内容拼接组合
④配置文件读取
⑤弹窗提示
⑥超时处理
4.联调和试产
①快速实现还有一个重要的内容,需要多功能模块模拟联调。还需要在产线环境安排试产去发现问题。
②办公室环境大多数时候都还是较为稳定的,而产线的试产会对工具进行很多方面的负载测试,例如并发问题、网络负载、工具软件环境兼容性、外设兼容性等,在试产中才能发现很多办公室环境无法暴露的问题,同时我们在设计之初也应该去考虑如何保证自己的工具能够胜任试产的检测
Part3 工具设计逻辑
①内容闭环
②容错复查
③防呆
④考虑通讯方式注意点
⑤代码动态调整
⑥日志记录排查