Z-Wave Protocol Controller Reference
zwapi_func_ids.h
Go to the documentation of this file.
1
5#ifndef _ZW_SERIALAPI_H_
6#define _ZW_SERIALAPI_H_
7
8
16#define SOF 0x01
17#define ACK 0x06
18#define NAK 0x15
19#define CAN 0x18
20
23#define REQUEST 0x00
24#define RESPONSE 0x01
26
30#define GET_INIT_DATA_FLAG_SLAVE_API 0x01
31#define GET_INIT_DATA_FLAG_TIMER_SUPPORT 0x02
32#define GET_INIT_DATA_FLAG_CONTROLLER_STATUS 0x04 /* Obsolete. USE next */
33#define GET_INIT_DATA_FLAG_SECONDARY_CTRL 0x04
34#define GET_INIT_DATA_FLAG_IS_SUC 0x08
36
41typedef enum
42{
51
57#define FUNC_ID_SERIAL_API_GET_INIT_DATA 0x02
58#define FUNC_ID_SERIAL_API_APPL_NODE_INFORMATION 0x03
59#define FUNC_ID_APPLICATION_COMMAND_HANDLER 0x04
60#define FUNC_ID_ZW_GET_CONTROLLER_CAPABILITIES 0x05
61
62/* SERIAL API ver 4 added - START */
63#define FUNC_ID_SERIAL_API_SET_TIMEOUTS 0x06
64#define FUNC_ID_SERIAL_API_GET_CAPABILITIES 0x07
65#define FUNC_ID_SERIAL_API_SOFT_RESET 0x08
66/* SERIAL API ver 4 added - END */
67
68#define FUNC_ID_ZW_GET_PROTOCOL_VERSION 0x09
69
70/* Function ID for startup message */
71#define FUNC_ID_SERIAL_API_STARTED 0x0A
72#define FUNC_ID_SERIAL_API_SETUP 0x0B
73
74#define FUNC_ID_SERIAL_API_APPL_NODE_INFORMATION_CMD_CLASSES 0x0C
75
76#define FUNC_ID_ZW_SEND_DATA_EX 0x0E
77#define FUNC_ID_ZW_SEND_DATA_MULTI_EX 0x0F
78
79#define FUNC_ID_ZW_SET_RF_RECEIVE_MODE 0x10
80#define FUNC_ID_ZW_SET_SLEEP_MODE 0x11
81#define FUNC_ID_ZW_SEND_NODE_INFORMATION 0x12
82#define FUNC_ID_ZW_SEND_DATA 0x13
83#define FUNC_ID_ZW_SEND_DATA_MULTI 0x14
84#define FUNC_ID_ZW_GET_VERSION 0x15
85
86/* SERIAL API ver 4 added - START */
87#define FUNC_ID_ZW_SEND_DATA_ABORT 0x16
88// FUNC_ID_ZW_RF_POWER_LEVEL_SET is no longer supported
89#define FUNC_ID_ZW_RF_POWER_LEVEL_SET 0x17
90#define FUNC_ID_ZW_SEND_DATA_META 0x18
91/* SERIAL API ver 4 added - END */
92
93#define FUNC_ID_ZW_RESERVED_SD 0x19
94#define FUNC_ID_ZW_RESERVED_SDM 0x1A
95#define FUNC_ID_ZW_RESERVED_SRI 0x1B
96
97#define FUNC_ID_ZW_SET_ROUTING_INFO 0x1B
98
99#define FUNC_ID_ZW_GET_RANDOM 0x1C
100#define FUNC_ID_ZW_RANDOM 0x1D
101#define FUNC_ID_ZW_RF_POWER_LEVEL_REDISCOVERY_SET 0x1E
102
103#define FUNC_ID_MEMORY_GET_ID 0x20
104#define FUNC_ID_MEMORY_GET_BYTE 0x21
105#define FUNC_ID_MEMORY_PUT_BYTE 0x22
106#define FUNC_ID_MEMORY_GET_BUFFER 0x23
107#define FUNC_ID_MEMORY_PUT_BUFFER 0x24
108/* Unimplemented - START */
109#define FUNC_ID_SERIAL_API_GET_APPL_HOST_MEMORY_OFFSET 0x25
110#define FUNC_ID_DEBUG_OUTPUT 0x26
111/* Unimplemented - END */
112
113#define FUNC_ID_AUTO_PROGRAMMING 0x27
114
115#define FUNC_ID_NVR_GET_VALUE 0x28
116
117#define FUNC_ID_NVM_GET_ID 0x29
118#define FUNC_ID_NVM_EXT_READ_LONG_BUFFER 0x2A
119#define FUNC_ID_NVM_EXT_WRITE_LONG_BUFFER 0x2B
120#define FUNC_ID_NVM_EXT_READ_LONG_BYTE 0x2C
121#define FUNC_ID_NVM_EXT_WRITE_LONG_BYTE 0x2D
122#define FUNC_ID_NVM_BACKUP_RESTORE 0x2E
123
124#define FUNC_ID_ZW_NVR_GET_APP_VALUE 0x2F
125
126#define FUNC_ID_CLOCK_SET 0x30
127#define FUNC_ID_CLOCK_GET 0x31
128#define FUNC_ID_CLOCK_CMP 0x32
129#define FUNC_ID_RTC_TIMER_CREATE 0x33
130#define FUNC_ID_RTC_TIMER_READ 0x34
131#define FUNC_ID_RTC_TIMER_DELETE 0x35
132#define FUNC_ID_RTC_TIMER_CALL 0x36
133
134#define FUNC_ID_CLEAR_TX_TIMERS 0x37
135#define FUNC_ID_GET_TX_TIMERS 0x38
136
137#define FUNC_ID_ZW_CLEAR_NETWORK_STATS 0x39
138#define FUNC_ID_ZW_GET_NETWORK_STATS 0x3A
139#define FUNC_ID_ZW_GET_BACKGROUND_RSSI 0x3B
140#define FUNC_ID_ZW_SET_LISTEN_BEFORE_TALK_THRESHOLD 0x3C
141#define FUNC_ID_NVM_EXT_BACKUP_RESTORE 0x3D
142#define FUNC_ID_ZW_REMOVE_NODE_ID_FROM_NETWORK 0x3F
143
144#define FUNC_ID_ZW_SET_LEARN_NODE_STATE 0x40
145#define FUNC_ID_ZW_GET_NODE_PROTOCOL_INFO 0x41
146#define FUNC_ID_ZW_SET_DEFAULT 0x42
147#define FUNC_ID_ZW_NEW_CONTROLLER 0x43
148// <Obsoleted>
149#define FUNC_ID_ZW_REPLICATION_COMMAND_COMPLETE 0x44
150#define FUNC_ID_ZW_REPLICATION_SEND_DATA 0x45
151// </Obsoleted>
152#define FUNC_ID_ZW_ASSIGN_RETURN_ROUTE 0x46
153#define FUNC_ID_ZW_DELETE_RETURN_ROUTE 0x47
154#define FUNC_ID_ZW_REQUEST_NODE_NEIGHBOR_UPDATE 0x48
155#define FUNC_ID_ZW_REQUEST_NODETYPE_NEIGHBOR_UPDATE 0x68
156#define FUNC_ID_ZW_APPLICATION_UPDATE 0x49
157
159#define FUNC_ID_ZW_APPLICATION_CONTROLLER_UPDATE 0x49
160
161#define FUNC_ID_ZW_ADD_NODE_TO_NETWORK 0x4A
162#define FUNC_ID_ZW_REMOVE_NODE_FROM_NETWORK 0x4B
163#define FUNC_ID_ZW_CREATE_NEW_PRIMARY 0x4C
164#define FUNC_ID_ZW_CONTROLLER_CHANGE 0x4D
165
166#define FUNC_ID_ZW_RESERVED_FN 0x4E
167
168/* Devkit 6.6x */
169#define FUNC_ID_ZW_ASSIGN_PRIORITY_RETURN_ROUTE 0x4F
170
171/* Slave only */
172#define FUNC_ID_ZW_SET_LEARN_MODE 0x50
173/* Slave only end */
174
175#define FUNC_ID_ZW_ASSIGN_SUC_RETURN_ROUTE 0x51
176#define FUNC_ID_ZW_ENABLE_SUC 0x52
177#define FUNC_ID_ZW_REQUEST_NETWORK_UPDATE 0x53
178#define FUNC_ID_ZW_SET_SUC_NODE_ID 0x54
179#define FUNC_ID_ZW_DELETE_SUC_RETURN_ROUTE 0x55
180#define FUNC_ID_ZW_GET_SUC_NODE_ID 0x56
181#define FUNC_ID_ZW_SEND_SUC_ID 0x57
182
183/* Devkit 6.6x */
184#define FUNC_ID_ZW_ASSIGN_PRIORITY_SUC_RETURN_ROUTE 0x58
185
186/* Obsolete - Not available in devkit 6.6x+ */
187#define FUNC_ID_ZW_REDISCOVERY_NEEDED 0x59
188
189#define FUNC_ID_ZW_REQUEST_NODE_NEIGHBOR_UPDATE_OPTION 0x5A
190
191/* Slave only */
192#define FUNC_ID_ZW_SUPPORT9600_ONLY 0x5B
193/* Slave only end */
194
195/* Enhanced/Routing Slave only */
196#define FUNC_ID_ZW_REQUEST_NEW_ROUTE_DESTINATIONS 0x5C
197#define FUNC_ID_ZW_IS_NODE_WITHIN_DIRECT_RANGE 0x5D
198/* Enhanced/Routing Slave only end */
199
200#define FUNC_ID_ZW_EXPLORE_REQUEST_INCLUSION 0x5E
201#define FUNC_ID_ZW_EXPLORE_REQUEST_EXCLUSION 0x5F
202
203#define FUNC_ID_ZW_REQUEST_NODE_INFO 0x60
204#define FUNC_ID_ZW_REMOVE_FAILED_NODE_ID 0x61
205#define FUNC_ID_ZW_IS_FAILED_NODE_ID 0x62
206#define FUNC_ID_ZW_REPLACE_FAILED_NODE 0x63
207
208/* In 6.0x the function id was wrong so we need to support this wrong function id as well in the future */
209#define FUNC_ID_ZW_SET_ROUTING_MAX_6_00 0x65
210/* */
211
212#define FUNC_ID_ZW_IS_PRIMARY_CTRL 0x66
213
214#define FUNC_ID_ZW_AES_ECB 0x67
215
216#define FUNC_ID_ZW_TRANSFER_PROTOCOL_CC 0x69
217
218#define FUNC_ID_ZW_ENABLE_NODE_NLS 0x6A
219#define FUNC_ID_ZW_GET_NODE_NLS_STATE 0x6B
220#define FUNC_ID_ZW_REQUEST_PROTOCOL_CC_ENCRYPTION 0x6C
221#define FUNC_ID_ZW_SEND_PROTOCOL_DATA 0xAC
222#define FUNC_ID_ZW_GET_NLS_NODES 0xC0
223
224#define FUNC_ID_TIMER_START 0x70
225#define FUNC_ID_TIMER_RESTART 0x71
226#define FUNC_ID_TIMER_CANCEL 0x72
227#define FUNC_ID_TIMER_CALL 0x73
228
229/* Firmware Update API */
230#define FUNC_ID_ZW_FIRMWARE_UPDATE_NVM 0x78
231
232/* Installer API */
233#define FUNC_ID_GET_ROUTING_TABLE_LINE 0x80
234#define FUNC_ID_GET_TX_COUNTER 0x81
235#define FUNC_ID_RESET_TX_COUNTER 0x82
236#define FUNC_ID_STORE_NODEINFO 0x83
237#define FUNC_ID_STORE_HOMEID 0x84
238/* Installer API only end */
239
240#define FUNC_ID_LOCK_ROUTE_RESPONSE 0x90
241#ifdef ZW_ROUTING_DEMO
242/* Max hops in route */
243#define TRANSMIT_ROUTED_ATTEMPT 0x08
244#define FUNC_ID_ZW_SEND_DATA_ROUTE_DEMO 0x91
245#endif
246
247/* ZW_SetPriorityRoute/ZW_GetPriorityRoute replaces ZW_SetLastWorkingRoute/ZW_GetLastWorkingRoute */
248#define FUNC_ID_ZW_GET_PRIORITY_ROUTE 0x92
249#define FUNC_ID_ZW_SET_PRIORITY_ROUTE 0x93
250/* NOTE: Obsoleted - BEGIN */
251#define FUNC_ID_ZW_GET_LAST_WORKING_ROUTE 0x92
252#define FUNC_ID_ZW_SET_LAST_WORKING_ROUTE 0x93
253/* NOTE: Obsoleted - END */
254
255#define FUNC_ID_SERIAL_API_TEST 0x95
256
257#define FUNC_ID_SERIAL_API_EXT 0x98
258
259/* DevKit 6.7x introduced - slave_enhanced_232 and slave_routing only */
260#define FUNC_ID_ZW_SECURITY_SETUP 0x9C
261#define FUNC_ID_APPLICATION_SECURITY_EVENT 0x9D
262
263/* ZW_CONTROLLER_BRIDGE only START */
264#define FUNC_ID_SERIAL_API_APPL_SLAVE_NODE_INFORMATION 0xA0
265
269#define FUNC_ID_APPLICATION_SLAVE_COMMAND_HANDLER 0xA1
270#define FUNC_ID_ZW_SEND_SLAVE_NODE_INFORMATION 0xA2
271#define FUNC_ID_ZW_SEND_SLAVE_DATA 0xA3
272#define FUNC_ID_ZW_SET_SLAVE_LEARN_MODE 0xA4
273#define FUNC_ID_ZW_GET_VIRTUAL_NODES 0xA5
274#define FUNC_ID_ZW_IS_VIRTUAL_NODE 0xA6
275#define FUNC_ID_ZW_RESERVED_SSD 0xA7
276/* DevKit 4.5x/6.0x added - obsoletes FUNC_ID_APPLICATION_SLAVE_COMMAND_HANDLER and */
277/* FUNC_ID_APPLICATION_COMMAND_HANDLER for the Controller Bridge applications as */
278/* this handles both cases - only for 4.5x/6.0x based Controller Bridge applications */
279#define FUNC_ID_APPLICATION_COMMAND_HANDLER_BRIDGE 0xA8
280/* DevKit 4.5x/6.0x added - Adds sourceNodeID to the parameter list */
281#define FUNC_ID_ZW_SEND_DATA_BRIDGE 0xA9
282/* Obsolete */
283#define FUNC_ID_ZW_SEND_DATA_META_BRIDGE 0xAA
284#define FUNC_ID_ZW_SEND_DATA_MULTI_BRIDGE 0xAB
285/* ZW_CONTROLLER_BRIDGE only END */
286
287#define FUNC_ID_PWR_SETSTOPMODE 0xB0 // ZW102 only
288#define FUNC_ID_PWR_CLK_PD 0xB1 // ZW102 only
289#define FUNC_ID_PWR_CLK_PUP 0xB2 // ZW102 only
290#define FUNC_ID_PWR_SELECT_CLK 0xB3 // ZW102 only
291#define FUNC_ID_ZW_SET_WUT_TIMEOUT 0xB4
292#define FUNC_ID_ZW_IS_WUT_KICKED 0xB5 // ZW201 only
293
294#define FUNC_ID_ZW_WATCHDOG_ENABLE 0xB6
295#define FUNC_ID_ZW_WATCHDOG_DISABLE 0xB7
296#define FUNC_ID_ZW_WATCHDOG_KICK 0xB8
298#define FUNC_ID_ZW_SET_EXT_INT_LEVEL 0xB9 // ZW201 only
299#define FUNC_ID_ZW_INT_EXT_LEVEL_SET 0xB9
300
301// FUNC_ID_ZW_RF_POWER_LEVEL_GET is no longer supported
302#define FUNC_ID_ZW_RF_POWER_LEVEL_GET 0xBA
303#define FUNC_ID_ZW_GET_NEIGHBOR_COUNT 0xBB
304#define FUNC_ID_ZW_ARE_NODES_NEIGHBOURS 0xBC
305
306#define FUNC_ID_ZW_TYPE_LIBRARY 0xBD
307#define FUNC_ID_ZW_SEND_TEST_FRAME 0xBE
308#define FUNC_ID_ZW_GET_PROTOCOL_STATUS 0xBF
309
310#define FUNC_ID_ZW_SET_PROMISCUOUS_MODE 0xD0
311/* SERIAL API ver 5 added - START */
312#define FUNC_ID_PROMISCUOUS_APPLICATION_COMMAND_HANDLER 0xD1
313/* SERIAL API ver 5 added - END */
314
315#define FUNC_ID_ZW_WATCHDOG_START 0xD2
316#define FUNC_ID_ZW_WATCHDOG_STOP 0xD3
317
318#define FUNC_ID_ZW_SET_ROUTING_MAX 0xD4
319/* Unimplemented - START */
320/* Obsoleted */
321#define FUNC_ID_ZW_GET_ROUTING_MAX 0xD5
322
323#define FUNC_ID_PM_STAY_AWAKE 0xD7
324#define FUNC_ID_PM_CANCEL 0xD8
325/* Unimplemented - END */
326
327/* Allocated for setting the maximum number of 128sec ticks inbetween SmartStart inclusion requests. */
328#define FUNC_ID_ZW_NETWORK_MANAGEMENT_SET_MAX_INCLUSION_REQUEST_INTERVALS 0xD6
329
330#define FUNC_ID_ZW_INITIATE_SHUTDOWN 0xD9
331
332#define FUNC_ID_SERIAL_API_GET_LR_NODES 0xDA
333
334#define FUNC_ID_GET_LR_CHANNEL 0xDB
335#define FUNC_ID_SET_LR_CHANNEL 0xDC
336
337#define FUNC_ID_ZW_SET_LR_VIRTUAL_IDS 0xDD
338
339#define FUNC_ID_GET_DCDC_CONFIG 0xDE
340#define FUNC_ID_SET_DCDC_CONFIG 0xDF
341
342/* Allocated for NUNIT test */
343#define FUNC_ID_ZW_NUNIT_CMD 0xE0 // DEPRECATED
344#define FUNC_ID_ZW_NUNIT_INIT 0xE1 // DEPRECATED
345#define FUNC_ID_ZW_NUNIT_LIST 0xE2 // DEPRECATED
346#define FUNC_ID_ZW_NUNIT_RUN 0xE3 // DEPRECATED
347#define FUNC_ID_ZW_NUNIT_END 0xE4 // DEPRECATED
348
349#define FUNC_ID_ENABLE_RADIO_PTI 0xE7
350#define FUNC_ID_GET_RADIO_PTI 0xE8
351
352#define FUNC_ID_SEND_NOP 0xE9 //Reserved. Command to be implemented in future.
353
354/* Allocated for Power Management */
355#define FUNC_ID_SERIAL_API_POWER_MANAGEMENT 0xEE
356#define FUNC_ID_SERIAL_API_READY 0xEF
357
358/* Allocated for proprietary serial API commands */
359#define FUNC_ID_PROPRIETARY_0 0xF0
360#define FUNC_ID_PROPRIETARY_1 0xF1
361#define FUNC_ID_PROPRIETARY_2 0xF2
362#define FUNC_ID_PROPRIETARY_3 0xF3
363#define FUNC_ID_PROPRIETARY_4 0xF4
364#define FUNC_ID_PROPRIETARY_5 0xF5
365#define FUNC_ID_PROPRIETARY_6 0xF6
366#define FUNC_ID_PROPRIETARY_7 0xF7
367#define FUNC_ID_PROPRIETARY_8 0xF8
368#define FUNC_ID_PROPRIETARY_9 0xF9
369#define FUNC_ID_PROPRIETARY_A 0xFA
370#define FUNC_ID_PROPRIETARY_B 0xFB
371#define FUNC_ID_PROPRIETARY_C 0xFC
372#define FUNC_ID_PROPRIETARY_D 0xFD
373#define FUNC_ID_PROPRIETARY_E 0xFE
374
375
376/* Illegal function ID */
377#define FUNC_ID_UNKNOWN 0xFF
379
383typedef enum
384{
388
389
392
393
394
395#endif /*_ZW_SERIALAPI_H_*/
FIRMWARE_UPDATE_NVM_T
Definition: zwapi_func_ids.h:42
nvm_backup_restore_addr_size_t
Definition: zwapi_func_ids.h:384
@ FIRMWARE_UPDATE_NVM_UPDATE_CRC16
Definition: zwapi_func_ids.h:46
@ FIRMWARE_UPDATE_NVM_INIT
Definition: zwapi_func_ids.h:43
@ FIRMWARE_UPDATE_NVM_IS_VALID_CRC16
Definition: zwapi_func_ids.h:47
@ FIRMWARE_UPDATE_NVM_UNKNOWN
Definition: zwapi_func_ids.h:49
@ FIRMWARE_UPDATE_NVM_GET_NEW_IMAGE
Definition: zwapi_func_ids.h:45
@ FIRMWARE_UPDATE_NVM_WRITE
Definition: zwapi_func_ids.h:48
@ FIRMWARE_UPDATE_NVM_SET_NEW_IMAGE
Definition: zwapi_func_ids.h:44
@ NVM_BACKUP_RESTORE_ADDR_SIZE
2 bytes for the legacy NVM backup & restore command
Definition: zwapi_func_ids.h:385
@ NVM_EXT_BACKUP_RESTORE_ADDR_SIZE
4 bytes for the extended NVM backup & restore command
Definition: zwapi_func_ids.h:386