-
Notifications
You must be signed in to change notification settings - Fork 53
/
constants.py
126 lines (106 loc) · 2.75 KB
/
constants.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import enum
import logging
# Message types
class MQTTCommands(enum.IntEnum):
CONNECT = 0x10
CONNACK = 0x20
PUBLISH = 0x30
PUBACK = 0x40
PUBREC = 0x50
PUBREL = 0x60
PUBCOMP = 0x70
SUBSCRIBE = 0x80
SUBACK = 0x90
UNSUBSCRIBE = 0xA0
UNSUBACK = 0xB0
PINGREQ = 0xC0
PINGRESP = 0xD0
DISCONNECT = 0xE0
# CONNACK codes
CONNACK_ACCEPTED = 0
CONNACK_REFUSED_PROTOCOL_VERSION = 1
CONNACK_REFUSED_IDENTIFIER_REJECTED = 2
CONNACK_REFUSED_SERVER_UNAVAILABLE = 3
CONNACK_REFUSED_BAD_USERNAME_PASSWORD = 4
CONNACK_REFUSED_NOT_AUTHORIZED = 5
# Error values
MQTT_ERR_AGAIN = -1
MQTT_ERR_SUCCESS = 0
MQTT_ERR_NOMEM = 1
MQTT_ERR_PROTOCOL = 2
MQTT_ERR_INVAL = 3
MQTT_ERR_NO_CONN = 4
MQTT_ERR_CONN_REFUSED = 5
MQTT_ERR_NOT_FOUND = 6
MQTT_ERR_CONN_LOST = 7
MQTT_ERR_TLS = 8
MQTT_ERR_PAYLOAD_SIZE = 9
MQTT_ERR_NOT_SUPPORTED = 10
MQTT_ERR_AUTH = 11
MQTT_ERR_ACL_DENIED = 12
MQTT_ERR_UNKNOWN = 13
MQTT_ERR_ERRNO = 14
MQTT_ERR_QUEUE_SIZE = 15
# MQTT protocol versions
MQTTv311 = 4
MQTTv50 = 5
class PubAckReasonCode(enum.IntEnum):
SUCCESS = 0
NO_MATCHING_SUBSCRIBERS = 16
UNSPECIFIED_ERROR = 128
IMPLEMENTATION_SPECIFIC_ERROR = 131
NOT_AUTHORIZED = 135
TOPIC_NAME_INVALID = 144
PACKET_IDENTIFIER_IN_USE = 145
QUOTA_EXCEEDED = 151
PAYLOAD_FORMAT_INVALID = 153
class PubRecReasonCode(enum.IntEnum):
SUCCESS = 0
NO_MATCHING_SUBSCRIBERS = 16
UNSPECIFIED_ERROR = 128
IMPLEMENTATION_SPECIFIC_ERROR = 131
NOT_AUTHORIZED = 135
TOPIC_NAME_INVALID = 144
PACKET_IDENTIFIER_IN_USE = 145
QUOTA_EXCEEDED = 151
PAYLOAD_FORMAT_INVALID = 153
class ConnAckReasonCode(enum.IntEnum):
SUCCESS = 0
UNSPECIFIED_ERROR = 128
MALFORMED_PACKET = 129
PROTOCOL_ERROR = 130
IMPLEMENTATION_SPECIFIC_ERROR = 131
UNSUPPORTED_PROTOCOL_VERSION = 132
CLIENT_IDENTIFIER_NOT_VALID = 133
BAD_USERNAME_OR_PASSWORD = 134
NOT_AUTHORIZED = 135
SERVER_UNAVAILABLE = 136
SERVER_BUSY = 137
BANNED = 138
BAD_AUTHENTICATION_METHOD = 140
TOPIC_NAME_INVALID = 144
PACKET_TOO_LARGE = 149
PAYLOAD_FORMAT_INVALID = 153
RETAIN_NOT_SUPPORTED = 154
QOS_NOT_SUPPORTED = 155
USE_ANOTHER_SERVER = 156
SERVER_MOVED = 157
CONNECTION_RATE_EXCEEDED = 159
class SubAckReasonCode(enum.IntEnum):
QOS0 = 0
QOS1 = 1
QOS2 = 2
UNSPECIFIED_ERROR = 128
IMPLEMENTATION_SPECIFIC_ERROR = 131
NOT_AUTHORIZED = 135
TOPIC_FILTER_INVALID = 143
PACKET_IDENTIFIER_IN_USE = 145
QUOTA_EXCEEDED = 151
SHARED_SUBSCRIPTIONS_NOT_SUPPORTED = 158
SUBSCRIPTION_IDENTIFIERS_NOT_SUPPORTED = 161
WILDCARD_SUBSCRIPTIONS_NOT_SUPPORTED = 162
UNLIMITED_RECONNECTS = -1
DEFAULT_CONFIG = {
'reconnect_delay': 6,
'reconnect_retries': UNLIMITED_RECONNECTS,
}