设备OTA开发

主动获取 OTA

设备主动上报本地固件版本,云端若有新版本便会马上下发。

    // 定义一个字符串指针,保存需要上传的 json 字符串地址。
    char* params_string = NULL;

    // 设置本地固件版本信息,并把地址保存到对应的指针中。
    xiot_add_string_to_payload(&params_string, "version", "xxx");

    // 上报本地固件版本的事件到云端
    xiot_upload_firmware_version(params_string);

主动上报升级状态

接收到云端下发的 OTA 固件相关信息后,上报当前升级的进度和状态。

    // 定义一个字符串指针,保存需要上传的 json 字符串地址。
    char* params_string = NULL;

    // 设置 OTA 升级状态信息,并把地址保存到对应的指针中。
    xiot_add_int_to_payload(&params_string, "status", xxx);
    xiot_add_string_to_payload(&params_string, "desc", "xxx");

    // 上报固件升级状态的事件到云端
    xiot_upload_firmware_upgrade_status(params_string);

回应云端下发的 OTA 升级信息

云端下发 OTA 升级后,设备端需要及时给出回复。

    // 处理云端下发的 OTA 信息
    //  解析云端下发的 url,并根据 url 下载固件
    cJSON* url = cJSON_GetObjectItem(ota_params_json, "url");
    http_download(url->valuestring);
    ......


    // 定义一个字符串指针,保存需要上传的 json 字符串地址。
    char* data_string = NULL;

    // 设置需要回复的信息,并把地址保存到对应的指针中。
    xiot_add_int_to_payload(&data_string, "ret", xxx);
    xiot_add_string_to_payload(&data_string, "msg", "xxx");

    // 回应云端下发 OTA 升级信息的服务
    xiot_cloud_firmware_upgrade_notice_reply(data_string, mid);

results matching ""

    No results matching ""