AWS IoT Embedded C Device SDK
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
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_sdk_config.h"
#include "network_interface.h"
#include "timer_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  _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 }
 

Typedefs

typedef struct _Client AWS_IoT_Client
 
typedef enum QoS QoS
 Quality of Service Type. More...
 
typedef void(* iot_disconnect_handler) (AWS_IoT_Client *, void *)
 Disconnect Callback Handler Type. More...
 
typedef enum _ClientState ClientState
 MQTT Client State 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...
 
typedef struct _MessageHandlers MessageHandlers
 MQTT Message Handler. More...
 
typedef struct _ClientStatus ClientStatus
 MQTT Client Status. More...
 
typedef struct _ClientData ClientData
 MQTT Client Data. 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
 

Macro Definition Documentation

#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:102

Typedef Documentation

typedef struct _ClientData ClientData

Defining a type for MQTT Client Data Contains data used by the MQTT Client

typedef enum _ClientState ClientState

Defining a type for MQTT Client State

typedef struct _ClientStatus ClientStatus

Defining a type for MQTT Client Status Contains information about the state of the MQTT Client

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

Defining a TYPE for definition of disconnect callback function pointers.

Defining a type for MQTT Message Handlers. Used to pass incoming data back to the application

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

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

typedef enum QoS QoS

Defining a QoS type.

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

Enumeration Type Documentation

Defining a type for MQTT Client State

enum MQTT_Ver_t

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)

enum QoS

Defining a QoS type.

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

Function Documentation

bool aws_iot_is_autoreconnect_enabled ( AWS_IoT_Client pClient)

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
IoT_Error_t aws_iot_mqtt_autoreconnect_set_status ( AWS_IoT_Client pClient,
bool  newStatus 
)

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
ClientState aws_iot_mqtt_get_client_state ( AWS_IoT_Client pClient)

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
uint32_t aws_iot_mqtt_get_network_disconnected_count ( AWS_IoT_Client pClient)

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
uint16_t aws_iot_mqtt_get_next_packet_id ( AWS_IoT_Client pClient)

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
bool aws_iot_mqtt_is_client_connected ( AWS_IoT_Client pClient)

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
void aws_iot_mqtt_reset_network_disconnected_count ( AWS_IoT_Client pClient)

Called to reset the Network Disconnect counter to zero

Parameters
pClientReference to the IoT Client
IoT_Error_t aws_iot_mqtt_set_connect_params ( AWS_IoT_Client pClient,
IoT_Client_Connect_Params pNewConnectParams 
)

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
IoT_Error_t aws_iot_mqtt_set_disconnect_handler ( AWS_IoT_Client pClient,
iot_disconnect_handler  pDisconnectHandler,
void *  pDisconnectHandlerData 
)

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
pConnectHandlerReference 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