这是描述信息

光伏逆变器无线模块无线收发模块乐鑫WiFi模组ESP RainMaker固件更新

光伏逆变器无线模块无线收发模块乐鑫WiFi模组ESP RainMaker固件更新

光伏逆变器无线模块无线收发模块乐鑫WiFi模组ESP RainMaker固件更新

光伏逆变器无线模块无线收发模块乐鑫WiFi模组ESP RainMaker固件更新

光伏逆变器无线模块无线收发模块乐鑫WiFi模组ESP

光伏逆变器无线模块无线收发模块乐鑫WiFi模组ESP RainMaker固件更新,通过云平台完成更新是更为普遍的方案,本文将借助 ESP RainMaker 从云端向设备推送升级消息。ESP RainMaker 同样使用的是 esp_https_ota 组件,光伏逆变器无线模块无线收发模块乐鑫WiFi模组ESP RainMaker SDK 中整合OTA 升级部分的代码,通过调用 esp_rmaker_ota_enable()函数即可启用OTA 升级。需要注意的是,ESP RainMaker 提供了两种 OTA 升级方式,此处需要选择通过主题形式接收OTA 升级消息。订阅与 OTA 升级相关的主题后,可以通过这些主题接收 MQTT 消息并解析出固件的 URL,同时通过这些主题推送当前更新的进度及终状态。光伏逆变器无线模块无线收发模块乐鑫WiFi模组ESP RainMaker OTA升级功能的代码位于esp-rainmaker/components/esp rainmaker/src/ota目录下,该目录下与固件下载相关的代码位于源文件 esp_rmaker ota.c 中,下述代码也来源于此处。


1.//ESP RainMaker OTA 升级状态
2.char *esp_rmaker_ota_status_to_string(ota_status_t status)
3.{
4.    switch (status) {
5.    case OTA_STATUS_IN_PROGRESS:
6.    return "in-progress";
7.    case OTA_STATUS_SUCCESS:
8.    return "success";
9.    case OTA_STATUS_FAILED:
10.    return "failed";
11.    case OTA_STATUS_DELAYED:
12.    return "delayed";
13.    default:
14.    return "ninvalidu";
15.    }
16.    esp_err_t esp_rmaker ota report status(esp_rmaker_ota_handle_t ota handle,
17.    ota status t status,
18.    char *additional info)
19.    {
20.        ......
21.    if (ota->type == OTA USING PARAMS) (
22.    err = esp_rmaker ota report status using_params(ota_handle, status,
23.    additional info);
24.    }else if (ota->type == OTA_USING_TOPICS) {
25.    err = esp_rmaker_ota report status using_topics(ota_handle, status,
26.    additional info);
27.    }
28.    ...
29.    }


ESP RainMaker中OTA 升级状态有4种,分别为固件获取中(OTA_STATUS_IN_PROGRESS)、升级成功 (OTA_STATUS_SUCCESS)、升级失败 (OTA_STATUS_EAILED)、延后处理(OTA_STATUS_DELAYED)。光伏逆变器无线模块无线收发模块乐鑫WiFi模组在固件获取中,对应正在执行固件下载的状态,当调用esp_https_ota_begin()函数时应向云平台上报此状态,云平台也将更新对应的图标;升级成功与升级失败对应固件下载、校验的结果;延后处理则表示设备当前不方便处理该请求,随后可通过 esp_rmaker_ota_report_status ()函数完成OTA 升级状态的更新。


1.//固件信息校验
2.static esp_err_t validate_image_header(esp_rmaker_ota_handle_t ota_handler,
3.esp app desc t *new app info)
4.{
5.if (new app info == NULL) {
6.return ESP_ERR_INVALID_ARG;
7.}
8.
9.//获取固件状态
10.const esp_partition_t *running = esp_ota_get_running_partition()
11.esp app_desc_t running_app_info;
12.if (esp_ota_get_partition_descriptionrunning, &running app info) ==
13.ESP OK) {
14.ESP_LOGD(TAG,"Running firmware version: &s",running_app_info.version);
15.}


光伏逆变器无线模块无线收发模块乐鑫WiFi模组ESP RainMaker OTA 升级部分对回滚功能的自测部分做了封装,开发者可以通过esp_rmaker_ota_config t 结构体传入一个自测函数,该自测函数的返回值是布尔类型的。在调用 esp_rmaker_ota_enable ()函数开启OTA 升级时,一旦发现当前固件的状态为待校验固件 (ESP_OTA_IMG_PENDING_VERIEY),便会通过函数指针调用开发者传入的自测函数,通过自测函数的返回值设定当前固件的状态。光伏逆变器无线模块无线收发模块乐鑫WiFi模组esp_rmaker_ota_config t 结构体中的 server_cert 指向服务器端的证书,ESP RainMaker 使用AWS S3 存储服务,可以直接通过宏ESP_RMAKER_OTA_DEEAULT_SERVER_CERT 传入证书,在OTA升级时用于进行校验,防止 DNS 欺骗。

地址:深圳市宝安区西乡街道麻布社区宝安互联网产业基地A区6栋7栋7706

邮箱:Sales@ferry-semi.com

版权所有©2020  深圳市飞睿科技有限公司  粤ICP备2020098907号    飞睿科技微波雷达wifi模块网站地图

 

免责声明:本网站部分图片和文字内容以及视频可能来源于网络,转载目的在于传递更多信息,并不代表本网站赞同其观点或证实其内容的真实性。如涉及作品内容、版权和其它问题,请在30日内与本网站联系,我们将在第一时间删除内容!本站拥有对此声明的最终解释权。