A small footprint MQTT library

Dependents:   STM32F746_iothub_client_sample_mqtt FXOS8700CQ_To_Azure_IoT f767zi_mqtt FXOS8700CQ_To_Azure_IoT ... more

Committer:
AzureIoTClient
Date:
Thu Oct 04 09:16:34 2018 -0700
Revision:
30:712bcbf21afa
Parent:
29:7bb0aae34648
1.2.10

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Azure.IoT Build 0:ef4901974abc 1 // Copyright (c) Microsoft. All rights reserved.
Azure.IoT Build 0:ef4901974abc 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
Azure.IoT Build 0:ef4901974abc 3
Azure.IoT Build 0:ef4901974abc 4 #ifndef MQTTCONST_H
Azure.IoT Build 0:ef4901974abc 5 #define MQTTCONST_H
Azure.IoT Build 0:ef4901974abc 6
AzureIoTClient 29:7bb0aae34648 7 #include "azure_c_shared_utility/crt_abstractions.h"
AzureIoTClient 29:7bb0aae34648 8
Azure.IoT Build 0:ef4901974abc 9 #ifdef __cplusplus
Azure.IoT Build 0:ef4901974abc 10 #include <cstddef>
Azure.IoT Build 0:ef4901974abc 11 #include <cstdint>
Azure.IoT Build 0:ef4901974abc 12 extern "C" {
Azure.IoT Build 0:ef4901974abc 13 #else
Azure.IoT Build 0:ef4901974abc 14 #include <stddef.h>
Azure.IoT Build 0:ef4901974abc 15 #include <stdint.h>
Azure.IoT Build 0:ef4901974abc 16 #endif /* __cplusplus */
Azure.IoT Build 0:ef4901974abc 17
AzureIoTClient 2:f3140ae5c35c 18 #define CONTROL_PACKET_TYPE_VALUES \
AzureIoTClient 2:f3140ae5c35c 19 CONNECT_TYPE = 0x10, \
AzureIoTClient 2:f3140ae5c35c 20 CONNACK_TYPE = 0x20, \
AzureIoTClient 2:f3140ae5c35c 21 PUBLISH_TYPE = 0x30, \
AzureIoTClient 2:f3140ae5c35c 22 PUBACK_TYPE = 0x40, \
AzureIoTClient 2:f3140ae5c35c 23 PUBREC_TYPE = 0x50, \
AzureIoTClient 2:f3140ae5c35c 24 PUBREL_TYPE = 0x60, \
AzureIoTClient 2:f3140ae5c35c 25 PUBCOMP_TYPE = 0x70, \
AzureIoTClient 2:f3140ae5c35c 26 SUBSCRIBE_TYPE = 0x80, \
AzureIoTClient 2:f3140ae5c35c 27 SUBACK_TYPE = 0x90, \
AzureIoTClient 2:f3140ae5c35c 28 UNSUBSCRIBE_TYPE = 0xA0, \
AzureIoTClient 2:f3140ae5c35c 29 UNSUBACK_TYPE = 0xB0, \
AzureIoTClient 2:f3140ae5c35c 30 PINGREQ_TYPE = 0xC0, \
AzureIoTClient 2:f3140ae5c35c 31 PINGRESP_TYPE = 0xD0, \
AzureIoTClient 2:f3140ae5c35c 32 DISCONNECT_TYPE = 0xE0, \
AzureIoTClient 2:f3140ae5c35c 33 PACKET_TYPE_ERROR, \
Azure.IoT Build 0:ef4901974abc 34 UNKNOWN_TYPE
AzureIoTClient 2:f3140ae5c35c 35
AzureIoTClient 2:f3140ae5c35c 36 DEFINE_ENUM(CONTROL_PACKET_TYPE, CONTROL_PACKET_TYPE_VALUES)
Azure.IoT Build 0:ef4901974abc 37
AzureIoTClient 2:f3140ae5c35c 38 #define QOS_VALUE_VALUES \
AzureIoTClient 2:f3140ae5c35c 39 DELIVER_AT_MOST_ONCE = 0x00, \
AzureIoTClient 2:f3140ae5c35c 40 DELIVER_AT_LEAST_ONCE = 0x01, \
AzureIoTClient 2:f3140ae5c35c 41 DELIVER_EXACTLY_ONCE = 0x02, \
Azure.IoT Build 0:ef4901974abc 42 DELIVER_FAILURE = 0x80
AzureIoTClient 2:f3140ae5c35c 43
AzureIoTClient 2:f3140ae5c35c 44 DEFINE_ENUM(QOS_VALUE, QOS_VALUE_VALUES)
Azure.IoT Build 0:ef4901974abc 45
Azure.IoT Build 0:ef4901974abc 46 typedef struct APP_PAYLOAD_TAG
Azure.IoT Build 0:ef4901974abc 47 {
Azure.IoT Build 0:ef4901974abc 48 uint8_t* message;
Azure.IoT Build 0:ef4901974abc 49 size_t length;
Azure.IoT Build 0:ef4901974abc 50 } APP_PAYLOAD;
Azure.IoT Build 0:ef4901974abc 51
Azure.IoT Build 0:ef4901974abc 52 typedef struct MQTT_CLIENT_OPTIONS_TAG
Azure.IoT Build 0:ef4901974abc 53 {
Azure.IoT Build 0:ef4901974abc 54 char* clientId;
Azure.IoT Build 0:ef4901974abc 55 char* willTopic;
Azure.IoT Build 0:ef4901974abc 56 char* willMessage;
Azure.IoT Build 0:ef4901974abc 57 char* username;
Azure.IoT Build 0:ef4901974abc 58 char* password;
AzureIoTClient 5:34779607059c 59 uint16_t keepAliveInterval;
Azure.IoT Build 0:ef4901974abc 60 bool messageRetain;
Azure.IoT Build 0:ef4901974abc 61 bool useCleanSession;
Azure.IoT Build 0:ef4901974abc 62 QOS_VALUE qualityOfServiceValue;
Azure.IoT Build 0:ef4901974abc 63 bool log_trace;
Azure.IoT Build 0:ef4901974abc 64 } MQTT_CLIENT_OPTIONS;
Azure.IoT Build 0:ef4901974abc 65
Azure.IoT Build 0:ef4901974abc 66 typedef enum CONNECT_RETURN_CODE_TAG
Azure.IoT Build 0:ef4901974abc 67 {
Azure.IoT Build 0:ef4901974abc 68 CONNECTION_ACCEPTED = 0x00,
Azure.IoT Build 0:ef4901974abc 69 CONN_REFUSED_UNACCEPTABLE_VERSION = 0x01,
Azure.IoT Build 0:ef4901974abc 70 CONN_REFUSED_ID_REJECTED = 0x02,
Azure.IoT Build 0:ef4901974abc 71 CONN_REFUSED_SERVER_UNAVAIL = 0x03,
Azure.IoT Build 0:ef4901974abc 72 CONN_REFUSED_BAD_USERNAME_PASSWORD = 0x04,
Azure.IoT Build 0:ef4901974abc 73 CONN_REFUSED_NOT_AUTHORIZED = 0x05,
Azure.IoT Build 0:ef4901974abc 74 CONN_REFUSED_UNKNOWN
Azure.IoT Build 0:ef4901974abc 75 } CONNECT_RETURN_CODE;
Azure.IoT Build 0:ef4901974abc 76
Azure.IoT Build 0:ef4901974abc 77 typedef struct CONNECT_ACK_TAG
Azure.IoT Build 0:ef4901974abc 78 {
Azure.IoT Build 0:ef4901974abc 79 bool isSessionPresent;
Azure.IoT Build 0:ef4901974abc 80 CONNECT_RETURN_CODE returnCode;
Azure.IoT Build 0:ef4901974abc 81 } CONNECT_ACK;
Azure.IoT Build 0:ef4901974abc 82
Azure.IoT Build 0:ef4901974abc 83 typedef struct SUBSCRIBE_PAYLOAD_TAG
Azure.IoT Build 0:ef4901974abc 84 {
Azure.IoT Build 0:ef4901974abc 85 const char* subscribeTopic;
Azure.IoT Build 0:ef4901974abc 86 QOS_VALUE qosReturn;
Azure.IoT Build 0:ef4901974abc 87 } SUBSCRIBE_PAYLOAD;
Azure.IoT Build 0:ef4901974abc 88
Azure.IoT Build 0:ef4901974abc 89 typedef struct SUBSCRIBE_ACK_TAG
Azure.IoT Build 0:ef4901974abc 90 {
Azure.IoT Build 0:ef4901974abc 91 uint16_t packetId;
Azure.IoT Build 0:ef4901974abc 92 QOS_VALUE* qosReturn;
Azure.IoT Build 0:ef4901974abc 93 size_t qosCount;
Azure.IoT Build 0:ef4901974abc 94 } SUBSCRIBE_ACK;
Azure.IoT Build 0:ef4901974abc 95
Azure.IoT Build 0:ef4901974abc 96 typedef struct UNSUBSCRIBE_ACK_TAG
Azure.IoT Build 0:ef4901974abc 97 {
Azure.IoT Build 0:ef4901974abc 98 uint16_t packetId;
Azure.IoT Build 0:ef4901974abc 99 } UNSUBSCRIBE_ACK;
Azure.IoT Build 0:ef4901974abc 100
Azure.IoT Build 0:ef4901974abc 101 typedef struct PUBLISH_ACK_TAG
Azure.IoT Build 0:ef4901974abc 102 {
Azure.IoT Build 0:ef4901974abc 103 uint16_t packetId;
Azure.IoT Build 0:ef4901974abc 104 } PUBLISH_ACK;
Azure.IoT Build 0:ef4901974abc 105
Azure.IoT Build 0:ef4901974abc 106 #ifdef __cplusplus
Azure.IoT Build 0:ef4901974abc 107 }
Azure.IoT Build 0:ef4901974abc 108 #endif /* __cplusplus */
Azure.IoT Build 0:ef4901974abc 109
AzureIoTClient 28:35eea447689a 110 #endif // MQTTCONST_H