STM32充电桩项目中解决重联网后信息同步问题

       经过一段时间的嵌入式学习,个人认为在实战项目中分为两个部分,第一步往往是进行项目功能的各模块编程,例如服务器模块,通信模块以及底层硬件模块。第二步则是协调各模块的工作时序以及逻辑,只有建立在对第一步的熟悉了解后,第二步的工作才能进行的顺利。第一步的各模块编程在网上等资料都容易查找到,在编写过程中可以用来借鉴。而第二步的工作,大多数情况下则需要自己去理清逻辑安排好各模块之间工作协调。下面举个例子进行分析下。

        例如我们现在要实现一个共享充电桩中嵌入式开发的任务,可以先将模块简单分为三块:

         1.云平台服务器模块(处理GSM模块上报的数据以及对下层进行指令发送)

         2.GSM通信模块(实时反馈数据信息,数据异常时进行上报)

         3.充电桩硬件模块(接受上层命令,实现硬件充电输出)

         假设我们的工作已经进行到了第二步,并且要解决一个重联网后信息同步问题。这个问题可能发生在整个系统开启时(各个模块都刚开始工作),也可能发生在网络模块发生故障后重新恢复后。再补充下信息的获取是依靠GSM模块中的STM32和充电桩硬件模块进行串口收发查询,原先是设想每隔1S查询一个插座的状态并且立刻上报反馈。但是在电脑上的模拟调试后发现会把上报的hu缓存空间堆满导致整个模块无法工作。所以便改成了若有数据异常时则进行上报并且在断网时信息查询也一直在进行,并加入重联网的判断,在重联网后会等待24S即三轮信息查询后进行数据上报(信息同步)。代码图如下:

         

上面的代码用了三重嵌套,在信息复杂度上可能有点问题,有待日后完善。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值