luat_soc_sdk_2024 V1.0
MQTT相关接口

结构体

struct  luat_mqtt_ctrl_t
 设置MQTT客户端的配置参数 更多...
 
struct  luat_mqtt_msg_t
 
struct  luat_mqtt_connopts
 设置MQTT服务端服务器信息、加密信息 更多...
 

宏定义

#define MQTT_MSG_RELEASE   0
 
#define MQTT_MSG_TCP_TX_DONE   1
 
#define MQTT_MSG_TIMER_PING   2
 
#define MQTT_MSG_RECONNECT   3
 
#define MQTT_MSG_CLOSE   4
 
#define MQTT_ERROR_STATE_SOCKET   -1
 
#define MQTT_ERROR_STATE_DISCONNECT   -2
 
#define MQTT_RECV_BUF_LEN_MAX   4096
 MQTT 接收BUFF大小
 

类型定义

typedef struct luat_mqtt_connopts luat_mqtt_connopts_t
 设置MQTT服务端服务器信息、加密信息
 
typedef void(* luat_mqtt_cb_t) (luat_mqtt_ctrl_t *luat_mqtt_ctrl, uint16_t event)
 

枚举

enum  LUAT_MQTT_STATE_E { MQTT_STATE_DISCONNECT , MQTT_STATE_SCONNECT , MQTT_STATE_MQTT , MQTT_STATE_READY }
 mqtt状态 更多...
 

函数

int luat_mqtt_connect (luat_mqtt_ctrl_t *mqtt_ctrl)
 发起MQTT连接
 
int l_luat_mqtt_msg_cb (luat_mqtt_ctrl_t *ctrl, int arg1, int arg2)
 MQTT内部回调(用户无需关心)
 
int32_t luat_mqtt_callback (void *data, void *param)
 MQTT报文解析内部回调(用户无需关心)
 
LUAT_RT_RET_TYPE luat_mqtt_timer_callback (LUAT_RT_CB_PARAM)
 MQTT定时器内部回调(用户无需关心)
 
int luat_mqtt_send_packet (void *socket_info, const void *buf, unsigned int count)
 MQTT报文发送(用户无需关心)
 
void luat_mqtt_close_socket (luat_mqtt_ctrl_t *mqtt_ctrl)
 关闭MQTT连接,如果设置了自动重连,回重新自动连接
 
LUAT_MQTT_STATE_E luat_mqtt_state_get (luat_mqtt_ctrl_t *mqtt_ctrl)
 获取MQTT连接状态
 
void luat_mqtt_release_socket (luat_mqtt_ctrl_t *mqtt_ctrl)
 释放MQTT资源,释放后luatos_mqtt对象不可用
 
int luat_mqtt_init (luat_mqtt_ctrl_t *mqtt_ctrl, int adapter_index)
 初始化luatos_mqtt(初始化MQTT)
 
int luat_mqtt_set_connopts (luat_mqtt_ctrl_t *mqtt_ctrl, luat_mqtt_connopts_t *opts)
 设置MQTT服务器信息、加密信息函数
 
int luat_mqtt_set_rxbuff_size (luat_mqtt_ctrl_t *mqtt_ctrl, uint32_t rxbuff_size)
 设置MQTT服务器接收buff大小
 
int luat_mqtt_reconnect (luat_mqtt_ctrl_t *mqtt_ctrl)
 设置MQTT服务器信息、加密信息函数
 
int luat_mqtt_ping (luat_mqtt_ctrl_t *mqtt_ctrl)
 发送ping包
 
int luat_mqtt_set_will (luat_mqtt_ctrl_t *mqtt_ctrl, const char *topic, const char *payload, size_t payload_len, uint8_t qos, size_t retain)
 设置遗嘱消息
 
int luat_mqtt_set_cb (luat_mqtt_ctrl_t *mqtt_ctrl, luat_mqtt_cb_t mqtt_cb)
 设置MQTT事件回调函数
 

详细描述

宏定义说明

◆ MQTT_ERROR_STATE_DISCONNECT

#define MQTT_ERROR_STATE_DISCONNECT   -2

在文件 luat_mqtt.h14 行定义.

◆ MQTT_ERROR_STATE_SOCKET

#define MQTT_ERROR_STATE_SOCKET   -1

在文件 luat_mqtt.h13 行定义.

◆ MQTT_MSG_CLOSE

#define MQTT_MSG_CLOSE   4

mqtt 关闭回调消息(不会再重连)

在文件 luat_mqtt.h11 行定义.

◆ MQTT_MSG_RECONNECT

#define MQTT_MSG_RECONNECT   3

mqtt 重连前回调消息

在文件 luat_mqtt.h10 行定义.

◆ MQTT_MSG_RELEASE

#define MQTT_MSG_RELEASE   0

mqtt 释放资源前回调消息

在文件 luat_mqtt.h7 行定义.

◆ MQTT_MSG_TCP_TX_DONE

#define MQTT_MSG_TCP_TX_DONE   1

mqtt tcp发送完成

在文件 luat_mqtt.h8 行定义.

◆ MQTT_MSG_TIMER_PING

#define MQTT_MSG_TIMER_PING   2

mqtt ping前回调消息

在文件 luat_mqtt.h9 行定义.

◆ MQTT_RECV_BUF_LEN_MAX

#define MQTT_RECV_BUF_LEN_MAX   4096

MQTT 接收BUFF大小

在文件 luat_mqtt.h20 行定义.

类型定义说明

◆ luat_mqtt_cb_t

typedef void(* luat_mqtt_cb_t) (luat_mqtt_ctrl_t *luat_mqtt_ctrl, uint16_t event)

在文件 luat_mqtt.h86 行定义.

◆ luat_mqtt_connopts_t

设置MQTT服务端服务器信息、加密信息

枚举类型说明

◆ LUAT_MQTT_STATE_E

mqtt状态

枚举值
MQTT_STATE_DISCONNECT 

mqtt 断开

MQTT_STATE_SCONNECT 

mqtt socket连接中

MQTT_STATE_MQTT 

mqtt socket已连接 mqtt连接中

MQTT_STATE_READY 

mqtt mqtt已连接

在文件 luat_mqtt.h28 行定义.

函数说明

◆ l_luat_mqtt_msg_cb()

int l_luat_mqtt_msg_cb ( luat_mqtt_ctrl_t * ctrl,
int arg1,
int arg2 )

MQTT内部回调(用户无需关心)

参数
ctrlluatos_mqtt对象实例
arg1参数1
arg2参数2
返回
成功为0,其他值失败

◆ luat_mqtt_callback()

int32_t luat_mqtt_callback ( void * data,
void * param )

MQTT报文解析内部回调(用户无需关心)

参数
data数据
param参数
返回
成功为0,其他值失败

◆ luat_mqtt_close_socket()

void luat_mqtt_close_socket ( luat_mqtt_ctrl_t * mqtt_ctrl)

关闭MQTT连接,如果设置了自动重连,回重新自动连接

参数
mqtt_ctrlluatos_mqtt对象实例
返回
成功为0,其他值失败

◆ luat_mqtt_connect()

int luat_mqtt_connect ( luat_mqtt_ctrl_t * mqtt_ctrl)

发起MQTT连接

参数
mqtt_ctrlluatos_mqtt对象实例
返回
成功为0,其他值失败

◆ luat_mqtt_init()

int luat_mqtt_init ( luat_mqtt_ctrl_t * mqtt_ctrl,
int adapter_index )

初始化luatos_mqtt(初始化MQTT)

参数
mqtt_ctrlluatos_mqtt对象实例
adapter_index网卡类型(唯一值 NW_ADAPTER_INDEX_LWIP_GPRS)
返回
成功为0,其他值失败

◆ luat_mqtt_ping()

int luat_mqtt_ping ( luat_mqtt_ctrl_t * mqtt_ctrl)

发送ping包

参数
mqtt_ctrlluatos_mqtt对象实例
返回
成功为0,其他值失败

◆ luat_mqtt_reconnect()

int luat_mqtt_reconnect ( luat_mqtt_ctrl_t * mqtt_ctrl)

设置MQTT服务器信息、加密信息函数

参数
mqtt_ctrlluatos_mqtt对象实例
opts结构体MQTT服务器信息、加密信息函数
返回
成功为0,其他值失败

手动发起重连

参数
mqtt_ctrlluatos_mqtt对象实例
返回
成功为0,其他值失败

◆ luat_mqtt_release_socket()

void luat_mqtt_release_socket ( luat_mqtt_ctrl_t * mqtt_ctrl)

释放MQTT资源,释放后luatos_mqtt对象不可用

参数
mqtt_ctrlluatos_mqtt对象实例
返回
成功为0,其他值失败

◆ luat_mqtt_send_packet()

int luat_mqtt_send_packet ( void * socket_info,
const void * buf,
unsigned int count )

MQTT报文发送(用户无需关心)

参数
socket_infosocket
buf数据
count数据大小
返回
成功为0,其他值失败

◆ luat_mqtt_set_cb()

int luat_mqtt_set_cb ( luat_mqtt_ctrl_t * mqtt_ctrl,
luat_mqtt_cb_t mqtt_cb )

设置MQTT事件回调函数

参数
mqtt_ctrlluatos_mqtt对象实例
mqtt_cb回调函数
返回
成功为0,其他值失败

◆ luat_mqtt_set_connopts()

int luat_mqtt_set_connopts ( luat_mqtt_ctrl_t * mqtt_ctrl,
luat_mqtt_connopts_t * opts )

设置MQTT服务器信息、加密信息函数

参数
mqtt_ctrlluatos_mqtt对象实例
opts结构体MQTT服务器信息、加密信息函数
返回
成功为0,其他值失败

◆ luat_mqtt_set_rxbuff_size()

int luat_mqtt_set_rxbuff_size ( luat_mqtt_ctrl_t * mqtt_ctrl,
uint32_t rxbuff_size )

设置MQTT服务器接收buff大小

参数
mqtt_ctrlluatos_mqtt对象实例
rxbuff_size接收buff大小
返回
成功为0,其他值失败

◆ luat_mqtt_set_will()

int luat_mqtt_set_will ( luat_mqtt_ctrl_t * mqtt_ctrl,
const char * topic,
const char * payload,
size_t payload_len,
uint8_t qos,
size_t retain )

设置遗嘱消息

参数
mqtt_ctrlluatos_mqtt对象实例
topic遗嘱消息的topic
payload遗嘱消息的payload
payload_len遗嘱消息payload的长度
qos遗嘱消息的qos
retain遗嘱消息的retain
返回
成功为0,其他值失败

◆ luat_mqtt_state_get()

LUAT_MQTT_STATE_E luat_mqtt_state_get ( luat_mqtt_ctrl_t * mqtt_ctrl)

获取MQTT连接状态

参数
mqtt_ctrlluatos_mqtt对象实例
返回
LUAT_MQTT_STATE_E

◆ luat_mqtt_timer_callback()

LUAT_RT_RET_TYPE luat_mqtt_timer_callback ( LUAT_RT_CB_PARAM )

MQTT定时器内部回调(用户无需关心)