NetBurner 3.5.6
PDF Version
msg_types.h
1#ifndef __NBMQTT_MSG_TYPES_H
2#define __NBMQTT_MSG_TYPES_H
3/*NB_REVISION*/
4
5/*NB_COPYRIGHT*/
6#include <predef.h>
7#include <basictypes.h>
8#include <buffers.h>
9
10#define MQTT_DEFAULT_PORT (1883)
11#define MQTT_DEFAULT_SECURE_PORT (8883)
12
13namespace MQTT {
14namespace Pkt {
15
16typedef enum {
17 eType_None = 0x0,
18 eType_Connect = 0x1,
19 eType_ConnAck = 0x2,
20 eType_Publish = 0x3,
21 eType_PubAck = 0x4,
22 eType_PubRec = 0x5,
23 eType_PubRelease = 0x6,
24 eType_PubComp = 0x7,
25 eType_Subscribe = 0x8,
26 eType_SubAck = 0x9,
27 eType_UnSubscribe = 0xA,
28 eType_UnSubAck = 0xB,
29 eType_PingReq = 0xC,
30 eType_PingResp = 0xD,
31 eType_DisConn = 0xE,
32 eType_Auth = 0xF
33} eType_t;
34
35typedef enum {
36 eFlag_Retain = 0x01,
37 eFlag_QoS_AtLeastOnce = 0x02,
38 eFlag_QoS_ExactlyOnce = 0x04,
39 eFlag_Duplicate = 0x08,
40
41 eFlag_PubRel = 0x02,
42 eFlag_Subscribe = 0x02,
43 eFlag_UnSubscribe = 0x02,
44} eFlag_t;
45
46typedef enum {
47 ePropType_None = 0x00,
48 ePropType_PayFmt = 0x01,
49 ePropType_MsgExpIntv = 0x02,
50 ePropType_ContentType = 0x03,
51 ePropType_RespTopic = 0x08,
52 ePropType_CorrData = 0x09,
53 ePropType_SubId = 0x0B,
54 ePropType_SessExpIntv = 0x11,
55 ePropType_AsgnClientId = 0x12,
56 ePropType_SKeepAlive = 0x13,
57 ePropType_AuthMethod = 0x15,
58 ePropType_AuthData = 0x16,
59 ePropType_ReqProbInfo = 0x17,
60 ePropType_WillDlyIntv = 0x18,
61 ePropType_ReqRespInfo = 0x19,
62 ePropType_RespInfo = 0x1A,
63 ePropType_ServerRef = 0x1C,
64 ePropType_ReasonStr = 0x1F,
65 ePropType_ReceiveMax = 0x21,
66 ePropType_TopicAliasMax = 0x22,
67 ePropType_TopicAlias = 0x23,
68 ePropType_MaximumQoS = 0x24,
69 ePropType_RetainAvail = 0x25,
70 ePropType_UserProperty = 0x26,
71 ePropType_MaxPktSiz = 0x27,
72 ePropType_WildSubAvail = 0x28,
73 ePropType_SubIdAvail = 0x29,
74 ePropType_SharedSubAvail = 0x2A,
75
76 ePropType_ERROR = 0xFF,
77 ePropType_Unknown = 0xFF,
78 ePropType_MAXIMUM = 0xFF
79} eProperty_t;
80
81typedef enum {
82 eFieldType_None,
83
84 eFieldType_Byte,
85 eFieldType_Short,
86 eFieldType_Long,
87 eFieldType_VarInt,
88 eFieldType_U8Str,
89 eFieldType_U8Str_Pair,
90 eFieldType_Binary,
91
92 ePropField_None = eFieldType_None,
93 ePropField_PayFmt = eFieldType_Byte,
94 ePropField_MsgExpIntv = eFieldType_Long,
95 ePropField_ContentType = eFieldType_U8Str,
96 ePropField_RespTopic = eFieldType_U8Str,
97 ePropField_CorrData = eFieldType_Binary,
98 ePropField_SubId = eFieldType_VarInt,
99 ePropField_SessExpIntv = eFieldType_Long,
100 ePropField_AsgnClientId = eFieldType_U8Str,
101 ePropField_SKeepAlive = eFieldType_Short,
102 ePropField_AuthMethod = eFieldType_U8Str,
103 ePropField_AuthData = eFieldType_Binary,
104 ePropField_ReqProbInfo = eFieldType_Byte,
105 ePropField_WillDlyIntv = eFieldType_Long,
106 ePropField_ReqRespInfo = eFieldType_Byte,
107 ePropField_RespInfo = eFieldType_U8Str,
108 ePropField_ServerRef = eFieldType_U8Str,
109 ePropField_ReasonStr = eFieldType_U8Str,
110 ePropField_ReceiveMax = eFieldType_Short,
111 ePropField_TopicAliasMax = eFieldType_Short,
112 ePropField_TopicAlias = eFieldType_Short,
113 ePropField_MaximumQoS = eFieldType_Byte,
114 ePropField_RetainAvail = eFieldType_Byte,
115 ePropField_UserProperty = eFieldType_U8Str_Pair,
116 ePropField_MaxPktSiz = eFieldType_Long,
117 ePropField_WildSubAvail = eFieldType_Byte,
118 ePropField_SubIdAvail = eFieldType_Byte,
119 ePropField_SharedSubAvail = eFieldType_Byte,
120 ePropField_Unknown = eFieldType_None
121} eField_t;
122
123typedef enum {
124 eReason_Success = 0x00,
125 eReason_NormalDisconn = 0x00,
126 eReason_Grant_QoS_AtMostOnce = 0x00,
127 eReason_Grant_QoS_AtLeastOnce = 0x01,
128 eReason_Grant_QoS_ExactlyOnce = 0x02,
129 eReason_Disconn_w_Will = 0x04,
130 eReason_NoMatch_Subscribers = 0x10,
131 eReason_NoSubscriptions_Existed = 0x11,
132 eReason_Cont_Auth = 0x18,
133 eReason_ReAuth = 0x19,
134 eReason_Error_Unspecified = 0x80,
135 eReason_Error_MalformedPkt = 0x81,
136 eReason_Error_Protocol = 0x82,
137 eReason_Error_Implementation = 0x83,
138 eReason_Error_UnsupportedProtoVer = 0x84,
139 eReason_Error_ClientIdInvalid = 0x85,
140 eReason_Error_UserPassword = 0x86,
141 eReason_Error_NotAuthorized = 0x87,
142 eReason_Error_ServerUnavail = 0x88,
143 eReason_Error_ServerBusy = 0x89,
144 eReason_Error_Banned = 0x8A,
145 eReason_Error_ServerShutdown = 0x8B,
146 eReason_Error_BadAuthMethod = 0x8C,
147 eReason_Error_KATimeout = 0x8D,
148 eReason_Error_SessTakeover = 0x8E,
149 eReason_Error_FilterInvalid = 0x8F,
150 eReason_Error_NameInvalid = 0x90,
151 eReason_Error_PktId_InUse = 0x91,
152 eReason_Error_PktId_NotFound = 0x92,
153 eReason_Error_RcvMax_Exceeded = 0x93,
154 eReason_Error_TopicAlias_Invalid = 0x94,
155 eReason_Error_TooLarge = 0x95,
156 eReason_Error_MsgRate = 0x96,
157 eReason_Error_Quota = 0x97,
158 eReason_Error_Admin = 0x98,
159 eReason_Error_PayFmt_Invalid = 0x99,
160 eReason_Error_NotSupported_Retain = 0x9A,
161 eReason_Error_NotSupported_QoS = 0x9B,
162 eReason_Error_UseOther = 0x9C,
163 eReason_Error_ServerMoved = 0x9D,
164 eReason_Error_NotSupported_SharedSubs = 0x9E,
165 eReason_Error_ConnRate = 0x9F,
166 eReason_Error_MaxConnTime = 0xA0,
167 eReason_Error_NotSupported_SubIds = 0xA1,
168 eReason_Error_NotSupported_WildSubs = 0xA2,
169
170 eReason_Error_Transport_Error = 0xFE,
171 eReason_Unknown = 0xFF,
172 eReason_MAXIMUM = 0xFF
173
174} eReasonCode_t;
175
176typedef enum {
177 eConnFlag_RESERVED = 0x01,
178 eConnFlag_CleanStart = 0x02,
179 eConnFlag_Will = 0x04,
180 eConnFlag_Will_QoS_AtLeastOnce = 0x08,
181 eConnFlag_Will_QoS_ExactlyOnce = 0x10,
182 eConnFlag_Will_Retain = 0x20,
183 eConnFlag_Password = 0x40,
184 eConnFlag_Username = 0x80,
185} eConnFlag_t;
186
187typedef enum {
188 eSubOpt_QoS_AtLeastOnce = 0x01,
189 eSubOpt_QoS_ExactlyOnce = 0x02,
190 eSubOpt_NoLocal = 0x04,
191 eSubOpt_AsPublished = 0x08,
192 eSubOpt_SendRetained_IfNew = 0x10,
193 eSubOpt_SendRetained_Never = 0x20,
194 eSubOpt_RESERVED_0 = 0x40,
195 eSubOpt_RESERVED_1 = 0x80,
196} eSubscribeOption_t;
197
198typedef enum {
199 eConnAckFlag_SessPresent = 0x01,
200} eConnAckFlag_t;
201
202struct mqtt_str_t {
203 beuint16_t len;
204 char pData[];
205};
206}
207}
208#endif /* ----- #ifndef __NBMQTT_MSG_TYPES_H ----- */
NetBurner Buffers API.
MQTT Namespace.
Definition mqtt.h:81