WE310F5  39.00.000
m2mb_mqtt.h
Go to the documentation of this file.
1 /*===============================================================================================*/
2 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
42 #ifndef M2MB_MQTT_H
43 #define M2MB_MQTT_H
44 
45 #include "m2mb_types.h"
46 #include "m2mb_status.h"
47 
58 /*-----------------------------------------------------------------------------------------------*/
59 
64 /*-----------------------------------------------------------------------------------------------*/
65 /* Global declarations ==========================================================================*/
66 #define M2MB_MQTT_MAX_SUBSCRIBE_TOPICS 32
70 typedef VOID * M2MB_MQTT_CTXT_HANDLE;
71 
80 {
89 {
109 
183 typedef VOID (*M2MB_MQTT_MSG_HNDLR_CB_T) (M2MB_MQTT_CTXT_HANDLE handle, void* arg,
184  INT32 reason, const UINT8* topic, UINT16 topic_Length, const UINT8* msg, UINT32 msg_Length, UINT32 QOS );
192 typedef struct M2MB_MQTT_OPEN_PARAMS
193 {
194  char *client_id;
199  char *username;
200  char *password;
201  unsigned short keepalive_in_sec;
202  unsigned short timeout_in_sec;
204  const char* will_topic;
206  const char* will_msg;
207  char will_qos;
208  char will_retain;
210  void* pSslCfg;
212 
220 typedef struct M2MB_MQTT_CONN_PARAMS
221 {
222  char *host;
223  long port;
229 
343 /*---------------------------------------------------------------------------*/
455 /*---------------------------------------------------------------------------*/
556 /*---------------------------------------------------------------------------*/
668 /*-----------------------------------------------------------------------------------------------*/
768 /*---------------------------------------------------------------------------*/
880 /*-----------------------------------------------------------------------------------------------*/
1014 M2MB_STATUS_T m2mb_mqtt_publish(M2MB_MQTT_CTXT_HANDLE mqtt_handle, INT32 qos, INT32 retain, UINT16 message_id, const UINT8 *topic, const UINT8 *data, INT32 data_len);
1015 /*-----------------------------------------------------------------------------------------------*/
1152 M2MB_STATUS_T m2mb_mqtt_subscribe(M2MB_MQTT_CTXT_HANDLE mqtt_handle, UINT16 msg_id, const UINT8 *topic, INT32 qos, M2MB_MQTT_MSG_HNDLR_CB_T cbk, VOID *cbk_arg);
1153 /*-----------------------------------------------------------------------------------------------*/
1288 M2MB_STATUS_T m2mb_mqtt_unsubscribe(M2MB_MQTT_CTXT_HANDLE mqtt_handle, UINT16 msg_id, const UINT8 *topic);
1289 /*-----------------------------------------------------------------------------------------------*/
1290 #endif /*M2MB_MQTT_H*/
const char * will_topic
Definition: m2mb_mqtt.h:204
VOID * M2MB_MQTT_CTXT_HANDLE
MQTT context handle. This is obtained from m2mb_mqtt_open API and then used in subsequent MQTT APIs...
Definition: m2mb_mqtt.h:70
unsigned char UINT8
Definition: m2mb_types.h:86
M2MB_STATUS_T m2mb_mqtt_init(VOID)
initializes MQTT module.
MQTT client Open parameters.
Definition: m2mb_mqtt.h:192
M2MB_MQTT_CONNECT_CB_T connectcb
Definition: m2mb_mqtt.h:226
INT32 M2MB_STATUS_T
Definition: m2mb_status.h:97
VOID(* M2MB_MQTT_MSG_HNDLR_CB_T)(M2MB_MQTT_CTXT_HANDLE handle, void *arg, INT32 reason, const UINT8 *topic, UINT16 topic_Length, const UINT8 *msg, UINT32 msg_Length, UINT32 QOS)
User registered callback for incoming messages for subscribed topics.
Definition: m2mb_mqtt.h:183
unsigned short UINT16
Definition: m2mb_types.h:87
const char * will_msg
Definition: m2mb_mqtt.h:206
M2MB_STATUS_T m2mb_mqtt_deinit(VOID)
deinitializes MQTT module.
UINT8 BOOLEAN
Definition: m2mb_types.h:95
M2MB_STATUS_T m2mb_mqtt_disconnect(M2MB_MQTT_CTXT_HANDLE mqtt_handle)
Disconnect from the server(broker).
enum M2MB_MQTT_CONNECT_STATUS M2MB_MQTT_CONNECT_STATUS_E
M2MB_STATUS_T m2mb_mqtt_connect(M2MB_MQTT_CTXT_HANDLE mqtt_handle, M2MB_MQTT_CONN_PARAMS_T *p_conn_params)
performs MQTT connection to the server.
M2MB_STATUS_T m2mb_mqtt_publish(M2MB_MQTT_CTXT_HANDLE mqtt_handle, INT32 qos, INT32 retain, UINT16 message_id, const UINT8 *topic, const UINT8 *data, INT32 data_len)
Publishes a message on a given topic.
void VOID
Definition: m2mb_types.h:74
MQTT connect parameters.
Definition: m2mb_mqtt.h:220
M2M base status (ver. )
M2MB_STATUS_T m2mb_mqtt_open(M2MB_MQTT_CTXT_HANDLE *handle, M2MB_MQTT_OPEN_PARAMS_T *p_open_params)
Creates MQTT instance for the MQTT client.
VOID(* M2MB_MQTT_CONNECT_CB_T)(M2MB_MQTT_CTXT_HANDLE handle, INT32 status)
User registered callback for MQTT connection status, registered during m2mb_mqtt_connect call...
Definition: m2mb_mqtt.h:140
struct M2MB_MQTT_OPEN_PARAMS M2MB_MQTT_OPEN_PARAMS_T
MQTT client Open parameters.
unsigned long int UINT32
Definition: m2mb_types.h:88
signed int INT32
Definition: m2mb_types.h:82
M2MB_STATUS_T m2mb_mqtt_subscribe(M2MB_MQTT_CTXT_HANDLE mqtt_handle, UINT16 msg_id, const UINT8 *topic, INT32 qos, M2MB_MQTT_MSG_HNDLR_CB_T cbk, VOID *cbk_arg)
m2mb_mqtt_subscribe is called to Subscribe.
M2MB_MQTT_SUBSCRIBE_REASON_E
MQTT client subscribe reason.
Definition: m2mb_mqtt.h:79
unsigned short timeout_in_sec
Definition: m2mb_mqtt.h:202
struct M2MB_MQTT_CONN_PARAMS M2MB_MQTT_CONN_PARAMS_T
MQTT connect parameters.
M2MB_MQTT_CONNECT_STATUS
Definition: m2mb_mqtt.h:88
M2MB_STATUS_T m2mb_mqtt_unsubscribe(M2MB_MQTT_CTXT_HANDLE mqtt_handle, UINT16 msg_id, const UINT8 *topic)
unsubscribe to a perticular topic.
M2M base types (ver. )
M2MB_STATUS_T m2mb_mqtt_close(M2MB_MQTT_CTXT_HANDLE mqtt_handle)
closes MQTT instance.
unsigned short keepalive_in_sec
Definition: m2mb_mqtt.h:201