有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
本模块用于设备端与控制端进行一些自声明信令传输,用户可以自声明信令类型、结构等。

功能介绍

用户可以通过本模块实现自声明命令控制,数据传输等功能。

流程指引

注册接收自声明数据回调 > 自声明信令模块初始化 > 发送自声明数据 > 自声明信令模块去初始化
收到自声明数据 > 解析进行相应操作

接口参考

该功能模块提供以下接口:
iv_uc_init:自声明信令模块初始化。
iv_uc_exit:自声明信令通道去初始化。
iv_uc_send_msg:发送自声明数据。
iv_uc_rev_msg_cb:接收自声明数据回调。

iv_uc_init

接口描述 自声明信令模块初始化。注册函数,申请资源。
int iv_uc_init(iv_uc_init_parm_s *pstInitParm);
参数说明
参数名称
类型
描述
输入/输出
pstInitParm
iv_uc_init_parm_s*
模块初始化参数
输入
返回值
返回值
描述
IV_ERR_NONE
成功
IV_ERR_*
失败,对应相应错误码

iv_uc_exit

接口描述 自声明信令模块去初始化。释放资源。
int iv_uc_exit(void);
参数说明
返回值
返回值
描述
IV_ERR_NONE
成功
IV_ERR_*
失败,对应相应错误码

iv_uc_send_msg

接口描述 发送自声明数据。
void iv_uc_send_msg(uint64_t u64DstId, void *pUcData, uint32_t u32UcDataLen);
参数说明
参数名称
类型
描述
输入/输出
u64DstId
uint64_t
发送目标 ID 标识,填入接收请求时的 ID
输入
u32DstMsgId
uint32_t
消息 ID 标志,填入接收请求是的 Msg ID
输入
pUcData
void *
发送的数据
输入
ucDataLen
uint32_t
发送的数据长度
输入
返回值
返回值
描述
void
-

iv_uc_recv_msg_cb

接口描述 接收自声明数据。
void (* iv_uc_recv_msg_cb)(uint64_t u64SrcId, void *pUcData, uint32_t u32UcDataLen);
参数说明
参数名称
类型
描述
输入/输出
u64SrcId
uint64_t
接收源的 ID 标识,后续发送数据时,目标 ID 填入此 ID
输入
u32SrcMsgId
uint32_t
消息源 ID 标志,回传消息的参数 u32DstMsgId 需用次 ID 填入
输入
pUcData
void*
接收的数据
输入
ucDataLen
uint32_t
接收的数据长度
输入
返回值
返回值
描述
void
-

数据结构

该模块提供以下数据结构: iv_uc_init_parm_s:自声明信令模块初始化参数结构体。

iv_uc_init_parm_s

接口描述 自声明信令模块初始化参数结构体。
typedef struct iv_uc_init_parm_s
{
void (* iv_uc_rev_msg_cb)(uint64_t u64SrcId, void *pUcData, uint32_t u32UcDataLen);
}iv_uc_init_parm_s;
参数说明
成员名称
描述
取值
iv_uc_rev_msg_cb
接收自声明数据回调
-

示例代码

1. 自声明信令模块初始化

int s32ErrCode = 0;
iv_uc_init_parm_s stInitParm;
stInitParm.iv_uc_recv_msg_cb = userCmd_recv_msg;
stInitParm.iv_uc_send_msg_result_cb = userCmd_send_msg_result;
s32ErrCode = iv_uc_init(&stInitParm);
if(s32ErrCode < 0)
{
GDB_ERR("iv_uc_init fail,s32ErrCode:%d\\n", s32ErrCode);
return -1;
}

2. 自声明信令模块去初始化

iv_uc_exit();

3. 自声明信令通道接收发送

uint32_t u32userCmdMsgId = 0;
void userCmd_recv_msg(uint64_t u64SrcId, void *pUcData, uint32_t u32UcDataLen)
{
GDB_INFO("pUcData:");
for(uint32_t i=0; i<u32UcDataLen; i++)
{
printf("%x ", ((char *)pUcData)[i]);
}
printf("\\n");
/*demo把数据再返回给APP*/
u32userCmdMsgId = iv_uc_send_msg(u64SrcId, pUcData, u32UcDataLen);
}