更新时间: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); }
父主题: 端侧对接流程