待完善
1.定时上报数据可以修改成有变化(幅度可以为1或者0.1)再上传最新的值
bug
1.
遇到的问题和解决方案
工作直接相关:
1. F051C8 仅 8K RAM , 程序编译之后已经 6-7K 了, 程序中如果malloc(1024), 容易出现问题
代码编写过程注意代码的编写风格,适当的动态分配内存减小RAM的消耗
2. 数据存储和现有的4455协议冲突
采用两个req+UDP+endreq方式简单方便的达到数据存储和上传的功能
3. 上传和下载过程中同时申请内存,内存明显不够
每个时刻仅保持一种功能的存在
4. 制定的底层通信协议过于繁琐
按位来对设备进行操作
5. 数据通信的过程中数据的变化,对代码的修改工作量较大
采用动态数据长度的修改,适合各种长度变化,增加代码的通用性
6. 设备的工作的过程中,针对于出现问题不方便判断
错误码详细分类,快速定位问题的出现位置
7. 数据交互过程中类tcp协议过于繁琐
采用简单的类udp方案传输数据
8. 上传数据的过程中,数据包含无效字节
去除无效字节合理分配内存
9. 下载红外码过程中,通信不协调,通信速率低
加入超时回包结束此次通信过程
10.CRC调试计算麻烦
采用在线计算器,简单快捷高效
11.数据通信过程中,没有req,直接start,FD问题等各种异常分支考虑不全
不同的异常分支回复相应的错误码,更容易定位问题
12.查看传感器采集数据类型不合理,以及数据存储理解错误
采用u32格式,数据存储的详细分析
13.上传和下载过程,参数固定,适应性差
把部分接口做成相对通用的
14.传感器数据处理过程中buf、pop、push架构繁琐
采用官方的数据结构,简单快速
15.Zigebee透传功能时思路混乱,通信流程不清晰
暂时忽略组网部分,只修改组网之后的代码,先简后繁提高工作效率
16.STM32F103传感器模块,MCU从串口获取数据的过程中,如果传输过程中数据长度发生错误,导致MCU进入短期不可控制
接收数据过程中,加入4MS空闲状态判断,按照每一帧发送给uart_handle函数的方案,有效的处理错桢的问题
17.传感器代码结构不合理
加入根据接入传感器的类型不同,代码自适应传感器,有dev概念,模块化开发构思和架构分层方法的实现
18.分析红外码不合理
采用逻辑分析仪分析具体的逻辑波形
工作间接相关:
1. 数据结构不理解,无法理解程序执行流程
详细分析通过一个函数,操作一个结构体,实现对应函数功能,模块化概念,降低代码维护和代码跟踪问题
2. 公司产品功能的不清晰
分析现有产品,分析后期产品的可拓展的空间,分析代码严谨代码风格的必要性
3. 调试工具不会使用,不知道如何调试
尽量隔离其他人员的协助,自己对设备进行调试,加入固定mac的过滤,方便定位问题和代码的跟踪
4. 下行协议不理解,tag和OPCODE的错误认识
详细分析下行协议,理解协议结构方便功能的实现
5. rt-thread系统调试finsh组件不会使用
演示使用方法,和注意事项,包括如何对代码进行跟踪