MQTT连云HAL

本文介绍MQTT连云相关的HAL接口。

HAL_SSL_Destroy

  • 接口原型

    int32_t HAL_SSL_Destroy(_IN_ uintptr_t handle);
  • 接口说明

    销毁由参数handle指定的TLS连接。

  • 参数说明

    参数

    数据类型

    方向

    说明

    handle

    uintptr_t

    输入

    TLS连接句柄

  • 返回值说明

    说明

    < 0

    操作失败

    = 0

    操作成功

HAL_SSL_Establish

  • 接口原型

    uintptr_t HAL_SSL_Establish(
                _IN_ const char *host,
                _IN_ uint16_t port,
                _IN_ const char *ca_crt,
                _IN_ uint32_t ca_crt_len);
  • 接口说明

    根据指定的服务器网络地址、服务器端口号和证书文件建立TLS连接,返回对应的连接句柄。

  • 参数说明

    参数

    数据类型

    方向

    说明

    host

    const char

    输入

    指定的TLS服务器网络地址

    port

    uint16_t

    输入

    指定的TLS服务器端口

    ca_crt

    const char

    输入

    指向PEM编码的X.509证书的指针

    ca_crt_len

    uint32_t

    输入

    证书字节长度

  • 返回值说明

    说明

    NULL

    创建失败

    !NULL

    创建成功,返回TLS连接句柄

HAL_SSL_Read

  • 接口原型

    int32_t HAL_SSL_Read(_IN_ uintptr_t handle, _OU_ char *buf, _OU_ int len, _IN_ int timeout_ms);int32_t HAL_SSL_Destroy(_IN_ uintptr_t handle);
  • 接口说明

    从指定的TLS连接中读取数据,此接口为同步接口,如果在超时时间内读取到参数len指定长度的数据则立即返回,否则在超时时间到时才解除阻塞返回。

  • 参数说明

    参数

    数据类型

    方向

    说明

    handle

    uintptr_t

    输入

    TLS连接句柄

    buf

    char *

    输出

    指向数据接收缓冲区的指针

    len

    int

    输入

    数据接收缓冲区的字节大小

    timeout_ms

    int

    输入

    超时时间

  • 返回值说明

    说明

    -2

    TLS连接发生错误。

    -1

    TLS连接被远程设备关闭。

    0

    TLS读超时, 且没有接收到任何数据。

    > 0

    TLS读取到的字节数,TLS读取成功。

HAL_SSL_Write

  • 接口原型

    int32_t HAL_SSL_Write(_IN_ uintptr_t handle, _IN_ const char *buf, _IN_ int len, _IN_ int timeout_ms);
  • 接口说明

    向指定的TLS连接中写入数据,此接口为同步接口,如果在超时时间内写入了参数len指定长度的数据则立即返回,否则在超时时间到时才解除阻塞返回。

  • 参数说明

    参数

    数据类型

    方向

    说明

    handle

    uintptr_t

    输入

    TLS连接句柄

    buf

    char *

    输入

    指向数据发送缓冲区的指针

    len

    int

    输入

    数据发送缓冲区的字节大小

    timeout_ms

    int

    输入

    超时时间

  • 返回值说明

    说明

    < 0

    TLS连接发生错误。

    0

    TLS写超时,且没有写入任何数据。

    > 0

    TLS写入的字节数,TLS写入成功。

HAL_TCP_Destroy

  • 接口原型

    int32_t HAL_TCP_Destroy(_IN_ uintptr_t fd);
  • 接口说明

    销毁由参数fd指定的TCP连接,释放资源。

  • 参数说明

    参数

    数据类型

    方向

    说明

    fd

    uintptr_t

    输入

    TCP连接句柄

  • 返回值说明

    说明

    < 0

    操作失败

    = 0

    操作成功

HAL_TCP_Establish

  • 接口原型

    uintptr_t HAL_TCP_Establish(_IN_ const char *host, _IN_  uint16_t port);
  • 接口说明

    根据指定的服务器网络地址和端口号建立TCP连接,并返回对应连接句柄。

  • 参数说明

    参数

    数据类型

    方向

    说明

    host

    const char *

    输入

    指定TCP服务器的网络地址

    port

    uint16_t

    输入

    指定TCP服务器的端口号

  • 返回值说明

    说明

    (uint_ptr)(-1)

    TCP连接建立失败。

    其它值(包括0)

    TCP连接建立成功,返回对应的连接句柄。

HAL_TCP_Read

  • 接口原型

    int32_t HAL_TCP_Read(_IN_ uintptr_t fd, _OU_ char *buf, _IN_ uint32_t len, _IN_ uint32_t timeout_ms);
  • 接口说明

    从指定的TCP连接中读取数据,此接口为同步接口,如果在超时时间内读取到参数len指定长度的数据则立即返回,否则在超时时间到时才解除阻塞返回。

  • 参数说明

    参数

    数据类型

    方向

    说明

    fd

    uintptr_t

    输入

    TCP连接句柄

    buf

    char *

    输出

    指向数据接收缓冲区的指针

    len

    int

    输入

    数据接收缓冲区的字节大小

    timeout_ms

    int

    输入

    超时时间

  • 返回值说明

    说明

    -2

    TCP连接发生错误。

    -1

    TCP连接被远程设备关闭。

    0

    TCP读超时,且没有接收到任何数据。

    > 0

    TCP读取成功,返回读取到的字节数。

HAL_TCP_Write

  • 接口原型

    int32_t HAL_TCP_Write(_IN_ uintptr_t fd, _IN_ const char *buf, _IN_ uint32_t len, _IN_ uint32_t timeout_ms);int32_t HAL_TCP_Read(_IN_ uintptr_t fd, _OU_ char *buf, _IN_ uint32_t len, _IN_ uint32_t timeout_ms);
  • 接口说明

    从指定的TCP连接中写入数据,此接口为同步接口,如果在超时时间内写入了参数len指定长度的数据则立即返回,否则在超时时间到时才解除阻塞返回。

  • 参数说明

    参数

    数据类型

    方向

    说明

    fd

    uintptr_t

    输入

    TCP连接句柄

    buf

    char *

    输入

    指向数据发送缓冲区的指针

    len

    int

    输入

    数据发送缓冲区的字节大小

    timeout_ms

    int

    输入

    超时时间

  • 返回值说明

    说明

    < 0

    TCP连接发生错误。

    0

    TCP写超时,且没有写入任何数据。

    > 0

    TCP入成功,返回TCP写入的字节数。