MQTT連云HAL
本文介紹MQTT連云相關(guān)的HAL接口。
HAL_SSL_Destroy
接口原型
int32_t HAL_SSL_Destroy(_IN_ uintptr_t handle);
接口說明
銷毀由參數(shù)
handle
指定的TLS連接。參數(shù)說明
參數(shù)
數(shù)據(jù)類型
方向
說明
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);
接口說明
根據(jù)指定的服務(wù)器網(wǎng)絡(luò)地址、服務(wù)器端口號(hào)和證書文件建立TLS連接,返回對(duì)應(yīng)的連接句柄。
參數(shù)說明
參數(shù)
數(shù)據(jù)類型
方向
說明
host
const char
輸入
指定的TLS服務(wù)器網(wǎng)絡(luò)地址
port
uint16_t
輸入
指定的TLS服務(wù)器端口
ca_crt
const char
輸入
指向PEM編碼的X.509證書的指針
ca_crt_len
uint32_t
輸入
證書字節(jié)長(zhǎng)度
返回值說明
值
說明
NULL
創(chuàng)建失敗
!NULL
創(chuàng)建成功,返回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連接中讀取數(shù)據(jù),此接口為同步接口,如果在超時(shí)時(shí)間內(nèi)讀取到參數(shù)
len
指定長(zhǎng)度的數(shù)據(jù)則立即返回,否則在超時(shí)時(shí)間到時(shí)才解除阻塞返回。參數(shù)說明
參數(shù)
數(shù)據(jù)類型
方向
說明
handle
uintptr_t
輸入
TLS連接句柄
buf
char *
輸出
指向數(shù)據(jù)接收緩沖區(qū)的指針
len
int
輸入
數(shù)據(jù)接收緩沖區(qū)的字節(jié)大小
timeout_ms
int
輸入
超時(shí)時(shí)間
返回值說明
值
說明
-2
TLS連接發(fā)生錯(cuò)誤。
-1
TLS連接被遠(yuǎn)程設(shè)備關(guān)閉。
0
TLS讀超時(shí), 且沒有接收到任何數(shù)據(jù)。
> 0
TLS讀取到的字節(jié)數(shù),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連接中寫入數(shù)據(jù),此接口為同步接口,如果在超時(shí)時(shí)間內(nèi)寫入了參數(shù)
len
指定長(zhǎng)度的數(shù)據(jù)則立即返回,否則在超時(shí)時(shí)間到時(shí)才解除阻塞返回。參數(shù)說明
參數(shù)
數(shù)據(jù)類型
方向
說明
handle
uintptr_t
輸入
TLS連接句柄
buf
char *
輸入
指向數(shù)據(jù)發(fā)送緩沖區(qū)的指針
len
int
輸入
數(shù)據(jù)發(fā)送緩沖區(qū)的字節(jié)大小
timeout_ms
int
輸入
超時(shí)時(shí)間
返回值說明
值
說明
< 0
TLS連接發(fā)生錯(cuò)誤。
0
TLS寫超時(shí),且沒有寫入任何數(shù)據(jù)。
> 0
TLS寫入的字節(jié)數(shù),TLS寫入成功。
HAL_TCP_Destroy
接口原型
int32_t HAL_TCP_Destroy(_IN_ uintptr_t fd);
接口說明
銷毀由參數(shù)
fd
指定的TCP連接,釋放資源。參數(shù)說明
參數(shù)
數(shù)據(jù)類型
方向
說明
fd
uintptr_t
輸入
TCP連接句柄
返回值說明
值
說明
< 0
操作失敗
= 0
操作成功
HAL_TCP_Establish
接口原型
uintptr_t HAL_TCP_Establish(_IN_ const char *host, _IN_ uint16_t port);
接口說明
根據(jù)指定的服務(wù)器網(wǎng)絡(luò)地址和端口號(hào)建立TCP連接,并返回對(duì)應(yīng)連接句柄。
參數(shù)說明
參數(shù)
數(shù)據(jù)類型
方向
說明
host
const char *
輸入
指定TCP服務(wù)器的網(wǎng)絡(luò)地址
port
uint16_t
輸入
指定TCP服務(wù)器的端口號(hào)
返回值說明
值
說明
(uint_ptr)(-1)
TCP連接建立失敗。
其它值(包括0)
TCP連接建立成功,返回對(duì)應(yīng)的連接句柄。
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連接中讀取數(shù)據(jù),此接口為同步接口,如果在超時(shí)時(shí)間內(nèi)讀取到參數(shù)
len
指定長(zhǎng)度的數(shù)據(jù)則立即返回,否則在超時(shí)時(shí)間到時(shí)才解除阻塞返回。參數(shù)說明
參數(shù)
數(shù)據(jù)類型
方向
說明
fd
uintptr_t
輸入
TCP連接句柄
buf
char *
輸出
指向數(shù)據(jù)接收緩沖區(qū)的指針
len
int
輸入
數(shù)據(jù)接收緩沖區(qū)的字節(jié)大小
timeout_ms
int
輸入
超時(shí)時(shí)間
返回值說明
值
說明
-2
TCP連接發(fā)生錯(cuò)誤。
-1
TCP連接被遠(yuǎn)程設(shè)備關(guān)閉。
0
TCP讀超時(shí),且沒有接收到任何數(shù)據(jù)。
> 0
TCP讀取成功,返回讀取到的字節(jié)數(shù)。
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連接中寫入數(shù)據(jù),此接口為同步接口,如果在超時(shí)時(shí)間內(nèi)寫入了參數(shù)
len
指定長(zhǎng)度的數(shù)據(jù)則立即返回,否則在超時(shí)時(shí)間到時(shí)才解除阻塞返回。參數(shù)說明
參數(shù)
數(shù)據(jù)類型
方向
說明
fd
uintptr_t
輸入
TCP連接句柄
buf
char *
輸入
指向數(shù)據(jù)發(fā)送緩沖區(qū)的指針
len
int
輸入
數(shù)據(jù)發(fā)送緩沖區(qū)的字節(jié)大小
timeout_ms
int
輸入
超時(shí)時(shí)間
返回值說明
值
說明
< 0
TCP連接發(fā)生錯(cuò)誤。
0
TCP寫超時(shí),且沒有寫入任何數(shù)據(jù)。
> 0
TCP入成功,返回TCP寫入的字節(jié)數(shù)。