更新时间:2022-02-21 GMT+08:00

创建数据上报任务

在完成agent tiny的初始化后,需要通过调用creat_report_task()创建一个数据上报的任务app_data_report()。

    UINT32 creat_report_task()
     {
         UINT32 uwRet = LOS_OK;
         TSK_INIT_PARAM_S task_init_param;
         UINT32 TskHandle;
         task_init_param.usTaskPrio = 1;
         task_init_param.pcName = "app_data_report";
         task_init_param.pfnTaskEntry = (TSK_ENTRY_FUNC)app_data_report;
         task_init_param.uwStackSize = 0x400;
         uwRet = LOS_TaskCreate(&TskHandle, &task_init_param);
         if(LOS_OK != uwRet)
         {
             return uwRet;
         }
         return uwRet;
     }

在app_data_report()中应该完成对数据上报数据结构data_report_t的赋值,包括数据缓冲区地址buf,收到平台ack响应后的回调函数callback,数据cookie,数据长度len,以及数据上报类型type(在这里固定为APP_DATA)。

    uint8_t buf[5] = {0, 1, 6, 5, 9};
     data_report_t report_data;
     int ret = 0;
     int cnt = 0;
     report_data.buf = buf;
     report_data.callback = ack_callback;
     report_data.cookie = 0;
     report_data.len = sizeof(buf);
     report_data.type = APP_DATA;

完成对report_data的赋值后,即可通过接口atiny_data_report()上报数据。

接口名

描述

int atiny_data_report(void* phandle, data_report_t* report_data)

LiteOS SDK端云互通组件数据上报接口,由LiteOS SDK端云互通组件实现,设备调用,设备应用数据使用该接口上报。该接口为阻塞接口,不允许在中断中使用。

参数列表:参数phandle为调用初始化接口atiny_init()得到的agent tiny的句柄;参数report_data为数据上报数据结构。

返回值:整形变量,标识数据上报成功或失败的状态。

示例代码中的上报任务实现方法如下。

    while(1)
     {
         report_data.cookie = cnt;
         cnt++;
         ret = atiny_data_report(g_phandle, &report_data);   //数据上报接口
         ATINY_LOG(LOG_DEBUG, "data report ret: %d\n", ret);
         (void)LOS_TaskDelay(250 * 8);
     }