m2mb API docs  37.00.006.0
m2mb API sets documentation
m2mb_mqtt.h
Go to the documentation of this file.
1 /* $version: 372317T2_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 {
105 
109 typedef enum
110 {
111 
124 
129 typedef enum
130 {
131 
258  M2MB_MQTT_MAX_CONF = 0x3F,
259 
261 
265 typedef enum
266 {
271 
275 typedef enum
276 {
280 
369 /*-----------------------------------------------------------------------------------------------*/
370 typedef void ( *m2mb_mqtt_ind_callback ) ( M2MB_MQTT_HANDLE Handle, M2MB_MQTT_IND_E event, UINT16 resp_size, void *resp, void *userdata );
515 /*-----------------------------------------------------------------------------------------------*/
516 typedef void ( *M2MB_MQTT_MSG_HNDLR_CB_T ) ( M2MB_MQTT_HANDLE Handle, void* arg, const CHAR* topic,
517  UINT16 topic_length, const CHAR* msg, UINT32 msg_length, M2MB_MQTT_RX_STATUS_E status );
518 
523 typedef struct M2MB_MQTT_TOPIC
524 {
525  const CHAR* topic_filter;
528  void* arg;
530 
531 
532 /* Global functions =============================================================================*/
533 
534 /*---------------------------------------------------------------------------*/
593 /*-----------------------------------------------------------------------------------------------*/
595 
596 /*-----------------------------------------------------------------------------------------------*/
656 /*-----------------------------------------------------------------------------------------------*/
658 
659 /*-----------------------------------------------------------------------------------------------*/
752 /*-----------------------------------------------------------------------------------------------*/
753 M2MB_MQTT_RESPONSE_E m2mb_mqtt_conf( M2MB_MQTT_HANDLE Handle, UINT8 nCmds, ... );
754 
755 /*-----------------------------------------------------------------------------------------------*/
840 /*-----------------------------------------------------------------------------------------------*/
841 M2MB_MQTT_RESPONSE_E m2mb_mqtt_connect( M2MB_MQTT_HANDLE Handle, const CHAR *host, UINT32 port );
842 
843 /*-----------------------------------------------------------------------------------------------*/
929 /*-----------------------------------------------------------------------------------------------*/
931 
932 /*-----------------------------------------------------------------------------------------------*/
1034 /*-----------------------------------------------------------------------------------------------*/
1035 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 );
1036 
1037 /*-----------------------------------------------------------------------------------------------*/
1174 /*-----------------------------------------------------------------------------------------------*/
1175 M2MB_MQTT_RESPONSE_E m2mb_mqtt_subscribe( M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *pTopics );
1176 
1177 /*-----------------------------------------------------------------------------------------------*/
1297 /*-----------------------------------------------------------------------------------------------*/
1298 M2MB_MQTT_RESPONSE_E m2mb_mqtt_unsubscribe( M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *topics );
1299 
1300 /*-----------------------------------------------------------------------------------------------*/
1391 /*-----------------------------------------------------------------------------------------------*/
1393 
1394 /*-----------------------------------------------------------------------------------------------*/
1456 /*-----------------------------------------------------------------------------------------------*/
1458 
1459 /*-----------------------------------------------------------------------------------------------*/
1519 /*-----------------------------------------------------------------------------------------------*/
1521 
1522 /*-----------------------------------------------------------------------------------------------*/
1613 /*-----------------------------------------------------------------------------------------------*/
1615  UINT32 topic_size, M2MB_MQTT_MSG_HNDLR_CB_T cb,
1616  void* arg, UINT32 arg_size );
1617 
1621 /*-----------------------------------------------------------------------------------------------*/
1622 
1682 /*-----------------------------------------------------------------------------------------------*/
1683 
1685 
1686 /*-----------------------------------------------------------------------------------------------*/
1687 #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:109
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:370
M2MB_MQTT_GET_LAST_WILL
Definition: m2mb_mqtt.h:218
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:138
M2MB_MQTT_RX_MORE_DATA
Definition: m2mb_mqtt.h:278
M2MB_MQTT_CONTINUE
Definition: m2mb_mqtt.h:102
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:523
M2MB_MQTT_SET_PDP_CONTEXT
Definition: m2mb_mqtt.h:183
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:275
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:200
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.
Definition: m2mb_mqtt.h:129
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:154
M2MB_MQTT_QOS_1
Definition: m2mb_mqtt.h:268
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:112
m2mb_mqtt_ping
M2MB_MQTT_RESPONSE_E m2mb_mqtt_ping(M2MB_MQTT_HANDLE Handle)
m2mb_mqtt_ping is called to ping
M2MB_MQTT_RX_FINISHED
Definition: m2mb_mqtt.h:277
M2MB_MQTT_SECURE_OPT
Definition: m2mb_mqtt.h:142
M2MB_MQTT_SET_PASSWORD
Definition: m2mb_mqtt.h:179
M2MB_MQTT_CONNACK_TIMEOUT
Definition: m2mb_mqtt.h:117
M2MB_MQTT_IDENTIFIER_REJECTED
Definition: m2mb_mqtt.h:97
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:150
M2MB_MQTT_SET_USERNAME
Definition: m2mb_mqtt.h:175
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:267
M2MB_MQTT_SET_LAST_WILL
Definition: m2mb_mqtt.h:165
M2MB_MQTT_QOS_E
M2MB_MQTT_QOS_E
MQTT QoS Enum.
Definition: m2mb_mqtt.h:265
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:525
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:516
M2MB_MQTT_NOT_AUTHORISED
Definition: m2mb_mqtt.h:100
M2MB_MQTT_ERROR_TLS_CONNECT
Definition: m2mb_mqtt.h:82
M2MB_MQTT_TOPIC::arg
void * arg
Definition: m2mb_mqtt.h:528
M2MB_MQTT_SUCCESS
Definition: m2mb_mqtt.h:76
M2MB_MQTT_SET_TCP_WINDOWSCALE
Definition: m2mb_mqtt.h:252
M2MB_MQTT_GET_CLEAN_SESSION
Definition: m2mb_mqtt.h:206
M2MB_MQTT_FATAL_ERROR
Definition: m2mb_mqtt.h:119
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:247
M2MB_MQTT_STATUS_DISCONNECT_INITIATED
Definition: m2mb_mqtt.h:121
M2MB_MQTT_SERVER_UNAVAILABLE
Definition: m2mb_mqtt.h:98
M2MB_MQTT_QOS_2
Definition: m2mb_mqtt.h:269
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:160
M2MB_MQTT_STATUS_UNKNOWN
Definition: m2mb_mqtt.h:122
M2MB_MQTT_TOPIC::qos
M2MB_MQTT_QOS_E qos
Definition: m2mb_mqtt.h:526
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:99
M2MB_MQTT_PINGREQ_TIMEOUT_FAIL
Definition: m2mb_mqtt.h:115
M2MB_MQTT_CLIENT_CONNECTED
Definition: m2mb_mqtt.h:113
M2MB_MQTT_TOPIC::cb
M2MB_MQTT_MSG_HNDLR_CB_T cb
Definition: m2mb_mqtt.h:527
M2MB_MQTT_GET_TIMEOUT_MS
Definition: m2mb_mqtt.h:194
M2MB_MQTT_CONNECT_TIMEOUT
Definition: m2mb_mqtt.h:118
M2MB_MQTT_GET_PDP_CONTEXT
Definition: m2mb_mqtt.h:232
M2MB_MQTT_PROTOCOL_UNSUPPORTED
Definition: m2mb_mqtt.h:96
M2MB_MQTT_GET_PROTOCOL_LEVEL
Definition: m2mb_mqtt.h:212
M2MB_MQTT_GET_CLIENT_ID
Definition: m2mb_mqtt.h:188
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:238
M2MB_MQTT_ERROR_SEM
Definition: m2mb_mqtt.h:91
M2MB_MQTT_CONN_RESET_BY_PEER
Definition: m2mb_mqtt.h:114
M2MB_MQTT_ERROR_SERVER_PROP
Definition: m2mb_mqtt.h:88
M2MB_MQTT_SET_CLIENT_ID
Definition: m2mb_mqtt.h:132
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:120
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_ERROR_ASYNC_THREAD
Definition: m2mb_mqtt.h:93
M2MB_MQTT_STDIN_WAKE
Definition: m2mb_mqtt.h:103