自定义信令模块

最近更新时间:2024-08-23 17:43:51

我的收藏
本模块提供自定义信令与后台服务器数据收发功能。

功能介绍

本模块在系统模块、物模型模块初始化完成后进行初始化,提供服务器下行数据接收回调入口,提供自定义数据向后台服务器发送入口,从而以实现设备侧自定义信令与服务器的交互。

使用流程

模块初始化 > 发送数据 / 接收数据 > 模块去初始化。

接口参考

该功能模块提供以下接口:
iv_uc_init:自定义模块初始化。
iv_uc_exit:自定义模块去初始化。
iv_uc_send_msg:自定义信令发送。
用户需注册以下回调函数
iv_uc_recv_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

功能描述
发送自定义信令。
函数原型
uint32_t iv_uc_send_msg(void *pUcData, uint32_t u32UcDataLen);
参数说明
参数名称
类型
描述
输入/输出
pUcData
void *
自定义信令数据。
u32UcDataLen
uint32_t
自定义信令数据长度。
返回值
返回值
描述
IV_ERR_NONE
成功。
IV_ERR_*
失败,对应相应错误码。

iv_uc_recv_msg_cb

功能描述
自定义信令接收回调。
函数原型
void (*iv_uc_recv_msg_cb)(void *pUcData, uint32_t u32UcDataLen);
参数说明
参数名称
类型
描述
输入/输出
pUcData
void *
自定义信令数据地址。
输入
u32UcDataLen
uint32_t
自定义信令数据长度。
输入
返回值

数据结构

该模块提供以下数据结构:
iv_uc_init_parm_s:初始化参数。

iv_uc_init_parm_s

功能描述
初始化参数。
结构原型
typedef struct iv_uc_init_parm_s
{
void (*iv_uc_recv_msg_cb)(void *pUcData, uint32_t u32UcDataLen);
}iv_uc_init_parm_s;;
参数说明
成员名称
描述
取值
iv_uc_recv_msg_cb
自定义信令数据接收回调。
-

注意事项

1. 该模块初始化需要在系统模块、物模型模块初始化完成后才能进行模块初始化,初始化成功后即可调用发送数据接口或接收数据回调进行自定义信令的收发。
2. 自定义信令发送和接收的实际消息长度以接口数据长度入参为准。

示例代码

1. 自定义信令模块初始化

int user_cmd_init(void)
{
int eErrCode = 0;

iv_uc_init_parm_s stUCInitParm;
stUCInitParm.iv_uc_recv_msg_cb = userCmd_recv_msg;
eErrCode = iv_uc_init(&stUCInitParm);
if (eErrCode < 0) {
Log_e("iv_uc_init error:%d", eErrCode);
}
return eErrCode;
}

2. 自定义信令模块退出

int iv_uc_exit(void)

3. 自定义信令接收

static void userCmd_recv_msg(void *pUcData, uint32_t u32UcDataLen)
{
char msgbuf[1024] = {0};

if (u32UcDataLen >= sizeof(msgbuf)) {
Log_e("recv msg buf is not enough, datalen:%u", u32UcDataLen);
return;
}

memcpy(msgbuf, pUcData, u32UcDataLen);

return;
}