coreMQTT
v1.1.2
MQTT 3.1.1 Client Library
|
|
Initialize an MQTT context.
This function must be called on a MQTTContext_t before any other function.
- Note
- The MQTTGetCurrentTimeFunc_t function for querying time must be defined. If there is no time implementation, it is the responsibility of the application to provide a dummy function to always return 0, provide 0 timeouts for all calls to MQTT_Connect, MQTT_ProcessLoop, and MQTT_ReceiveLoop and configure the MQTT_RECV_POLLING_TIMEOUT_MS and MQTT_SEND_RETRY_TIMEOUT_MS configurations to be 0. This will result in loop functions running for a single iteration, and MQTT_Connect relying on MQTT_MAX_CONNACK_RECEIVE_RETRY_COUNT to receive the CONNACK packet.
- Parameters
-
[in] | pContext | The context to initialize. |
[in] | pTransportInterface | The transport interface to use with the context. |
[in] | getTimeFunction | The time utility function to use with the context. |
[in] | userCallback | The user callback to use with the context to notify about incoming packet events. |
[in] | pNetworkBuffer | Network buffer provided for the context. |
- Returns
- MQTTBadParameter if invalid parameters are passed; MQTTSuccess otherwise.
Example
uint32_t getTimeStampMs();
void eventCallback(
);
int32_t networkSend(
NetworkContext_t * pContext,
const void * pBuffer,
size_t bytes );
int32_t networkRecv(
NetworkContext_t * pContext,
void * pBuffer,
size_t bytes );
uint8_t buffer[ 1024 ];
memset( (
void * ) &mqttContext, 0x00,
sizeof(
MQTTContext_t ) );
transport.
send = networkSend;
transport.
recv = networkRecv;
status =
MQTT_Init( &mqttContext, &transport, getTimeStampMs, eventCallback, &fixedBuffer );
{
}
void(* MQTTEventCallback_t)(struct MQTTContext *pContext, struct MQTTPacketInfo *pPacketInfo, struct MQTTDeserializedInfo *pDeserializedInfo)
Application callback for receiving incoming publishes and incoming acks.
Definition: core_mqtt.h:96
uint8_t * pBuffer
Pointer to buffer.
Definition: core_mqtt_serializer.h:131
MQTT incoming packet parameters.
Definition: core_mqtt_serializer.h:251
struct NetworkContext NetworkContext_t
The NetworkContext is an incomplete type. An implementation of this interface must define struct Netw...
Definition: transport_interface.h:189
Buffer passed to MQTT library.
Definition: core_mqtt_serializer.h:130
size_t size
Size of buffer.
Definition: core_mqtt_serializer.h:132
TransportSend_t send
Definition: transport_interface.h:254
uint32_t(* MQTTGetCurrentTimeFunc_t)(void)
Application provided function to query the current time in milliseconds.
Definition: core_mqtt.h:81
MQTTStatus_t
Return codes from MQTT functions.
Definition: core_mqtt_serializer.h:97
A struct representing an MQTT connection.
Definition: core_mqtt.h:169
MQTTStatus_t MQTT_Init(MQTTContext_t *pContext, const TransportInterface_t *pTransportInterface, MQTTGetCurrentTimeFunc_t getTimeFunction, MQTTEventCallback_t userCallback, const MQTTFixedBuffer_t *pNetworkBuffer)
Initialize an MQTT context.
Definition: core_mqtt.c:1693
@ MQTTSuccess
Definition: core_mqtt_serializer.h:98
NetworkContext_t * pNetworkContext
Definition: transport_interface.h:255
TransportRecv_t recv
Definition: transport_interface.h:253
Struct to hold deserialized packet information for an MQTTEventCallback_t callback.
Definition: core_mqtt.h:233
The transport layer interface.
Definition: transport_interface.h:252