| 
    Zephyr Project API
    3.3.0
    
   A Scalable Open Source RTOS 
   | 
 
MQTT Client Implementation. More...
Data Structures | |
| struct | mqtt_utf8 | 
| Abstracts UTF-8 encoded strings.  More... | |
| struct | mqtt_binstr | 
| Abstracts binary strings.  More... | |
| struct | mqtt_topic | 
| Abstracts MQTT UTF-8 encoded topic that can be subscribed to or published.  More... | |
| struct | mqtt_publish_message | 
| Parameters for a publish message.  More... | |
| struct | mqtt_connack_param | 
| Parameters for a connection acknowledgment (CONNACK).  More... | |
| struct | mqtt_puback_param | 
| Parameters for MQTT publish acknowledgment (PUBACK).  More... | |
| struct | mqtt_pubrec_param | 
| Parameters for MQTT publish receive (PUBREC).  More... | |
| struct | mqtt_pubrel_param | 
| Parameters for MQTT publish release (PUBREL).  More... | |
| struct | mqtt_pubcomp_param | 
| Parameters for MQTT publish complete (PUBCOMP).  More... | |
| struct | mqtt_suback_param | 
| Parameters for MQTT subscription acknowledgment (SUBACK).  More... | |
| struct | mqtt_unsuback_param | 
| Parameters for MQTT unsubscribe acknowledgment (UNSUBACK).  More... | |
| struct | mqtt_publish_param | 
| Parameters for a publish message.  More... | |
| struct | mqtt_subscription_list | 
| List of topics in a subscription request.  More... | |
| union | mqtt_evt_param | 
| Defines event parameters notified along with asynchronous events to the application.  More... | |
| struct | mqtt_evt | 
| Defines MQTT asynchronous event notified to the application.  More... | |
| struct | mqtt_sec_config | 
| TLS configuration for secure MQTT transports.  More... | |
| struct | mqtt_transport | 
| MQTT transport specific data.  More... | |
| struct | mqtt_internal | 
| MQTT internal state.  More... | |
| struct | mqtt_client | 
| MQTT Client definition to maintain information relevant to the client.  More... | |
Macros | |
| #define | MQTT_UTF8_LITERAL(literal) ((struct mqtt_utf8) {literal, sizeof(literal) - 1}) | 
| Initialize UTF-8 encoded string from C literal string.  More... | |
Typedefs | |
| typedef void(* | mqtt_evt_cb_t) (struct mqtt_client *client, const struct mqtt_evt *evt) | 
| Asynchronous event notification callback registered by the application.  More... | |
Functions | |
| void | mqtt_client_init (struct mqtt_client *client) | 
| Initializes the client instance.  More... | |
| int | mqtt_connect (struct mqtt_client *client) | 
| API to request new MQTT client connection.  More... | |
| int | mqtt_publish (struct mqtt_client *client, const struct mqtt_publish_param *param) | 
| API to publish messages on topics.  More... | |
| int | mqtt_publish_qos1_ack (struct mqtt_client *client, const struct mqtt_puback_param *param) | 
| API used by client to send acknowledgment on receiving QoS1 publish message. Should be called on reception of MQTT_EVT_PUBLISH with QoS level MQTT_QOS_1_AT_LEAST_ONCE.  More... | |
| int | mqtt_publish_qos2_receive (struct mqtt_client *client, const struct mqtt_pubrec_param *param) | 
| API used by client to send acknowledgment on receiving QoS2 publish message. Should be called on reception of MQTT_EVT_PUBLISH with QoS level MQTT_QOS_2_EXACTLY_ONCE.  More... | |
| int | mqtt_publish_qos2_release (struct mqtt_client *client, const struct mqtt_pubrel_param *param) | 
| API used by client to request release of QoS2 publish message. Should be called on reception of MQTT_EVT_PUBREC.  More... | |
| int | mqtt_publish_qos2_complete (struct mqtt_client *client, const struct mqtt_pubcomp_param *param) | 
| API used by client to send acknowledgment on receiving QoS2 publish release message. Should be called on reception of MQTT_EVT_PUBREL.  More... | |
| int | mqtt_subscribe (struct mqtt_client *client, const struct mqtt_subscription_list *param) | 
| API to request subscription of one or more topics on the connection.  More... | |
| int | mqtt_unsubscribe (struct mqtt_client *client, const struct mqtt_subscription_list *param) | 
| API to request unsubscription of one or more topics on the connection.  More... | |
| int | mqtt_ping (struct mqtt_client *client) | 
| API to send MQTT ping. The use of this API is optional, as the library handles the connection keep-alive on it's own, see mqtt_live.  More... | |
| int | mqtt_disconnect (struct mqtt_client *client) | 
| API to disconnect MQTT connection.  More... | |
| int | mqtt_abort (struct mqtt_client *client) | 
| API to abort MQTT connection. This will close the corresponding transport without closing the connection gracefully at the MQTT level (with disconnect message).  More... | |
| int | mqtt_live (struct mqtt_client *client) | 
| This API should be called periodically for the client to be able to keep the connection alive by sending Ping Requests if need be.  More... | |
| int | mqtt_keepalive_time_left (const struct mqtt_client *client) | 
Helper function to determine when next keep alive message should be sent. Can be used for instance as a source for poll timeout.  More... | |
| int | mqtt_input (struct mqtt_client *client) | 
| Receive an incoming MQTT packet. The registered callback will be called with the packet content.  More... | |
| int | mqtt_read_publish_payload (struct mqtt_client *client, void *buffer, size_t length) | 
| Read the payload of the received PUBLISH message. This function should be called within the MQTT event handler, when MQTT PUBLISH message is notified.  More... | |
| int | mqtt_read_publish_payload_blocking (struct mqtt_client *client, void *buffer, size_t length) | 
| Blocking version of mqtt_read_publish_payload function.  More... | |
| int | mqtt_readall_publish_payload (struct mqtt_client *client, uint8_t *buffer, size_t length) | 
| Blocking version of mqtt_read_publish_payload function which runs until the required number of bytes are read.  More... | |
MQTT Client Implementation.
MQTT Client's Application interface is defined in this header.
| #define MQTT_UTF8_LITERAL | ( | literal | ) | ((struct mqtt_utf8) {literal, sizeof(literal) - 1}) | 
#include <include/zephyr/net/mqtt.h>
Initialize UTF-8 encoded string from C literal string.
Use it as follows:
struct mqtt_utf8 password = MQTT_UTF8_LITERAL("my_pass");
| [in] | literal | Literal string from which to generate mqtt_utf8 object. | 
| typedef void(* mqtt_evt_cb_t) (struct mqtt_client *client, const struct mqtt_evt *evt) | 
#include <include/zephyr/net/mqtt.h>
Asynchronous event notification callback registered by the application.
| [in] | client | Identifies the client for which the event is notified. | 
| [in] | evt | Event description along with result and associated parameters (if any). | 
#include <include/zephyr/net/mqtt.h>
MQTT CONNACK return codes.
| enum mqtt_evt_type | 
#include <include/zephyr/net/mqtt.h>
MQTT Asynchronous Events notified to the application from the module through the callback registered by the application.
| Enumerator | |
|---|---|
| MQTT_EVT_CONNACK | Acknowledgment of connection request. Event result accompanying the event indicates whether the connection failed or succeeded.  | 
| MQTT_EVT_DISCONNECT | Disconnection Event. MQTT Client Reference is no longer valid once this event is received for the client.  | 
| MQTT_EVT_PUBLISH | Publish event received when message is published on a topic client is subscribed to. 
  | 
| MQTT_EVT_PUBACK | Acknowledgment for published message with QoS 1.  | 
| MQTT_EVT_PUBREC | Reception confirmation for published message with QoS 2.  | 
| MQTT_EVT_PUBREL | Release of published message with QoS 2.  | 
| MQTT_EVT_PUBCOMP | Confirmation to a publish release message with QoS 2.  | 
| MQTT_EVT_SUBACK | Acknowledgment to a subscribe request.  | 
| MQTT_EVT_UNSUBACK | Acknowledgment to a unsubscribe request.  | 
| MQTT_EVT_PINGRESP | Ping Response from server.  | 
| enum mqtt_qos | 
#include <include/zephyr/net/mqtt.h>
MQTT Quality of Service types.
#include <include/zephyr/net/mqtt.h>
MQTT SUBACK return codes.
| enum mqtt_transport_type | 
#include <include/zephyr/net/mqtt.h>
MQTT transport type.
| Enumerator | |
|---|---|
| MQTT_TRANSPORT_NON_SECURE | Use non secure TCP transport for MQTT connection.  | 
| MQTT_TRANSPORT_NUM | Shall not be used as a transport type. Indicator of maximum transport types possible.  | 
| enum mqtt_version | 
#include <include/zephyr/net/mqtt.h>
MQTT version protocol level.
| Enumerator | |
|---|---|
| MQTT_VERSION_3_1_0 | Protocol level for 3.1.0.  | 
| MQTT_VERSION_3_1_1 | Protocol level for 3.1.1.  | 
| int mqtt_abort | ( | struct mqtt_client * | client | ) | 
#include <include/zephyr/net/mqtt.h>
API to abort MQTT connection. This will close the corresponding transport without closing the connection gracefully at the MQTT level (with disconnect message).
| [in] | client | Identifies client instance for which procedure is requested. | 
| void mqtt_client_init | ( | struct mqtt_client * | client | ) | 
#include <include/zephyr/net/mqtt.h>
Initializes the client instance.
| [in] | client | Client instance for which the procedure is requested. Shall not be NULL. | 
| int mqtt_connect | ( | struct mqtt_client * | client | ) | 
#include <include/zephyr/net/mqtt.h>
API to request new MQTT client connection.
| [in] | client | Client instance for which the procedure is requested. Shall not be NULL. | 
CONFIG_MQTT_KEEPALIVE   time to override default of 1 minute. | int mqtt_disconnect | ( | struct mqtt_client * | client | ) | 
#include <include/zephyr/net/mqtt.h>
API to disconnect MQTT connection.
| [in] | client | Identifies client instance for which procedure is requested. | 
| int mqtt_input | ( | struct mqtt_client * | client | ) | 
#include <include/zephyr/net/mqtt.h>
Receive an incoming MQTT packet. The registered callback will be called with the packet content.
| [in] | client | Client instance for which the procedure is requested. Shall not be NULL. | 
| int mqtt_keepalive_time_left | ( | const struct mqtt_client * | client | ) | 
#include <include/zephyr/net/mqtt.h>
Helper function to determine when next keep alive message should be sent. Can be used for instance as a source for poll timeout. 
| [in] | client | Client instance for which the procedure is requested. | 
| int mqtt_live | ( | struct mqtt_client * | client | ) | 
#include <include/zephyr/net/mqtt.h>
This API should be called periodically for the client to be able to keep the connection alive by sending Ping Requests if need be.
| [in] | client | Client instance for which the procedure is requested. Shall not be NULL. | 
| int mqtt_ping | ( | struct mqtt_client * | client | ) | 
#include <include/zephyr/net/mqtt.h>
API to send MQTT ping. The use of this API is optional, as the library handles the connection keep-alive on it's own, see mqtt_live.
| [in] | client | Identifies client instance for which procedure is requested. | 
| int mqtt_publish | ( | struct mqtt_client * | client, | 
| const struct mqtt_publish_param * | param | ||
| ) | 
#include <include/zephyr/net/mqtt.h>
API to publish messages on topics.
| [in] | client | Client instance for which the procedure is requested. Shall not be NULL. | 
| [in] | param | Parameters to be used for the publish message. Shall not be NULL. | 
| int mqtt_publish_qos1_ack | ( | struct mqtt_client * | client, | 
| const struct mqtt_puback_param * | param | ||
| ) | 
#include <include/zephyr/net/mqtt.h>
API used by client to send acknowledgment on receiving QoS1 publish message. Should be called on reception of MQTT_EVT_PUBLISH with QoS level MQTT_QOS_1_AT_LEAST_ONCE.
| [in] | client | Client instance for which the procedure is requested. Shall not be NULL. | 
| [in] | param | Identifies message being acknowledged. | 
| int mqtt_publish_qos2_complete | ( | struct mqtt_client * | client, | 
| const struct mqtt_pubcomp_param * | param | ||
| ) | 
#include <include/zephyr/net/mqtt.h>
API used by client to send acknowledgment on receiving QoS2 publish release message. Should be called on reception of MQTT_EVT_PUBREL.
| [in] | client | Identifies client instance for which the procedure is requested. Shall not be NULL. | 
| [in] | param | Identifies message being completed. | 
| int mqtt_publish_qos2_receive | ( | struct mqtt_client * | client, | 
| const struct mqtt_pubrec_param * | param | ||
| ) | 
#include <include/zephyr/net/mqtt.h>
API used by client to send acknowledgment on receiving QoS2 publish message. Should be called on reception of MQTT_EVT_PUBLISH with QoS level MQTT_QOS_2_EXACTLY_ONCE.
| [in] | client | Identifies client instance for which the procedure is requested. Shall not be NULL. | 
| [in] | param | Identifies message being acknowledged. | 
| int mqtt_publish_qos2_release | ( | struct mqtt_client * | client, | 
| const struct mqtt_pubrel_param * | param | ||
| ) | 
#include <include/zephyr/net/mqtt.h>
API used by client to request release of QoS2 publish message. Should be called on reception of MQTT_EVT_PUBREC.
| [in] | client | Client instance for which the procedure is requested. Shall not be NULL. | 
| [in] | param | Identifies message being released. | 
| int mqtt_read_publish_payload | ( | struct mqtt_client * | client, | 
| void * | buffer, | ||
| size_t | length | ||
| ) | 
#include <include/zephyr/net/mqtt.h>
Read the payload of the received PUBLISH message. This function should be called within the MQTT event handler, when MQTT PUBLISH message is notified.
| [in] | client | Client instance for which the procedure is requested. Shall not be NULL. | 
| [out] | buffer | Buffer where payload should be stored. | 
| [in] | length | Length of the buffer, in bytes. | 
| int mqtt_read_publish_payload_blocking | ( | struct mqtt_client * | client, | 
| void * | buffer, | ||
| size_t | length | ||
| ) | 
#include <include/zephyr/net/mqtt.h>
Blocking version of mqtt_read_publish_payload function.
| [in] | client | Client instance for which the procedure is requested. Shall not be NULL. | 
| [out] | buffer | Buffer where payload should be stored. | 
| [in] | length | Length of the buffer, in bytes. | 
| int mqtt_readall_publish_payload | ( | struct mqtt_client * | client, | 
| uint8_t * | buffer, | ||
| size_t | length | ||
| ) | 
#include <include/zephyr/net/mqtt.h>
Blocking version of mqtt_read_publish_payload function which runs until the required number of bytes are read.
| [in] | client | Client instance for which the procedure is requested. Shall not be NULL. | 
| [out] | buffer | Buffer where payload should be stored. | 
| [in] | length | Number of bytes to read. | 
| int mqtt_subscribe | ( | struct mqtt_client * | client, | 
| const struct mqtt_subscription_list * | param | ||
| ) | 
#include <include/zephyr/net/mqtt.h>
API to request subscription of one or more topics on the connection.
| [in] | client | Identifies client instance for which the procedure is requested. Shall not be NULL. | 
| [in] | param | Subscription parameters. Shall not be NULL. | 
| int mqtt_unsubscribe | ( | struct mqtt_client * | client, | 
| const struct mqtt_subscription_list * | param | ||
| ) | 
#include <include/zephyr/net/mqtt.h>
API to request unsubscription of one or more topics on the connection.
| [in] | client | Identifies client instance for which the procedure is requested. Shall not be NULL. | 
| [in] | param | Parameters describing topics being unsubscribed from. Shall not be NULL. |