coreMQTT v2.0.0
MQTT 3.1.1 Client Library
Configurations

Configurations of the MQTT Library.

configpagestyle

Some configuration settings are C pre-processor constants, and some are function-like macros for logging. They can be set with a #define in the config file (core_mqtt_config.h) or by using a compiler option such as -D in gcc.

MQTT_DO_NOT_USE_CUSTOM_CONFIG

Define this macro to build the MQTT library without the custom config file core_mqtt_config.h. Without the custom config, the MQTT library builds with default values of config macros defined in core_mqtt_config_defaults.h file.

If a custom config is provided, then MQTT_DO_NOT_USE_CUSTOM_CONFIG should not be defined.

MQTT_PINGRESP_TIMEOUT_MS

Maximum number of milliseconds to wait for a ping response to a ping request as part of the keep-alive mechanism. If a ping response is not received before this timeout, then MQTT_ProcessLoop will return MQTTKeepAliveTimeout.

Note
If this value is more than half of the keep alive interval, and the server does not receive the previous ping request, then it is likely that the server will disconnect the client before MQTTKeepAliveTimeout can be returned.
If a dummy implementation of the MQTTGetCurrentTimeFunc_t timer function, is supplied to the library, then the keep-alive mechanism is not supported by the MQTT_ProcessLoop API function. In that case, the value of MQTT_PINGRESP_TIMEOUT_MS is irrelevant to the behavior of the library.

Possible values: Any positive integer up to SIZE_MAX.
Default value: 5000

MQTT_RECV_POLLING_TIMEOUT_MS

The maximum duration between non-empty network reads while receiving an MQTT packet via the MQTT_ProcessLoop or MQTT_ReceiveLoop API functions. When an incoming MQTT packet is detected, the transport receive function may be called multiple times until all of the expected number of bytes of the packet are received. This timeout represents the maximum polling duration that is allowed without any data reception from the network for the incoming packet.

If the timeout expires, the MQTT_ProcessLoop and MQTT_ReceiveLoop functions return MQTTRecvFailed.

Note
If a dummy implementation of the MQTTGetCurrentTimeFunc_t timer function, is supplied to the library, then MQTT_RECV_POLLING_TIMEOUT_MS MUST be set to 0.

Possible values: Any positive 32 bit integer. Recommended to use a small timeout value.
Default value: 10

MQTT_SEND_RETRY_TIMEOUT_MS

The maximum duration between non-empty network transmissions while sending an MQTT packet via the MQTT_ProcessLoop or MQTT_ReceiveLoop API functions. When sending an MQTT packet, the transport send function may be called multiple times until all of the required number of bytes are sent. This timeout represents the maximum duration that is allowed for no data transmission over the network through the transport send function.

If the timeout expires, the MQTT_ProcessLoop and MQTT_ReceiveLoop functions return MQTTSendFailed.

Note
If a dummy implementation of the MQTTGetCurrentTimeFunc_t timer function, is supplied to the library, then MQTT_SEND_RETRY_TIMEOUT_MS MUST be set to 0.

Possible values: Any positive 32 bit integer. Recommended to use a small timeout value.
Default value: 10

MQTT_MAX_CONNACK_RECEIVE_RETRY_COUNT

The number of retries for receiving CONNACK. The MQTT_MAX_CONNACK_RECEIVE_RETRY_COUNT will be used only when the timeoutMs parameter of MQTT_Connect is passed as 0 . The transport receive for CONNACK will be retried MQTT_MAX_CONNACK_RECEIVE_RETRY_COUNT times before timing out. A value of 0 for this config will cause the transport receive for CONNACK to be invoked only once.

Possible values: Any positive 16 bit integer.
Default value: 5

LogError

Macro that is called in the MQTT library for logging "Error" level messages. To enable error level logging in the MQTT library, this macro should be mapped to the application-specific logging implementation that supports error logging.

Note
This logging macro is called in the MQTT library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to core_mqtt_config.h files, and the logging-stack in demos folder of the AWS IoT Embedded C SDK repository.

Default value: Error logging is turned off, and no code is generated for calls to the macro in the MQTT library on compilation.

LogWarn

Macro that is called in the MQTT library for logging "Warning" level messages. To enable warning level logging in the MQTT library, this macro should be mapped to the application-specific logging implementation that supports warning logging.

Note
This logging macro is called in the MQTT library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to core_mqtt_config.h files, and the logging-stack in demos folder of the AWS IoT Embedded C SDK repository.

Default value: Warning logs are turned off, and no code is generated for calls to the macro in the MQTT library on compilation.

LogInfo

Macro that is called in the MQTT library for logging "Info" level messages. To enable info level logging in the MQTT library, this macro should be mapped to the application-specific logging implementation that supports info logging.

Note
This logging macro is called in the MQTT library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to core_mqtt_config.h files, and the logging-stack in demos folder of the AWS IoT Embedded C SDK repository.

Default value: Info logging is turned off, and no code is generated for calls to the macro in the MQTT library on compilation.

LogDebug

Macro that is called in the MQTT library for logging "Debug" level messages. To enable debug level logging from MQTT library, this macro should be mapped to the application-specific logging implementation that supports debug logging.

Note
This logging macro is called in the MQTT library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to core_mqtt_config.h files, and the logging-stack in demos folder of the AWS IoT Embedded C SDK repository.

Default value: Debug logging is turned off, and no code is generated for calls to the macro in the MQTT library on compilation.