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

日志上報

物聯網平臺支持設備本地日志的上報,您可以在物聯網平臺控制臺的日志服務頁面,查詢設備本地日志,進行故障分析。本文介紹通過配置C Link SDK ,支持設備向物聯網平臺上報本地日志。

前提條件

使用流程

如下功能時序圖,以設備的應用程序demos/logpost_basic_demo.c為例,介紹日志上報的使用流程。

image..png

步驟一:設備初始化

  1. 創建設備句柄,完成設備建連。

    static void* demo_device_init(char *product_key, char *device_name, char *device_secret, char *host, uint16_t port)
    {
        int32_t res = STATE_SUCCESS;
        /* 創建設備 */
        void *device = aiot_device_create(product_key, device_name);
    	....
        ....
            
        res = aiot_device_connect(device);
        
    	....
        ....
        return device;
    }
  2. 配置日志模塊。

    • 設置日志模塊回調函數。

      /* 設置日志模塊回調函數 */
      aiot_device_logpost_set_callback(device, demo_logpost_msg_callback, NULL);

      參數說明

      參數

      說明

      device

      設備句柄。

      demo_logpost_msg_callback

      日志模塊的消息回調函數。

      NULL

      回調函數的上下文。

    • (可選)設置日志上報是否需要回復。

      /* 設置日志上報是否需要回復 0:默認值,不需要回復 1.需要回復 */
      aiot_device_logpost_set_post_reply(device, 1);

      參數說明

      參數

      說明

      device

      設備句柄。

      1

      • 1:表示需要回復。

      • 0(默認):表示不需要回復。

日志模塊配置后,Link SDK會自動向物聯網平臺查詢日志開關是否打開,開關的狀態也會通過回調函數通知用戶。

static void demo_logpost_msg_callback(void *device, const aiot_logpost_event_t *event, void *userdata)
{
    if(event->type == AIOT_LOGPOSTEVT_CONFIG_DATA) {
        if(event->data.config_data.on_off == 1) {
            printf("device logpost config on\r\n");
        } else {
            printf("device logpost config off\r\n");
        }
    }
    ....
}

步驟二:日志上報

  1. 發送日志上報請求。

    /* 上報日志到云端 */
    static void demo_send_log(void *device, char *log)
    {
        int32_t res = 0;
        aiot_log_t log_msg;
    
        memset(&log_msg, 0, sizeof(aiot_log_t));
        log_msg.timestamp = 0;                          /* 單位為ms的時間戳, 填寫0則SDK將使用當前的時間戳 */
        log_msg.loglevel = AIOT_LOGPOST_LEVEL_DEBUG;    /* 日志級別 */
        log_msg.module_name = "APP";                    /* 日志對應的模塊 */
        log_msg.code = 200;                             /* 狀態碼 */
        log_msg.msg_id = 0;                             /* 云端下行報文的消息標示符, 若無對應消息可直接填0 */
        log_msg.content = log;                          /* 日志內容 */
    
        res = aiot_device_logpost_send(device, &log_msg);
        if (res < 0) {
            printf("aiot_device_logpost_send failed: -0x%04X\r\n", -res);
        }
    }

    參數說明

    參數

    說明

    device

    設備句柄。

    log_msg

    上報的日志信息。

  2. 云端回復。

    若您在步驟一設置日志上報是需要回復,云端在收到日志上報后,存儲完成,會回復日志上報結果。

    code為200時,表示日志上報成功。

    static void demo_logpost_msg_callback(void *device, const aiot_logpost_event_t *event, void *userdata)
    {
        ....
            
    	if(event->type == AIOT_LOGPOSTEVT_POST_REPLY) {
            printf("device logpost post reply id %d, code %d\r\n", 
                event->data.post_reply.msg_id, event->data.post_reply.code);
        }
    }

    參數說明

    參數

    說明

    device

    設備句柄。

    event

    消息的時間的具體內容。

    userdata

    回調的上下文。

步驟三:設備反初始化

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