TuyaOS
结构体 | 宏定义 | 类型定义 | 枚举 | 函数
tuya_svc_mqtt_client.h 文件参考
#include "tuya_cloud_types.h"
#include "tuya_svc_netmgr.h"
tuya_svc_mqtt_client.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

结构体

struct  mqtt_subscribe_t
 Definition of mqtt subscribe 更多...
 

宏定义

#define MAX_BACKOFF_COUNT   (8)
 
#define MAX_RANDOM_DELAY_BEFORE_RECONNECT   (5*60)
 
#define MQTT_HEATBEAT_INTERVAL   (60)
 
#define MQTT_MAX_MESSGAE_SIZE   (4096)
 
#define MQTT_RECV_BUF_SIZE   (512)
 
#define MQTT_RECV_SELECT_TIMEOUT   (3000)
 
#define QOS1_PUBACK_TIMEOUT   3
 
#define QOS1_PUBACK_TIMEOUT_LIMIT   3
 
#define QOS1_PUBLISH_SLOT_CNT   8
 
#define STACK_SIZE_MQTT_CLIENT   (4*1024)
 

类型定义

typedef VOID(* CB_MQTT_CONNECT_DENY) (BYTE_T deny_times)
 MQTT client is not permited to connect to broker 更多...
 
typedef VOID(* CB_MQTT_CONNECTED) (VOID)
 MQTT client is connected to broker
 
typedef VOID(* CB_MQTT_DATA_RECV) (CONST CHAR_T *topic, BYTE_T *data, UINT_T len)
 Callback when recv msg from broker 更多...
 
typedef VOID(* CB_MQTT_DISCONNECTED) (VOID)
 MQTT client is disconnected from broker
 
typedef VOID(* CB_MQTT_PUB_INFORM) (OPERATE_RET op_ret, VOID *ctx)
 Async callback that indicates QOS1 publish success or not. 更多...
 
typedef VOID * MQTT_HANDLE
 

枚举

enum  backoff_e { BACKOFF_RANDOM , BACKOFF_LOOP_CYCLE , BACKOFF_LOOP_LAST }
 Backoff strategy for reconnection when broken
 
enum  mqtt_cfg_e {
  MQTT_CFG_LINKAGE , MQTT_CFG_HEARTBEAT , MQTT_CFG_SLEEP_WITHOUT_PERMIT , MQTT_CFG_SOCKET_FD ,
  MQTT_CFG_DISCONNECT_WHEN_STOP , MQTT_CFG_BACKOFF_STRATEGY , MQTT_CFG_MAX
}
 Definition of mqtt cfg type
 

函数

OPERATE_RET tuya_svc_mqtt_client_create (mqtt_ctx_t *ctx, MQTT_HANDLE *handle)
 Create mqtt client 更多...
 
OPERATE_RET tuya_svc_mqtt_client_destroy (MQTT_HANDLE handle)
 Close and destroy mqtt client 更多...
 
OPERATE_RET tuya_svc_mqtt_client_get_cfg (MQTT_HANDLE handle, mqtt_cfg_e cfg, VOID *data)
 Get cfg of mqtt client 更多...
 
BOOL_T tuya_svc_mqtt_client_is_connected (MQTT_HANDLE handle)
 Mqtt broker is connected or not 更多...
 
OPERATE_RET tuya_svc_mqtt_client_pause (MQTT_HANDLE handle)
 Pause mqtt client 更多...
 
OPERATE_RET tuya_svc_mqtt_client_publish (MQTT_HANDLE handle, mqtt_msg_t *msg)
 Publish mqtt msg to broker 更多...
 
OPERATE_RET tuya_svc_mqtt_client_register_cb (MQTT_HANDLE handle, CB_MQTT_CONNECTED cb_connected, CB_MQTT_DISCONNECTED cb_disconnected, CB_MQTT_CONNECT_DENY cb_connect_deny)
 Register event handers of MQTT client 更多...
 
OPERATE_RET tuya_svc_mqtt_client_restart (MQTT_HANDLE handle)
 Restart mqtt client (or reconnect to broker when disconnected) 更多...
 
OPERATE_RET tuya_svc_mqtt_client_resume (MQTT_HANDLE handle)
 Resume mqtt client 更多...
 
OPERATE_RET tuya_svc_mqtt_client_set_cfg (MQTT_HANDLE handle, mqtt_cfg_e cfg, VOID *data)
 Get cfg of mqtt client 更多...
 
OPERATE_RET tuya_svc_mqtt_client_start (MQTT_HANDLE handle)
 Start mqtt client (or reconnect to broker when disconnected) 更多...
 
OPERATE_RET tuya_svc_mqtt_client_stop (MQTT_HANDLE handle)
 Stop mqtt client (disconnect from mqtt broker) 更多...
 
OPERATE_RET tuya_svc_mqtt_client_subscribe (MQTT_HANDLE handle, mqtt_subscribe_t *sub)
 Subcribe topics within one mqtt request 更多...
 
OPERATE_RET tuya_svc_mqtt_client_unsubscribe (MQTT_HANDLE handle, mqtt_subscribe_t *sub)
 Unsubcribe topics within one mqtt request 更多...
 

详细描述

版本
0.1
日期
2022-08-18

Permission is hereby granted, to any person obtaining a copy of this software and associated documentation files (the "Software"), Under the premise of complying with the license of the third-party open source software contained in the software, to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

类型定义说明

◆ CB_MQTT_CONNECT_DENY

typedef VOID(* CB_MQTT_CONNECT_DENY) (BYTE_T deny_times)

MQTT client is not permited to connect to broker

参数
[in]deny_timesHow many times this MQTT client is denied by broker

◆ CB_MQTT_DATA_RECV

typedef VOID(* CB_MQTT_DATA_RECV) (CONST CHAR_T *topic, BYTE_T *data, UINT_T len)

Callback when recv msg from broker

参数
[in]topicTopic that msg is recved from
[in]dataBuffer of msg content
[in]lenLength of msg content

◆ CB_MQTT_PUB_INFORM

typedef VOID(* CB_MQTT_PUB_INFORM) (OPERATE_RET op_ret, VOID *ctx)

Async callback that indicates QOS1 publish success or not.

参数
[in]op_retOPRT_OK on success. Others on error, please refer to tuya_error_code.h
[in]ctxPrivate data

函数说明

◆ tuya_svc_mqtt_client_create()

OPERATE_RET tuya_svc_mqtt_client_create ( mqtt_ctx_t ctx,
MQTT_HANDLE *  handle 
)

Create mqtt client

参数
[in]ctxContext of mqtt client, see mqtt_ctx_t for details
[out]handleHandle of mqtt client
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_destroy()

OPERATE_RET tuya_svc_mqtt_client_destroy ( MQTT_HANDLE  handle)

Close and destroy mqtt client

参数
[in]handleHandle of mqtt client
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_get_cfg()

OPERATE_RET tuya_svc_mqtt_client_get_cfg ( MQTT_HANDLE  handle,
mqtt_cfg_e  cfg,
VOID *  data 
)

Get cfg of mqtt client

参数
[in]handleHandle of mqtt client
[in]cfgCfg type, see mqtt_cfg_e for details
[out]dataCfg data
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_is_connected()

BOOL_T tuya_svc_mqtt_client_is_connected ( MQTT_HANDLE  handle)

Mqtt broker is connected or not

参数
[in]handleHandle of mqtt client
返回
True for connected, False for disconnected

◆ tuya_svc_mqtt_client_pause()

OPERATE_RET tuya_svc_mqtt_client_pause ( MQTT_HANDLE  handle)

Pause mqtt client

参数
[in]handleHandle of mqtt client
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_publish()

OPERATE_RET tuya_svc_mqtt_client_publish ( MQTT_HANDLE  handle,
mqtt_msg_t msg 
)

Publish mqtt msg to broker

参数
[in]handleHandle of mqtt client
[in]msgsee mqtt_msg_t for details
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_register_cb()

OPERATE_RET tuya_svc_mqtt_client_register_cb ( MQTT_HANDLE  handle,
CB_MQTT_CONNECTED  cb_connected,
CB_MQTT_DISCONNECTED  cb_disconnected,
CB_MQTT_CONNECT_DENY  cb_connect_deny 
)

Register event handers of MQTT client

参数
[in]handleHandler of MQTT client
[in]cb_connectedHander when MQTT client is connected to broker
[in]cb_disconnectedHander when MQTT client is disconnected to broker
[in]cb_connect_denyHander when MQTT client is not permited to connect to broker
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_restart()

OPERATE_RET tuya_svc_mqtt_client_restart ( MQTT_HANDLE  handle)

Restart mqtt client (or reconnect to broker when disconnected)

参数
[in]handleHandle of mqtt client
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_resume()

OPERATE_RET tuya_svc_mqtt_client_resume ( MQTT_HANDLE  handle)

Resume mqtt client

参数
[in]handleHandle of mqtt client
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_set_cfg()

OPERATE_RET tuya_svc_mqtt_client_set_cfg ( MQTT_HANDLE  handle,
mqtt_cfg_e  cfg,
VOID *  data 
)

Get cfg of mqtt client

参数
[in]handleHandle of mqtt client
[in]cfgCfg type, see mqtt_cfg_e for details
[in]dataCfg data
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_start()

OPERATE_RET tuya_svc_mqtt_client_start ( MQTT_HANDLE  handle)

Start mqtt client (or reconnect to broker when disconnected)

参数
[in]handleHandle of mqtt client
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_stop()

OPERATE_RET tuya_svc_mqtt_client_stop ( MQTT_HANDLE  handle)

Stop mqtt client (disconnect from mqtt broker)

参数
[in]handleHandle of mqtt client
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_subscribe()

OPERATE_RET tuya_svc_mqtt_client_subscribe ( MQTT_HANDLE  handle,
mqtt_subscribe_t sub 
)

Subcribe topics within one mqtt request

参数
[in]handleHandle of mqtt client
[in]subsee mqtt_subscribe_t for details
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_mqtt_client_unsubscribe()

OPERATE_RET tuya_svc_mqtt_client_unsubscribe ( MQTT_HANDLE  handle,
mqtt_subscribe_t sub 
)

Unsubcribe topics within one mqtt request

参数
[in]handleHandle of mqtt client
[in]subsee mqtt_subscribe_t for details
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h