WE310F5  39.00.000
m2mb_mqtt.h File Reference

MQTT (Message Queuing Telemetry Transport) Client service. More...

#include "m2mb_types.h"
#include "m2mb_status.h"

Go to the source code of this file.

Data Structures

struct  M2MB_MQTT_OPEN_PARAMS
 MQTT client Open parameters. More...
 
struct  M2MB_MQTT_CONN_PARAMS
 MQTT connect parameters. More...
 
#define M2MB_MQTT_MAX_SUBSCRIBE_TOPICS   32
 
enum  M2MB_MQTT_SUBSCRIBE_REASON_E {
  M2MB_MQTT_SUBSCRIPTION_DENIED = 0,
  M2MB_MQTT_SUBSCRIPTION_GRANTED,
  M2MB_MQTT_SUBSCRIPTION_MSG
}
 MQTT client subscribe reason. More...
 
enum  M2MB_MQTT_CONNECT_STATUS {
  M2MB_MQTT_CONNECT_STATUS_UNKNOWN = -1,
  M2MB_MQTT_CONNECT_STATUS_ACCEPTED = 0,
  M2MB_MQTT_CONNECT_STATUS_REFUSED_PROTOCOL_VERSION = 1,
  M2MB_MQTT_CONNECT_STATUS_REFUSED_IDENTIFIER = 2,
  M2MB_MQTT_CONNECT_STATUS_REFUSED_SERVER = 3,
  M2MB_MQTT_CONNECT_STATUS_REFUSED_USERNAME_PASS = 4,
  M2MB_MQTT_CONNECT_STATUS_REFUSED_NOT_AUTHORIZED_ = 5,
  M2MB_MQTT_CONNECT_STATUS_DISCONNECTED = 256,
  M2MB_MQTT_CONNECT_STATUS_TIMEOUT = 257
}
 
typedef VOIDM2MB_MQTT_CTXT_HANDLE
 MQTT context handle.
This is obtained from m2mb_mqtt_open API and then used in subsequent MQTT APIs. More...
 
typedef enum M2MB_MQTT_SUBSCRIBE_REASON_E M2MB_MQTT_SUBSCRIBE_REASON_E
 MQTT client subscribe reason. More...
 
typedef enum M2MB_MQTT_CONNECT_STATUS M2MB_MQTT_CONNECT_STATUS_E
 
typedef 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. More...
 
typedef 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. More...
 
typedef struct M2MB_MQTT_OPEN_PARAMS M2MB_MQTT_OPEN_PARAMS_T
 MQTT client Open parameters. More...
 
typedef struct M2MB_MQTT_CONN_PARAMS M2MB_MQTT_CONN_PARAMS_T
 MQTT connect parameters. More...
 
M2MB_STATUS_T m2mb_mqtt_init (VOID)
 initializes MQTT module. More...
 
M2MB_STATUS_T m2mb_mqtt_deinit (VOID)
 deinitializes MQTT module. More...
 
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. More...
 
M2MB_STATUS_T m2mb_mqtt_close (M2MB_MQTT_CTXT_HANDLE mqtt_handle)
 closes MQTT instance. More...
 
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. More...
 
M2MB_STATUS_T m2mb_mqtt_disconnect (M2MB_MQTT_CTXT_HANDLE mqtt_handle)
 Disconnect from the server(broker). More...
 
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. More...
 
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. More...
 
M2MB_STATUS_T m2mb_mqtt_unsubscribe (M2MB_MQTT_CTXT_HANDLE mqtt_handle, UINT16 msg_id, const UINT8 *topic)
 unsubscribe to a perticular topic. More...
 

Detailed Description

MQTT (Message Queuing Telemetry Transport) Client service.

epl/inc/nwk/m2mb_mqtt.h

The MQTT (Message Queuing Telemetry Transport) Client service provides a collection of APIs that allow the application to implement client functionalities, such as CONNECT, SUBSCRIBE, UNSUBSCRIBE, PUBLISH, DISCONNECT, and so on.

MQTT support only client.

sequence of APIs to call:

  • First to allocate resources for MQTT module by calling m2mb_mqtt_init.
    To connect to a server, use the following API sequence:

create MQTT client instance by calling m2mb_mqtt_open.

  • connect to server by calling m2mb_mqtt_connect. To subscribe/unsubscribe to a Topic:
  • subscribe to a topic by calling m2mb_mqtt_subscribe.
  • unsubscribe to a topic by calling m2mb_mqtt_unsubscribe.
    To publish a message:
  • publish a message by calling m2mb_mqtt_publish.
    To disconnect to a server:
    • disconnect to server by calling m2mb_mqtt_disconnect.
    • free the MQTT client instance(created with m2mb_mqtt_open) by calling m2mb_mqtt_close.
      Note
      Dependencies: "#include <m2mb_types.h>"
      "#include <m2mb_status.h>"
      Author
      prasadreddy peravali
      Date
      16/03/2018

Definition in file m2mb_mqtt.h.