m2mb API docs  25.21.003
m2mb API sets documentation
m2mb_mqtt.h
Go to the documentation of this file.
1 /*===============================================================================================*/
2 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
25 #ifndef M2M_M2MB_MQTT_API_H
26 #define M2M_M2MB_MQTT_API_H
27 
39 /*-----------------------------------------------------------------------------------------------*/
40 
41 /* Global declarations ==========================================================================*/
42 
43 /*-----------------------------------------------------------------------------------------------
44  m2mb_mqtt_conf can be used without CMDS like below
45  m2mb_mqtt_conf_(handle, M2MB_MQTT_SET_CLIENT_ID, "MQTT_demo")
46  -----------------------------------------------------------------------------------------------*/
47 #define m2mb_mqtt_conf_( h, args... ) m2mb_mqtt_conf( h, CMDS( args ) )
48 
54 /* Global typedef ==========================================================================*/
55 
56 typedef HANDLE M2MB_MQTT_HANDLE;
57 
61 typedef enum
62 {
66 
70 typedef enum
71 {
95 
99 typedef enum
100 {
101 
113 
118 typedef enum
119 {
120 
235 
239 typedef enum
240 {
245 
249 typedef enum
250 {
254 
343 /*-----------------------------------------------------------------------------------------------*/
344 typedef void ( *m2mb_mqtt_ind_callback ) ( M2MB_MQTT_HANDLE Handle, M2MB_MQTT_IND_E event, UINT16 resp_size, void *resp, void *userdata );
489 /*-----------------------------------------------------------------------------------------------*/
490 typedef void ( *M2MB_MQTT_MSG_HNDLR_CB_T ) ( M2MB_MQTT_HANDLE Handle, void* arg, const CHAR* topic,
491  UINT16 topic_length, const CHAR* msg, UINT32 msg_length, M2MB_MQTT_RX_STATUS_E status );
492 
493 
498 typedef struct M2MB_MQTT_TOPIC
499 {
500  const CHAR* topic_filter;
503  void* arg;
505 
506 
507 /* Global functions =============================================================================*/
508 
509 /*---------------------------------------------------------------------------*/
568 /*-----------------------------------------------------------------------------------------------*/
570 
571 /*-----------------------------------------------------------------------------------------------*/
631 /*-----------------------------------------------------------------------------------------------*/
633 
634 /*-----------------------------------------------------------------------------------------------*/
727 /*-----------------------------------------------------------------------------------------------*/
728 M2MB_MQTT_RESPONSE_E m2mb_mqtt_conf( M2MB_MQTT_HANDLE Handle, UINT8 nCmds, ... );
729 
730 /*-----------------------------------------------------------------------------------------------*/
815 /*-----------------------------------------------------------------------------------------------*/
816 M2MB_MQTT_RESPONSE_E m2mb_mqtt_connect( M2MB_MQTT_HANDLE Handle, const CHAR *host, UINT32 port );
817 
818 /*-----------------------------------------------------------------------------------------------*/
904 /*-----------------------------------------------------------------------------------------------*/
906 
907 /*-----------------------------------------------------------------------------------------------*/
1009 /*-----------------------------------------------------------------------------------------------*/
1010 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 );
1011 
1012 /*-----------------------------------------------------------------------------------------------*/
1149 /*-----------------------------------------------------------------------------------------------*/
1150 M2MB_MQTT_RESPONSE_E m2mb_mqtt_subscribe( M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *pTopics );
1151 
1152 /*-----------------------------------------------------------------------------------------------*/
1272 /*-----------------------------------------------------------------------------------------------*/
1273 M2MB_MQTT_RESPONSE_E m2mb_mqtt_unsubscribe( M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *topics );
1274 
1275 /*-----------------------------------------------------------------------------------------------*/
1366 /*-----------------------------------------------------------------------------------------------*/
1368 
1369 /*-----------------------------------------------------------------------------------------------*/
1430 /*-----------------------------------------------------------------------------------------------*/
1432 
1433 /*-----------------------------------------------------------------------------------------------*/
1493 /*-----------------------------------------------------------------------------------------------*/
1495 
1499 /*-----------------------------------------------------------------------------------------------*/
1500 #endif /*M2MB_MQTT_API_H*/
M2MB_MQTT_ERROR_STAT
Definition: m2mb_mqtt.h:82
M2MB_MQTT_STATUS_E
M2MB_MQTT_STATUS_E
mqtt client status enum
Definition: m2mb_mqtt.h:99
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:344
M2MB_MQTT_GET_LAST_WILL
Definition: m2mb_mqtt.h:205
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:127
M2MB_MQTT_RX_MORE_DATA
Definition: m2mb_mqtt.h:252
M2MB_MQTT_CONTINUE
Definition: m2mb_mqtt.h:92
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:498
M2MB_MQTT_SET_PDP_CONTEXT
Definition: m2mb_mqtt.h:171
M2MB_MQTT_ERROR_MEMORY
Definition: m2mb_mqtt.h:81
M2MB_MQTT_RX_STATUS_E
M2MB_MQTT_RX_STATUS_E
MQTT Receive Data Status Enum.
Definition: m2mb_mqtt.h:249
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:187
M2MB_MQTT_ERROR_OUT_OF_BUFFER
Definition: m2mb_mqtt.h:74
M2MB_MQTT_ACTION_E
M2MB_MQTT_ACTION_E
MQTT actions enum List of actions performed through m2mb_mqtt_conf API.
Definition: m2mb_mqtt.h:118
M2MB_MQTT_ERROR_TIMEOUT
Definition: m2mb_mqtt.h:79
M2MB_MQTT_ERROR_MALFORMED_DATA
Definition: m2mb_mqtt.h:75
M2MB_MQTT_ERROR_CALLBACK
Definition: m2mb_mqtt.h:85
M2MB_MQTT_SET_CLEAN_SESSION
Definition: m2mb_mqtt.h:143
M2MB_MQTT_QOS_1
Definition: m2mb_mqtt.h:242
M2MB_MQTT_ERROR_NETWORK
Definition: m2mb_mqtt.h:80
M2MB_MQTT_ERROR_TOPIC_LIST
Definition: m2mb_mqtt.h:88
M2MB_MQTT_NOT_CONNECTED
Definition: m2mb_mqtt.h:102
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:251
M2MB_MQTT_SECURE_OPT
Definition: m2mb_mqtt.h:131
M2MB_MQTT_SET_PASSWORD
Definition: m2mb_mqtt.h:167
M2MB_MQTT_CONNACK_TIMEOUT
Definition: m2mb_mqtt.h:107
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:139
M2MB_MQTT_SET_USERNAME
Definition: m2mb_mqtt.h:163
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_QOS_0
Definition: m2mb_mqtt.h:241
M2MB_MQTT_SET_LAST_WILL
Definition: m2mb_mqtt.h:153
M2MB_MQTT_QOS_E
M2MB_MQTT_QOS_E
MQTT QoS Enum.
Definition: m2mb_mqtt.h:239
M2MB_MQTT_ERROR_QUEUE
Definition: m2mb_mqtt.h:90
M2MB_MQTT_ERROR_PACKET_TYPE
Definition: m2mb_mqtt.h:76
M2MB_MQTT_TOPIC::topic_filter
const CHAR * topic_filter
Definition: m2mb_mqtt.h:500
M2MB_MQTT_ERROR_PROPERTY
Definition: m2mb_mqtt.h:83
M2MB_MQTT_ERROR_BAD_ARG
Definition: m2mb_mqtt.h:73
M2MB_MQTT_TOPIC::qos
M2MB_MQTT_QOS_E qos
Definition: m2mb_mqtt.h:501
M2MB_MQTT_INDICATION_DISCONNECT
Definition: m2mb_mqtt.h:63
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:490
M2MB_MQTT_ERROR_TLS_CONNECT
Definition: m2mb_mqtt.h:78
M2MB_MQTT_SUCCESS
Definition: m2mb_mqtt.h:72
M2MB_MQTT_GET_CLEAN_SESSION
Definition: m2mb_mqtt.h:193
M2MB_MQTT_FATAL_ERROR
Definition: m2mb_mqtt.h:109
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_QOS_2
Definition: m2mb_mqtt.h:243
M2MB_MQTT_RESPONSE_E
M2MB_MQTT_RESPONSE_E
MQTT APIs response enum.
Definition: m2mb_mqtt.h:70
M2MB_MQTT_ERROR_PACKET_ID
Definition: m2mb_mqtt.h:77
M2MB_MQTT_SET_PROTOCOL_LEVEL
Definition: m2mb_mqtt.h:149
M2MB_MQTT_STATUS_UNKNOWN
Definition: m2mb_mqtt.h:111
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_TOPIC::cb
M2MB_MQTT_MSG_HNDLR_CB_T cb
Definition: m2mb_mqtt.h:502
M2MB_MQTT_PINGREQ_TIMEOUT_FAIL
Definition: m2mb_mqtt.h:105
M2MB_MQTT_CLIENT_CONNECTED
Definition: m2mb_mqtt.h:103
M2MB_MQTT_GET_TIMEOUT_MS
Definition: m2mb_mqtt.h:181
M2MB_MQTT_CONNECT_TIMEOUT
Definition: m2mb_mqtt.h:108
M2MB_MQTT_GET_PDP_CONTEXT
Definition: m2mb_mqtt.h:219
M2MB_MQTT_GET_PROTOCOL_LEVEL
Definition: m2mb_mqtt.h:199
M2MB_MQTT_GET_CLIENT_ID
Definition: m2mb_mqtt.h:175
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:56
M2MB_MQTT_SET_PDP_HANDLE
Definition: m2mb_mqtt.h:225
M2MB_MQTT_ERROR_SEM
Definition: m2mb_mqtt.h:87
M2MB_MQTT_CONN_RESET_BY_PEER
Definition: m2mb_mqtt.h:104
M2MB_MQTT_ERROR_SERVER_PROP
Definition: m2mb_mqtt.h:84
M2MB_MQTT_TOPIC::arg
void * arg
Definition: m2mb_mqtt.h:503
M2MB_MQTT_SET_CLIENT_ID
Definition: m2mb_mqtt.h:121
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:61
M2MB_MQTT_NETWORK_ERROR
Definition: m2mb_mqtt.h:110
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:89
M2MB_MQTT_STDIN_WAKE
Definition: m2mb_mqtt.h:93