Microchip® Advanced Software Framework

wireless/SmartConnect_6LoWPAN/apps/mqtt/mqtt.h File Reference
#include "thsq.h"
#include "lib/assert.h"
#include "lib/list.h"
#include "ip64-addr.h"
#include "tcp-socket.h"
#include "string.h"
#include "sys/pt.h"

Data Structures

struct  mqtt_connection
 
struct  mqtt_credentials
 
struct  mqtt_in_packet
 This struct represents a packet received from the MQTT server. More...
 
struct  mqtt_message
 TEMPORARY NOTE: This is the MQTT message that is exposed to the end user. More...
 
struct  mqtt_out_packet
 This struct represents a packet sent to the MQTT server. More...
 
struct  mqtt_string
 
struct  mqtt_suback_event
 
struct  mqtt_will
 

Macros

#define DBG(...)
 
#define DEBUG_MQTT   0
 
#define MQTT_CLIENT_ID_MAX_LEN   23
 
#define mqtt_connected(conn)   ((conn)->state == MQTT_CONN_STATE_CONNECTED_TO_BROKER ? 1 : 0)
 
#define MQTT_FHDR_SIZE   1
 
#define MQTT_INPUT_BUFF_SIZE   256
 
#define MQTT_MAX_REMAINING_LENGTH_BYTES   4
 
#define MQTT_MAX_TOPIC_LENGTH   64
 
#define MQTT_MAX_TOPICS_PER_SUBSCRIBE   1
 
#define MQTT_PROTOCOL_NAME   "MQIsdp"
 
#define MQTT_PROTOCOL_VERSION   3
 
#define mqtt_ready(conn)   (!(conn)->out_queue_full && mqtt_connected((conn)))
 
#define MQTT_TCP_INPUT_BUFF_SIZE   256
 
#define MQTT_TCP_OUTPUT_BUFF_SIZE   256
 
#define MQTT_TOPIC_MAX_LENGTH   128
 

Typedefs

typedef void(* mqtt_event_callback_t )(struct mqtt_connection *m, mqtt_event_t event, void *data)
 MQTT event callback function. More...
 
typedef void(* mqtt_topic_callback_t )(struct mqtt_connection *m, struct mqtt_message *msg)
 

Enumerations

enum  mqtt_conn_state_t {
  MQTT_CONN_STATE_ERROR,
  MQTT_CONN_STATE_DNS_ERROR,
  MQTT_CONN_STATE_DISCONNECTING,
  MQTT_CONN_STATE_NOT_CONNECTED,
  MQTT_CONN_STATE_DNS_LOOKUP,
  MQTT_CONN_STATE_TCP_CONNECTING,
  MQTT_CONN_STATE_TCP_CONNECTED,
  MQTT_CONN_STATE_CONNECTING_TO_BROKER,
  MQTT_CONN_STATE_CONNECTED_TO_BROKER
}
 
enum  mqtt_event_t {
  MQTT_EVENT_CONNECTED,
  MQTT_EVENT_DISCONNECTED,
  MQTT_EVENT_SUBACK,
  MQTT_EVENT_UNSUBACK,
  MQTT_EVENT_PUBLISH,
  MQTT_EVENT_PUBACK,
  MQTT_EVENT_ERROR = 0x80,
  MQTT_EVENT_PROTOCOL_ERROR,
  MQTT_EVENT_CONNECTION_REFUSED_ERROR,
  MQTT_EVENT_DNS_ERROR,
  MQTT_EVENT_NOT_IMPLEMENTED_ERROR
}
 
enum  mqtt_qos_level_t {
  MQTT_QOS_LEVEL_0,
  MQTT_QOS_LEVEL_1,
  MQTT_QOS_LEVEL_2
}
 
enum  mqtt_qos_state_t {
  MQTT_QOS_STATE_NO_ACK,
  MQTT_QOS_STATE_GOT_ACK
}
 
enum  mqtt_retain_t {
  MQTT_RETAIN_OFF,
  MQTT_RETAIN_ON
}
 
enum  mqtt_status_t {
  MQTT_STATUS_OK,
  MQTT_STATUS_OUT_QUEUE_FULL,
  MQTT_STATUS_ERROR = 0x80,
  MQTT_STATUS_NOT_CONNECTED_ERROR,
  MQTT_STATUS_INVALID_ARGS_ERROR,
  MQTT_STATUS_DNS_ERROR
}
 

Functions

mqtt_status_t mqtt_connect (struct mqtt_connection *conn, const char *host, uint16_t port, uint16_t keep_alive)
 
void mqtt_disconnect (struct mqtt_connection *conn)
 
mqtt_status_t mqtt_publish (struct mqtt_connection *conn, uint16_t *mid, const char *topic, uint8_t *payload, uint32_t payload_size, mqtt_qos_level_t qos_level, mqtt_retain_t retain)
 
mqtt_status_t mqtt_register (struct mqtt_connection *conn, struct process *app_process, const char *client_id, mqtt_event_callback_t event_callback)
 Initializes the MQTT application. More...
 
void mqtt_set_last_will (struct mqtt_connection *conn, const char *topic, const char *message, mqtt_qos_level_t qos)
 
void mqtt_set_username_password (struct mqtt_connection *conn, const char *username, const char *password)
 
mqtt_status_t mqtt_subscribe (struct mqtt_connection *conn, uint16_t *mid, const char *topic, mqtt_qos_level_t qos_level)
 
mqtt_status_t mqtt_unsubscribe (struct mqtt_connection *conn, uint16_t *mid, const char *topic)
 

Variables

process_event_t mqtt_update_event
 

#define DBG (   ...)
#define DEBUG_MQTT   0
#define MQTT_CLIENT_ID_MAX_LEN   23
#define mqtt_connected (   conn)    ((conn)->state == MQTT_CONN_STATE_CONNECTED_TO_BROKER ? 1 : 0)

Referenced by PROCESS_THREAD().

#define MQTT_FHDR_SIZE   1
#define MQTT_INPUT_BUFF_SIZE   256
#define MQTT_MAX_REMAINING_LENGTH_BYTES   4
#define MQTT_MAX_TOPIC_LENGTH   64
#define MQTT_MAX_TOPICS_PER_SUBSCRIBE   1
#define MQTT_PROTOCOL_NAME   "MQIsdp"
#define MQTT_PROTOCOL_VERSION   3
#define mqtt_ready (   conn)    (!(conn)->out_queue_full && mqtt_connected((conn)))

Referenced by PROCESS_THREAD().

#define MQTT_TCP_INPUT_BUFF_SIZE   256
#define MQTT_TCP_OUTPUT_BUFF_SIZE   256
#define MQTT_TOPIC_MAX_LENGTH   128

typedef void(* mqtt_event_callback_t)(struct mqtt_connection *m, mqtt_event_t event, void *data)

MQTT event callback function.

Parameters
mA pointer to a MQTT connection
user_ptrA user-defined pointer
eventThe event number
        The MQTT socket event callback function gets
        called whenever there is an event on a MQTT connection, such as
        the connection getting connected or closed.
typedef void(* mqtt_topic_callback_t)(struct mqtt_connection *m, struct mqtt_message *msg)

Enumerator
MQTT_CONN_STATE_ERROR 
MQTT_CONN_STATE_DNS_ERROR 
MQTT_CONN_STATE_DISCONNECTING 
MQTT_CONN_STATE_NOT_CONNECTED 
MQTT_CONN_STATE_DNS_LOOKUP 
MQTT_CONN_STATE_TCP_CONNECTING 
MQTT_CONN_STATE_TCP_CONNECTED 
MQTT_CONN_STATE_CONNECTING_TO_BROKER 
MQTT_CONN_STATE_CONNECTED_TO_BROKER 
Enumerator
MQTT_EVENT_CONNECTED 
MQTT_EVENT_DISCONNECTED 
MQTT_EVENT_SUBACK 
MQTT_EVENT_UNSUBACK 
MQTT_EVENT_PUBLISH 
MQTT_EVENT_PUBACK 
MQTT_EVENT_ERROR 
MQTT_EVENT_PROTOCOL_ERROR 
MQTT_EVENT_CONNECTION_REFUSED_ERROR 
MQTT_EVENT_DNS_ERROR 
MQTT_EVENT_NOT_IMPLEMENTED_ERROR 
Enumerator
MQTT_QOS_LEVEL_0 
MQTT_QOS_LEVEL_1 
MQTT_QOS_LEVEL_2 
Enumerator
MQTT_QOS_STATE_NO_ACK 
MQTT_QOS_STATE_GOT_ACK 
Enumerator
MQTT_RETAIN_OFF 
MQTT_RETAIN_ON 
Enumerator
MQTT_STATUS_OK 
MQTT_STATUS_OUT_QUEUE_FULL 
MQTT_STATUS_ERROR 
MQTT_STATUS_NOT_CONNECTED_ERROR 
MQTT_STATUS_INVALID_ARGS_ERROR 
MQTT_STATUS_DNS_ERROR 

mqtt_status_t mqtt_connect ( struct mqtt_connection conn,
const char *  host,
uint16_t  port,
uint16_t  keep_alive 
)
void mqtt_disconnect ( struct mqtt_connection conn)
mqtt_status_t mqtt_publish ( struct mqtt_connection conn,
uint16_t *  mid,
const char *  topic,
uint8_t *  payload,
uint32_t  payload_size,
mqtt_qos_level_t  qos_level,
mqtt_retain_t  retain 
)
mqtt_status_t mqtt_register ( struct mqtt_connection conn,
struct process app_process,
const char *  client_id,
mqtt_event_callback_t  event_callback 
)

Initializes the MQTT application.

This method shall be called before any other MQTT function.

Referenced by PROCESS_THREAD().

void mqtt_set_last_will ( struct mqtt_connection conn,
const char *  topic,
const char *  message,
mqtt_qos_level_t  qos 
)

Referenced by PROCESS_THREAD().

void mqtt_set_username_password ( struct mqtt_connection conn,
const char *  username,
const char *  password 
)
mqtt_status_t mqtt_subscribe ( struct mqtt_connection conn,
uint16_t *  mid,
const char *  topic,
mqtt_qos_level_t  qos_level 
)
mqtt_status_t mqtt_unsubscribe ( struct mqtt_connection conn,
uint16_t *  mid,
const char *  topic 
)

process_event_t mqtt_update_event