halHdcSend
函数功能
普通通道发送数据接口。
该接口会将上层传下来的Buffer地址和长度封装成消息发送到对端。
函数原型
hdcError_t halHdcSend(HDC_SESSION session, struct drvHdcMsg *pMsg, UINT64 flag, UINT32 timeout)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
session |
输入 |
指定发送数据的session。 类型:HDC_SESSION。 |
pMsg |
输入 |
用于发送消息的描述符指针。 类型:struct drvHdcMsg *。 |
flag |
输入 |
HDC阻塞标志(若处于阻塞状态时,可通过session close完成强制退出),有以下取值:
类型:UINT64。 |
timeout |
输入 |
当“flag”取值为“2”时,此字段生效,用户可设置超时时间,单位毫秒。 此字段生效时,若timeout配置为“0”,系统默认设置超时时间3000ms, 类型:UINT32。 |
返回值说明
- 0:DRV_ERROR_NONE,成功
- 3:DRV_ERROR_INVALID_VALUE,参数错误
- 6:DRV_ERROR_OUT_OF_MEMORY,申请内存池失败
- 16:DRV_ERROR_WAIT_TIMEOUT,等待超时
- 25:DRV_ERROR_SOCKET_CLOSE,会话关闭
- 36:DRV_ERROR_NON_BLOCK,非阻塞没有数据
- 46:DRV_ERROR_OPER_NOT_PERMITTED,无权限访问

halHdcSend接口返回后,用户就可以对内存进行复用或释放(halHdcSend接口底层有内存池进行数据的拷贝中转)。
约束说明
- 当返回值为“6:DRV_ERROR_OUT_OF_MEMORY”时,表示申请内存块失败,需等待一段时间资源被释放后,再重新发送数据(内存池资源是受限的,共1024个block内存块,循环复用)。
- 当返回值为“16:DRV_ERROR_WAIT_TIMEOUT”时,表示等待超时时,需根据实际使用场景重新发送或者返回失败。
- 当返回值为“25:DRV_ERROR_SOCKET_CLOSE”时,表示会话关闭,如果是析构流程时返回的值,可以不打印错误打印。
父主题: 普通通道收发接口