20#ifndef __TUYA_SVC_MQTT_CLIENT_H__
21#define __TUYA_SVC_MQTT_CLIENT_H__
23#include "tuya_cloud_types.h"
30#ifndef QOS1_PUBACK_TIMEOUT
31#define QOS1_PUBACK_TIMEOUT 3
34#ifndef QOS1_PUBLISH_SLOT_CNT
35#define QOS1_PUBLISH_SLOT_CNT 8
38#ifndef QOS1_PUBACK_TIMEOUT_LIMIT
39#define QOS1_PUBACK_TIMEOUT_LIMIT 3
42#ifndef MAX_RANDOM_DELAY_BEFORE_RECONNECT
43#define MAX_RANDOM_DELAY_BEFORE_RECONNECT (5*60)
46#ifndef MQTT_HEATBEAT_INTERVAL
47#define MQTT_HEATBEAT_INTERVAL (60)
50#ifndef STACK_SIZE_MQTT_CLIENT
51#define STACK_SIZE_MQTT_CLIENT (4*1024)
54#ifndef MQTT_RECV_BUF_SIZE
55#define MQTT_RECV_BUF_SIZE (512)
58#ifndef MQTT_MAX_MESSGAE_SIZE
59#define MQTT_MAX_MESSGAE_SIZE (4096)
62#ifndef MQTT_RECV_SELECT_TIMEOUT
63#define MQTT_RECV_SELECT_TIMEOUT (3000)
66#define MAX_BACKOFF_COUNT (8)
67typedef VOID* MQTT_HANDLE;
116 UINT_T arr[MAX_BACKOFF_COUNT];
128 MQTT_CFG_SLEEP_WITHOUT_PERMIT,
130 MQTT_CFG_DISCONNECT_WHEN_STOP,
131 MQTT_CFG_BACKOFF_STRATEGY,
Definition: tuya_svc_mqtt_client.h:111
Definition of mqtt client context
Definition: tuya_svc_mqtt_client.h:81
UINT_T heartbeat
Definition: tuya_svc_mqtt_client.h:96
CHAR_T * broker_domain
Definition: tuya_svc_mqtt_client.h:83
CHAR_T * passwd
Definition: tuya_svc_mqtt_client.h:94
CHAR_T * user_name
Definition: tuya_svc_mqtt_client.h:92
CB_MQTT_DATA_RECV cb_data_recv
Definition: tuya_svc_mqtt_client.h:99
UINT_T broker_port
Definition: tuya_svc_mqtt_client.h:85
CHAR_T * subcribe_topic
Definition: tuya_svc_mqtt_client.h:88
CHAR_T * client_id
Definition: tuya_svc_mqtt_client.h:90
Definition of mqtt msg to publish
Definition: tuya_svc_mqtt_client.h:147
BYTE_T qos
Definition: tuya_svc_mqtt_client.h:151
CHAR_T * publish_topic
Definition: tuya_svc_mqtt_client.h:149
UINT_T timeout
Definition: tuya_svc_mqtt_client.h:157
CB_MQTT_PUB_INFORM cb_pub_inform
Definition: tuya_svc_mqtt_client.h:159
BYTE_T * data
Definition: tuya_svc_mqtt_client.h:153
UINT_T len
Definition: tuya_svc_mqtt_client.h:155
VOID * ctx
Definition: tuya_svc_mqtt_client.h:161
Definition of mqtt subscribe
Definition: tuya_svc_mqtt_client.h:167
CHAR_T ** topics
Definition: tuya_svc_mqtt_client.h:169
BYTE_T cnt
Definition: tuya_svc_mqtt_client.h:171
BOOL_T auto_resub
Definition: tuya_svc_mqtt_client.h:175
CB_MQTT_DATA_RECV cb_data_recv
Definition: tuya_svc_mqtt_client.h:173
backoff_e
Backoff strategy for reconnection when broken
Definition: tuya_svc_mqtt_client.h:105
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_restart(MQTT_HANDLE handle)
Restart mqtt client (or reconnect to broker when disconnected)
OPERATE_RET tuya_svc_mqtt_client_unsubscribe(MQTT_HANDLE handle, mqtt_subscribe_t *sub)
Unsubcribe topics within one mqtt request
VOID(* CB_MQTT_CONNECTED)(VOID)
MQTT client is connected to broker
Definition: tuya_svc_mqtt_client.h:181
OPERATE_RET tuya_svc_mqtt_client_get_cfg(MQTT_HANDLE handle, mqtt_cfg_e cfg, VOID *data)
Get cfg of mqtt client
VOID(* CB_MQTT_DISCONNECTED)(VOID)
MQTT client is disconnected from broker
Definition: tuya_svc_mqtt_client.h:185
OPERATE_RET tuya_svc_mqtt_client_create(mqtt_ctx_t *ctx, MQTT_HANDLE *handle)
Create mqtt client
VOID(* CB_MQTT_CONNECT_DENY)(BYTE_T deny_times)
MQTT client is not permited to connect to broker
Definition: tuya_svc_mqtt_client.h:191
OPERATE_RET tuya_svc_mqtt_client_start(MQTT_HANDLE handle)
Start mqtt client (or reconnect to broker when disconnected)
BOOL_T tuya_svc_mqtt_client_is_connected(MQTT_HANDLE handle)
Mqtt broker is connected or not
mqtt_cfg_e
Definition of mqtt cfg type
Definition: tuya_svc_mqtt_client.h:125
OPERATE_RET tuya_svc_mqtt_client_resume(MQTT_HANDLE handle)
Resume mqtt client
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_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_publish(MQTT_HANDLE handle, mqtt_msg_t *msg)
Publish mqtt msg to broker
OPERATE_RET tuya_svc_mqtt_client_pause(MQTT_HANDLE handle)
Pause mqtt client
OPERATE_RET tuya_svc_mqtt_client_destroy(MQTT_HANDLE handle)
Close and destroy mqtt client
VOID(* CB_MQTT_DATA_RECV)(CONST CHAR_T *topic, BYTE_T *data, UINT_T len)
Callback when recv msg from broker
Definition: tuya_svc_mqtt_client.h:76
VOID(* CB_MQTT_PUB_INFORM)(OPERATE_RET op_ret, VOID *ctx)
Async callback that indicates QOS1 publish success or not.
Definition: tuya_svc_mqtt_client.h:142
TUYA network manager service