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

遠程配置

服務端可以向設備端主動下推遠程配置信息, 設備端也可以向服務端主動查詢遠程配置信息,設備離線期間服務端如果發布過遠程配置信息, 設備端可以通過后者這種方式來獲取到更改后的配置信息。

在與阿里云物聯網平臺建立連接之前,注冊對事件ITE_COTA的處理函數,當云端修改配置之后,SDK將會調用用戶注冊的處理函數,處理函數需要使用IOT_Linkkit_Query來請求COTA數據。

1. 定義COTA事件回調函數及獲取配置數據

下面是回調函數的示例代碼,其中使用了IOT_Linkkit_Query來請求COTA數據:




static int user_cota_event_handler(int type, const char *config_id, int config_size, const char *get_type,
                                   const char *sign, const char *sign_method, const char *url)
{
    char buffer[128] = {0};
    int buffer_length = 128;
    user_example_ctx_t *user_example_ctx = user_example_get_ctx();

    if (type == 0) {
        EXAMPLE_TRACE("New Config ID: %s", config_id);
        EXAMPLE_TRACE("New Config Size: %d", config_size);
        EXAMPLE_TRACE("New Config Type: %s", get_type);
        EXAMPLE_TRACE("New Config Sign: %s", sign);
        EXAMPLE_TRACE("New Config Sign Method: %s", sign_method);
        EXAMPLE_TRACE("New Config URL: %s", url);

        IOT_Linkkit_Query(user_example_ctx->master_devid, ITM_MSG_QUERY_COTA_DATA, (unsigned char *)buffer, buffer_length);
    }

    return 0;
}               

2. 注冊COTA事件回調函數

下面是示例代碼:




int main(int argc, char **argv)
{
    char buffer[128] = {0};
    int buffer_length = 128;
    ...

    IOT_RegisterCallback(ITE_COTA, user_cota_event_handler);

    ...

    memset(&master_meta_info, 0, sizeof(iotx_linkkit_dev_meta_info_t));
    memcpy(master_meta_info.product_key, PRODUCT_KEY, strlen(PRODUCT_KEY));
    memcpy(master_meta_info.product_secret, PRODUCT_SECRET, strlen(PRODUCT_SECRET));
    memcpy(master_meta_info.device_name, DEVICE_NAME, strlen(DEVICE_NAME));
    memcpy(master_meta_info.device_secret, DEVICE_SECRET, strlen(DEVICE_SECRET));

    ...

    res = IOT_Linkkit_Connect(user_example_ctx->master_devid);
    if (res < 0) {
        EXAMPLE_TRACE("IOT_Linkkit_Connect Failed\n");
        return -1;
    }

...
}

設備端向服務端主動查詢遠程配置信息

對于設備端主動請求COTA的情況,用戶仍然需要注冊COTA事件的回調函數(相關代碼見上面的描述)。當設備連接到阿里云物聯網平臺后,調用IOT_Linkkit_Query來請求云端下發COTA數據。

下面是示例代碼:




int main(int argc, char **argv)
{
    ...

    user_example_ctx->master_devid = IOT_Linkkit_Open(IOTX_LINKKIT_DEV_TYPE_MASTER, &master_meta_info);
    if (user_example_ctx->master_devid < 0) {
        EXAMPLE_TRACE("IOT_Linkkit_Open Failed\n");
        return -1;
    }
    res = IOT_Linkkit_Connect(user_example_ctx->master_devid);
    if (res < 0) {
        EXAMPLE_TRACE("IOT_Linkkit_Connect Failed\n");
        return -1;
    }

    /*告知云端推送COTA數據*/
    IOT_Linkkit_Query(user_example_ctx->master_devid, ITM_MSG_REQUEST_COTA, NULL, 0);

   ...
}

遠程配置功能API

更多信息,請參見API詳解

需要實現的HAL