m2mb API docs  25.30.008.0
m2mb API sets documentation
m2mb_mqtt.h
Go to the documentation of this file.
1 /* $version: 252422_R1 */
2 /*===============================================================================================*/
3 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
29 #ifndef M2M_M2MB_MQTT_API_H
30 #define M2M_M2MB_MQTT_API_H
31 
43 /*-----------------------------------------------------------------------------------------------*/
44 
45 /* Global declarations ==========================================================================*/
46 
47 /*-----------------------------------------------------------------------------------------------
48  m2mb_mqtt_conf can be used without CMDS like below
49  m2mb_mqtt_conf_( handle, M2MB_MQTT_SET_CLIENT_ID, "MQTT_demo" )
50  -----------------------------------------------------------------------------------------------*/
51 #define m2mb_mqtt_conf_( h,args,... ) m2mb_mqtt_conf( h, CMDS( args ) )
52 
58 /* Global typedef ==========================================================================*/
59 
60 typedef HANDLE M2MB_MQTT_HANDLE;
61 
65 typedef enum
66 {
70 
74 typedef enum
75 {
108 
112 typedef enum
113 {
114 
127 
134 typedef enum
135 {
136 
273  M2MB_MQTT_MAX_CONF = 0x3F,
274 
276 
280 typedef enum
281 {
286 
290 typedef enum
291 {
295 
384 /*-----------------------------------------------------------------------------------------------*/
385 typedef void ( *m2mb_mqtt_ind_callback ) ( M2MB_MQTT_HANDLE Handle, M2MB_MQTT_IND_E event, UINT16 resp_size, void *resp, void *userdata );
530 /*-----------------------------------------------------------------------------------------------*/
531 typedef void ( *M2MB_MQTT_MSG_HNDLR_CB_T ) ( M2MB_MQTT_HANDLE Handle, void* arg, const CHAR* topic,
532  UINT16 topic_length, const CHAR* msg, UINT32 msg_length, M2MB_MQTT_RX_STATUS_E status );
533 
538 typedef struct M2MB_MQTT_TOPIC
539 {
540  const CHAR* topic_filter;
543  void* arg;
545 
546 
547 /* Global functions =============================================================================*/
548 
549 /*---------------------------------------------------------------------------*/
608 /*-----------------------------------------------------------------------------------------------*/
610 
611 /*-----------------------------------------------------------------------------------------------*/
671 /*-----------------------------------------------------------------------------------------------*/
673 
674 /*-----------------------------------------------------------------------------------------------*/
767 /*-----------------------------------------------------------------------------------------------*/
768 M2MB_MQTT_RESPONSE_E m2mb_mqtt_conf( M2MB_MQTT_HANDLE Handle, UINT8 nCmds, ... );
769 
770 /*-----------------------------------------------------------------------------------------------*/
855 /*-----------------------------------------------------------------------------------------------*/
856 M2MB_MQTT_RESPONSE_E m2mb_mqtt_connect( M2MB_MQTT_HANDLE Handle, const CHAR *host, UINT32 port );
857 
858 /*-----------------------------------------------------------------------------------------------*/
944 /*-----------------------------------------------------------------------------------------------*/
946 
947 /*-----------------------------------------------------------------------------------------------*/
1049 /*-----------------------------------------------------------------------------------------------*/
1050 M2MB_MQTT_RESPONSE_E m2mb_mqtt_publish( M2MB_MQTT_HANDLE Handle, M2MB_MQTT_QOS_E qos, UINT8 retain, UINT16 message_id, const CHAR *topic, const CHAR *data, UINT32 data_len );
1051 
1052 /*-----------------------------------------------------------------------------------------------*/
1189 /*-----------------------------------------------------------------------------------------------*/
1190 M2MB_MQTT_RESPONSE_E m2mb_mqtt_subscribe( M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *pTopics );
1191 
1192 /*-----------------------------------------------------------------------------------------------*/
1312 /*-----------------------------------------------------------------------------------------------*/
1313 M2MB_MQTT_RESPONSE_E m2mb_mqtt_unsubscribe( M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *topics );
1314 
1315 /*-----------------------------------------------------------------------------------------------*/
1406 /*-----------------------------------------------------------------------------------------------*/
1408 
1409 /*-----------------------------------------------------------------------------------------------*/
1471 /*-----------------------------------------------------------------------------------------------*/
1473 
1474 /*-----------------------------------------------------------------------------------------------*/
1534 /*-----------------------------------------------------------------------------------------------*/
1536 
1537 /*-----------------------------------------------------------------------------------------------*/
1628 /*-----------------------------------------------------------------------------------------------*/
1630  UINT32 topic_size, M2MB_MQTT_MSG_HNDLR_CB_T cb,
1631  void* arg, UINT32 arg_size );
1632 
1636 /*-----------------------------------------------------------------------------------------------*/
1637 
1697 /*-----------------------------------------------------------------------------------------------*/
1698 
1700 
1701 /*-----------------------------------------------------------------------------------------------*/
1702 #endif /*M2MB_MQTT_API_H*/
M2MB_MQTT_ERROR_STAT
Definition: m2mb_mqtt.h:86
M2MB_MQTT_STATUS_E
M2MB_MQTT_STATUS_E
mqtt client status enum
Definition: m2mb_mqtt.h:112
m2mb_mqtt_setClientStatus
M2MB_MQTT_RESPONSE_E m2mb_mqtt_setClientStatus(M2MB_MQTT_HANDLE handle, M2MB_MQTT_STATUS_E status)
m2mb_mqtt_setClientStatus sets MQTT client current status
m2mb_mqtt_ind_callback
void(* m2mb_mqtt_ind_callback)(M2MB_MQTT_HANDLE Handle, M2MB_MQTT_IND_E event, UINT16 resp_size, void *resp, void *userdata)
MQTT call back prototype.
Definition: m2mb_mqtt.h:385
M2MB_MQTT_GET_LAST_WILL
Definition: m2mb_mqtt.h:223
m2mb_mqtt_publish
M2MB_MQTT_RESPONSE_E m2mb_mqtt_publish(M2MB_MQTT_HANDLE Handle, M2MB_MQTT_QOS_E qos, UINT8 retain, UINT16 message_id, const CHAR *topic, const CHAR *data, UINT32 data_len)
m2mb_mqtt_publish is called to Publish a message to the MQTT broker.
M2MB_MQTT_SET_TIMEOUT_MS
Definition: m2mb_mqtt.h:143
M2MB_MQTT_RX_MORE_DATA
Definition: m2mb_mqtt.h:293
M2MB_MQTT_CONTINUE
Definition: m2mb_mqtt.h:103
m2mb_mqtt_deinit
M2MB_MQTT_RESPONSE_E m2mb_mqtt_deinit(M2MB_MQTT_HANDLE Handle)
m2mb_mqtt_deinit deinitializes MQTT service for specified MQTT client.
M2MB_MQTT_TOPIC
MQTT Topic Structure This is used in m2mb_mqtt_subscribe and m2mb_mqtt_unsubscribe API.
Definition: m2mb_mqtt.h:538
M2MB_MQTT_SET_PDP_CONTEXT
Definition: m2mb_mqtt.h:188
m2mb_mqtt_get_new_msg_status
M2MB_MQTT_RESPONSE_E m2mb_mqtt_get_new_msg_status(M2MB_MQTT_HANDLE handle, UINT8 *new_msg_ind)
m2mb_mqtt_get_new_msg_status gets MQTT new publish message status
M2MB_MQTT_ERROR_MEMORY
Definition: m2mb_mqtt.h:85
M2MB_MQTT_RX_STATUS_E
M2MB_MQTT_RX_STATUS_E
MQTT Receive Data Status Enum.
Definition: m2mb_mqtt.h:290
m2mb_mqtt_disconnect
M2MB_MQTT_RESPONSE_E m2mb_mqtt_disconnect(M2MB_MQTT_HANDLE Handle)
m2mb_mqtt_disconnect is called to disconnect from the MQTT broker.
M2MB_MQTT_TOPIC_T
struct M2MB_MQTT_TOPIC M2MB_MQTT_TOPIC_T
MQTT Topic Structure This is used in m2mb_mqtt_subscribe and m2mb_mqtt_unsubscribe API.
M2MB_MQTT_GET_KEEPALIVE_SEC
Definition: m2mb_mqtt.h:205
M2MB_MQTT_ERROR_OUT_OF_BUFFER
Definition: m2mb_mqtt.h:78
M2MB_MQTT_ACTION_E
M2MB_MQTT_ACTION_E
MQTT actions enum List of actions performed through m2mb_mqtt_conf API. Not all actions are available...
Definition: m2mb_mqtt.h:134
M2MB_MQTT_ERROR_TIMEOUT
Definition: m2mb_mqtt.h:83
M2MB_MQTT_ERROR_MALFORMED_DATA
Definition: m2mb_mqtt.h:79
M2MB_MQTT_ERROR_CALLBACK
Definition: m2mb_mqtt.h:89
M2MB_MQTT_SET_CLEAN_SESSION
Definition: m2mb_mqtt.h:159
M2MB_MQTT_QOS_1
Definition: m2mb_mqtt.h:283
M2MB_MQTT_ERROR_NETWORK
Definition: m2mb_mqtt.h:84
M2MB_MQTT_ERROR_TOPIC_LIST
Definition: m2mb_mqtt.h:92
M2MB_MQTT_NOT_CONNECTED
Definition: m2mb_mqtt.h:115
m2mb_mqtt_ping
M2MB_MQTT_RESPONSE_E m2mb_mqtt_ping(M2MB_MQTT_HANDLE Handle)
m2mb_mqtt_ping is called to ping
M2MB_MQTT_ERROR_NOT_SUPPORTED
Definition: m2mb_mqtt.h:106
M2MB_MQTT_RX_FINISHED
Definition: m2mb_mqtt.h:292
M2MB_MQTT_SET_TCP_SACK
Definition: m2mb_mqtt.h:263
M2MB_MQTT_SECURE_OPT
Definition: m2mb_mqtt.h:147
M2MB_MQTT_SET_PASSWORD
Definition: m2mb_mqtt.h:184
M2MB_MQTT_CONNACK_TIMEOUT
Definition: m2mb_mqtt.h:120
M2MB_MQTT_IDENTIFIER_REJECTED
Definition: m2mb_mqtt.h:98
m2mb_mqtt_conf
M2MB_MQTT_RESPONSE_E m2mb_mqtt_conf(M2MB_MQTT_HANDLE Handle, UINT8 nCmds,...)
m2mb_mqtt_conf sets/gets some MQTT parameters and configurations.
M2MB_MQTT_SET_KEEPALIVE_SEC
Definition: m2mb_mqtt.h:155
M2MB_MQTT_SET_USERNAME
Definition: m2mb_mqtt.h:180
m2mb_mqtt_subscribe
M2MB_MQTT_RESPONSE_E m2mb_mqtt_subscribe(M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *pTopics)
m2mb_mqtt_subscribe is called to Subscribe.
m2mb_mqtt_setMessageCb
M2MB_MQTT_RESPONSE_E m2mb_mqtt_setMessageCb(M2MB_MQTT_HANDLE h, CHAR *topic_filter, UINT32 topic_size, M2MB_MQTT_MSG_HNDLR_CB_T cb, void *arg, UINT32 arg_size)
m2mb_mqtt_setMessageCb sets Message callback function
M2MB_MQTT_QOS_0
Definition: m2mb_mqtt.h:282
M2MB_MQTT_SET_LAST_WILL
Definition: m2mb_mqtt.h:170
M2MB_MQTT_QOS_E
M2MB_MQTT_QOS_E
MQTT QoS Enum.
Definition: m2mb_mqtt.h:280
M2MB_MQTT_ERROR_QUEUE
Definition: m2mb_mqtt.h:94
M2MB_MQTT_ERROR_PACKET_TYPE
Definition: m2mb_mqtt.h:80
M2MB_MQTT_ERROR_PROPERTY
Definition: m2mb_mqtt.h:87
M2MB_MQTT_ERROR_BAD_ARG
Definition: m2mb_mqtt.h:77
M2MB_MQTT_TOPIC::topic_filter
const CHAR * topic_filter
Definition: m2mb_mqtt.h:540
M2MB_MQTT_INDICATION_DISCONNECT
Definition: m2mb_mqtt.h:67
M2MB_MQTT_MSG_HNDLR_CB_T
void(* M2MB_MQTT_MSG_HNDLR_CB_T)(M2MB_MQTT_HANDLE Handle, void *arg, const CHAR *topic, UINT16 topic_length, const CHAR *msg, UINT32 msg_length, M2MB_MQTT_RX_STATUS_E status)
MQTT message handler call back prototype.
Definition: m2mb_mqtt.h:531
M2MB_MQTT_NOT_AUTHORISED
Definition: m2mb_mqtt.h:101
M2MB_MQTT_ERROR_TLS_CONNECT
Definition: m2mb_mqtt.h:82
M2MB_MQTT_TOPIC::arg
void * arg
Definition: m2mb_mqtt.h:543
M2MB_MQTT_SUCCESS
Definition: m2mb_mqtt.h:76
M2MB_MQTT_SET_TCP_WINDOWSCALE
Definition: m2mb_mqtt.h:257
M2MB_MQTT_GET_CLEAN_SESSION
Definition: m2mb_mqtt.h:211
M2MB_MQTT_FATAL_ERROR
Definition: m2mb_mqtt.h:122
m2mb_mqtt_connect
M2MB_MQTT_RESPONSE_E m2mb_mqtt_connect(M2MB_MQTT_HANDLE Handle, const CHAR *host, UINT32 port)
m2mb_mqtt_connect is called to connect to the specified MQTT broker.
M2MB_MQTT_SET_TCP_WINDOW
Definition: m2mb_mqtt.h:252
M2MB_MQTT_STATUS_DISCONNECT_INITIATED
Definition: m2mb_mqtt.h:124
M2MB_MQTT_SERVER_UNAVAILABLE
Definition: m2mb_mqtt.h:99
M2MB_MQTT_QOS_2
Definition: m2mb_mqtt.h:284
M2MB_MQTT_RESPONSE_E
M2MB_MQTT_RESPONSE_E
MQTT APIs response enum.
Definition: m2mb_mqtt.h:74
M2MB_MQTT_ERROR_PACKET_ID
Definition: m2mb_mqtt.h:81
M2MB_MQTT_SET_PROTOCOL_LEVEL
Definition: m2mb_mqtt.h:165
M2MB_MQTT_STATUS_UNKNOWN
Definition: m2mb_mqtt.h:125
M2MB_MQTT_TOPIC::qos
M2MB_MQTT_QOS_E qos
Definition: m2mb_mqtt.h:541
m2mb_mqtt_getClientStatus
M2MB_MQTT_RESPONSE_E m2mb_mqtt_getClientStatus(M2MB_MQTT_HANDLE handle, M2MB_MQTT_STATUS_E *status)
m2mb_mqtt_getClientStatus gets MQTT client current status
M2MB_MQTT_BAD_USER_PASS
Definition: m2mb_mqtt.h:100
M2MB_MQTT_PINGREQ_TIMEOUT_FAIL
Definition: m2mb_mqtt.h:118
M2MB_MQTT_CLIENT_CONNECTED
Definition: m2mb_mqtt.h:116
M2MB_MQTT_TOPIC::cb
M2MB_MQTT_MSG_HNDLR_CB_T cb
Definition: m2mb_mqtt.h:542
M2MB_MQTT_GET_TIMEOUT_MS
Definition: m2mb_mqtt.h:199
M2MB_MQTT_CONNECT_TIMEOUT
Definition: m2mb_mqtt.h:121
M2MB_MQTT_GET_PDP_CONTEXT
Definition: m2mb_mqtt.h:237
M2MB_MQTT_ERROR_EVENT
Definition: m2mb_mqtt.h:95
M2MB_MQTT_PROTOCOL_UNSUPPORTED
Definition: m2mb_mqtt.h:97
M2MB_MQTT_GET_PROTOCOL_LEVEL
Definition: m2mb_mqtt.h:217
M2MB_MQTT_GET_CLIENT_ID
Definition: m2mb_mqtt.h:193
M2MB_MQTT_HANDLE
HANDLE M2MB_MQTT_HANDLE
MQTT context handle. This is obtained from m2mb_mqtt_init API and then used in subsequent MQTT APIs.
Definition: m2mb_mqtt.h:60
M2MB_MQTT_SET_PDP_HANDLE
Definition: m2mb_mqtt.h:243
M2MB_MQTT_ERROR_SEM
Definition: m2mb_mqtt.h:91
M2MB_MQTT_CONN_RESET_BY_PEER
Definition: m2mb_mqtt.h:117
M2MB_MQTT_ERROR_SERVER_PROP
Definition: m2mb_mqtt.h:88
M2MB_MQTT_SET_CLIENT_ID
Definition: m2mb_mqtt.h:137
m2mb_mqtt_unsubscribe
M2MB_MQTT_RESPONSE_E m2mb_mqtt_unsubscribe(M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *topics)
m2mb_mqtt_unsubscribe is called to unsubscribe.
M2MB_MQTT_IND_E
M2MB_MQTT_IND_E
MQTT Indications enum.
Definition: m2mb_mqtt.h:65
M2MB_MQTT_NETWORK_ERROR
Definition: m2mb_mqtt.h:123
m2mb_mqtt_init
M2MB_MQTT_RESPONSE_E m2mb_mqtt_init(M2MB_MQTT_HANDLE *h, m2mb_mqtt_ind_callback callback, void *userdata)
m2mb_mqtt_init is called to initialize MQTT context.
M2MB_MQTT_SET_TCP_MSS
Definition: m2mb_mqtt.h:268
M2MB_MQTT_ERROR_ASYNC_THREAD
Definition: m2mb_mqtt.h:93
M2MB_MQTT_STDIN_WAKE
Definition: m2mb_mqtt.h:104