UbixOS V2  2.0
mqtt.h File Reference
#include "lwip/apps/mqtt_opts.h"
#include "lwip/err.h"
#include "lwip/ip_addr.h"
Include dependency graph for mqtt.h:

Go to the source code of this file.

Data Structures

struct  mqtt_client_t
 
struct  mqtt_connect_client_info_t
 
struct  mqtt_request_t
 
struct  mqtt_ringbuf_t
 

Macros

#define MQTT_PORT   1883
 
#define mqtt_subscribe(client, topic, qos, cb, arg)   mqtt_sub_unsub(client, topic, qos, cb, arg, 1)
 
#define mqtt_unsubscribe(client, topic, cb, arg)   mqtt_sub_unsub(client, topic, 0, cb, arg, 0)
 

Typedefs

typedef struct mqtt_client_t mqtt_client_t
 
typedef void(* mqtt_connection_cb_t) (mqtt_client_t *client, void *arg, mqtt_connection_status_t status)
 
typedef void(* mqtt_incoming_data_cb_t) (void *arg, const u8_t *data, u16_t len, u8_t flags)
 
typedef void(* mqtt_incoming_publish_cb_t) (void *arg, const char *topic, u32_t tot_len)
 
typedef void(* mqtt_request_cb_t) (void *arg, err_t err)
 

Enumerations

enum  { MQTT_DATA_FLAG_LAST = 1 }
 
enum  mqtt_connection_status_t {
  MQTT_CONNECT_ACCEPTED = 0, MQTT_CONNECT_REFUSED_PROTOCOL_VERSION = 1, MQTT_CONNECT_REFUSED_IDENTIFIER = 2, MQTT_CONNECT_REFUSED_SERVER = 3,
  MQTT_CONNECT_REFUSED_USERNAME_PASS = 4, MQTT_CONNECT_REFUSED_NOT_AUTHORIZED_ = 5, MQTT_CONNECT_DISCONNECTED = 256, MQTT_CONNECT_TIMEOUT = 257
}
 

Functions

err_t mqtt_client_connect (mqtt_client_t *client, const ip_addr_t *ipaddr, u16_t port, mqtt_connection_cb_t cb, void *arg, const struct mqtt_connect_client_info_t *client_info)
 
u8_t mqtt_client_is_connected (mqtt_client_t *client)
 
mqtt_client_tmqtt_client_new (void)
 
void mqtt_disconnect (mqtt_client_t *client)
 
err_t mqtt_publish (mqtt_client_t *client, const char *topic, const void *payload, u16_t payload_length, u8_t qos, u8_t retain, mqtt_request_cb_t cb, void *arg)
 
void mqtt_set_inpub_callback (mqtt_client_t *client, mqtt_incoming_publish_cb_t, mqtt_incoming_data_cb_t data_cb, void *arg)
 
err_t mqtt_sub_unsub (mqtt_client_t *client, const char *topic, u8_t qos, mqtt_request_cb_t cb, void *arg, u8_t sub)
 

Detailed Description

MQTT client

Definition in file mqtt.h.

Macro Definition Documentation

◆ MQTT_PORT

#define MQTT_PORT   1883

Default MQTT port

Definition at line 52 of file mqtt.h.

◆ mqtt_subscribe

#define mqtt_subscribe (   client,
  topic,
  qos,
  cb,
  arg 
)    mqtt_sub_unsub(client, topic, qos, cb, arg, 1)

Subscribe to topic

Definition at line 230 of file mqtt.h.

◆ mqtt_unsubscribe

#define mqtt_unsubscribe (   client,
  topic,
  cb,
  arg 
)    mqtt_sub_unsub(client, topic, 0, cb, arg, 0)

Unsubscribe to topic

Definition at line 233 of file mqtt.h.

Typedef Documentation

◆ mqtt_client_t

typedef struct mqtt_client_t mqtt_client_t

Definition at line 48 of file mqtt.h.

◆ mqtt_connection_cb_t

typedef void(* mqtt_connection_cb_t) (mqtt_client_t *client, void *arg, mqtt_connection_status_t status)

Function prototype for mqtt connection status callback. Called when client has connected to the server after initiating a mqtt connection attempt by calling mqtt_connect() or when connection is closed by server or an error

Parameters
clientMQTT client itself
argAdditional argument to pass to the callback function
statusConnect result code or disconnection notification
See also
mqtt_connection_status_t

Definition at line 102 of file mqtt.h.

◆ mqtt_incoming_data_cb_t

typedef void(* mqtt_incoming_data_cb_t) (void *arg, const u8_t *data, u16_t len, u8_t flags)

Function prototype for MQTT incoming publish data callback function. Called when data arrives to a subscribed topic

See also
mqtt_subscribe
Parameters
argAdditional argument to pass to the callback function
dataUser data, pointed object, data may not be referenced after callback return, NULL is passed when all publish data are delivered
lenLength of publish data fragment
flagsMQTT_DATA_FLAG_LAST set when this call contains the last part of data from publish message

Definition at line 125 of file mqtt.h.

◆ mqtt_incoming_publish_cb_t

typedef void(* mqtt_incoming_publish_cb_t) (void *arg, const char *topic, u32_t tot_len)

Function prototype for MQTT incoming publish function. Called when an incoming publish arrives to a subscribed topic

See also
mqtt_subscribe
Parameters
argAdditional argument to pass to the callback function
topicZero terminated Topic text string, topic may not be referenced after callback return
tot_lenTotal length of publish data, if set to 0 (no publish payload) data callback will not be invoked

Definition at line 137 of file mqtt.h.

◆ mqtt_request_cb_t

typedef void(* mqtt_request_cb_t) (void *arg, err_t err)

Function prototype for mqtt request callback. Called when a subscribe, unsubscribe or publish request has completed

Parameters
argPointer to user data supplied when invoking request
errERR_OK on success ERR_TIMEOUT if no response was received within timeout, ERR_ABRT if (un)subscribe was denied

Definition at line 149 of file mqtt.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Data callback flags

Enumerator
MQTT_DATA_FLAG_LAST 

Flag set when last fragment of data arrives in data callback

Definition at line 108 of file mqtt.h.

◆ mqtt_connection_status_t

Connection status codes

Enumerator
MQTT_CONNECT_ACCEPTED 
MQTT_CONNECT_REFUSED_PROTOCOL_VERSION 
MQTT_CONNECT_REFUSED_IDENTIFIER 
MQTT_CONNECT_REFUSED_SERVER 
MQTT_CONNECT_REFUSED_USERNAME_PASS 
MQTT_CONNECT_REFUSED_NOT_AUTHORIZED_ 
MQTT_CONNECT_DISCONNECTED 
MQTT_CONNECT_TIMEOUT 

Definition at line 79 of file mqtt.h.

Function Documentation

◆ mqtt_client_connect()

err_t mqtt_client_connect ( mqtt_client_t client,
const ip_addr_t ipaddr,
u16_t  port,
mqtt_connection_cb_t  cb,
void *  arg,
const struct mqtt_connect_client_info_t client_info 
)

Connect to server

◆ mqtt_client_is_connected()

u8_t mqtt_client_is_connected ( mqtt_client_t client)

Check connection status

◆ mqtt_client_new()

mqtt_client_t* mqtt_client_new ( void  )

Create new client

◆ mqtt_disconnect()

void mqtt_disconnect ( mqtt_client_t client)

Disconnect from server

◆ mqtt_publish()

err_t mqtt_publish ( mqtt_client_t client,
const char *  topic,
const void *  payload,
u16_t  payload_length,
u8_t  qos,
u8_t  retain,
mqtt_request_cb_t  cb,
void *  arg 
)

Publish data to topic

◆ mqtt_set_inpub_callback()

void mqtt_set_inpub_callback ( mqtt_client_t client,
mqtt_incoming_publish_cb_t  ,
mqtt_incoming_data_cb_t  data_cb,
void *  arg 
)

Set callback to call for incoming publish

◆ mqtt_sub_unsub()

err_t mqtt_sub_unsub ( mqtt_client_t client,
const char *  topic,
u8_t  qos,
mqtt_request_cb_t  cb,
void *  arg,
u8_t  sub 
)

Common function for subscribe and unsubscribe