m2mb API docs  25.30.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 
114 
119 typedef enum
120 {
121 
238 
242 typedef enum
243 {
248 
252 typedef enum
253 {
257 
346 /*-----------------------------------------------------------------------------------------------*/
347 typedef void ( *m2mb_mqtt_ind_callback ) ( M2MB_MQTT_HANDLE Handle, M2MB_MQTT_IND_E event, UINT16 resp_size, void *resp, void *userdata );
492 /*-----------------------------------------------------------------------------------------------*/
493 typedef void ( *M2MB_MQTT_MSG_HNDLR_CB_T ) ( M2MB_MQTT_HANDLE Handle, void* arg, const CHAR* topic,
494  UINT16 topic_length, const CHAR* msg, UINT32 msg_length, M2MB_MQTT_RX_STATUS_E status );
495 
496 
501 typedef struct M2MB_MQTT_TOPIC
502 {
503  const CHAR* topic_filter;
506  void* arg;
508 
509 
510 /* Global functions =============================================================================*/
511 
512 /*---------------------------------------------------------------------------*/
571 /*-----------------------------------------------------------------------------------------------*/
573 
574 /*-----------------------------------------------------------------------------------------------*/
634 /*-----------------------------------------------------------------------------------------------*/
636 
637 /*-----------------------------------------------------------------------------------------------*/
730 /*-----------------------------------------------------------------------------------------------*/
731 M2MB_MQTT_RESPONSE_E m2mb_mqtt_conf( M2MB_MQTT_HANDLE Handle, UINT8 nCmds, ... );
732 
733 /*-----------------------------------------------------------------------------------------------*/
818 /*-----------------------------------------------------------------------------------------------*/
819 M2MB_MQTT_RESPONSE_E m2mb_mqtt_connect( M2MB_MQTT_HANDLE Handle, const CHAR *host, UINT32 port );
820 
821 /*-----------------------------------------------------------------------------------------------*/
907 /*-----------------------------------------------------------------------------------------------*/
909 
910 /*-----------------------------------------------------------------------------------------------*/
1012 /*-----------------------------------------------------------------------------------------------*/
1013 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 );
1014 
1015 /*-----------------------------------------------------------------------------------------------*/
1152 /*-----------------------------------------------------------------------------------------------*/
1153 M2MB_MQTT_RESPONSE_E m2mb_mqtt_subscribe( M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *pTopics );
1154 
1155 /*-----------------------------------------------------------------------------------------------*/
1275 /*-----------------------------------------------------------------------------------------------*/
1276 M2MB_MQTT_RESPONSE_E m2mb_mqtt_unsubscribe( M2MB_MQTT_HANDLE Handle, UINT16 message_id, UINT32 topic_count, M2MB_MQTT_TOPIC_T *topics );
1277 
1278 /*-----------------------------------------------------------------------------------------------*/
1369 /*-----------------------------------------------------------------------------------------------*/
1371 
1372 /*-----------------------------------------------------------------------------------------------*/
1434 /*-----------------------------------------------------------------------------------------------*/
1436 
1437 /*-----------------------------------------------------------------------------------------------*/
1497 /*-----------------------------------------------------------------------------------------------*/
1499 
1503 /*-----------------------------------------------------------------------------------------------*/
1504 #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:347
M2MB_MQTT_GET_LAST_WILL
Definition: m2mb_mqtt.h:208
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:128
M2MB_MQTT_RX_MORE_DATA
Definition: m2mb_mqtt.h:255
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:501
M2MB_MQTT_SET_PDP_CONTEXT
Definition: m2mb_mqtt.h:173
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:252
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:190
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:119
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:144
M2MB_MQTT_QOS_1
Definition: m2mb_mqtt.h:245
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:254
M2MB_MQTT_SECURE_OPT
Definition: m2mb_mqtt.h:132
M2MB_MQTT_SET_PASSWORD
Definition: m2mb_mqtt.h:169
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:140
M2MB_MQTT_SET_USERNAME
Definition: m2mb_mqtt.h:165
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:244
M2MB_MQTT_SET_LAST_WILL
Definition: m2mb_mqtt.h:155
M2MB_MQTT_QOS_E
M2MB_MQTT_QOS_E
MQTT QoS Enum.
Definition: m2mb_mqtt.h:242
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:503
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:504
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:493
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:196
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_STATUS_DISCONNECT_INITIATED
Definition: m2mb_mqtt.h:111
M2MB_MQTT_QOS_2
Definition: m2mb_mqtt.h:246
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:150
M2MB_MQTT_STATUS_UNKNOWN
Definition: m2mb_mqtt.h:112
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:505
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:184
M2MB_MQTT_CONNECT_TIMEOUT
Definition: m2mb_mqtt.h:108
M2MB_MQTT_GET_PDP_CONTEXT
Definition: m2mb_mqtt.h:222
M2MB_MQTT_GET_PROTOCOL_LEVEL
Definition: m2mb_mqtt.h:202
M2MB_MQTT_GET_CLIENT_ID
Definition: m2mb_mqtt.h:178
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:228
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:506
M2MB_MQTT_SET_CLIENT_ID
Definition: m2mb_mqtt.h:122
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