coreMQTT
v1.0.1
MQTT 3.1.1 Client Library
|
|
Implements the user-facing functions in core_mqtt_serializer.h.
More...
#include <string.h>
#include <assert.h>
#include "core_mqtt_serializer.h"
|
#define | MQTT_VERSION_3_1_1 ( ( uint8_t ) 4U ) |
| MQTT protocol version 3.1.1.
|
|
#define | MQTT_PACKET_CONNECT_HEADER_SIZE ( 10UL ) |
| Size of the fixed and variable header of a CONNECT packet.
|
|
#define | MQTT_CONNECT_FLAG_CLEAN ( 1 ) |
| Clean session.
|
|
#define | MQTT_CONNECT_FLAG_WILL ( 2 ) |
| Will present.
|
|
#define | MQTT_CONNECT_FLAG_WILL_QOS1 ( 3 ) |
| Will QoS 1.
|
|
#define | MQTT_CONNECT_FLAG_WILL_QOS2 ( 4 ) |
| Will QoS 2.
|
|
#define | MQTT_CONNECT_FLAG_WILL_RETAIN ( 5 ) |
| Will retain.
|
|
#define | MQTT_CONNECT_FLAG_PASSWORD ( 6 ) |
| Password present.
|
|
#define | MQTT_CONNECT_FLAG_USERNAME ( 7 ) |
| User name present.
|
|
#define | MQTT_PUBLISH_FLAG_RETAIN ( 0 ) |
| MQTT PUBLISH retain flag.
|
|
#define | MQTT_PUBLISH_FLAG_QOS1 ( 1 ) |
| MQTT PUBLISH QoS1 flag.
|
|
#define | MQTT_PUBLISH_FLAG_QOS2 ( 2 ) |
| MQTT PUBLISH QoS2 flag.
|
|
#define | MQTT_PUBLISH_FLAG_DUP ( 3 ) |
| MQTT PUBLISH duplicate flag.
|
|
#define | MQTT_DISCONNECT_PACKET_SIZE ( 2UL ) |
| The size of MQTT DISCONNECT packets, per MQTT spec.
|
|
#define | MQTT_PACKET_PINGREQ_SIZE ( 2U ) |
| A PINGREQ packet is always 2 bytes in size, defined by MQTT 3.1.1 spec.
|
|
#define | MQTT_DISCONNECT_REMAINING_LENGTH ( ( uint8_t ) 0 ) |
| The Remaining Length field of MQTT disconnect packets, per MQTT spec.
|
|
#define | MQTT_PACKET_CONNACK_REMAINING_LENGTH ( ( uint8_t ) 2U ) |
| A CONNACK packet always has a "Remaining length" of 2.
|
|
#define | MQTT_PACKET_CONNACK_SESSION_PRESENT_MASK ( ( uint8_t ) 0x01U ) |
| The "Session Present" bit is always the lowest bit.
|
|
#define | MQTT_PACKET_SIMPLE_ACK_REMAINING_LENGTH ( ( uint8_t ) 2 ) |
| PUBACK, PUBREC, PUBREl, PUBCOMP, UNSUBACK Remaining length.
|
|
#define | MQTT_PACKET_PINGRESP_REMAINING_LENGTH ( 0U ) |
| A PINGRESP packet always has a "Remaining length" of 0.
|
|
#define | MQTT_MAX_REMAINING_LENGTH ( 268435455UL ) |
| Per the MQTT 3.1.1 spec, the largest "Remaining Length" of an MQTT packet is this value, 256 MB.
|
|
#define | UINT8_SET_BIT(x, position) ( ( x ) = ( uint8_t ) ( ( x ) | ( 0x01U << ( position ) ) ) ) |
| Set a bit in an 8-bit unsigned integer.
|
|
#define | UINT8_CHECK_BIT(x, position) ( ( ( x ) & ( 0x01U << ( position ) ) ) == ( 0x01U << ( position ) ) ) |
| Macro for checking if a bit is set in a 1-byte unsigned int. More...
|
|
#define | UINT16_HIGH_BYTE(x) ( ( uint8_t ) ( ( x ) >> 8 ) ) |
| Get the high byte of a 16-bit unsigned integer.
|
|
#define | UINT16_LOW_BYTE(x) ( ( uint8_t ) ( ( x ) & 0x00ffU ) ) |
| Get the low byte of a 16-bit unsigned integer.
|
|
#define | UINT16_DECODE(ptr) |
| Macro for decoding a 2-byte unsigned int from a sequence of bytes. More...
|
|
#define | MQTT_REMAINING_LENGTH_INVALID ( ( size_t ) 268435456 ) |
| A value that represents an invalid remaining length. More...
|
|
#define | MQTT_MIN_PUBLISH_REMAINING_LENGTH_QOS0 ( 3U ) |
| The minimum remaining length for a QoS 0 PUBLISH. More...
|
|
|
static void | serializePublishCommon (const MQTTPublishInfo_t *pPublishInfo, size_t remainingLength, uint16_t packetIdentifier, const MQTTFixedBuffer_t *pFixedBuffer, bool serializePayload) |
| Serializes MQTT PUBLISH packet into the buffer provided. More...
|
|
static bool | calculatePublishPacketSize (const MQTTPublishInfo_t *pPublishInfo, size_t *pRemainingLength, size_t *pPacketSize) |
| Calculates the packet size and remaining length of an MQTT PUBLISH packet. More...
|
|
static MQTTStatus_t | calculateSubscriptionPacketSize (const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, size_t *pRemainingLength, size_t *pPacketSize, MQTTSubscriptionType_t subscriptionType) |
| Calculates the packet size and remaining length of an MQTT SUBSCRIBE or UNSUBSCRIBE packet. More...
|
|
static MQTTStatus_t | validateSubscriptionSerializeParams (const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, uint16_t packetId, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer) |
| Validates parameters of MQTT_SerializeSubscribe or MQTT_SerializeUnsubscribe. More...
|
|
static void | serializeConnectPacket (const MQTTConnectInfo_t *pConnectInfo, const MQTTPublishInfo_t *pWillInfo, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer) |
| Serialize an MQTT CONNECT packet in the given buffer. More...
|
|
static void | logConnackResponse (uint8_t responseCode) |
| Prints the appropriate message for the CONNACK response code if logs are enabled. More...
|
|
static uint8_t * | encodeRemainingLength (uint8_t *pDestination, size_t length) |
| Encodes the remaining length of the packet using the variable length encoding scheme provided in the MQTT v3.1.1 specification. More...
|
|
static size_t | remainingLengthEncodedSize (size_t length) |
| Retrieve the size of the remaining length if it were to be encoded. More...
|
|
static uint8_t * | encodeString (uint8_t *pDestination, const char *pSource, uint16_t sourceLength) |
| Encode a string whose size is at maximum 16 bits in length. More...
|
|
static size_t | getRemainingLength (TransportRecv_t recvFunc, NetworkContext_t *pNetworkContext) |
| Retrieves and decodes the Remaining Length from the network interface by reading a single byte at a time. More...
|
|
static bool | incomingPacketValid (uint8_t packetType) |
| Check if an incoming packet type is valid. More...
|
|
static MQTTStatus_t | checkPublishRemainingLength (size_t remainingLength, MQTTQoS_t qos, size_t qos0Minimum) |
| Check the remaining length of an incoming PUBLISH packet against some value for QoS 0, or for QoS 1 and 2. More...
|
|
static MQTTStatus_t | processPublishFlags (uint8_t publishFlags, MQTTPublishInfo_t *pPublishInfo) |
| Process the flags of an incoming PUBLISH packet. More...
|
|
static MQTTStatus_t | deserializeConnack (const MQTTPacketInfo_t *pConnack, bool *pSessionPresent) |
| Deserialize a CONNACK packet. More...
|
|
static MQTTStatus_t | readSubackStatus (size_t statusCount, const uint8_t *pStatusStart) |
| Decode the status bytes of a SUBACK packet to a MQTTStatus_t. More...
|
|
static MQTTStatus_t | deserializeSuback (const MQTTPacketInfo_t *pSuback, uint16_t *pPacketIdentifier) |
| Deserialize a SUBACK packet. More...
|
|
static MQTTStatus_t | deserializePublish (const MQTTPacketInfo_t *pIncomingPacket, uint16_t *pPacketId, MQTTPublishInfo_t *pPublishInfo) |
| Deserialize a PUBLISH packet received from the server. More...
|
|
static MQTTStatus_t | deserializeSimpleAck (const MQTTPacketInfo_t *pAck, uint16_t *pPacketIdentifier) |
| Deserialize an UNSUBACK, PUBACK, PUBREC, PUBREL, or PUBCOMP packet. More...
|
|
static MQTTStatus_t | deserializePingresp (const MQTTPacketInfo_t *pPingresp) |
| Deserialize a PINGRESP packet. More...
|
|
MQTTStatus_t | MQTT_GetConnectPacketSize (const MQTTConnectInfo_t *pConnectInfo, const MQTTPublishInfo_t *pWillInfo, size_t *pRemainingLength, size_t *pPacketSize) |
| Get the size and Remaining Length of an MQTT CONNECT packet. More...
|
|
MQTTStatus_t | MQTT_SerializeConnect (const MQTTConnectInfo_t *pConnectInfo, const MQTTPublishInfo_t *pWillInfo, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer) |
| Serialize an MQTT CONNECT packet in the given fixed buffer pFixedBuffer . More...
|
|
MQTTStatus_t | MQTT_GetSubscribePacketSize (const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, size_t *pRemainingLength, size_t *pPacketSize) |
| Get packet size and Remaining Length of an MQTT SUBSCRIBE packet. More...
|
|
MQTTStatus_t | MQTT_SerializeSubscribe (const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, uint16_t packetId, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer) |
| Serialize an MQTT SUBSCRIBE packet in the given buffer. More...
|
|
MQTTStatus_t | MQTT_GetUnsubscribePacketSize (const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, size_t *pRemainingLength, size_t *pPacketSize) |
| Get packet size and Remaining Length of an MQTT UNSUBSCRIBE packet. More...
|
|
MQTTStatus_t | MQTT_SerializeUnsubscribe (const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, uint16_t packetId, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer) |
| Serialize an MQTT UNSUBSCRIBE packet in the given buffer. More...
|
|
MQTTStatus_t | MQTT_GetPublishPacketSize (const MQTTPublishInfo_t *pPublishInfo, size_t *pRemainingLength, size_t *pPacketSize) |
| Get the packet size and remaining length of an MQTT PUBLISH packet. More...
|
|
MQTTStatus_t | MQTT_SerializePublish (const MQTTPublishInfo_t *pPublishInfo, uint16_t packetId, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer) |
| Serialize an MQTT PUBLISH packet in the given buffer. More...
|
|
MQTTStatus_t | MQTT_SerializePublishHeader (const MQTTPublishInfo_t *pPublishInfo, uint16_t packetId, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer, size_t *pHeaderSize) |
| Serialize an MQTT PUBLISH packet header in the given buffer. More...
|
|
MQTTStatus_t | MQTT_SerializeAck (const MQTTFixedBuffer_t *pFixedBuffer, uint8_t packetType, uint16_t packetId) |
| Serialize an MQTT PUBACK, PUBREC, PUBREL, or PUBCOMP into the given buffer. More...
|
|
MQTTStatus_t | MQTT_GetDisconnectPacketSize (size_t *pPacketSize) |
| Get the size of an MQTT DISCONNECT packet. More...
|
|
MQTTStatus_t | MQTT_SerializeDisconnect (const MQTTFixedBuffer_t *pFixedBuffer) |
| Serialize an MQTT DISCONNECT packet into the given buffer. More...
|
|
MQTTStatus_t | MQTT_GetPingreqPacketSize (size_t *pPacketSize) |
| Get the size of an MQTT PINGREQ packet. More...
|
|
MQTTStatus_t | MQTT_SerializePingreq (const MQTTFixedBuffer_t *pFixedBuffer) |
| Serialize an MQTT PINGREQ packet into the given buffer. More...
|
|
MQTTStatus_t | MQTT_DeserializePublish (const MQTTPacketInfo_t *pIncomingPacket, uint16_t *pPacketId, MQTTPublishInfo_t *pPublishInfo) |
| Deserialize an MQTT PUBLISH packet. More...
|
|
MQTTStatus_t | MQTT_DeserializeAck (const MQTTPacketInfo_t *pIncomingPacket, uint16_t *pPacketId, bool *pSessionPresent) |
| Deserialize an MQTT CONNACK, SUBACK, UNSUBACK, PUBACK, PUBREC, PUBREL, PUBCOMP, or PINGRESP. More...
|
|
MQTTStatus_t | MQTT_GetIncomingPacketTypeAndLength (TransportRecv_t readFunc, NetworkContext_t *pNetworkContext, MQTTPacketInfo_t *pIncomingPacket) |
| Extract the MQTT packet type and length from incoming packet. More...
|
|
Implements the user-facing functions in core_mqtt_serializer.h.
◆ UINT8_CHECK_BIT
#define UINT8_CHECK_BIT |
( |
|
x, |
|
|
|
position |
|
) |
| ( ( ( x ) & ( 0x01U << ( position ) ) ) == ( 0x01U << ( position ) ) ) |
Macro for checking if a bit is set in a 1-byte unsigned int.
- Parameters
-
[in] | x | The unsigned int to check. |
[in] | position | Which bit to check. |
◆ UINT16_DECODE
#define UINT16_DECODE |
( |
|
ptr | ) |
|
Value: ( uint16_t ) ( ( ( ( uint16_t ) ( *( ptr ) ) ) << 8 ) | \
( ( uint16_t ) ( *( ( ptr ) + 1 ) ) ) )
Macro for decoding a 2-byte unsigned int from a sequence of bytes.
- Parameters
-
[in] | ptr | A uint8_t* that points to the high byte. |
◆ MQTT_REMAINING_LENGTH_INVALID
#define MQTT_REMAINING_LENGTH_INVALID ( ( size_t ) 268435456 ) |
A value that represents an invalid remaining length.
This value is greater than what is allowed by the MQTT specification.
◆ MQTT_MIN_PUBLISH_REMAINING_LENGTH_QOS0
#define MQTT_MIN_PUBLISH_REMAINING_LENGTH_QOS0 ( 3U ) |
The minimum remaining length for a QoS 0 PUBLISH.
Includes two bytes for topic name length and one byte for topic name.
◆ MQTTSubscriptionType_t
MQTT Subscription packet types.
Enumerator |
---|
MQTT_SUBSCRIBE | The type is a SUBSCRIBE packet.
|
MQTT_UNSUBSCRIBE | The type is a UNSUBSCRIBE packet.
|
◆ serializePublishCommon()
static void serializePublishCommon |
( |
const MQTTPublishInfo_t * |
pPublishInfo, |
|
|
size_t |
remainingLength, |
|
|
uint16_t |
packetIdentifier, |
|
|
const MQTTFixedBuffer_t * |
pFixedBuffer, |
|
|
bool |
serializePayload |
|
) |
| |
|
static |
Serializes MQTT PUBLISH packet into the buffer provided.
This function serializes MQTT PUBLISH packet into MQTTFixedBuffer_t.pBuffer. Copy of the payload into the buffer is done as part of the serialization only if serializePayload
is true.
param[in] pPublishInfo Publish information.
param[in] remainingLength Remaining length of the PUBLISH packet.
param[in] packetIdentifier Packet identifier of PUBLISH packet.
param[in, out] pFixedBuffer Buffer to which PUBLISH packet will be serialized.
param[in] serializePayload Copy payload to the serialized buffer only if true. Only PUBLISH header will be serialized if false.
- Returns
- Total number of bytes sent; -1 if there is an error.
◆ calculatePublishPacketSize()
static bool calculatePublishPacketSize |
( |
const MQTTPublishInfo_t * |
pPublishInfo, |
|
|
size_t * |
pRemainingLength, |
|
|
size_t * |
pPacketSize |
|
) |
| |
|
static |
Calculates the packet size and remaining length of an MQTT PUBLISH packet.
- Parameters
-
[in] | pPublishInfo | MQTT PUBLISH packet parameters. |
[out] | pRemainingLength | The Remaining Length of the MQTT PUBLISH packet. |
[out] | pPacketSize | The total size of the MQTT PUBLISH packet. |
- Returns
- false if the packet would exceed the size allowed by the MQTT spec; true otherwise.
◆ calculateSubscriptionPacketSize()
Calculates the packet size and remaining length of an MQTT SUBSCRIBE or UNSUBSCRIBE packet.
- Parameters
-
[in] | pSubscriptionList | List of MQTT subscription info. |
[in] | subscriptionCount | The number of elements in pSubscriptionList. |
[out] | pRemainingLength | The Remaining Length of the MQTT SUBSCRIBE or UNSUBSCRIBE packet. |
[out] | pPacketSize | The total size of the MQTT MQTT SUBSCRIBE or UNSUBSCRIBE packet. |
[in] | subscriptionType | MQTT_SUBSCRIBE or MQTT_UNSUBSCRIBE. |
MQTTBadParameter if the packet would exceed the size allowed by the MQTT spec; MQTTSuccess otherwise.
◆ validateSubscriptionSerializeParams()
Validates parameters of MQTT_SerializeSubscribe or MQTT_SerializeUnsubscribe.
- Parameters
-
[in] | pSubscriptionList | List of MQTT subscription info. |
[in] | subscriptionCount | The number of elements in pSubscriptionList. |
[in] | packetId | Packet identifier. |
[in] | remainingLength | Remaining length of the packet. |
[in] | pFixedBuffer | Buffer for packet serialization. |
- Returns
- MQTTNoMemory if pBuffer is too small to hold the MQTT packet; MQTTBadParameter if invalid parameters are passed; MQTTSuccess otherwise.
◆ serializeConnectPacket()
Serialize an MQTT CONNECT packet in the given buffer.
- Parameters
-
[in] | pConnectInfo | MQTT CONNECT packet parameters. |
[in] | pWillInfo | Last Will and Testament. Pass NULL if not used. |
[in] | remainingLength | Remaining Length of MQTT CONNECT packet. |
[out] | pFixedBuffer | Buffer for packet serialization. |
◆ logConnackResponse()
static void logConnackResponse |
( |
uint8_t |
responseCode | ) |
|
|
static |
Prints the appropriate message for the CONNACK response code if logs are enabled.
- Parameters
-
[in] | responseCode | MQTT standard CONNACK response code. |
◆ encodeRemainingLength()
static uint8_t * encodeRemainingLength |
( |
uint8_t * |
pDestination, |
|
|
size_t |
length |
|
) |
| |
|
static |
Encodes the remaining length of the packet using the variable length encoding scheme provided in the MQTT v3.1.1 specification.
- Parameters
-
[out] | pDestination | The destination buffer to store the encoded remaining length. |
[in] | length | The remaining length to encode. |
- Returns
- The location of the byte following the encoded value.
◆ remainingLengthEncodedSize()
static size_t remainingLengthEncodedSize |
( |
size_t |
length | ) |
|
|
static |
Retrieve the size of the remaining length if it were to be encoded.
- Parameters
-
[in] | length | The remaining length to be encoded. |
- Returns
- The size of the remaining length if it were to be encoded.
◆ encodeString()
static uint8_t * encodeString |
( |
uint8_t * |
pDestination, |
|
|
const char * |
pSource, |
|
|
uint16_t |
sourceLength |
|
) |
| |
|
static |
Encode a string whose size is at maximum 16 bits in length.
- Parameters
-
[out] | pDestination | Destination buffer for the encoding. |
[in] | pSource | The source string to encode. |
[in] | sourceLength | The length of the source string to encode. |
- Returns
- A pointer to the end of the encoded string.
◆ getRemainingLength()
Retrieves and decodes the Remaining Length from the network interface by reading a single byte at a time.
- Parameters
-
[in] | recvFunc | Network interface receive function. |
[in] | pNetworkContext | Network interface context to the receive function. |
- Returns
- The Remaining Length of the incoming packet.
◆ incomingPacketValid()
static bool incomingPacketValid |
( |
uint8_t |
packetType | ) |
|
|
static |
Check if an incoming packet type is valid.
- Parameters
-
[in] | packetType | The packet type to check. |
- Returns
true
if the packet type is valid; false
otherwise.
◆ checkPublishRemainingLength()
static MQTTStatus_t checkPublishRemainingLength |
( |
size_t |
remainingLength, |
|
|
MQTTQoS_t |
qos, |
|
|
size_t |
qos0Minimum |
|
) |
| |
|
static |
Check the remaining length of an incoming PUBLISH packet against some value for QoS 0, or for QoS 1 and 2.
The remaining length for a QoS 1 and 2 packet will always be two greater than for a QoS 0.
- Parameters
-
[in] | remainingLength | Remaining length of the PUBLISH packet. |
[in] | qos | The QoS of the PUBLISH. |
[in] | qos0Minimum | Minimum possible remaining length for a QoS 0 PUBLISH. |
- Returns
- MQTTSuccess or MQTTBadResponse.
◆ processPublishFlags()
Process the flags of an incoming PUBLISH packet.
- Parameters
-
[in] | publishFlags | Flags of an incoming PUBLISH. |
[in,out] | pPublishInfo | Pointer to MQTTPublishInfo_t struct where output will be written. |
- Returns
- MQTTSuccess or MQTTBadResponse.
◆ deserializeConnack()
Deserialize a CONNACK packet.
Converts the packet from a stream of bytes to an MQTTStatus_t.
- Parameters
-
[in] | pConnack | Pointer to an MQTT packet struct representing a CONNACK. |
[out] | pSessionPresent | Whether a previous session was present. |
- Returns
- MQTTSuccess if CONNACK specifies that CONNECT was accepted; MQTTServerRefused if CONNACK specifies that CONNECT was rejected; MQTTBadResponse if the CONNACK packet doesn't follow MQTT spec.
◆ readSubackStatus()
static MQTTStatus_t readSubackStatus |
( |
size_t |
statusCount, |
|
|
const uint8_t * |
pStatusStart |
|
) |
| |
|
static |
◆ deserializeSuback()
Deserialize a SUBACK packet.
Converts the packet from a stream of bytes to an MQTTStatus_t and extracts the packet identifier.
- Parameters
-
[in] | pSuback | Pointer to an MQTT packet struct representing a SUBACK. |
[out] | pPacketIdentifier | Packet ID of the SUBACK. |
- Returns
- MQTTSuccess if SUBACK is valid; MQTTBadResponse if SUBACK packet doesn't follow the MQTT spec.
◆ deserializePublish()
Deserialize a PUBLISH packet received from the server.
Converts the packet from a stream of bytes to an MQTTPublishInfo_t and extracts the packet identifier. Also prints out debug log messages about the packet.
- Parameters
-
[in] | pIncomingPacket | Pointer to an MQTT packet struct representing a PUBLISH. |
[out] | pPacketId | Packet identifier of the PUBLISH. |
[out] | pPublishInfo | Pointer to MQTTPublishInfo_t where output is written. |
- Returns
- MQTTSuccess if PUBLISH is valid; MQTTBadResponse if the PUBLISH packet doesn't follow MQTT spec.
◆ deserializeSimpleAck()
Deserialize an UNSUBACK, PUBACK, PUBREC, PUBREL, or PUBCOMP packet.
Converts the packet from a stream of bytes to an MQTTStatus_t and extracts the packet identifier.
- Parameters
-
[in] | pAck | Pointer to the MQTT packet structure representing the packet. |
[out] | pPacketIdentifier | Packet ID of the ack type packet. |
- Returns
- MQTTSuccess if UNSUBACK, PUBACK, PUBREC, PUBREL, or PUBCOMP is valid; MQTTBadResponse if the packet doesn't follow the MQTT spec.
◆ deserializePingresp()
Deserialize a PINGRESP packet.
Converts the packet from a stream of bytes to an MQTTStatus_t.
- Parameters
-
[in] | pPingresp | Pointer to an MQTT packet struct representing a PINGRESP. |
- Returns
- MQTTSuccess if PINGRESP is valid; MQTTBadResponse if the PINGRESP packet doesn't follow MQTT spec.
◆ MQTT_GetConnectPacketSize()
Get the size and Remaining Length of an MQTT CONNECT packet.
This function must be called before MQTT_SerializeConnect in order to get the size of the MQTT CONNECT packet that is generated from MQTTConnectInfo_t and optional MQTTPublishInfo_t. The size of the MQTTFixedBuffer_t supplied to MQTT_SerializeConnect must be at least pPacketSize
. The provided pConnectInfo
and pWillInfo
are valid for serialization with MQTT_SerializeConnect only if this function returns MQTTSuccess. The remaining length returned in pRemainingLength
and the packet size returned in pPacketSize
are valid only if this function returns MQTTSuccess.
- Parameters
-
[in] | pConnectInfo | MQTT CONNECT packet parameters. |
[in] | pWillInfo | Last Will and Testament. Pass NULL if not used. |
[out] | pRemainingLength | The Remaining Length of the MQTT CONNECT packet. |
[out] | pPacketSize | The total size of the MQTT CONNECT packet. |
- Returns
- MQTTBadParameter if the packet would exceed the size allowed by the MQTT spec; MQTTSuccess otherwise.
Example
size_t remainingLength = 0, packetSize = 0;
initializeConnectInfo( &connectInfo );
initializeWillInfo( &willInfo );
&connectInfo, &willInfo, &remainingLength, &packetSize
);
{
}
◆ MQTT_SerializeConnect()
Serialize an MQTT CONNECT packet in the given fixed buffer pFixedBuffer
.
MQTT_GetConnectPacketSize should be called with pConnectInfo
and pWillInfo
before invoking this function to get the size of the required MQTTFixedBuffer_t and remainingLength
. The remainingLength
must be the same as returned by MQTT_GetConnectPacketSize. The MQTTFixedBuffer_t must be at least as large as the size returned by MQTT_GetConnectPacketSize.
- Parameters
-
[in] | pConnectInfo | MQTT CONNECT packet parameters. |
[in] | pWillInfo | Last Will and Testament. Pass NULL if not used. |
[in] | remainingLength | Remaining Length provided by MQTT_GetConnectPacketSize. |
[out] | pFixedBuffer | Buffer for packet serialization. |
- Returns
- MQTTNoMemory if pFixedBuffer is too small to hold the MQTT packet; MQTTBadParameter if invalid parameters are passed; MQTTSuccess otherwise.
Example
uint8_t buffer[ BUFFER_SIZE ];
size_t remainingLength = 0, packetSize = 0;
fixedBuffer.
size = BUFFER_SIZE;
&connectInfo, &willInfo, &remainingLength, &packetSize
);
assert( packetSize <= BUFFER_SIZE );
{
}
◆ MQTT_GetSubscribePacketSize()
MQTTStatus_t MQTT_GetSubscribePacketSize |
( |
const MQTTSubscribeInfo_t * |
pSubscriptionList, |
|
|
size_t |
subscriptionCount, |
|
|
size_t * |
pRemainingLength, |
|
|
size_t * |
pPacketSize |
|
) |
| |
Get packet size and Remaining Length of an MQTT SUBSCRIBE packet.
This function must be called before MQTT_SerializeSubscribe in order to get the size of the MQTT SUBSCRIBE packet that is generated from the list of MQTTSubscribeInfo_t. The size of the MQTTFixedBuffer_t supplied to MQTT_SerializeSubscribe must be at least pPacketSize
. The provided pSubscriptionList
is valid for serialization with MQTT_SerializeSubscribe only if this function returns MQTTSuccess. The remaining length returned in pRemainingLength
and the packet size returned in pPacketSize
are valid only if this function returns MQTTSuccess.
- Parameters
-
[in] | pSubscriptionList | List of MQTT subscription info. |
[in] | subscriptionCount | The number of elements in pSubscriptionList. |
[out] | pRemainingLength | The Remaining Length of the MQTT SUBSCRIBE packet. |
[out] | pPacketSize | The total size of the MQTT SUBSCRIBE packet. |
- Returns
- MQTTBadParameter if the packet would exceed the size allowed by the MQTT spec; MQTTSuccess otherwise.
Example
size_t remainingLength = 0, packetSize = 0;
const char * filters[ NUMBER_OF_SUBSCRIPTIONS ];
for( int i = 0; i < NUMBER_OF_SUBSCRIPTIONS; i++ )
{
}
&subscriptionList[ 0 ], NUMBER_OF_SUBSCRIPTIONS, &remainingLength, &packetSize
);
{
}
◆ MQTT_SerializeSubscribe()
Serialize an MQTT SUBSCRIBE packet in the given buffer.
MQTT_GetSubscribePacketSize should be called with pSubscriptionList
before invoking this function to get the size of the required MQTTFixedBuffer_t and remainingLength
. The remainingLength
must be the same as returned by MQTT_GetSubscribePacketSize. The MQTTFixedBuffer_t must be at least as large as the size returned by MQTT_GetSubscribePacketSize.
- Parameters
-
[in] | pSubscriptionList | List of MQTT subscription info. |
[in] | subscriptionCount | The number of elements in pSubscriptionList. |
[in] | packetId | packet ID generated by MQTT_GetPacketId. |
[in] | remainingLength | Remaining Length provided by MQTT_GetSubscribePacketSize. |
[out] | pFixedBuffer | Buffer for packet serialization. |
- Returns
- MQTTNoMemory if pFixedBuffer is too small to hold the MQTT packet; MQTTBadParameter if invalid parameters are passed; MQTTSuccess otherwise.
Example
uint8_t buffer[ BUFFER_SIZE ];
size_t remainingLength = 0, packetSize = 0;
uint16_t packetId;
fixedBuffer.
size = BUFFER_SIZE;
packetId = getNewPacketId();
&subscriptionList[ 0 ], NUMBER_OF_SUBSCRIPTIONS, &remainingLength, &packetSize
);
assert( packetSize <= BUFFER_SIZE );
&subscriptionList[ 0 ],
NUMBER_OF_SUBSCRIPTIONS,
packetId,
remainingLength,
&fixedBuffer
);
{
}
◆ MQTT_GetUnsubscribePacketSize()
MQTTStatus_t MQTT_GetUnsubscribePacketSize |
( |
const MQTTSubscribeInfo_t * |
pSubscriptionList, |
|
|
size_t |
subscriptionCount, |
|
|
size_t * |
pRemainingLength, |
|
|
size_t * |
pPacketSize |
|
) |
| |
Get packet size and Remaining Length of an MQTT UNSUBSCRIBE packet.
This function must be called before MQTT_SerializeUnsubscribe in order to get the size of the MQTT UNSUBSCRIBE packet that is generated from the list of MQTTSubscribeInfo_t. The size of the MQTTFixedBuffer_t supplied to MQTT_SerializeUnsubscribe must be at least pPacketSize
. The provided pSubscriptionList
is valid for serialization with MQTT_SerializeUnsubscribe only if this function returns MQTTSuccess. The remaining length returned in pRemainingLength
and the packet size returned in pPacketSize
are valid only if this function returns MQTTSuccess.
- Parameters
-
[in] | pSubscriptionList | List of MQTT subscription info. |
[in] | subscriptionCount | The number of elements in pSubscriptionList. |
[out] | pRemainingLength | The Remaining Length of the MQTT UNSUBSCRIBE packet. |
[out] | pPacketSize | The total size of the MQTT UNSUBSCRIBE packet. |
- Returns
- MQTTBadParameter if the packet would exceed the size allowed by the MQTT spec; MQTTSuccess otherwise.
Example
size_t remainingLength = 0, packetSize = 0;
initializeSubscribeInfo( &subscriptionList[ 0 ] );
&subscriptionList[ 0 ], NUMBER_OF_SUBSCRIPTIONS, &remainingLength, &packetSize
);
{
}
◆ MQTT_SerializeUnsubscribe()
Serialize an MQTT UNSUBSCRIBE packet in the given buffer.
MQTT_GetUnsubscribePacketSize should be called with pSubscriptionList
before invoking this function to get the size of the required MQTTFixedBuffer_t and remainingLength
. The remainingLength
must be the same as returned by MQTT_GetUnsubscribePacketSize. The MQTTFixedBuffer_t must be at least as large as the size returned by MQTT_GetUnsubscribePacketSize.
- Parameters
-
[in] | pSubscriptionList | List of MQTT subscription info. |
[in] | subscriptionCount | The number of elements in pSubscriptionList. |
[in] | packetId | packet ID generated by MQTT_GetPacketId. |
[in] | remainingLength | Remaining Length provided by MQTT_GetUnsubscribePacketSize. |
[out] | pFixedBuffer | Buffer for packet serialization. |
- Returns
- MQTTNoMemory if pFixedBuffer is too small to hold the MQTT packet; MQTTBadParameter if invalid parameters are passed; MQTTSuccess otherwise.
Example
uint8_t buffer[ BUFFER_SIZE ];
size_t remainingLength = 0, packetSize = 0;
uint16_t packetId;
fixedBuffer.
size = BUFFER_SIZE;
packetId = getNewPacketId();
&subscriptionList[ 0 ], NUMBER_OF_SUBSCRIPTIONS, &remainingLength, &packetSize
);
assert( packetSize <= BUFFER_SIZE );
&subscriptionList[ 0 ],
NUMBER_OF_SUBSCRIPTIONS,
packetId,
remainingLength,
&fixedBuffer
);
{
}
◆ MQTT_GetPublishPacketSize()
Get the packet size and remaining length of an MQTT PUBLISH packet.
This function must be called before MQTT_SerializePublish in order to get the size of the MQTT PUBLISH packet that is generated from MQTTPublishInfo_t. The size of the MQTTFixedBuffer_t supplied to MQTT_SerializePublish must be at least pPacketSize
. The provided pPublishInfo
is valid for serialization with MQTT_SerializePublish only if this function returns MQTTSuccess. The remaining length returned in pRemainingLength
and the packet size returned in pPacketSize
are valid only if this function returns MQTTSuccess.
- Parameters
-
[in] | pPublishInfo | MQTT PUBLISH packet parameters. |
[out] | pRemainingLength | The Remaining Length of the MQTT PUBLISH packet. |
[out] | pPacketSize | The total size of the MQTT PUBLISH packet. |
- Returns
- MQTTBadParameter if the packet would exceed the size allowed by the MQTT spec or if invalid parameters are passed; MQTTSuccess otherwise.
Example
size_t remainingLength = 0, packetSize = 0;
&publishInfo, &remainingLength, &packetSize
);
{
}
◆ MQTT_SerializePublish()
Serialize an MQTT PUBLISH packet in the given buffer.
This function will serialize complete MQTT PUBLISH packet into the given buffer. If the PUBLISH payload can be sent separately, consider using MQTT_SerializePublishHeader, which will serialize only the PUBLISH header into the buffer.
MQTT_GetPublishPacketSize should be called with pPublishInfo
before invoking this function to get the size of the required MQTTFixedBuffer_t and remainingLength
. The remainingLength
must be the same as returned by MQTT_GetPublishPacketSize. The MQTTFixedBuffer_t must be at least as large as the size returned by MQTT_GetPublishPacketSize.
- Parameters
-
[in] | pPublishInfo | MQTT PUBLISH packet parameters. |
[in] | packetId | packet ID generated by MQTT_GetPacketId. |
[in] | remainingLength | Remaining Length provided by MQTT_GetPublishPacketSize. |
[out] | pFixedBuffer | Buffer for packet serialization. |
- Returns
- MQTTNoMemory if pFixedBuffer is too small to hold the MQTT packet; MQTTBadParameter if invalid parameters are passed; MQTTSuccess otherwise.
Example
uint8_t buffer[ BUFFER_SIZE ];
size_t remainingLength = 0, packetSize = 0;
uint16_t packetId;
fixedBuffer.
size = BUFFER_SIZE;
packetId = 0;
&publishInfo, &remainingLength, &packetSize
);
assert( packetSize <= BUFFER_SIZE );
&publishInfo,
packetId,
remainingLength,
&fixedBuffer
);
{
}
◆ MQTT_SerializePublishHeader()
Serialize an MQTT PUBLISH packet header in the given buffer.
This function serializes PUBLISH header in to the given buffer. The payload for PUBLISH will not be copied over to the buffer. This will help reduce the memory needed for the buffer and avoid an unwanted copy operation of the PUBLISH payload into the buffer. If the payload also would need to be part of the serialized buffer, consider using MQTT_SerializePublish.
MQTT_GetPublishPacketSize should be called with pPublishInfo
before invoking this function to get the size of the required MQTTFixedBuffer_t and remainingLength
. The remainingLength
must be the same as returned by MQTT_GetPublishPacketSize. The MQTTFixedBuffer_t must be at least as large as the size returned by MQTT_GetPublishPacketSize.
- Parameters
-
[in] | pPublishInfo | MQTT PUBLISH packet parameters. |
[in] | packetId | packet ID generated by MQTT_GetPacketId. |
[in] | remainingLength | Remaining Length provided by MQTT_GetPublishPacketSize. |
[out] | pFixedBuffer | Buffer for packet serialization. |
[out] | pHeaderSize | Size of the serialized MQTT PUBLISH header. |
- Returns
- MQTTNoMemory if pFixedBuffer is too small to hold the MQTT packet; MQTTBadParameter if invalid parameters are passed; MQTTSuccess otherwise.
Example
uint8_t buffer[ BUFFER_SIZE ];
size_t remainingLength = 0, packetSize = 0, headerSize = 0;
uint16_t packetId;
int32_t bytesSent;
fixedBuffer.
size = BUFFER_SIZE;
packetId = 0;
&publishInfo, &remainingLength, &packetSize
);
assert( ( packetSize - publishInfo.
payloadLength ) <= BUFFER_SIZE );
&publishInfo,
packetId,
remainingLength,
&fixedBuffer,
&headerSize
);
{
bytesSent = send( mqttSocket, (
void * ) fixedBuffer.
pBuffer, headerSize, 0 );
assert( bytesSent == headerSize );
}
◆ MQTT_SerializeAck()
Serialize an MQTT PUBACK, PUBREC, PUBREL, or PUBCOMP into the given buffer.
- Parameters
-
[out] | pFixedBuffer | Buffer for packet serialization. |
[in] | packetType | Byte of the corresponding packet fixed header per the MQTT spec. |
[in] | packetId | Packet ID of the publish. |
- Returns
- MQTTBadParameter, MQTTNoMemory, or MQTTSuccess.
Example
uint8_t buffer[ BUFFER_SIZE ];
uint16_t packetId;
uint8_t packetType;
fixedBuffer.
size = BUFFER_SIZE;
packetId = publishPacketId;
{
}
◆ MQTT_GetDisconnectPacketSize()
MQTTStatus_t MQTT_GetDisconnectPacketSize |
( |
size_t * |
pPacketSize | ) |
|
Get the size of an MQTT DISCONNECT packet.
- Parameters
-
[out] | pPacketSize | The size of the MQTT DISCONNECT packet. |
- Returns
- MQTTSuccess, or MQTTBadParameter if
pPacketSize
is NULL.
Example
size_t packetSize = 0;
assert( packetSize == 2 );
◆ MQTT_SerializeDisconnect()
Serialize an MQTT DISCONNECT packet into the given buffer.
The input MQTTFixedBuffer_t.size must be at least as large as the size returned by MQTT_GetDisconnectPacketSize.
- Parameters
-
[out] | pFixedBuffer | Buffer for packet serialization. |
- Returns
- MQTTNoMemory if pFixedBuffer is too small to hold the MQTT packet; MQTTBadParameter if invalid parameters are passed; MQTTSuccess otherwise.
Example
uint8_t buffer[ BUFFER_SIZE ];
fixedBuffer.
size = BUFFER_SIZE;
assert( packetSize <= BUFFER_SIZE );
{
}
◆ MQTT_GetPingreqPacketSize()
MQTTStatus_t MQTT_GetPingreqPacketSize |
( |
size_t * |
pPacketSize | ) |
|
Get the size of an MQTT PINGREQ packet.
- Parameters
-
[out] | pPacketSize | The size of the MQTT PINGREQ packet. |
- Returns
- MQTTSuccess or MQTTBadParameter if pPacketSize is NULL.
Example
size_t packetSize = 0;
assert( packetSize == 2 );
◆ MQTT_SerializePingreq()
Serialize an MQTT PINGREQ packet into the given buffer.
The input MQTTFixedBuffer_t.size must be at least as large as the size returned by MQTT_GetPingreqPacketSize.
- Parameters
-
[out] | pFixedBuffer | Buffer for packet serialization. |
- Returns
- MQTTNoMemory if pFixedBuffer is too small to hold the MQTT packet; MQTTBadParameter if invalid parameters are passed; MQTTSuccess otherwise.
Example
uint8_t buffer[ BUFFER_SIZE ];
fixedBuffer.
size = BUFFER_SIZE;
assert( packetSize <= BUFFER_SIZE );
{
}
◆ MQTT_DeserializePublish()
Deserialize an MQTT PUBLISH packet.
- Parameters
-
[in] | pIncomingPacket | MQTTPacketInfo_t containing the buffer. |
[out] | pPacketId | The packet ID obtained from the buffer. |
[out] | pPublishInfo | Struct containing information about the publish. |
- Returns
- MQTTBadParameter, MQTTBadResponse, or MQTTSuccess.
Example
int32_t socket_recv(
void * pBuffer,
size_t bytesToRecv
);
uint16_t packetId;
int32_t bytesRecvd;
uint8_t buffer[ BUFFER_SIZE ];
socket_recv,
&networkContext,
&incomingPacket
);
bytesRecvd = socket_recv(
&networkContext,
( void * ) buffer,
);
{
{
}
}
◆ MQTT_DeserializeAck()
Deserialize an MQTT CONNACK, SUBACK, UNSUBACK, PUBACK, PUBREC, PUBREL, PUBCOMP, or PINGRESP.
- Parameters
-
[in] | pIncomingPacket | MQTTPacketInfo_t containing the buffer. |
[out] | pPacketId | The packet ID of obtained from the buffer. Not used in CONNACK or PINGRESP. |
[out] | pSessionPresent | Boolean flag from a CONNACK indicating present session. |
- Returns
- MQTTBadParameter, MQTTBadResponse, MQTTServerRefused, or MQTTSuccess.
Example
uint16_t packetId;
bool sessionPresent;
receiveIncomingPacket( &incomingPacket );
{
{
}
}
◆ MQTT_GetIncomingPacketTypeAndLength()
Extract the MQTT packet type and length from incoming packet.
This function must be called for every incoming packet to retrieve the MQTTPacketInfo_t.type and MQTTPacketInfo_t.remainingLength. A MQTTPacketInfo_t is not valid until this routine has been invoked.
- Parameters
-
[in] | readFunc | Transport layer read function pointer. |
[in] | pNetworkContext | The network context pointer provided by the application. |
[out] | pIncomingPacket | Pointer to MQTTPacketInfo_t structure. This is where type, remaining length and packet identifier are stored. |
- Returns
- MQTTSuccess on successful extraction of type and length, MQTTBadParameter if
pIncomingPacket
is invalid, MQTTRecvFailed on transport receive failure, MQTTBadResponse if an invalid packet is read, and MQTTNoDataAvailable if there is nothing to read.
Example
int32_t socket_recv(
void * pBuffer,
size_t bytesToRecv
);
int32_t bytesRecvd;
uint8_t buffer[ BUFFER_SIZE ];
do{
socket_recv,
&networkContext,
&incomingPacket
);
bytesRecvd = socket_recv(
&networkContext,
( void * ) buffer,
);
MQTT SUBSCRIBE packet parameters.
Definition: core_mqtt_serializer.h:195
MQTTStatus_t MQTT_GetPingreqPacketSize(size_t *pPacketSize)
Get the size of an MQTT PINGREQ packet.
Definition: core_mqtt_serializer.c:2165
uint8_t * pRemainingData
Remaining serialized data in the MQTT packet.
Definition: core_mqtt_serializer.h:268
uint16_t topicNameLength
Length of topic name.
Definition: core_mqtt_serializer.h:241
MQTT CONNECT packet parameters.
Definition: core_mqtt_serializer.h:148
MQTTStatus_t MQTT_GetPublishPacketSize(const MQTTPublishInfo_t *pPublishInfo, size_t *pRemainingLength, size_t *pPacketSize)
Get the packet size and remaining length of an MQTT PUBLISH packet.
Definition: core_mqtt_serializer.c:1838
MQTTStatus_t MQTT_SerializeDisconnect(const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT DISCONNECT packet into the given buffer.
Definition: core_mqtt_serializer.c:2122
uint8_t * pBuffer
Pointer to buffer.
Definition: core_mqtt_serializer.h:139
MQTTStatus_t MQTT_SerializeAck(const MQTTFixedBuffer_t *pFixedBuffer, uint8_t packetType, uint16_t packetId)
Serialize an MQTT PUBACK, PUBREC, PUBREL, or PUBCOMP into the given buffer.
Definition: core_mqtt_serializer.c:2047
#define MQTT_PUBLISH_ACK_PACKET_SIZE
The size of MQTT PUBACK, PUBREC, PUBREL, and PUBCOMP packets, per MQTT spec.
Definition: core_mqtt_serializer.h:91
#define MQTT_PACKET_TYPE_PUBACK
PUBACK (bidirectional).
Definition: core_mqtt_serializer.h:74
@ MQTTNoDataAvailable
Definition: core_mqtt_serializer.h:113
MQTT incoming packet parameters.
Definition: core_mqtt_serializer.h:259
const char * pTopicFilter
Topic filter to subscribe to.
Definition: core_mqtt_serializer.h:204
struct NetworkContext NetworkContext_t
The NetworkContext is an incomplete type. An implementation of this interface must define struct Netw...
Definition: transport_interface.h:155
Buffer passed to MQTT library.
Definition: core_mqtt_serializer.h:138
const void * pPayload
Message payload.
Definition: core_mqtt_serializer.h:246
size_t size
Size of buffer.
Definition: core_mqtt_serializer.h:140
MQTTStatus_t MQTT_SerializePingreq(const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT PINGREQ packet into the given buffer.
Definition: core_mqtt_serializer.c:2185
MQTTStatus_t MQTT_DeserializeAck(const MQTTPacketInfo_t *pIncomingPacket, uint16_t *pPacketId, bool *pSessionPresent)
Deserialize an MQTT CONNACK, SUBACK, UNSUBACK, PUBACK, PUBREC, PUBREL, PUBCOMP, or PINGRESP.
Definition: core_mqtt_serializer.c:2265
MQTTStatus_t MQTT_GetConnectPacketSize(const MQTTConnectInfo_t *pConnectInfo, const MQTTPublishInfo_t *pWillInfo, size_t *pRemainingLength, size_t *pPacketSize)
Get the size and Remaining Length of an MQTT CONNECT packet.
Definition: core_mqtt_serializer.c:1485
MQTTStatus_t MQTT_GetSubscribePacketSize(const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, size_t *pRemainingLength, size_t *pPacketSize)
Get packet size and Remaining Length of an MQTT SUBSCRIBE packet.
Definition: core_mqtt_serializer.c:1643
MQTTStatus_t
Return codes from MQTT functions.
Definition: core_mqtt_serializer.h:105
#define MQTT_PACKET_TYPE_PUBLISH
PUBLISH (bidirectional).
Definition: core_mqtt_serializer.h:73
MQTTStatus_t MQTT_SerializeConnect(const MQTTConnectInfo_t *pConnectInfo, const MQTTPublishInfo_t *pWillInfo, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT CONNECT packet in the given fixed buffer pFixedBuffer.
Definition: core_mqtt_serializer.c:1585
MQTTStatus_t MQTT_SerializeUnsubscribe(const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, uint16_t packetId, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT UNSUBSCRIBE packet in the given buffer.
Definition: core_mqtt_serializer.c:1787
MQTTStatus_t MQTT_GetUnsubscribePacketSize(const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, size_t *pRemainingLength, size_t *pPacketSize)
Get packet size and Remaining Length of an MQTT UNSUBSCRIBE packet.
Definition: core_mqtt_serializer.c:1742
const char * pTopicName
Topic name on which the message is published.
Definition: core_mqtt_serializer.h:236
MQTTStatus_t MQTT_DeserializePublish(const MQTTPacketInfo_t *pIncomingPacket, uint16_t *pPacketId, MQTTPublishInfo_t *pPublishInfo)
Deserialize an MQTT PUBLISH packet.
Definition: core_mqtt_serializer.c:2228
MQTTStatus_t MQTT_SerializePublishHeader(const MQTTPublishInfo_t *pPublishInfo, uint16_t packetId, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer, size_t *pHeaderSize)
Serialize an MQTT PUBLISH packet header in the given buffer.
Definition: core_mqtt_serializer.c:1964
MQTTStatus_t MQTT_SerializePublish(const MQTTPublishInfo_t *pPublishInfo, uint16_t packetId, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT PUBLISH packet in the given buffer.
Definition: core_mqtt_serializer.c:1879
MQTTStatus_t MQTT_GetIncomingPacketTypeAndLength(TransportRecv_t readFunc, NetworkContext_t *pNetworkContext, MQTTPacketInfo_t *pIncomingPacket)
Extract the MQTT packet type and length from incoming packet.
Definition: core_mqtt_serializer.c:2341
uint16_t topicFilterLength
Length of subscription topic filter.
Definition: core_mqtt_serializer.h:209
MQTTQoS_t qos
Quality of Service for subscription.
Definition: core_mqtt_serializer.h:199
uint8_t type
Type of incoming MQTT packet.
Definition: core_mqtt_serializer.h:263
MQTTQoS_t qos
Quality of Service for message.
Definition: core_mqtt_serializer.h:221
@ MQTTSuccess
Definition: core_mqtt_serializer.h:106
MQTT PUBLISH packet parameters.
Definition: core_mqtt_serializer.h:217
MQTTStatus_t MQTT_GetDisconnectPacketSize(size_t *pPacketSize)
Get the size of an MQTT DISCONNECT packet.
Definition: core_mqtt_serializer.c:2102
size_t remainingLength
Length of remaining serialized data.
Definition: core_mqtt_serializer.h:273
size_t payloadLength
Message payload length.
Definition: core_mqtt_serializer.h:251
@ MQTTQoS0
Definition: core_mqtt_serializer.h:125
MQTTStatus_t MQTT_SerializeSubscribe(const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, uint16_t packetId, size_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT SUBSCRIBE packet in the given buffer.
Definition: core_mqtt_serializer.c:1688