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

MQTT client API definitions. More...

#include <string.h>
#include "aws_iot_log.h"
#include "aws_iot_mqtt_client_interface.h"
#include "aws_iot_mqtt_client_common_internal.h"
#include "aws_iot_version.h"
#include "threads_interface.h"

Macros

#define SDK_METRICS_LEN   25
 
#define SDK_METRICS_TEMPLATE   "?SDK=C&Version=%d.%d.%d"
 

Functions

ClientState aws_iot_mqtt_get_client_state (AWS_IoT_Client *pClient)
 Get the current state of the client. More...
 
IoT_Error_t aws_iot_mqtt_client_lock_mutex (AWS_IoT_Client *pClient, IoT_Mutex_t *pMutex)
 Lock a mutex in the MQTT client. More...
 
IoT_Error_t aws_iot_mqtt_client_unlock_mutex (AWS_IoT_Client *pClient, IoT_Mutex_t *pMutex)
 Unlock a mutex in the MQTT client. More...
 
IoT_Error_t aws_iot_mqtt_set_client_state (AWS_IoT_Client *pClient, ClientState expectedCurrentState, ClientState newState)
 Change the state in an MQTT client. 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...
 
IoT_Error_t aws_iot_mqtt_free (AWS_IoT_Client *pClient)
 Clean mqtt client from all dynamic memory allocate. More...
 
IoT_Error_t aws_iot_mqtt_init (AWS_IoT_Client *pClient, IoT_Client_Init_Params *pInitParams)
 MQTT Client Initialization Function. More...
 
uint16_t aws_iot_mqtt_get_next_packet_id (AWS_IoT_Client *pClient)
 What is the next available packet Id. More...
 
bool aws_iot_mqtt_is_client_connected (AWS_IoT_Client *pClient)
 Is the MQTT client currently connected? 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_autoreconnect_set_status (AWS_IoT_Client *pClient, bool newStatus)
 Enable or Disable AutoReconnect on Network Disconnect. 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...
 
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_Client_Init_Params iotClientInitParamsDefault = IoT_Client_Init_Params_initializer
 
const IoT_MQTT_Will_Options iotMqttWillOptionsDefault = IoT_MQTT_Will_Options_Initializer
 
const IoT_Client_Connect_Params iotClientConnectParamsDefault = IoT_Client_Connect_Params_initializer
 

Detailed Description

MQTT client API definitions.

Macro Definition Documentation

◆ SDK_METRICS_LEN

#define SDK_METRICS_LEN   25

Length of metrics username

◆ SDK_METRICS_TEMPLATE

#define SDK_METRICS_TEMPLATE   "?SDK=C&Version=%d.%d.%d"

Metrics username for AWS IoT

Function Documentation

◆ 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_mqtt_client_lock_mutex()

IoT_Error_t aws_iot_mqtt_client_lock_mutex ( AWS_IoT_Client *  pClient,
IoT_Mutex_t *  pMutex 
)

Lock a mutex in the MQTT client.

Parameters
pClientMQTT client
pMutexMutex to lock
Returns
IoT_Error_t of mutex operation

◆ aws_iot_mqtt_client_unlock_mutex()

IoT_Error_t aws_iot_mqtt_client_unlock_mutex ( AWS_IoT_Client *  pClient,
IoT_Mutex_t *  pMutex 
)

Unlock a mutex in the MQTT client.

Parameters
pClientMQTT client
pMutexMutex to unlock
Returns
IoT_Error_t of mutex operation

◆ aws_iot_mqtt_set_client_state()

IoT_Error_t aws_iot_mqtt_set_client_state ( AWS_IoT_Client *  pClient,
ClientState  expectedCurrentState,
ClientState  newState 
)

Change the state in an MQTT client.

Parameters
pClientMQTT client
expectedCurrentStateWhat the current state of the client should be
newStateWhat the new state of the client should be
Returns
IoT_Error_t of state change

◆ 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_free()

IoT_Error_t aws_iot_mqtt_free ( AWS_IoT_Client *  pClient)

Clean mqtt client from all dynamic memory allocate.

This function will free up memory that was dynamically allocated for the client.

Parameters
pClientMQTT Client that was previously created by calling aws_iot_mqtt_init
Returns
An IoT Error Type defining successful/failed freeing

◆ aws_iot_mqtt_init()

IoT_Error_t aws_iot_mqtt_init ( AWS_IoT_Client *  pClient,
IoT_Client_Init_Params pInitParams 
)

MQTT Client Initialization Function.

Called to initialize the MQTT Client

Parameters
pClientReference to the IoT Client
pInitParamsPointer to MQTT connection parameters
Returns
IoT_Error_t Type defining successful/failed API call

◆ 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_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_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_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_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_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

◆ iotClientInitParamsDefault

const IoT_Client_Init_Params iotClientInitParamsDefault = IoT_Client_Init_Params_initializer

Default initializer for client

◆ iotMqttWillOptionsDefault

const IoT_MQTT_Will_Options iotMqttWillOptionsDefault = IoT_MQTT_Will_Options_Initializer

Default initializer for will

◆ iotClientConnectParamsDefault

Default initializer for connect