Sergey Pastor / 1

Dependents:   Nucleo

Embed: (wiki syntax)

« Back to documentation index

mqtt_client.h File Reference

mqtt_client.h File Reference

MQTT client. More...

Go to the source code of this file.

Data Structures

struct  MqttClientWillMessage
 Will message. More...
struct  MqttClientCallbacks
 MQTT client callback functions. More...
struct  MqttClientSettings
 MQTT client settings. More...
struct  _MqttClientContext
 MQTT client context. More...

Typedefs

typedef void(* MqttClientConnAckCallback )(MqttClientContext *context, uint8_t connectAckFlags, uint8_t connectReturnCode)
 CONNACK message received callback.
typedef void(* MqttClientPublishCallback )(MqttClientContext *context, const char_t *topic, const uint8_t *message, size_t length, bool_t dup, MqttQosLevel qos, bool_t retain, uint16_t packetId)
 PUBLISH message received callback.
typedef void(* MqttClientPubAckCallback )(MqttClientContext *context, uint16_t packetId)
 PUBACK message received callback.
typedef void(* MqttClientPubRecCallback )(MqttClientContext *context, uint16_t packetId)
 PUBREC message received callback.
typedef void(* MqttClientPubRelCallback )(MqttClientContext *context, uint16_t packetId)
 PUBREL message received callback.
typedef void(* MqttClientPubCompCallback )(MqttClientContext *context, uint16_t packetId)
 PUBCOMP message received callback.
typedef void(* MqttClientSubAckCallback )(MqttClientContext *context, uint16_t packetId)
 SUBACK message received callback.
typedef void(* MqttClientUnsubAckCallback )(MqttClientContext *context, uint16_t packetId)
 UNSUBACK message received callback.
typedef void(* MqttClientPingRespCallback )(MqttClientContext *context)
 PINGRESP message received callback.
typedef error_t(* MqttClientTlsInitCallback )(MqttClientContext *context, TlsContext *tlsContext)
 SSL initialization callback.

Enumerations

enum  MqttClientState
 

MQTT client states.

More...

Functions

void mqttClientInit (MqttClientContext *context)
 Initialize MQTT client context.
void mqttClientInitCallbacks (MqttClientCallbacks *callbacks)
 Initialize callback structure.
error_t mqttClientRegisterCallbacks (MqttClientContext *context, const MqttClientCallbacks *callbacks)
 Register MQTT client callbacks.
error_t mqttClientSetProtocolLevel (MqttClientContext *context, MqttProtocolLevel protocolLevel)
 Set the MQTT protocol version to be used.
error_t mqttClientSetTransportProtocol (MqttClientContext *context, MqttTransportProtocol transportProtocol)
 Set the transport protocol to be used.
error_t mqttClientSetKeepAlive (MqttClientContext *context, uint16_t keepAlive)
 Set keep-alive value.
error_t mqttClientSetTimeout (MqttClientContext *context, uint16_t timeout)
 Set communication timeout.
error_t mqttClientSetHost (MqttClientContext *context, const char_t *host)
 Set the hostname of the resource being requested.
error_t mqttClientSetUri (MqttClientContext *context, const char_t *uri)
 Set the name of the resource being requested.
error_t mqttClientSetIdentifier (MqttClientContext *context, const char_t *clientId)
 Set client identifier.
error_t mqttClientSetAuthInfo (MqttClientContext *context, const char_t *username, const char_t *password)
 Set authentication information.
error_t mqttClientSetWillMessage (MqttClientContext *context, const char_t *topic, const void *message, size_t length, MqttQosLevel qos, bool_t retain)
 Specify the Will message.
error_t mqttClientBindToInterface (MqttClientContext *context, NetInterface *interface)
 Bind the MQTT client to a particular network interface.
error_t mqttClientConnect (MqttClientContext *context, const IpAddr *serverIpAddr, uint16_t serverPort, bool_t cleanSession)
 Establish connection with the MQTT server.
error_t mqttClientPublish (MqttClientContext *context, const char_t *topic, const void *message, size_t length, MqttQosLevel qos, bool_t retain, uint16_t *packetId)
 Publish message.
error_t mqttClientSubscribe (MqttClientContext *context, const char_t *topic, MqttQosLevel qos, uint16_t *packetId)
 Subscribe to topics.
error_t mqttClientUnsubscribe (MqttClientContext *context, const char_t *topic, uint16_t *packetId)
 Unsubscribe from topics.
error_t mqttClientPing (MqttClientContext *context, systime_t *rtt)
 Send ping request.
error_t mqttClientDisconnect (MqttClientContext *context)
 Gracefully disconnect from the MQTT server.
error_t mqttClientClose (MqttClientContext *context)
 Close the connection with the MQTT server.
error_t mqttClientProcessEvents (MqttClientContext *context, systime_t timeout)
 Process MQTT client events.

Detailed Description

MQTT client.

License

Copyright (C) 2010-2017 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneTCP Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author:
Oryx Embedded SARL (www.oryx-embedded.com)
Version:
1.7.6

Definition in file mqtt_client.h.


Typedef Documentation

typedef void(* MqttClientConnAckCallback)(MqttClientContext *context, uint8_t connectAckFlags, uint8_t connectReturnCode)

CONNACK message received callback.

Definition at line 167 of file mqtt_client.h.

typedef void(* MqttClientPingRespCallback)(MqttClientContext *context)

PINGRESP message received callback.

Definition at line 232 of file mqtt_client.h.

typedef void(* MqttClientPubAckCallback)(MqttClientContext *context, uint16_t packetId)

PUBACK message received callback.

Definition at line 184 of file mqtt_client.h.

typedef void(* MqttClientPubCompCallback)(MqttClientContext *context, uint16_t packetId)

PUBCOMP message received callback.

Definition at line 208 of file mqtt_client.h.

typedef void(* MqttClientPublishCallback)(MqttClientContext *context, const char_t *topic, const uint8_t *message, size_t length, bool_t dup, MqttQosLevel qos, bool_t retain, uint16_t packetId)

PUBLISH message received callback.

Definition at line 175 of file mqtt_client.h.

typedef void(* MqttClientPubRecCallback)(MqttClientContext *context, uint16_t packetId)

PUBREC message received callback.

Definition at line 192 of file mqtt_client.h.

typedef void(* MqttClientPubRelCallback)(MqttClientContext *context, uint16_t packetId)

PUBREL message received callback.

Definition at line 200 of file mqtt_client.h.

typedef void(* MqttClientSubAckCallback)(MqttClientContext *context, uint16_t packetId)

SUBACK message received callback.

Definition at line 216 of file mqtt_client.h.

typedef error_t(* MqttClientTlsInitCallback)(MqttClientContext *context, TlsContext *tlsContext)

SSL initialization callback.

Definition at line 242 of file mqtt_client.h.

typedef void(* MqttClientUnsubAckCallback)(MqttClientContext *context, uint16_t packetId)

UNSUBACK message received callback.

Definition at line 224 of file mqtt_client.h.


Enumeration Type Documentation

MQTT client states.

Definition at line 147 of file mqtt_client.h.


Function Documentation

error_t mqttClientBindToInterface ( MqttClientContext *  context,
NetInterface *  interface 
)

Bind the MQTT client to a particular network interface.

Parameters:
[in]contextPointer to the MQTT client context
[in]interfaceNetwork interface to be used
Returns:
Error code

Definition at line 381 of file mqtt_client.c.

error_t mqttClientClose ( MqttClientContext *  context )

Close the connection with the MQTT server.

Parameters:
[in]contextPointer to the MQTT client context
Returns:
Error code

Definition at line 1044 of file mqtt_client.c.

error_t mqttClientConnect ( MqttClientContext *  context,
const IpAddr serverIpAddr,
uint16_t  serverPort,
bool_t  cleanSession 
)

Establish connection with the MQTT server.

Parameters:
[in]contextPointer to the MQTT client context
[in]serverIpAddrIP address of the MQTT server to connect to
[in]serverPortTCP port number that will be used to establish the connection
[in]cleanSessionIf this flag is set, then the client and server must discard any previous session and start a new one
Returns:
Error code

Definition at line 407 of file mqtt_client.c.

error_t mqttClientDisconnect ( MqttClientContext *  context )

Gracefully disconnect from the MQTT server.

Parameters:
[in]contextPointer to the MQTT client context
Returns:
Error code

Definition at line 960 of file mqtt_client.c.

void mqttClientInit ( MqttClientContext *  context )

Initialize MQTT client context.

Parameters:
[in]contextPointer to the MQTT client context

Definition at line 49 of file mqtt_client.c.

void mqttClientInitCallbacks ( MqttClientCallbacks callbacks )

Initialize callback structure.

Parameters:
[in]callbacksPointer to a structure that contains callback functions
Returns:
Error code

Definition at line 85 of file mqtt_client.c.

error_t mqttClientPing ( MqttClientContext *  context,
systime_t *  rtt 
)

Send ping request.

Parameters:
[in]contextPointer to the MQTT client context
[out]rttRound-trip time (optional parameter)
Returns:
Error code

Definition at line 856 of file mqtt_client.c.

error_t mqttClientProcessEvents ( MqttClientContext *  context,
systime_t  timeout 
)

Process MQTT client events.

Parameters:
[in]contextPointer to the MQTT client context
[in]timeoutMaximum time to wait before returning
Returns:
Error code

Definition at line 1067 of file mqtt_client.c.

error_t mqttClientPublish ( MqttClientContext *  context,
const char_t *  topic,
const void *  message,
size_t  length,
MqttQosLevel  qos,
bool_t  retain,
uint16_t *  packetId 
)

Publish message.

Parameters:
[in]contextPointer to the MQTT client context
[in]topicTopic name
[in]messageMessage payload
[in]lengthLength of the message payload
[in]qosQoS level to be used when publishing the message
[in]retainThis flag specifies if the message is to be retained
[out]packetIdPacket identifier used to send the PUBLISH packet
Returns:
Error code

Definition at line 543 of file mqtt_client.c.

error_t mqttClientRegisterCallbacks ( MqttClientContext *  context,
const MqttClientCallbacks callbacks 
)

Register MQTT client callbacks.

Parameters:
[in]contextPointer to the MQTT client context
[in]callbacksPointer to a structure that contains callback functions
Returns:
Error code

Definition at line 99 of file mqtt_client.c.

error_t mqttClientSetAuthInfo ( MqttClientContext *  context,
const char_t *  username,
const char_t *  password 
)

Set authentication information.

Parameters:
[in]contextPointer to the MQTT client context
[in]usernameNULL-terminated string containing the user name to be used
[in]passwordNULL-terminated string containing the password to be used
Returns:
Error code

Definition at line 291 of file mqtt_client.c.

error_t mqttClientSetHost ( MqttClientContext *  context,
const char_t *  host 
)

Set the hostname of the resource being requested.

Parameters:
[in]contextPointer to the MQTT client context
[in]hostNULL-terminated string containing the hostname
Returns:
Error code

Definition at line 210 of file mqtt_client.c.

error_t mqttClientSetIdentifier ( MqttClientContext *  context,
const char_t *  clientId 
)

Set client identifier.

Parameters:
[in]contextPointer to the MQTT client context
[in]clientIdNULL-terminated string containing the client identifier
Returns:
Error code

Definition at line 264 of file mqtt_client.c.

error_t mqttClientSetKeepAlive ( MqttClientContext *  context,
uint16_t  keepAlive 
)

Set keep-alive value.

Parameters:
[in]contextPointer to the MQTT client context
[in]keepAliveMaximum time interval that is permitted to elapse between the point at which the client finishes transmitting one control packet and the point it starts sending the next
Returns:
Error code

Definition at line 168 of file mqtt_client.c.

error_t mqttClientSetProtocolLevel ( MqttClientContext *  context,
MqttProtocolLevel  protocolLevel 
)

Set the MQTT protocol version to be used.

Parameters:
[in]contextPointer to the MQTT client context
[in]protocolLevelMQTT protocol level (3.1 or 3.1.1)
Returns:
Error code

Definition at line 121 of file mqtt_client.c.

error_t mqttClientSetTimeout ( MqttClientContext *  context,
uint16_t  timeout 
)

Set communication timeout.

Parameters:
[in]contextPointer to the MQTT client context
[in]timeoutTimeout value, in seconds
Returns:
Error code

Definition at line 189 of file mqtt_client.c.

error_t mqttClientSetTransportProtocol ( MqttClientContext *  context,
MqttTransportProtocol  transportProtocol 
)

Set the transport protocol to be used.

Parameters:
[in]contextPointer to the MQTT client context
[in]transportProtocolTransport protocol to be used (TCP, TLS, WebSocket, or secure WebSocket)
Returns:
Error code

Definition at line 144 of file mqtt_client.c.

error_t mqttClientSetUri ( MqttClientContext *  context,
const char_t *  uri 
)

Set the name of the resource being requested.

Parameters:
[in]contextPointer to the MQTT client context
[in]uriNULL-terminated string containing the URI
Returns:
Error code

Definition at line 237 of file mqtt_client.c.

error_t mqttClientSetWillMessage ( MqttClientContext *  context,
const char_t *  topic,
const void *  message,
size_t  length,
MqttQosLevel  qos,
bool_t  retain 
)

Specify the Will message.

Parameters:
[in]contextPointer to the MQTT client context
[in]topicWill topic name
[in]messageWill message
[in]lengthLength of the Will message
[in]qosQoS level to be used when publishing the Will message
[in]retainThis flag specifies if the Will message is to be retained
Returns:
Error code

Definition at line 328 of file mqtt_client.c.

error_t mqttClientSubscribe ( MqttClientContext *  context,
const char_t *  topic,
MqttQosLevel  qos,
uint16_t *  packetId 
)

Subscribe to topics.

Parameters:
[in]contextPointer to the MQTT client context
[in]topicTopic filter
[in]qosMaximum QoS level at which the server can send application messages to the client
[out]packetIdPacket identifier used to send the SUBSCRIBE packet
Returns:
Error code

Definition at line 657 of file mqtt_client.c.

error_t mqttClientUnsubscribe ( MqttClientContext *  context,
const char_t *  topic,
uint16_t *  packetId 
)

Unsubscribe from topics.

Parameters:
[in]contextPointer to the MQTT client context
[in]topicTopic filter
[out]packetIdPacket identifier used to send the UNSUBSCRIBE packet
Returns:
Error code

Definition at line 757 of file mqtt_client.c.