1.1.18.9.5 WDRV_WINC_MQTTPublish
C
WDRV_WINC_STATUS WDRV_WINC_MQTTPublish
(
DRV_HANDLE handle,
const WDRV_WINC_MQTT_MSG_INFO *pMsgInfo,
const char *pTopicName,
const uint8_t *pTopicData,
size_t topicDataLen,
WDRV_WINC_MQTT_PUB_STATUS_CALLBACK pfPubStatusCb,
uintptr_t pubStatusCbCtx,
WDRV_WINC_MQTT_PUB_HANDLE *pPubHandle
)Description
Publishes a message to an MQTT topic.
Precondition
WDRV_WINC_Initialize must have been called.
WDRV_WINC_Open must have been called to obtain a valid handle.
Parameters
| Parameters | Description |
|---|---|
| handle | Client handle obtained by a call to WDRV_WINC_Open. |
| pMsgInfo | Pointer to message information if required. |
| pTopicName | Pointer to topic name. |
| pTopicData | Pointer to data to publish to topic. |
| topicDataLen | Length of data to publish. |
| pfPubStatusCb | Pointer to publish status callback. |
| pubStatusCbCtx | User context to be passed to callback when called. |
| pPubHandle | Pointer to handle to receive short term publish handle. |
Returns
WDRV_WINC_STATUS_OK - A publish was sent.
WDRV_WINC_STATUS_NOT_OPEN - The driver instance is not open.
WDRV_WINC_STATUS_REQUEST_ERROR - The request to the WINC was rejected.
WDRV_WINC_STATUS_INVALID_ARG - The parameters were incorrect.
Remarks
The publish handle returned is only valid until the callback is called with both a handle and a packet ID, after which the handle is no longer valid and should be discarded. Further updates to the callback will use the packet ID. This is only relevant to QoS 1 and 2.
To use topic aliases in MQTT V5 a publish must be sent first with both pTopicName and pMsgInfo->pProperties->topicAlias being valid. Once the alias is registered with the broker WDRV_WINC_MQTTPublish can be called with pTopicName equal to NULL as long as pMsgInfo->pProperties->topicAlias is set to the registered alias ID.
