#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) |
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.
m | A pointer to a MQTT connection |
user_ptr | A user-defined pointer |
event | The 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) |
enum mqtt_conn_state_t |
enum mqtt_event_t |
enum mqtt_qos_level_t |
enum mqtt_qos_state_t |
enum mqtt_retain_t |
enum mqtt_status_t |
mqtt_status_t mqtt_connect | ( | struct mqtt_connection * | conn, |
const char * | host, | ||
uint16_t | port, | ||
uint16_t | keep_alive | ||
) |
Referenced by PROCESS_THREAD().
void mqtt_disconnect | ( | struct mqtt_connection * | conn | ) |
Referenced by PROCESS_THREAD().
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 | ||
) |
Referenced by PROCESS_THREAD().
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 | ||
) |
Referenced by PROCESS_THREAD().
mqtt_status_t mqtt_unsubscribe | ( | struct mqtt_connection * | conn, |
uint16_t * | mid, | ||
const char * | topic | ||
) |
process_event_t mqtt_update_event |