AWS IoT Device SDK C: MQTT
MQTT 3.1.1 client library
Return to main page ↑
aws_iot_mqtt_client.h File Reference

Client definition for MQTT. More...

#include "stdio.h"
#include "stdbool.h"
#include "stdint.h"
#include "stddef.h"
#include "aws_iot_error.h"
#include "aws_iot_config.h"
#include "network_interface.h"
#include "timer_interface.h"
#include "threads_interface.h"

Go to the source code of this file.

Data Structures

struct  IoT_Publish_Message_Params
 Publish Message Parameters Type. More...
 
struct  IoT_MQTT_Will_Options
 Last Will and Testament Definition. More...
 
struct  IoT_Client_Connect_Params
 MQTT Connection Parameters. More...
 
struct  IoT_Client_Init_Params
 MQTT Initialization Parameters. More...
 
struct  MessageHandlers
 MQTT Message Handler. More...
 
struct  ClientStatus
 MQTT Client Status. More...
 
struct  ClientData
 MQTT Client Data. More...
 
struct  AWS_IoT_Client
 MQTT Client. More...
 

Macros

#define MAX_PACKET_ID   65535
 
#define IoT_MQTT_Will_Options_Initializer   { {'M', 'Q', 'T', 'W'}, NULL, 0, NULL, 0, false, QOS0 }
 
#define IoT_Client_Connect_Params_initializer
 
#define IoT_Client_Init_Params_initializer   { true, NULL, 0, NULL, NULL, NULL, 2000, 20000, 5000, true, NULL, NULL, false }
 

Typedefs

typedef void(* iot_disconnect_handler) (AWS_IoT_Client *, void *)
 Disconnect Callback Handler Type. More...
 
typedef void(* pApplicationHandler_t) (AWS_IoT_Client *pClient, char *pTopicName, uint16_t topicNameLen, IoT_Publish_Message_Params *pParams, void *pClientData)
 Application Callback Handler Type. More...
 

Enumerations

enum  QoS { QOS0 = 0, QOS1 = 1 }
 Quality of Service Type. More...
 
enum  MQTT_Ver_t { MQTT_3_1_1 = 4 }
 MQTT Version Type. More...
 
enum  ClientState {
  CLIENT_STATE_INVALID = 0, CLIENT_STATE_INITIALIZED = 1, CLIENT_STATE_CONNECTING = 2, CLIENT_STATE_CONNECTED_IDLE = 3,
  CLIENT_STATE_CONNECTED_YIELD_IN_PROGRESS = 4, CLIENT_STATE_CONNECTED_PUBLISH_IN_PROGRESS = 5, CLIENT_STATE_CONNECTED_SUBSCRIBE_IN_PROGRESS = 6, CLIENT_STATE_CONNECTED_UNSUBSCRIBE_IN_PROGRESS = 7,
  CLIENT_STATE_CONNECTED_RESUBSCRIBE_IN_PROGRESS = 8, CLIENT_STATE_CONNECTED_WAIT_FOR_CB_RETURN = 9, CLIENT_STATE_DISCONNECTING = 10, CLIENT_STATE_DISCONNECTED_ERROR = 11,
  CLIENT_STATE_DISCONNECTED_MANUALLY = 12, CLIENT_STATE_PENDING_RECONNECT = 13
}
 MQTT Client State Type. More...
 

Functions

uint16_t aws_iot_mqtt_get_next_packet_id (AWS_IoT_Client *pClient)
 What is the next available packet Id. More...
 
IoT_Error_t aws_iot_mqtt_set_connect_params (AWS_IoT_Client *pClient, IoT_Client_Connect_Params *pNewConnectParams)
 Set the connection parameters for the IoT Client. More...
 
bool aws_iot_mqtt_is_client_connected (AWS_IoT_Client *pClient)
 Is the MQTT client currently connected? More...
 
ClientState aws_iot_mqtt_get_client_state (AWS_IoT_Client *pClient)
 Get the current state of the client. More...
 
bool aws_iot_is_autoreconnect_enabled (AWS_IoT_Client *pClient)
 Is the MQTT client set to reconnect automatically? More...
 
IoT_Error_t aws_iot_mqtt_set_disconnect_handler (AWS_IoT_Client *pClient, iot_disconnect_handler pDisconnectHandler, void *pDisconnectHandlerData)
 Set the IoT Client disconnect handler. More...
 
IoT_Error_t aws_iot_mqtt_autoreconnect_set_status (AWS_IoT_Client *pClient, bool newStatus)
 Enable or Disable AutoReconnect on Network Disconnect. More...
 
uint32_t aws_iot_mqtt_get_network_disconnected_count (AWS_IoT_Client *pClient)
 Get count of Network Disconnects. More...
 
void aws_iot_mqtt_reset_network_disconnected_count (AWS_IoT_Client *pClient)
 Reset Network Disconnect conter. More...
 

Variables

const IoT_MQTT_Will_Options iotMqttWillOptionsDefault
 
const IoT_Client_Connect_Params iotClientConnectParamsDefault
 
const IoT_Client_Init_Params iotClientInitParamsDefault
 

Detailed Description

Client definition for MQTT.

Macro Definition Documentation

◆ MAX_PACKET_ID

#define MAX_PACKET_ID   65535

Greatest packet identifier, per MQTT spec

◆ IoT_MQTT_Will_Options_Initializer

#define IoT_MQTT_Will_Options_Initializer   { {'M', 'Q', 'T', 'W'}, NULL, 0, NULL, 0, false, QOS0 }

Default initializer for will

◆ IoT_Client_Connect_Params_initializer

#define IoT_Client_Connect_Params_initializer
Value:
{ {'M', 'Q', 'T', 'C'}, MQTT_3_1_1, NULL, 0, 60, true, false, \
IoT_MQTT_Will_Options_Initializer, NULL, 0, NULL, 0 }
MQTT 3.1.1 (protocol message byte = 4)
Definition: aws_iot_mqtt_client.h:103

Default initializer for connect

◆ IoT_Client_Init_Params_initializer

#define IoT_Client_Init_Params_initializer   { true, NULL, 0, NULL, NULL, NULL, 2000, 20000, 5000, true, NULL, NULL, false }

Default initializer for client

Typedef Documentation

◆ iot_disconnect_handler

typedef void(* iot_disconnect_handler) (AWS_IoT_Client *, void *)

Disconnect Callback Handler Type.

Defining a TYPE for definition of disconnect callback function pointers.

◆ pApplicationHandler_t

typedef void(* pApplicationHandler_t) (AWS_IoT_Client *pClient, char *pTopicName, uint16_t topicNameLen, IoT_Publish_Message_Params *pParams, void *pClientData)

Application Callback Handler Type.

Defining a TYPE for definition of application callback function pointers. Used to send incoming data to the application

Enumeration Type Documentation

◆ QoS

enum QoS

Quality of Service Type.

Defining a QoS type.

Note
QoS 2 is NOT supported by the AWS IoT Service at the time of this SDK release.

◆ MQTT_Ver_t

enum MQTT_Ver_t

MQTT Version Type.

Defining an MQTT version type. Only 3.1.1 is supported at this time

Enumerator
MQTT_3_1_1 

MQTT 3.1.1 (protocol message byte = 4)

◆ ClientState

MQTT Client State Type.

Defining a type for MQTT Client State

Function Documentation

◆ aws_iot_mqtt_get_next_packet_id()

uint16_t aws_iot_mqtt_get_next_packet_id ( AWS_IoT_Client *  pClient)

What is the next available packet Id.

Called to retrieve the next packet id to be used for outgoing packets. Automatically increments the last sent packet id variable

Parameters
pClientReference to the IoT Client
Returns
next packet id as a 16 bit unsigned integer

◆ aws_iot_mqtt_set_connect_params()

IoT_Error_t aws_iot_mqtt_set_connect_params ( AWS_IoT_Client *  pClient,
IoT_Client_Connect_Params pNewConnectParams 
)

Set the connection parameters for the IoT Client.

Called to set the connection parameters for the IoT Client. Used to update the connection parameters provided before the last connect. Won't take effect until the next time connect is called

Parameters
pClientReference to the IoT Client
pNewConnectParamsReference to the new Connection Parameters structure
Returns
IoT_Error_t Type defining successful/failed API call

◆ aws_iot_mqtt_is_client_connected()

bool aws_iot_mqtt_is_client_connected ( AWS_IoT_Client *  pClient)

Is the MQTT client currently connected?

Called to determine if the MQTT client is currently connected. Used to support logic in the device application around reconnecting and managing offline state.

Parameters
pClientReference to the IoT Client
Returns
true = connected, false = not currently connected

◆ aws_iot_mqtt_get_client_state()

ClientState aws_iot_mqtt_get_client_state ( AWS_IoT_Client *  pClient)

Get the current state of the client.

Called to get the current state of the client

Parameters
pClientReference to the IoT Client
Returns
ClientState value equal to the current state of the client

◆ aws_iot_is_autoreconnect_enabled()

bool aws_iot_is_autoreconnect_enabled ( AWS_IoT_Client *  pClient)

Is the MQTT client set to reconnect automatically?

Called to determine if the MQTT client is set to reconnect automatically. Used to support logic in the device application around reconnecting

Parameters
pClientReference to the IoT Client
Returns
true = enabled, false = disabled

◆ aws_iot_mqtt_set_disconnect_handler()

IoT_Error_t aws_iot_mqtt_set_disconnect_handler ( AWS_IoT_Client *  pClient,
iot_disconnect_handler  pDisconnectHandler,
void *  pDisconnectHandlerData 
)

Set the IoT Client disconnect handler.

Called to set the IoT Client disconnect handler The disconnect handler is called whenever the client disconnects with error

Parameters
pClientReference to the IoT Client
pDisconnectHandlerReference to the new Disconnect Handler
pDisconnectHandlerDataReference to the data to be passed as argument when disconnect handler is called
Returns
IoT_Error_t Type defining successful/failed API call

◆ aws_iot_mqtt_autoreconnect_set_status()

IoT_Error_t aws_iot_mqtt_autoreconnect_set_status ( AWS_IoT_Client *  pClient,
bool  newStatus 
)

Enable or Disable AutoReconnect on Network Disconnect.

Called to enable or disabled the auto reconnect features provided with the SDK

Parameters
pClientReference to the IoT Client
newStatusset to true for enabling and false for disabling
Returns
IoT_Error_t Type defining successful/failed API call

◆ aws_iot_mqtt_get_network_disconnected_count()

uint32_t aws_iot_mqtt_get_network_disconnected_count ( AWS_IoT_Client *  pClient)

Get count of Network Disconnects.

Called to get the number of times a network disconnect occurred due to errors

Parameters
pClientReference to the IoT Client
Returns
uint32_t the disconnect count

◆ aws_iot_mqtt_reset_network_disconnected_count()

void aws_iot_mqtt_reset_network_disconnected_count ( AWS_IoT_Client *  pClient)

Reset Network Disconnect conter.

Called to reset the Network Disconnect counter to zero

Parameters
pClientReference to the IoT Client

Variable Documentation

◆ iotMqttWillOptionsDefault

const IoT_MQTT_Will_Options iotMqttWillOptionsDefault

Default initializer for will

◆ iotClientConnectParamsDefault

const IoT_Client_Connect_Params iotClientConnectParamsDefault

Default initializer for connect

◆ iotClientInitParamsDefault

const IoT_Client_Init_Params iotClientInitParamsDefault

Default initializer for client