太阳能项目总结

太阳能项目

  • 串口通信
    在解析串口数据时,采用事件触发函数,来一个字节触发一次函数。每次从接收缓冲区取大于或等于一帧长度数据。
    • 异常1:数据头之后的长度不够,跳出保存
    • 异常2:校验码错误,丢弃整包数据,跳出
    • 异常3:整包数据都未找到头,无剩余数据保存
    • 正常数据:
      • 一包数据刚够
      • 剩余多余数据:跳出保存

总结:写完程序调试总会出现各种bug,因为自己的逻辑不严谨,要注意每一个if 后的else 是否完整,遇到if一定要看多个else是否情况包含完整(if else类似二叉树形状,生活中大部分分类都是根据树状图来分类的)

//更新20200729
串口接收程序将接收和处理分成两线程处理

    //注意:该串口接收事件函数一直在监听接收缓冲区,每接收一个字节,触发一次。
    /// <summary>
    /// 
    /// 思路:1.定义一个接收缓冲区list集合,将接收的数据存入,若缓冲区满,采用队列形式移除头部信息。
    ///       2.另开一个处理数据线程,根据帧尾从接收缓冲区集合不断取出每一帧数据进行处理。
    ///       3.接收线程和处理线程共享接收缓冲区结合资源,使用同步锁保证线程安全。
    ///       将接收和处理分成两线程好处是加快数据接收处理效率,不会出现发送端频率很快且数据多时,上位机处理不过来,导致数据浪费。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值