本发明涉及通信技术领域,尤其涉及一种通信设备自动升级的方法。
背景技术:
目前,随着硬件的通用性,以及社会分工的细致化,对通信设备的软件要求也越来越细分化,导致越来越多的通信软件公司为了能够让自己有更多的精力投入到自己的专业领域,会选择专业的硬件供应商提供的通信设备再写进自己的软件,而硬件供应商为了更高效的服务不同的软件公司,简单、快速的升级不同厂家的软件需求也就是必然的需求。
技术实现要素:
本发明的目的是提供一种通信设备自动升级的方法,可便于进行批量性、自动化地对通信设备升级。
本发明的技术方案如下:本发明提供一种通信设备自动升级的方法,包括以下步骤:
步骤1、通信设备上电,检测软件校验标志位是否存在,若存在转步骤7,否则转步骤2;
步骤2、检测当前环境是否是软件升级环境,若是转步骤3,否则转步骤6;
步骤3、获取正确的升级文件,若升级文件获取成功转步骤4,否则转步骤6;
步骤4、把升级文件写到存储区,并判断是否写成功,若成功转步骤5,否则转步骤6;
步骤5、设置软件校验标志位,重启系统,转步骤7;
步骤6、点亮升级失败指示灯,结束程序;
步骤7、进入校验升级是否成功的流程,若升级成功点亮升级成功指示灯,否则点亮升级失败指示灯。
所述步骤2包括:
步骤21、通信设备上电,检测升级标志位是否存在,若存在转步骤22,否则转步骤6;
步骤22、检测指定服务器是否存在,若存在转步骤23,否则转步骤6;
步骤23、从指定服务器获取校验文件,若获取校验文件成功,转步骤24,若获取校验文件不成功,转步骤6;
步骤24、检查校验文件的大小,如果校验文件小于设定的字节数,转步骤25,否则转步骤6;
步骤25、检查校验文件的格式,如果格式正确,转步骤26,否则转步骤6;
步骤26、检查校验文件中的升级文件标志位是否正确,如果正确,转步骤27,否则转步骤6;
步骤27、根据校验文件,判断升级文件的大小是否小于存储区间,若小于存储空间转步骤28,否则转步骤6;
步骤28、转步骤3,进入获取升级文件流程。
所述校验文件为文本文档,其格式如下:校验文件开始标志、换行符、升级文件的字节数、换行符、升级文件的标志字段、换行符、升级文件的校验值、换行符、校验文件结束标志。
所述步骤24中,设定的字节数为4096字节。
所述步骤3包括:
步骤31、从指定服务器获取指定文件名的升级文件,若获取升级文件成功,转步骤32,否则转步骤6;
步骤32、检查升级文件的大小是否正确,若正确转步骤33,否则转步骤6;
步骤33、检查升级文件的标志位是否正确,若正确转步骤34,否则转步骤6;
步骤34、计算升级文件的校验值,并判断升级文件的校验值是否正确,若正确转步骤35,否则转步骤6;
步骤35、转步骤4,进入升级流程。
所述步骤4包括:
步骤41、擦除存储区,点亮正在升级指示灯,转步骤42;
步骤42、读取一组数据并写到存储区,转步骤43;
步骤43、读取存储区数据,比对写录是否正确,若正确则转步骤47,否则转步骤44;
步骤44、判断写入错误次数是否大于3次,若是转步骤45,否则转步骤46;
步骤45、灭掉正在升级指示灯,转步骤46;
步骤46、写入错误次数+1,转步骤42;
步骤47、判断全部数据是否已获取完毕,若是则转步骤49,否则转步骤48;
步骤48、获取下一组数据,转步骤42;
步骤49、转至步骤5,进入校验流程。
所述步骤42中,一组数据的大小为4096字节;所述步骤48中,下一组数据的大小为4096字节。
所述步骤7包括:
步骤71、读取存储区数据并计算校验值,转步骤72;
步骤72、比对校验值是否正确,若正确转步骤73,否则转步骤74;
步骤73、清除校验标志位,点亮升级成功指示灯;
步骤74、点亮升级失败指示灯。
采用上述方案,本发明提供一种通信设备自动升级的方法,通过在设备上电时,查找指定服务器,获取校验文件和升级文件,通过验证来保证通信设备安全地自动升级,可便于进行批量性、自动化升级。
附图说明
图1为本发明通信设备自动升级的方法的流程图。
图2为本发明中检测当前环境是否是软件升级环境的流程图。
图3为本发明中检验文件的结构示意图。
图4为本发明中获取正确的升级文件的流程图。
图5为本发明中把升级文件写到存储区的流程图。
图6为本发明中校验升级是否成功的流程图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
请参阅图1,本发明提供一种通信设备自动升级的方法,通过在设备上电时,查找指定服务器,获取校验文件和升级文件,通过验证来保证通信设备安全地自动升级。该方法具体包括以下步骤:
步骤1、通信设备上电,检测软件校验标志位是否存在,若存在转步骤7,否则转步骤2。
在该步骤中,检测软件校验标志位是否存在,若存在则进行升级校验,若不存在则进行软件升级。
步骤2、检测当前环境是否是软件升级环境,若是转步骤3,否则转步骤6。
请结合参阅图2,该步骤具体可以细分为以下步骤21至步骤28:
步骤21、通信设备上电,检测升级标志位是否存在,若存在转步骤22,否则转步骤6。
步骤22、检测指定服务器是否存在,若存在转步骤23,否则转步骤6。
步骤23、从指定服务器获取校验文件,若获取校验文件成功,转步骤24,若获取校验文件不成功,转步骤6。
请结合参阅图3,所述校验文件为文本文档,,其格式如下:校验文件开始标志(cf-check-start)、换行符、升级文件的字节数、换行符、升级文件的标志字段(此字段组成方式为comfast+硬件型号)、换行符、升级文件的校验值(此值通过算法计算出)、换行符、校验文件结束标志(cf-check-end)。
步骤24、检查校验文件的大小,如果校验文件小于设定的字节数,转步骤25,否则转步骤6。
在本实施例中,设定的字节数为4096字节。
步骤25、检查校验文件的格式,如果格式正确,转步骤26,否则转步骤6。
步骤26、检查校验文件中的升级文件标志位是否正确,如果正确,转步骤27,否则转步骤6。
步骤27、根据校验文件,判断升级文件的大小是否小于存储区间,若小于存储空间转步骤28,否则转步骤6。
步骤28、转步骤3,进入获取升级文件流程。
步骤3、获取正确的升级文件,若升级文件获取成功转步骤4,否则转步骤6。
请结合参阅图4,在该步骤中可以细分包括以下步骤31至步骤35:
步骤31、从指定服务器获取指定文件名的升级文件,若获取升级文件成功,转步骤32,否则转步骤6。
步骤32、检查升级文件的大小是否正确,若正确转步骤33,否则转步骤6。
步骤33、检查升级文件的标志位是否正确,若正确转步骤34,否则转步骤6。
步骤34、计算升级文件的校验值,并判断升级文件的校验值是否正确,若正确转步骤35,否则转步骤6。
步骤35、转步骤4,进入升级流程。
步骤4、把升级文件写到存储区,并判断是否写成功,若成功转步骤5,否则转步骤6。
请结合参阅图6,所述步骤4包括:
步骤41、擦除存储区,点亮正在升级指示灯,转步骤42。
步骤42、读取一组数据并写到存储区,转步骤43。
该组数据的大小为4096字节,刚好为磁盘一个片区大小。
步骤43、读取存储区数据,比对写录是否正确,若正确则转步骤47,否则转步骤44。
步骤44、判断写入错误次数是否大于3次,若是转步骤45,否则转步骤46。
步骤45、灭掉正在升级指示灯,转步骤46。
步骤46、写入错误次数+1,转步骤42。
步骤47、判断全部数据是否已获取完毕,若是则转步骤49,否则转步骤48。
步骤48、获取下一组数据,转步骤42。
该下一组数据的大小为4096字节,刚好为磁盘一个片区大小。
步骤49、转至步骤5,进入校验流程。
步骤5、设置软件校验标志位,重启系统,转步骤7。
在该步骤中,清除软件升级标志位,为保证软件一定写到了存储区,而不是磁盘映射区,设置软件校验标志位,重启系统。
步骤6、点亮升级失败指示灯,结束程序。
步骤7、进入校验升级是否成功的流程,若升级成功点亮升级成功指示灯,否则点亮升级失败指示灯。
本发明通过校验来检测是否成功升级,保证了通信设备安全地自动升级。请结合参阅图6,所述步骤7包括:
步骤71、读取存储区数据并计算校验值,转步骤72。
步骤72、比对校验值是否正确,若正确转步骤73,否则转步骤74。
步骤73、清除校验标志位,点亮升级成功指示灯。
步骤74、点亮升级失败指示灯。
综上所述,本发明提供一种通信设备自动升级的方法,通过在设备上电时,查找指定服务器,获取校验文件和升级文件,通过验证来保证通信设备安全地自动升级,可便于进行批量性、自动化升级。
以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。