本模块用于设备端与控制端进行一些自声明信令传输,用户可以自声明信令类型、结构等。
功能介绍
用户可以通过本模块实现自声明命令控制,数据传输等功能。
流程指引
注册接收自声明数据回调 > 自声明信令模块初始化 > 发送自声明数据 > 自声明信令模块去初始化
收到自声明数据 > 解析进行相应操作
接口参考
该功能模块提供以下接口:
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);}