AllWize Library
RC1701HP.h
Go to the documentation of this file.
1 
6 // Module signature
7 #define MODULE_SIGNATURE "RC1701"
8 
9 // Module types
10 enum {
11 
13 
17 
19 
20 };
21 
22 // Special characters
23 #define END_OF_RESPONSE '>'
24 #define START_BYTE 0x68
25 #define STOP_BYTE 0x16
26 
27 // Special command keys
28 #define CMD_ENTER_CONFIG (char) 0x00
29 #define CMD_EXIT_CONFIG (char) 0x58
30 #define CMD_NO_RESPONSE (char) 0xFB
31 #define CMD_KEY_CHALLENGE (char) 0xFC
32 #define CMD_IDLE_ENABLE_RF (char) 0xFD
33 #define CMD_IDLE_DISABLE_RF (char) 0xFF
34 #define CMD_AWAKE (char) 0xFF // Deprecated
35 #define CMD_EXIT_MEMORY (char) 0xFF // Deprecated
36 
37 // Command keys
38 #define CMD_AUTO_MESSAGE_FLAGS 'A'
39 #define CMD_BIND 'B'
40 #define CMD_CHANNEL 'C'
41 #define CMD_PING 'D'
42 #define CMD_ENCRYPT 'E'
43 #define CMD_CONTROL_FIELD 'F'
44 #define CMD_MBUS_MODE 'G'
45 #define CMD_INSTALL_MODE 'I'
46 #define CMD_KEY_REGISTER 'K'
47 #define CMD_LIST_BINDING 'L'
48 #define CMD_WRITE_MEMORY 'M'
49 #define CMD_ACCESS_NUMBER 'N'
50 #define CMD_READ_AUTO_MESSAGE_FLAGS 'O'
51 #define CMD_RF_POWER 'P'
52 #define CMD_QUALITY 'Q'
53 #define CMD_READ_MAILBOX 'R'
54 #define CMD_RSSI 'S'
55 #define CMD_DESTINATION 'T'
56 #define CMD_TEMPERATURE 'U'
57 #define CMD_VOLTAGE 'V'
58 #define CMD_WRITE_MAILBOX 'W'
59 #define CMD_READ_MEMORY 'Y'
60 #define CMD_SLEEP 'Z'
61 #define CMD_RSSI_CONTINUOUS 's'
62 #define CMD_TEST_MODE_0 '0'
63 
64 // Memory slots
65 // These are abstract memory slots
66 // that are mapped to actual addresses in the MEM_ADDRESS array
67 enum {
68 
76 
82 
88 
94 
100 
106 
109 
111 
112 };
113 
114 // MBUS4
115 static const uint8_t MEM_ADDRESS[MODULE_MAX-1][MEM_MAX_SLOTS] = {
116 
117  /* MODULE_MBUS4 */
118  {
119  0x00, 0xFF, 0x01, 0x02, 0xFF, 0x03, 0x04, 0x05, 0xFF, 0x0A,
120  0x10, 0x12, 0x16, 0x19, 0x1B, 0x1F, 0x20, 0x30, 0x35, 0x36,
121  0x37, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x61,
122  0x78, 0xFF
123  },
124 
125  /* MODULE_OSP */
126  {
127  0x00, 0xFF, 0x01, 0x02, 0xFF, 0x03, 0x04, 0x05, 0xFF, 0x0A,
128  0x10, 0x12, 0x16, 0x19, 0x1B, 0x1F, 0x20, 0x30, 0x35, 0x36,
129  0x37, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x89,
130  0xA9, 0xFF // Is this 0x9A?
131  },
132 
133  /* MODULE_WIZE */
134  {
135  0x00, 0x01, 0x04, 0x02, 0x03, 0x05, 0x06, 0x07, 0x08, 0xFF,
136  0x10, 0x12, 0x16, 0x19, 0x1B, 0x1F, 0x20, 0x30, 0x35, 0x36,
137  0x37, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x89,
138  0x9A, 0x41
139  }
140 
141 };
142 
143 // Channels
144 #define CHANNEL_100 1
145 #define CHANNEL_110 2
146 #define CHANNEL_120 3
147 #define CHANNEL_130 4
148 #define CHANNEL_140 5
149 #define CHANNEL_150 6
150 
151 #define CHANNEL_01 1
152 #define CHANNEL_02 2
153 #define CHANNEL_03 3
154 #define CHANNEL_04 4
155 #define CHANNEL_05 5
156 #define CHANNEL_06 6
157 #define CHANNEL_07 7
158 #define CHANNEL_08 8
159 #define CHANNEL_09 9
160 #define CHANNEL_10 10
161 #define CHANNEL_11 11
162 #define CHANNEL_12 12
163 #define CHANNEL_13 13
164 #define CHANNEL_14 14
165 #define CHANNEL_15 15
166 #define CHANNEL_16 16
167 #define CHANNEL_17 17
168 #define CHANNEL_18 18
169 #define CHANNEL_19 19
170 #define CHANNEL_20 20
171 #define CHANNEL_21 21
172 #define CHANNEL_22 22
173 #define CHANNEL_23 23
174 #define CHANNEL_24 24
175 #define CHANNEL_25 25
176 #define CHANNEL_26 26
177 #define CHANNEL_27 27
178 #define CHANNEL_28 28
179 #define CHANNEL_29 29
180 #define CHANNEL_30 30
181 #define CHANNEL_31 31
182 #define CHANNEL_32 32
183 #define CHANNEL_33 33
184 #define CHANNEL_34 34
185 #define CHANNEL_35 35
186 #define CHANNEL_36 36
187 #define CHANNEL_37 37
188 #define CHANNEL_38 38
189 #define CHANNEL_39 39
190 #define CHANNEL_40 40
191 #define CHANNEL_41 41
192 
193 // Data rates
194 #define DATARATE_2400bps 0x01 // Only OSP & WIZE
195 #define DATARATE_4800bps 0x02 // Only OSP & WIZE
196 #define DATARATE_6400bps 0x03 // Only WIZE
197 #define DATARATE_19200bps 0x04 // Only OSP
198 #define DATARATE_6400bps_OSP 0x05 // Only OSP
199 
200 static const uint32_t DATARATES[4] = {2400, 4800, 6400, 9600};
201 
202 // Power modes
203 #define POWER_14dBm 0x01
204 #define POWER_17dBm 0x02
205 #define POWER_20dBm 0x03
206 #define POWER_24dBm 0x04
207 #define POWER_27dBm 0x05
208 
209 // MBus modes
210 #define MBUS_MODE_S2 0x00
211 #define MBUS_MODE_T1 0x01
212 #define MBUS_MODE_T2 0x02
213 #define MBUS_MODE_S1 0x03
214 #define MBUS_MODE_R 0x04
215 #define MBUS_MODE_T1_C 0x0A
216 #define MBUS_MODE_T2_C 0x0B
217 #define MBUS_MODE_N2 0x10
218 #define MBUS_MODE_N1 0x11
219 #define MBUS_MODE_OSP 0x12
220 
221 // Operation modes
222 #define INSTALL_MODE_NORMAL 0x00
223 #define INSTALL_MODE_INSTALL 0x01
224 #define INSTALL_MODE_HOST 0x02
225 
226 // Sleep modes
227 #define SLEEP_MODE_DISABLE 0x00
228 #define SLEEP_MODE_AFTER_TX 0x01
229 #define SLEEP_MODE_AFTER_TX_RX 0x03
230 #define SLEEP_MODE_AFTER_TX_TIMEOUT 0x05
231 #define SLEEP_MODE_AFTER_TX_RX_TIMEOUT 0x07
232 
233 // Network roles
234 #define NETWORK_ROLE_SLAVE 0x00
235 #define NETWORK_ROLE_MASTER 0x01
236 #define NETWORK_ROLE_REPEATER 0x02
237 
238 // LED Control
239 #define LED_CONTROL_DISABLED 0x00
240 #define LED_CONTROL_RX_TX 0x01
241 #define LED_CONTROL_UART_RF_IDLE 0x02
242 #define LED_CONTROL_RF_RX_TX 0x03
243 
244 // Encrypt/Decrypt flags
245 #define ENCRYPT_DISABLED 0x00
246 #define ENCRYPT_ENABLED 0x01
247 #define ENCRYPT_ENABLED_CRC 0x03
248 
249 // Data interface
250 #define DATA_INTERFACE_ID_ADDR 0x00
251 #define DATA_INTERFACE_APP_ONLY 0x01
252 #define DATA_INTERFACE_APP_ACK 0x03
253 #define DATA_INTERFACE_START_STOP 0x04
254 #define DATA_INTERFACE_CRC 0x08
255 #define DATA_INTERFACE_CRC_START_STOP 0x0C
256 
257 // Preamble Length
258 #define PREAMBLE_FORMAT_A 0x00
259 #define PREAMBLE_FORMAT_B 0x02
260 
261 // Baud rates
262 #define BAUDRATE_2400 0x01
263 #define BAUDRATE_4800 0x02
264 #define BAUDRATE_9600 0x03
265 #define BAUDRATE_14400 0x04
266 #define BAUDRATE_19200 0x05
267 #define BAUDRATE_28800 0x06
268 #define BAUDRATE_38400 0x07
269 #define BAUDRATE_57600 0x08
270 #define BAUDRATE_76800 0x09
271 #define BAUDRATE_115200 0x0A
272 #define BAUDRATE_230400 0x0B
273 
274 static const uint32_t BAUDRATES[11] = {2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 76800, 115200, 230400};
MEM_RSSI_MODE
@ MEM_RSSI_MODE
Definition: RC1701HP.h:79
MEM_ADDRESS
static const uint8_t MEM_ADDRESS[MODULE_MAX-1][MEM_MAX_SLOTS]
Definition: RC1701HP.h:115
MEM_PREAMBLE_LENGTH
@ MEM_PREAMBLE_LENGTH
Definition: RC1701HP.h:81
MEM_UART_FLOW_CTRL
@ MEM_UART_FLOW_CTRL
Definition: RC1701HP.h:92
MEM_DEFAULT_KEY
@ MEM_DEFAULT_KEY
Definition: RC1701HP.h:104
MEM_UART_BAUD_RATE
@ MEM_UART_BAUD_RATE
Definition: RC1701HP.h:91
MEM_LED_CONTROL
@ MEM_LED_CONTROL
Definition: RC1701HP.h:97
MEM_MAX_SLOTS
@ MEM_MAX_SLOTS
Definition: RC1701HP.h:110
MEM_CHANNEL_RX
@ MEM_CHANNEL_RX
Definition: RC1701HP.h:71
MEM_DATA_RATE
@ MEM_DATA_RATE
Definition: RC1701HP.h:74
BAUDRATES
static const uint32_t BAUDRATES[11]
Definition: RC1701HP.h:274
MEM_PART_NUMBER
@ MEM_PART_NUMBER
Definition: RC1701HP.h:105
MEM_VERSION
@ MEM_VERSION
Definition: RC1701HP.h:89
MEM_ENCRYPT_FLAG
@ MEM_ENCRYPT_FLAG
Definition: RC1701HP.h:102
MEM_DATA_INTERFACE
@ MEM_DATA_INTERFACE
Definition: RC1701HP.h:93
MODULE_OSP
@ MODULE_OSP
Definition: RC1701HP.h:15
MEM_DECRYPT_FLAG
@ MEM_DECRYPT_FLAG
Definition: RC1701HP.h:103
MEM_UNIQUE_ID
@ MEM_UNIQUE_ID
Definition: RC1701HP.h:87
MEM_DATA_RATE_TX
@ MEM_DATA_RATE_TX
Definition: RC1701HP.h:73
MEM_FREQ_CAL
@ MEM_FREQ_CAL
Definition: RC1701HP.h:96
MEM_MAILBOX
@ MEM_MAILBOX
Definition: RC1701HP.h:85
MEM_MANUFACTURER_ID
@ MEM_MANUFACTURER_ID
Definition: RC1701HP.h:86
MEM_CHANNEL_TX
@ MEM_CHANNEL_TX
Definition: RC1701HP.h:69
MEM_RF_POWER
@ MEM_RF_POWER
Definition: RC1701HP.h:72
MEM_SERIAL_NUMBER
@ MEM_SERIAL_NUMBER
Definition: RC1701HP.h:107
MODULE_WIZE
@ MODULE_WIZE
Definition: RC1701HP.h:16
MODULE_MAX
@ MODULE_MAX
Definition: RC1701HP.h:18
MEM_RX_TIMEOUT
@ MEM_RX_TIMEOUT
Definition: RC1701HP.h:99
MEM_CONTROL_FIELD
@ MEM_CONTROL_FIELD
Definition: RC1701HP.h:98
MEM_MAC_2_CHECK_ONLY_FLAG
@ MEM_MAC_2_CHECK_ONLY_FLAG
Definition: RC1701HP.h:108
MEM_SLEEP_MODE
@ MEM_SLEEP_MODE
Definition: RC1701HP.h:78
MEM_DATA_RATE_RX
@ MEM_DATA_RATE_RX
Definition: RC1701HP.h:75
DATARATES
static const uint32_t DATARATES[4]
Definition: RC1701HP.h:200
MEM_NETWORK_ROLE
@ MEM_NETWORK_ROLE
Definition: RC1701HP.h:84
MEM_INSTALL_MODE
@ MEM_INSTALL_MODE
Definition: RC1701HP.h:101
MEM_CONFIG_INTERFACE
@ MEM_CONFIG_INTERFACE
Definition: RC1701HP.h:95
MEM_CHANNEL
@ MEM_CHANNEL
Definition: RC1701HP.h:70
MEM_TIMEOUT
@ MEM_TIMEOUT
Definition: RC1701HP.h:83
MODULE_UNKNOWN
@ MODULE_UNKNOWN
Definition: RC1701HP.h:12
MODULE_MBUS4
@ MODULE_MBUS4
Definition: RC1701HP.h:14
MEM_PA_TABLE_EXTENDED
@ MEM_PA_TABLE_EXTENDED
Definition: RC1701HP.h:80
MEM_DEVICE
@ MEM_DEVICE
Definition: RC1701HP.h:90
MEM_MBUS_MODE
@ MEM_MBUS_MODE
Definition: RC1701HP.h:77