ME3616移动&联通OpenCPU的FOTA流程

        WeFOTA用来升级ME3616 OpenCPU模组的固件,操作步骤分为:程序编写差分包制作平台差分包部署。文章给出完整的操作流程&步骤,按照顺序完成操作即可实现FOTA远程升级。

        FOTA实现的流程中,服务器可以随时处于"待命状态"。不同应用场景的客户(如烟感、路灯、水表等)程序设计中,根据自己的需求在不同时刻调用gsdk_ril_fota_ctr(),模组主动发起升级。比如服务器下发某个指令,或者用户按下特殊按键,ME3616调用升级函数,即可发起FOTA升级,非常方便。

一、程序编写

        Fota升级参考wefota.c例程,用户产品中将该例程封装成1个函数即可,模组需要升级时调用该函数立即发起升级。

Fota函数示例

        样机测试时将wefota.c封装成fota_Func(),调用该函数即实现Fota升级。函数中while(1)可直接忽略,因为升级成功后模组自动重启,升级失败时会break跳出循环。

Fota函数调用示例

用户需要fota时,调用该函数,模组立即进行Fota升级。

二、差分包制作

        这里流程演示差分包只升级用户的程序(user.bin),不升级固件底版本。如果需要同步升级底版本流程也是一样的,因为文件夹里面有对应版本的nbiot_m2m_demo.bin(实际上是否升级底版本对用户没区别,直接复制对应文件即可)。差分包制作先准备2个资料:用户自己的新旧程序(user.bin)、配置文件(adups_info.txt)

        参考文档《高新兴物联ME3616_WelinkOpen WeFOTA 接口开发指导_V1.3》第3章。

2.1 制作工具

    直接登录下面2.2的账户就是制作工具。

2.2 制作流程

    在发布的资料里(路径FTP-ME3616-WelinkOpen\Tools\IOTdeltaTool2.0_test_2017.8.25)找到IOTdeltaTool2.0_test.jar(直接用Everything工具搜索就找到了),点击打开

隐藏的账号
登录FOTA账号

操作步骤可直接参考下图,按照Step流程走:

    Step1:桌面建立2个文件夹(代表新/旧程序),每个文件夹里面有3个文件。3个文件分别为adups_info.txt(高新兴提供)、nbiot_m2m_demo.bin(对应底包文件夹下)、user.bin(用户程序)

    Step2:adups_info.txt文件里修改最后3行,实际只需要修改最后一行,另外2行可以直接参考下图不变

    Step3:将底包的nbiot_m2m_demo.bin放在文件夹下面

    Step4:打包2个zip文件

    Step5:按照图示上传,准备生成差分包

2个文件夹,存储3个差分包文件
adups_info.txt对应修改方式

注意这里的user1.bin和user2.bin,名称要和文件夹里用户的程序名称匹配起来。比如V1文件夹里面用户程序命名为user1.bin,则txt文件中倒数第三行也要命名为"user1.bin-D"

生成差分包
完成制作差分包
生成的差分包 update.zip

        到此,差分包制作完成,文件就是update.zip,后面准备部署到服务器平台。

三、平台差分包部署

        差分包上传到服务器平台之后,模组才可以发起FOTA升级,本章给出了如何上传差分包update.zip文件。差分包上传平台网址:http://wecloud.iot.gosuncnwelink.com,账号&密码如果需要发送邮件到yumaoxiang@gosuncn.com,操作流程按照下述图片说明即可。

        平台流程操作主要包括:添加固件版本号、添加IMEI号、关联版本&查分包。

登录服务器
增加自己的版本号
增加自己的固件版本号

       这里固件版本号命名建议用户使用自己的程序版本等关键字进行命名,因为平台存储文件较多,所以加入关键字后期容易区分。

添加待升级的IMEI号
添加完成后刷新网页,会显示已添加的IMEI

        模组发起FOTA升级时,会将内部固件版本与平台的固件进行匹配初始版本。比如现在样机测试的固件版本是OC_ME3616C1AV1.0B05,那么平台上必须有初始的固件版本。按照如下流程示例执行即可。

创建平台差分包列表
关联IMEI号与差分包
关联IMEI&差分包完成

        这里服务器设置已经完成,注意最后一步 "测试"&"发布"对FOTA没有影响,发布是后期服务器人员自行转移,整个FOTA流程一样,不影响我们应用。

四、FOTA升级

      第1章中提到样机测试时笔者将fota_Func()函数封装并在下发命令里调用,即服务器下发某个特殊的命令,模组调用函数发起Fota升级,这里给出完整的操作示例。

下发升级指令

       这里测试时使用电信的IOT平台下发,但是使用的是移动卡。因为电信平台有IP白名单限制,所以无法使用高新兴平台进行fota升级。

模组开始Fota升级
升级完成

        至此,所有Fota升级完成。再次注意:以上流程使用移动卡测试,电信卡需要使用IOT平台进行升级,流程验证&更新后给出。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容