日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

遠程配置

阿里云物聯(lián)網(wǎng)平臺提供的遠程配置功能,支持將指定產(chǎn)品的設備配置文件上傳到物聯(lián)網(wǎng)平臺,設備上線后將配置文件下載到設備進行解析與處理。本文介紹通過配置C Link SDK,幫助設備實現(xiàn)遠程配置功能。

前提條件

背景信息

遠程配置功能是從產(chǎn)品維度修改設備配置,即從物聯(lián)網(wǎng)平臺上傳的配置文件對所有設備生效,不可指定對單個設備生效。更多信息,請參見遠程配置

使用流程

遠程配置功能是從產(chǎn)品維度修改設備配置,即從物聯(lián)網(wǎng)平臺上傳的配置文件對所有設備生效,不可指定對單個設備生效。

如下功能時序圖,以設備的應用程序demos/remote_config_basic_demo.c為例,介紹遠程配置的使用流程。

image..png

步驟一:設備初始化

  1. 創(chuàng)建設備句柄,完成設備建連。

    static void* demo_device_init(char *product_key, char *device_name, char *device_secret, char *host, uint16_t port)
    {
        int32_t res = STATE_SUCCESS;
        /* 創(chuàng)建設備 */
        void *device = aiot_device_create(product_key, device_name);
    	....
        ....
            
        res = aiot_device_connect(device);
        
    	....
        ....
        return device;
    }
  2. 設置遠程配置回調(diào)函數(shù)。

    /* 設置遠程配置回調(diào)函數(shù) */
    aiot_device_rc_set_callback(device, demo_rc_callback, &config_task);

    參數(shù)說明

    參數(shù)

    說明

    device

    設備句柄。

    demo_rc_callback

    遠程配置模塊的回調(diào)函數(shù)。

    &config_task

    回調(diào)的上下文。

步驟二:獲取遠程配置請求

  1. 發(fā)送獲取遠程配置請求。

    /* 主動請求遠程配置文件 */
    aiot_device_rc_request(device);
  2. 云端有回復,會調(diào)用以下回調(diào)demo_rc_callback

    /* 遠程配置回調(diào)處理 */
    static void demo_rc_callback(void *device, const aiot_rc_msg_t *rc_msg, void *userdata)
    {
        demo_config_task_t *task = (demo_config_task_t *)userdata;
        int32_t res = STATE_SUCCESS;
        pthread_t config_process_thread;
        if(device == NULL || rc_msg == NULL) {
            return;
        }
    
        printf("file size %d, url :%s\r\n", rc_msg->config_size, rc_msg->url);
    
        /* 正在執(zhí)行配置任務的話,直接退出 */
        if(task->url != NULL) {
            return;
        }
    
        ....
    }

步驟三:云端推送遠程配置

  1. 發(fā)起遠程配置推送。

    您需在物聯(lián)網(wǎng)平臺控制臺,開啟遠程配置,編輯配置信息。具體操作,請參見場景一:物聯(lián)網(wǎng)平臺推送配置信息給設備端

  2. 設備端接收處理。

    物聯(lián)網(wǎng)平臺控制臺中,開啟遠程配置,編輯配置信息。具體操作,請參見場景二:設備主動請求配置信息

步驟四:下載遠程配置文件

  1. 創(chuàng)建文件下載線程。

    文件下載的過程可能比較久,回調(diào)函數(shù)中不能長時間阻塞,所以創(chuàng)建新的線程下載文件。

    /* 遠程配置回調(diào)處理 */
    static void demo_rc_callback(void *device, const aiot_rc_msg_t *rc_msg, void *userdata)
    {
        demo_config_task_t *task = (demo_config_task_t *)userdata;
    
        ....
    	....
        res = pthread_create(&config_process_thread, NULL, demo_remote_config_process_thread, task);
        if (res < 0) {
            free(task->url);
            free(task->sign);
            printf("pthread_create demo_rc_callback failed: %d\n", res);
            return;
        } else {
            /* 設置線程為detach狀態(tài),用于自動資源回收 */
            pthread_detach(config_process_thread);
        }
    }
  2. 下載遠程配置文件。

    /* 下載遠程配置文件,并更新設置 */
    static void *demo_remote_config_process_thread(void *args)
    {
        demo_config_task_t *task = (demo_config_task_t *)args;
        int32_t res = STATE_SUCCESS;
        http_download_params_t params = HTTP_DOWNLOAD_PARAMS_DEFAULT();
    
        /* 下載文件 */
        res = core_http_download_request(task->url, params, task->filename, save_file, NULL);
        if(res != STATE_SUCCESS) {
            printf("core_http_download_request failed\r\n");
            return NULL;
        }
        printf("remote config file %s download success\r\n", task->filename);
    
        /* 資源回收退出 */
        free(task->url);
        free(task->sign);
        return NULL;
    }

    core_http_download_request參數(shù)說明

    參數(shù)

    說明

    task->url

    需要下載文件的URL。

    params

    下載的參數(shù)配置。

    task->filename

    需要保存的文件名。

    save_file

    寫文件的回調(diào)函數(shù)。

    NULL

    回調(diào)函數(shù)的上下文。

步驟五:設備端完成配置

文件下載完成后,請您在自己設備端完成相關配置。

步驟六:設備反初始化

 /* 斷開設備連接,并回收設備資源 */
 demo_device_deinit(device);