zoukankan      html  css  js  c++  java
  • ESA2GJK1DH1K升级篇: 关于升级篇数据校验

    前言

      鉴于大家都希望升级的时候加入数据校验,所以就满足大家的要求.

      其实我也希望自己做的足够的稳定可靠,让大家使用起来放心.

      上一节测试了一节加入校验以后的操作方式,这节来详细的说一下校验部分的代码.

    数据校验方式

      数据校验方式是 每个数据做累加

      注意哈,单片机程序是 char 型的数据类型,然后像下面做数据累加.

      char  sum;

           sum= sum + 数据;

      数据呢就是升级的时候接收的一个字节一个字节的数据.

      我还是多说一句吧!

      问一下就像是上面  假设现在 sum = 255;  然后接着数据是 0x03

      我问下执行  sum= sum + 0x03;  现在sum等于多少?

      等于 0x02 

      我只做下提醒

      int a = 0x0102

      char  b = a;

      b = 0x02;

      上位机呢,和单片机那边计算方式一样

        

      上位机源码在这里大家自己去看哈

        

      

    然后看单片机程序:  BootLoader 加入数据校验

      其实加入了校验就相当于多了一个判断而已!!!!

      大家记得哈,云端的数据是这样的

      SumBin1是第一份用户程序bin文件的数据校验和

      SumBin2是第二份用户程序bin文件的数据校验和

        

      

      先说下 BootLoader程序改变了哪些

      增加了3个状态标志,两个变量

        

      SumBin初始化为 -1 ,是因为校验值的范围是0-255,所以这个变量不能让它初始化为0

        

      

      以前的程序只是获取版本,现在需要再获取下bin文件的校验值,放到下图位置

        

      然后写上获取云端的校验值程序.

      刚才定义的SumBin和UpdateStatus_SumBinRangeErr 派上用场了

        

      接收数据的时候开始累加数据,计算数据的和

      上面定义的Sum就用上了

        

       然后呢其实有个状态变量是优化以前的一个地方

      以前为了少定义一些状态,就把下面的错误设置成了  UpdateStatus_DataAddressError

        

      其实UpdateStatus_DataAddressError 这个状态是判断的下面的

        

        

      这次呢,想了想,换个新标志  UpdateStatus_MissingData

        

      然后加上最终的判断校验

        

      加上

        

       其实呢,就是多加了个判断而已...

      升级的时候弄了好多状态,实际上就是为了保证万无一失.

        

    然后看单片机程序:  用户程序

      写上新添加的升级状态.

        

      把升级状态,转为字符串的地方需要加上新状态了.

        

      然后就移植上了数据校验了

    现在很多人问,什么时候才有视频

      我是这样想的,我先写完文章教程以后再录制视频

      其实大家应该看出来了,每一节教程都是很复杂的教程

      涉及的知识点很多.我现在录制视频教程不敢打包票一次就录制好

      我不想像前几次似的录制了以后发现出问题了,一旦有问题,就必须重新录制

      文章有了问题好修改,修改的没有问题了,再遵循着文章录制视频教程

      这样才能保证一次性就成了!

      大家如果对代码上的思路不明白就问我哈,我正好可以总结大家的问题

      然后再整理整理文章.

      

  • 相关阅读:
    C#中 @ 的用法
    ASP.NET页面间传值
    ASP.NET中常用的文件上传下载方法
    把图片转换为字符
    把图片转换为字符
    JavaScript 时间延迟
    Using WSDLs in UCM 11g like you did in 10g
    The Definitive Guide to Stellent Content Server Development
    解决RedHat AS5 RPM安装包依赖问题
    在64位Windows 7上安装Oracle UCM 10gR3
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/11939465.html
Copyright © 2011-2022 走看看