m2mb API docs  25.30.004.0
m2mb API sets documentation
m2mb_mqtt.h
Go to the documentation of this file.
1 /* $version: 252203 */
2 /*===============================================================================================*/
3 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
26 #ifndef M2M_M2MB_MQTT_API_H
27 #define M2M_M2MB_MQTT_API_H
28 
40 /*-----------------------------------------------------------------------------------------------*/
41 
42 /* Global declarations ==========================================================================*/
43 
44 /*-----------------------------------------------------------------------------------------------
45  m2mb_mqtt_conf can be used without CMDS like below
46  m2mb_mqtt_conf_(handle, M2MB_MQTT_SET_CLIENT_ID, "MQTT_demo")
47  -----------------------------------------------------------------------------------------------*/
48 #define m2mb_mqtt_conf_( h, args... ) m2mb_mqtt_conf( h, CMDS( args ) )
49 
55 /* Global typedef ==========================================================================*/
56 
57 typedef HANDLE M2MB_MQTT_HANDLE;
58 
62 typedef enum
63 {
67 
71 typedef enum
72 {
96 
100 typedef enum
101 {
102 
115 
120 typedef enum
121 {
122 
239 
243 typedef enum
244 {
249 
253 typedef enum
254 {
258 
347 /*-----------------------------------------------------------------------------------------------*/
348 typedef void ( *m2mb_mqtt_ind_callback ) ( M2MB_MQTT_HANDLE Handle, M2MB_MQTT_IND_E event, UINT16 resp_size, void *resp, void *userdata );
493 /*-----------------------------------------------------------------------------------------------*/
494 typedef void ( *M2MB_MQTT_MSG_HNDLR_CB_T ) ( M2MB_MQTT_HANDLE Handle, void* arg, const CHAR* topic,
495  UINT16 topic_length, const CHAR* msg, UINT32 msg_length, M2MB_MQTT_RX_STATUS_E status );
496 
497 
502 typedef struct M2MB_MQTT_TOPIC
503 {
504  const CHAR* topic_filter;
507  void* arg;
509 
510 
511 /* Global functions =============================================================================*/
512 
513 /*---------------------------------------------------------------------------*/
572 /*-----------------------------------------------------------------------------------------------*/
574 
575 /*-----------------------------------------------------------------------------------------------*/
635 /*-----------------------------------------------------------------------------------------------*/
637 
638 /*-----------------------------------------------------------------------------------------------*/
731 /*-----------------------------------------------------------------------------------------------*/
732 M2MB_MQTT_RESPONSE_E m2mb_mqtt_conf( M2MB_MQTT_HANDLE Handle, UINT8 nCmds, ... );
733 
734 /*-----------------------------------------------------------------------------------------------*/
819 /*-----------------------------------------------------------------------------------------------*/
820 M2MB_MQTT_RESPONSE_E m2mb_mqtt_connect( M2MB_MQTT_HANDLE Handle, const CHAR *host, UINT32 port );
821 
822 /*-----------------------------------------------------------------------------------------------*/
908 /*-----------------------------------------------------------------------------------------------*/
910 
911 /*-----------------------------------------------------------------------------------------------*/
1013 /*-----------------------------------------------------------------------------------------------*/
1014 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 );
1015 
1016 /*-----------------------------------------------------------------------------------------------*/
1153 /*-----------------------------------------------------------------------------------------------*/
1154 M2MB_MQTT_RESPONSE_E m2mb_mqtt_subscribe( M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *pTopics );
1155 
1156 /*-----------------------------------------------------------------------------------------------*/
1276 /*-----------------------------------------------------------------------------------------------*/
1277 M2MB_MQTT_RESPONSE_E m2mb_mqtt_unsubscribe( M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *topics );
1278 
1279 /*-----------------------------------------------------------------------------------------------*/
1370 /*-----------------------------------------------------------------------------------------------*/
1372 
1373 /*-----------------------------------------------------------------------------------------------*/
1435 /*-----------------------------------------------------------------------------------------------*/
1437 
1438 /*-----------------------------------------------------------------------------------------------*/
1498 /*-----------------------------------------------------------------------------------------------*/
1500 
1504 /*-----------------------------------------------------------------------------------------------*/
1505 #endif /*M2MB_MQTT_API_H*/
M2MB_MQTT_ERROR_STAT
Definition: m2mb_mqtt.h:83
M2MB_MQTT_STATUS_E
M2MB_MQTT_STATUS_E
mqtt client status enum
Definition: m2mb_mqtt.h:100
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:348
M2MB_MQTT_GET_LAST_WILL
Definition: m2mb_mqtt.h:209
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:129
M2MB_MQTT_RX_MORE_DATA
Definition: m2mb_mqtt.h:256
M2MB_MQTT_CONTINUE
Definition: m2mb_mqtt.h:93
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:502
M2MB_MQTT_SET_PDP_CONTEXT
Definition: m2mb_mqtt.h:174
M2MB_MQTT_ERROR_MEMORY
Definition: m2mb_mqtt.h:82
M2MB_MQTT_RX_STATUS_E
M2MB_MQTT_RX_STATUS_E
MQTT Receive Data Status Enum.
Definition: m2mb_mqtt.h:253
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:191
M2MB_MQTT_ERROR_OUT_OF_BUFFER
Definition: m2mb_mqtt.h:75
M2MB_MQTT_ACTION_E
M2MB_MQTT_ACTION_E
MQTT actions enum List of actions performed through m2mb_mqtt_conf API.
Definition: m2mb_mqtt.h:120
M2MB_MQTT_ERROR_TIMEOUT
Definition: m2mb_mqtt.h:80
M2MB_MQTT_ERROR_MALFORMED_DATA
Definition: m2mb_mqtt.h:76
M2MB_MQTT_ERROR_CALLBACK
Definition: m2mb_mqtt.h:86
M2MB_MQTT_SET_CLEAN_SESSION
Definition: m2mb_mqtt.h:145
M2MB_MQTT_QOS_1
Definition: m2mb_mqtt.h:246
M2MB_MQTT_ERROR_NETWORK
Definition: m2mb_mqtt.h:81
M2MB_MQTT_ERROR_TOPIC_LIST
Definition: m2mb_mqtt.h:89
M2MB_MQTT_NOT_CONNECTED
Definition: m2mb_mqtt.h:103
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:255
M2MB_MQTT_SECURE_OPT
Definition: m2mb_mqtt.h:133
M2MB_MQTT_SET_PASSWORD
Definition: m2mb_mqtt.h:170
M2MB_MQTT_CONNACK_TIMEOUT
Definition: m2mb_mqtt.h:108
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:141
M2MB_MQTT_SET_USERNAME
Definition: m2mb_mqtt.h:166
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:245
M2MB_MQTT_SET_LAST_WILL
Definition: m2mb_mqtt.h:156
M2MB_MQTT_QOS_E
M2MB_MQTT_QOS_E
MQTT QoS Enum.
Definition: m2mb_mqtt.h:243
M2MB_MQTT_ERROR_QUEUE
Definition: m2mb_mqtt.h:91
M2MB_MQTT_ERROR_PACKET_TYPE
Definition: m2mb_mqtt.h:77
M2MB_MQTT_ERROR_PROPERTY
Definition: m2mb_mqtt.h:84
M2MB_MQTT_ERROR_BAD_ARG
Definition: m2mb_mqtt.h:74
M2MB_MQTT_TOPIC::topic_filter
const CHAR * topic_filter
Definition: m2mb_mqtt.h:504
M2MB_MQTT_INDICATION_DISCONNECT
Definition: m2mb_mqtt.h:64
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:494
M2MB_MQTT_ERROR_TLS_CONNECT
Definition: m2mb_mqtt.h:79
M2MB_MQTT_TOPIC::arg
void * arg
Definition: m2mb_mqtt.h:507
M2MB_MQTT_SUCCESS
Definition: m2mb_mqtt.h:73
M2MB_MQTT_GET_CLEAN_SESSION
Definition: m2mb_mqtt.h:197
M2MB_MQTT_FATAL_ERROR
Definition: m2mb_mqtt.h:110
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_STATUS_DISCONNECT_INITIATED
Definition: m2mb_mqtt.h:112
M2MB_MQTT_QOS_2
Definition: m2mb_mqtt.h:247
M2MB_MQTT_RESPONSE_E
M2MB_MQTT_RESPONSE_E
MQTT APIs response enum.
Definition: m2mb_mqtt.h:71
M2MB_MQTT_ERROR_PACKET_ID
Definition: m2mb_mqtt.h:78
M2MB_MQTT_SET_PROTOCOL_LEVEL
Definition: m2mb_mqtt.h:151
M2MB_MQTT_STATUS_UNKNOWN
Definition: m2mb_mqtt.h:113
M2MB_MQTT_TOPIC::qos
M2MB_MQTT_QOS_E qos
Definition: m2mb_mqtt.h:505
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_PINGREQ_TIMEOUT_FAIL
Definition: m2mb_mqtt.h:106
M2MB_MQTT_CLIENT_CONNECTED
Definition: m2mb_mqtt.h:104
M2MB_MQTT_TOPIC::cb
M2MB_MQTT_MSG_HNDLR_CB_T cb
Definition: m2mb_mqtt.h:506
M2MB_MQTT_GET_TIMEOUT_MS
Definition: m2mb_mqtt.h:185
M2MB_MQTT_CONNECT_TIMEOUT
Definition: m2mb_mqtt.h:109
M2MB_MQTT_GET_PDP_CONTEXT
Definition: m2mb_mqtt.h:223
M2MB_MQTT_GET_PROTOCOL_LEVEL
Definition: m2mb_mqtt.h:203
M2MB_MQTT_GET_CLIENT_ID
Definition: m2mb_mqtt.h:179
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:57
M2MB_MQTT_SET_PDP_HANDLE
Definition: m2mb_mqtt.h:229
M2MB_MQTT_ERROR_SEM
Definition: m2mb_mqtt.h:88
M2MB_MQTT_CONN_RESET_BY_PEER
Definition: m2mb_mqtt.h:105
M2MB_MQTT_ERROR_SERVER_PROP
Definition: m2mb_mqtt.h:85
M2MB_MQTT_SET_CLIENT_ID
Definition: m2mb_mqtt.h:123
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:62
M2MB_MQTT_NETWORK_ERROR
Definition: m2mb_mqtt.h:111
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:90
M2MB_MQTT_STDIN_WAKE
Definition: m2mb_mqtt.h:94