RDM  HEAD (unstable)
Implementation of ANSI E1.31 (Streaming ACN)
View other versions:
defs.h
1 /* This file is a modified version of a header publicly available for download from
2  * http://www.rdmprotocol.org. The file has the following changes from the original version:
3  *
4  * - File renamed to rdm/defs.h
5  * - BSR E1.37-7 definitions added
6  * - clang-format off directive added
7  *
8  * Used per the terms of the original copyright notice, which can be found below.
9  */
10 
11 /*****************************************************************/
12 /* Entertainment Services Technology Association (ESTA) */
13 /* ANSI E1.20 Remote Device Management (RDM) over DMX512 Networks*/
14 /*****************************************************************/
15 /* */
16 /* RDM.h */
17 /* */
18 /*****************************************************************/
19 /* Appendix A Defines for the RDM Protocol. */
20 /* Publish date: 3/31/2006 */
21 /*****************************************************************/
22 /* Compiled by: Scott M. Blair 8/18/2006 */
23 /* Updated 10/11/2011: Adding E1.20-2010 and E1.37-1 defines. */
24 /* Updated 10/24/2014: Adding E1.37-2 defines */
25 /*****************************************************************/
26 /* For updates see: http://www.rdmprotocol.org */
27 /*****************************************************************/
28 /* Copyright 2006,2011, 2014 Litespeed Design */
29 /*****************************************************************/
30 /* Permission to use, copy, modify, and distribute this software */
31 /* is freely granted, provided that this notice is preserved. */
32 /*****************************************************************/
33 
34 /* clang-format off */
35 
36 /* Protocol version. */
37 #define E120_PROTOCOL_VERSION 0x0100
38 
39 /* RDM START CODE (Slot 0) */
40 #define E120_SC_RDM 0xCC
41 
42 /* RDM Protocol Data Structure ID's (Slot 1) */
43 #define E120_SC_SUB_MESSAGE 0x01
44 
45 /* Broadcast Device UID's */
46 #define E120_BROADCAST_ALL_DEVICES_ID 0xFFFFFFFFFFFF /* (Broadcast all Manufacturers) */
47 //#define ALL_DEVICES_ID 0xmmmmFFFFFFFF /* (Specific Manufacturer ID 0xmmmm) */
48 
49 #define E120_SUB_DEVICE_ALL_CALL 0xFFFF
50 
51 
52 /********************************************************/
53 /* Table A-1: RDM Command Classes (Slot 20) */
54 /********************************************************/
55 #define E120_DISCOVERY_COMMAND 0x10
56 #define E120_DISCOVERY_COMMAND_RESPONSE 0x11
57 #define E120_GET_COMMAND 0x20
58 #define E120_GET_COMMAND_RESPONSE 0x21
59 #define E120_SET_COMMAND 0x30
60 #define E120_SET_COMMAND_RESPONSE 0x31
61 
62 
63 
64 /********************************************************/
65 /* Table A-2: RDM Response Type (Slot 16) */
66 /********************************************************/
67 #define E120_RESPONSE_TYPE_ACK 0x00
68 #define E120_RESPONSE_TYPE_ACK_TIMER 0x01
69 #define E120_RESPONSE_TYPE_NACK_REASON 0x02 /* See Table A-17 */
70 #define E120_RESPONSE_TYPE_ACK_OVERFLOW 0x03 /* Additional Response Data available beyond single response length.*/
71 
72 
73 /********************************************************/
74 /* Table A-3: RDM Parameter ID's (Slots 21-22) */
75 /********************************************************/
76 /* Category - Network Management */
77 #define E120_DISC_UNIQUE_BRANCH 0x0001
78 #define E120_DISC_MUTE 0x0002
79 #define E120_DISC_UN_MUTE 0x0003
80 #define E120_PROXIED_DEVICES 0x0010
81 #define E120_PROXIED_DEVICE_COUNT 0x0011
82 #define E120_COMMS_STATUS 0x0015
83 
84 /* Category - Status Collection */
85 #define E120_QUEUED_MESSAGE 0x0020 /* See Table A-4 */
86 #define E120_STATUS_MESSAGES 0x0030 /* See Table A-4 */
87 #define E120_STATUS_ID_DESCRIPTION 0x0031
88 #define E120_CLEAR_STATUS_ID 0x0032
89 #define E120_SUB_DEVICE_STATUS_REPORT_THRESHOLD 0x0033 /* See Table A-4 */
90 
91 /* Category - RDM Information */
92 #define E120_SUPPORTED_PARAMETERS 0x0050 /* Support required only if supporting Parameters beyond the minimum required set.*/
93 #define E120_PARAMETER_DESCRIPTION 0x0051 /* Support required for Manufacturer-Specific PIDs exposed in SUPPORTED_PARAMETERS message */
94 
95 /* Category - Product Information */
96 #define E120_DEVICE_INFO 0x0060
97 #define E120_PRODUCT_DETAIL_ID_LIST 0x0070
98 #define E120_DEVICE_MODEL_DESCRIPTION 0x0080
99 #define E120_MANUFACTURER_LABEL 0x0081
100 #define E120_DEVICE_LABEL 0x0082
101 #define E120_FACTORY_DEFAULTS 0x0090
102 #define E120_LANGUAGE_CAPABILITIES 0x00A0
103 #define E120_LANGUAGE 0x00B0
104 #define E120_SOFTWARE_VERSION_LABEL 0x00C0
105 #define E120_BOOT_SOFTWARE_VERSION_ID 0x00C1
106 #define E120_BOOT_SOFTWARE_VERSION_LABEL 0x00C2
107 
108 /* Category - DMX512 Setup */
109 #define E120_DMX_PERSONALITY 0x00E0
110 #define E120_DMX_PERSONALITY_DESCRIPTION 0x00E1
111 #define E120_DMX_START_ADDRESS 0x00F0 /* Support required if device uses a DMX512 Slot. */
112 #define E120_SLOT_INFO 0x0120
113 #define E120_SLOT_DESCRIPTION 0x0121
114 #define E120_DEFAULT_SLOT_VALUE 0x0122
115 #define E137_1_DMX_BLOCK_ADDRESS 0x0140 /* Defined in ANSI E1.37-1 document */
116 #define E137_1_DMX_FAIL_MODE 0x0141 /* Defined in ANSI E1.37-1 document */
117 #define E137_1_DMX_STARTUP_MODE 0x0142 /* Defined in ANSI E1.37-1 document */
118 
119 
120 /* Category - Sensors */
121 #define E120_SENSOR_DEFINITION 0x0200
122 #define E120_SENSOR_VALUE 0x0201
123 #define E120_RECORD_SENSORS 0x0202
124 
125 /* Category - Dimmer Settings */
126 #define E137_1_DIMMER_INFO 0x0340
127 #define E137_1_MINIMUM_LEVEL 0x0341
128 #define E137_1_MAXIMUM_LEVEL 0x0342
129 #define E137_1_CURVE 0x0343
130 #define E137_1_CURVE_DESCRIPTION 0x0344 /* Support required if CURVE is supported */
131 #define E137_1_OUTPUT_RESPONSE_TIME 0x0345
132 #define E137_1_OUTPUT_RESPONSE_TIME_DESCRIPTION 0x0346 /* Support required if OUTPUT_RESPONSE_TIME is supported */
133 #define E137_1_MODULATION_FREQUENCY 0x0347
134 #define E137_1_MODULATION_FREQUENCY_DESCRIPTION 0x0348 /* Support required if MODULATION_FREQUENCY is supported */
135 
136 /* Category - Power/Lamp Settings */
137 #define E120_DEVICE_HOURS 0x0400
138 #define E120_LAMP_HOURS 0x0401
139 #define E120_LAMP_STRIKES 0x0402
140 #define E120_LAMP_STATE 0x0403 /* See Table A-8 */
141 #define E120_LAMP_ON_MODE 0x0404 /* See Table A-9 */
142 #define E120_DEVICE_POWER_CYCLES 0x0405
143 #define E137_1_BURN_IN 0x0440 /* Defined in ANSI E1.37-1 */
144 
145 /* Category - Display Settings */
146 #define E120_DISPLAY_INVERT 0x0500
147 #define E120_DISPLAY_LEVEL 0x0501
148 
149 /* Category - Configuration */
150 #define E120_PAN_INVERT 0x0600
151 #define E120_TILT_INVERT 0x0601
152 #define E120_PAN_TILT_SWAP 0x0602
153 #define E120_REAL_TIME_CLOCK 0x0603
154 #define E137_1_LOCK_PIN 0x0640 /* Defined in ANSI E1.37-1 */
155 #define E137_1_LOCK_STATE 0x0641 /* Defined in ANSI E1.37-1 */
156 #define E137_1_LOCK_STATE_DESCRIPTION 0x0642 /* Support required if MODULATION_FREQUENCY is supported */
157 
158 /* Category - Network Configuration*/
159 
160 #define E137_2_LIST_INTERFACES 0x0700 /* Defined in ANSI E1.37-2 */
161 #define E137_2_INTERFACE_LABEL 0x0701 /* Defined in ANSI E1.37-2 */
162 #define E137_2_INTERFACE_HARDWARE_ADDRESS_TYPE1 0x0702 /* Defined in ANSI E1.37-2 */
163 #define E137_2_IPV4_DHCP_MODE 0x0703 /* Defined in ANSI E1.37-2 */
164 #define E137_2_IPV4_ZEROCONF_MODE 0x0704 /* Defined in ANSI E1.37-2 */
165 #define E137_2_IPV4_CURRENT_ADDRESS 0x0705 /* Defined in ANSI E1.37-2 */
166 #define E137_2_IPV4_STATIC_ADDRESS 0x0706 /* Defined in ANSI E1.37-2 */
167 #define E137_2_INTERFACE_RENEW_DHCP 0x0707 /* Defined in ANSI E1.37-2 */
168 #define E137_2_INTERFACE_RELEASE_DHCP 0x0708 /* Defined in ANSI E1.37-2 */
169 #define E137_2_INTERFACE_APPLY_CONFIGURATION 0x0709 /* Defined in ANSI E1.37-2 (Support required if _ADDRESS PIDs supported) */
170 #define E137_2_IPV4_DEFAULT_ROUTE 0x070A /* Defined in ANSI E1.37-2 */
171 #define E137_2_DNS_IPV4_NAME_SERVER 0x070B /* Defined in ANSI E1.37-2 */
172 #define E137_2_DNS_HOSTNAME 0x070C /* Defined in ANSI E1.37-2 */
173 #define E137_2_DNS_DOMAIN_NAME 0x070D /* Defined in ANSI E1.37-2 */
174 
175 /* Category - E1.33 Management */
176 #define E133_COMPONENT_SCOPE 0x0800 /* Defined in ANSI E1.33 */
177 #define E133_SEARCH_DOMAIN 0x0801 /* Defined in ANSI E1.33 */
178 #define E133_TCP_COMMS_STATUS 0x0802 /* Defined in ANSI E1.33 */
179 #define E133_BROKER_STATUS 0x0803 /* Defined in ANSI E1.33 */
180 
181 /* Category - Control */
182 #define E120_IDENTIFY_DEVICE 0x1000
183 #define E120_RESET_DEVICE 0x1001
184 #define E120_POWER_STATE 0x1010 /* See Table A-11 */
185 #define E120_PERFORM_SELFTEST 0x1020 /* See Table A-10 */
186 #define E120_SELF_TEST_DESCRIPTION 0x1021
187 #define E120_CAPTURE_PRESET 0x1030
188 #define E120_PRESET_PLAYBACK 0x1031 /* See Table A-7 */
189 #define E137_1_IDENTIFY_MODE 0x1040 /* Defined in ANSI E1.37-1 */
190 #define E137_1_PRESET_INFO 0x1041 /* Defined in ANSI E1.37-1 */
191 #define E137_1_PRESET_STATUS 0x1042 /* Defined in ANSI E1.37-1 */
192 #define E137_1_PRESET_MERGEMODE 0x1043 /* See E1.37-1 Table A-3 */
193 #define E137_1_POWER_ON_SELF_TEST 0x1044 /* Defined in ANSI E1.37-1 */
194 
195 /* ESTA Reserved Future RDM Development 0x7FE0-
196  0x7FFF
197 
198  Manufacturer-Specific PIDs 0x8000-
199  0xFFDF
200  ESTA Reserved Future RDM Development
201  0xFFE0-
202  0xFFFF
203 */
204 
205 
206 /*****************************************************************/
207 /* Discovery Mute/Un-Mute Messages Control Field. See Table 7-3. */
208 /*****************************************************************/
209 #define E120_CONTROL_PROXIED_DEVICE 0x0008
210 #define E120_CONTROL_BOOT_LOADER 0x0004
211 #define E120_CONTROL_SUB_DEVICE 0x0002
212 #define E120_CONTROL_MANAGED_PROXY 0x0001
213 
214 
215 /********************************************************/
216 /* Table A-4: Status Type Defines */
217 /********************************************************/
218 #define E120_STATUS_NONE 0x00 /* Not allowed for use with GET: QUEUED_MESSAGE */
219 #define E120_STATUS_GET_LAST_MESSAGE 0x01
220 #define E120_STATUS_ADVISORY 0x02
221 #define E120_STATUS_WARNING 0x03
222 #define E120_STATUS_ERROR 0x04
223 #define E120_STATUS_ADVISORY_CLEARED 0x12 /* Added in E1.20-2010 version */
224 #define E120_STATUS_WARNING_CLEARED 0x13 /* Added in E1.20-2010 version */
225 #define E120_STATUS_ERROR_CLEARED 0x14 /* Added in E1.20-2010 version */
226 
227 
228 
229 /********************************************************/
230 /* Table A-5: Product Category Defines */
231 /********************************************************/
232 #define E120_PRODUCT_CATEGORY_NOT_DECLARED 0x0000
233 
234 /* Fixtures - intended as source of illumination See Note 1 */
235 #define E120_PRODUCT_CATEGORY_FIXTURE 0x0100 /* No Fine Category declared */
236 #define E120_PRODUCT_CATEGORY_FIXTURE_FIXED 0x0101 /* No pan / tilt / focus style functions */
237 #define E120_PRODUCT_CATEGORY_FIXTURE_MOVING_YOKE 0x0102
238 #define E120_PRODUCT_CATEGORY_FIXTURE_MOVING_MIRROR 0x0103
239 #define E120_PRODUCT_CATEGORY_FIXTURE_OTHER 0x01FF /* For example, focus but no pan/tilt. */
240 
241 /* Fixture Accessories - add-ons to fixtures or projectors */
242 #define E120_PRODUCT_CATEGORY_FIXTURE_ACCESSORY 0x0200 /* No Fine Category declared. */
243 #define E120_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_COLOR 0x0201 /* Scrollers / Color Changers */
244 #define E120_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_YOKE 0x0202 /* Yoke add-on */
245 #define E120_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_MIRROR 0x0203 /* Moving mirror add-on */
246 #define E120_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_EFFECT 0x0204 /* Effects Discs */
247 #define E120_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_BEAM 0x0205 /* Gobo Rotators /Iris / Shutters / Dousers/ Beam modifiers. */
248 #define E120_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_OTHER 0x02FF
249 
250 /* Projectors - light source capable of producing realistic images from another media i.e Video / Slide / Oil Wheel / Film */
251 #define E120_PRODUCT_CATEGORY_PROJECTOR 0x0300 /* No Fine Category declared. */
252 #define E120_PRODUCT_CATEGORY_PROJECTOR_FIXED 0x0301 /* No pan / tilt functions. */
253 #define E120_PRODUCT_CATEGORY_PROJECTOR_MOVING_YOKE 0x0302
254 #define E120_PRODUCT_CATEGORY_PROJECTOR_MOVING_MIRROR 0x0303
255 #define E120_PRODUCT_CATEGORY_PROJECTOR_OTHER 0x03FF
256 
257 /* Atmospheric Effect - earth/wind/fire */
258 #define E120_PRODUCT_CATEGORY_ATMOSPHERIC 0x0400 /* No Fine Category declared. */
259 #define E120_PRODUCT_CATEGORY_ATMOSPHERIC_EFFECT 0x0401 /* Fogger / Hazer / Flame, etc. */
260 #define E120_PRODUCT_CATEGORY_ATMOSPHERIC_PYRO 0x0402 /* See Note 2. */
261 #define E120_PRODUCT_CATEGORY_ATMOSPHERIC_OTHER 0x04FF
262 
263 /* Intensity Control (specifically Dimming equipment) */
264 #define E120_PRODUCT_CATEGORY_DIMMER 0x0500 /* No Fine Category declared. */
265 #define E120_PRODUCT_CATEGORY_DIMMER_AC_INCANDESCENT 0x0501 /* AC > 50VAC */
266 #define E120_PRODUCT_CATEGORY_DIMMER_AC_FLUORESCENT 0x0502
267 #define E120_PRODUCT_CATEGORY_DIMMER_AC_COLDCATHODE 0x0503 /* High Voltage outputs such as Neon or other cold cathode. */
268 #define E120_PRODUCT_CATEGORY_DIMMER_AC_NONDIM 0x0504 /* Non-Dim module in dimmer rack. */
269 #define E120_PRODUCT_CATEGORY_DIMMER_AC_ELV 0x0505 /* AC <= 50V such as 12/24V AC Low voltage lamps. */
270 #define E120_PRODUCT_CATEGORY_DIMMER_AC_OTHER 0x0506
271 #define E120_PRODUCT_CATEGORY_DIMMER_DC_LEVEL 0x0507 /* Variable DC level output. */
272 #define E120_PRODUCT_CATEGORY_DIMMER_DC_PWM 0x0508 /* Chopped (PWM) output. */
273 #define E120_PRODUCT_CATEGORY_DIMMER_CS_LED 0x0509 /* Specialized LED dimmer. */
274 #define E120_PRODUCT_CATEGORY_DIMMER_OTHER 0x05FF
275 
276 /* Power Control (other than Dimming equipment) */
277 #define E120_PRODUCT_CATEGORY_POWER 0x0600 /* No Fine Category declared. */
278 #define E120_PRODUCT_CATEGORY_POWER_CONTROL 0x0601 /* Contactor racks, other forms of Power Controllers. */
279 #define E120_PRODUCT_CATEGORY_POWER_SOURCE 0x0602 /* Generators */
280 #define E120_PRODUCT_CATEGORY_POWER_OTHER 0x06FF
281 
282 /* Scenic Drive - including motorized effects unrelated to light source. */
283 #define E120_PRODUCT_CATEGORY_SCENIC 0x0700 /* No Fine Category declared */
284 #define E120_PRODUCT_CATEGORY_SCENIC_DRIVE 0x0701 /* Rotators / Kabuki drops, etc. See Note 2. */
285 #define E120_PRODUCT_CATEGORY_SCENIC_OTHER 0x07FF
286 
287 /* DMX Infrastructure, conversion and interfaces */
288 #define E120_PRODUCT_CATEGORY_DATA 0x0800 /* No Fine Category declared. */
289 #define E120_PRODUCT_CATEGORY_DATA_DISTRIBUTION 0x0801 /* Splitters/repeaters/Ethernet products used to distribute DMX*/
290 #define E120_PRODUCT_CATEGORY_DATA_CONVERSION 0x0802 /* Protocol Conversion analog decoders. */
291 #define E120_PRODUCT_CATEGORY_DATA_OTHER 0x08FF
292 
293 /* Audio-Visual Equipment */
294 #define E120_PRODUCT_CATEGORY_AV 0x0900 /* No Fine Category declared. */
295 #define E120_PRODUCT_CATEGORY_AV_AUDIO 0x0901 /* Audio controller or device. */
296 #define E120_PRODUCT_CATEGORY_AV_VIDEO 0x0902 /* Video controller or display device. */
297 #define E120_PRODUCT_CATEGORY_AV_OTHER 0x09FF
298 
299 /* Parameter Monitoring Equipment See Note 3. */
300 #define E120_PRODUCT_CATEGORY_MONITOR 0x0A00 /* No Fine Category declared. */
301 #define E120_PRODUCT_CATEGORY_MONITOR_ACLINEPOWER 0x0A01 /* Product that monitors AC line voltage, current or power. */
302 #define E120_PRODUCT_CATEGORY_MONITOR_DCPOWER 0x0A02 /* Product that monitors DC line voltage, current or power. */
303 #define E120_PRODUCT_CATEGORY_MONITOR_ENVIRONMENTAL 0x0A03 /* Temperature or other environmental parameter. */
304 #define E120_PRODUCT_CATEGORY_MONITOR_OTHER 0x0AFF
305 
306 /* Controllers, Backup devices */
307 #define E120_PRODUCT_CATEGORY_CONTROL 0x7000 /* No Fine Category declared. */
308 #define E120_PRODUCT_CATEGORY_CONTROL_CONTROLLER 0x7001
309 #define E120_PRODUCT_CATEGORY_CONTROL_BACKUPDEVICE 0x7002
310 #define E120_PRODUCT_CATEGORY_CONTROL_OTHER 0x70FF
311 
312 /* Test Equipment */
313 #define E120_PRODUCT_CATEGORY_TEST 0x7100 /* No Fine Category declared. */
314 #define E120_PRODUCT_CATEGORY_TEST_EQUIPMENT 0x7101
315 #define E120_PRODUCT_CATEGORY_TEST_EQUIPMENT_OTHER 0x71FF
316 
317 /* Miscellaneous */
318 #define E120_PRODUCT_CATEGORY_OTHER 0x7FFF /* For devices that aren't described within this table. */
319 
320 /* Manufacturer Specific Categories 0x8000 -
321  0xDFFF */
322 
323 
324 /********************************************************/
325 /* Table A-6: Product Detail Defines */
326 /********************************************************/
327 
328 #define E120_PRODUCT_DETAIL_NOT_DECLARED 0x0000
329 
330 /* Generally applied to fixtures */
331 #define E120_PRODUCT_DETAIL_ARC 0x0001
332 #define E120_PRODUCT_DETAIL_METAL_HALIDE 0x0002
333 #define E120_PRODUCT_DETAIL_INCANDESCENT 0x0003
334 #define E120_PRODUCT_DETAIL_LED 0x0004
335 #define E120_PRODUCT_DETAIL_FLUROESCENT 0x0005
336 #define E120_PRODUCT_DETAIL_COLDCATHODE 0x0006 /*includes Neon/Argon */
337 #define E120_PRODUCT_DETAIL_ELECTROLUMINESCENT 0x0007
338 #define E120_PRODUCT_DETAIL_LASER 0x0008
339 #define E120_PRODUCT_DETAIL_FLASHTUBE 0x0009 /* Strobes or other flashtubes */
340 
341 /* Generally applied to fixture accessories */
342 #define E120_PRODUCT_DETAIL_COLORSCROLLER 0x0100
343 #define E120_PRODUCT_DETAIL_COLORWHEEL 0x0101
344 #define E120_PRODUCT_DETAIL_COLORCHANGE 0x0102 /* Semaphore or other type */
345 #define E120_PRODUCT_DETAIL_IRIS_DOUSER 0x0103
346 #define E120_PRODUCT_DETAIL_DIMMING_SHUTTER 0x0104
347 #define E120_PRODUCT_DETAIL_PROFILE_SHUTTER 0x0105 /* hard-edge beam masking */
348 #define E120_PRODUCT_DETAIL_BARNDOOR_SHUTTER 0x0106 /* soft-edge beam masking */
349 #define E120_PRODUCT_DETAIL_EFFECTS_DISC 0x0107
350 #define E120_PRODUCT_DETAIL_GOBO_ROTATOR 0x0108
351 
352 /* Generally applied to Projectors */
353 #define E120_PRODUCT_DETAIL_VIDEO 0x0200
354 #define E120_PRODUCT_DETAIL_SLIDE 0x0201
355 #define E120_PRODUCT_DETAIL_FILM 0x0202
356 #define E120_PRODUCT_DETAIL_OILWHEEL 0x0203
357 #define E120_PRODUCT_DETAIL_LCDGATE 0x0204
358 
359 /* Generally applied to Atmospheric Effects */
360 #define E120_PRODUCT_DETAIL_FOGGER_GLYCOL 0x0300 /* Glycol/Glycerin hazer */
361 #define E120_PRODUCT_DETAIL_FOGGER_MINERALOIL 0x0301 /* White Mineral oil hazer */
362 #define E120_PRODUCT_DETAIL_FOGGER_WATER 0x0302 /* Water hazer */
363 #define E120_PRODUCT_DETAIL_C02 0x0303 /* Dry Ice/Carbon Dioxide based */
364 #define E120_PRODUCT_DETAIL_LN2 0x0304 /* Nitrogen based */
365 #define E120_PRODUCT_DETAIL_BUBBLE 0x0305 /* including foam */
366 #define E120_PRODUCT_DETAIL_FLAME_PROPANE 0x0306
367 #define E120_PRODUCT_DETAIL_FLAME_OTHER 0x0307
368 #define E120_PRODUCT_DETAIL_OLEFACTORY_STIMULATOR 0x0308 /* Scents */
369 #define E120_PRODUCT_DETAIL_SNOW 0x0309
370 #define E120_PRODUCT_DETAIL_WATER_JET 0x030A /* Fountain controls etc */
371 #define E120_PRODUCT_DETAIL_WIND 0x030B /* Air Mover */
372 #define E120_PRODUCT_DETAIL_CONFETTI 0x030C
373 #define E120_PRODUCT_DETAIL_HAZARD 0x030D /* Any form of pyrotechnic control or device. */
374 
375 /* Generally applied to Dimmers/Power controllers See Note 1 */
376 #define E120_PRODUCT_DETAIL_PHASE_CONTROL 0x0400
377 #define E120_PRODUCT_DETAIL_REVERSE_PHASE_CONTROL 0x0401 /* includes FET/IGBT */
378 #define E120_PRODUCT_DETAIL_SINE 0x0402
379 #define E120_PRODUCT_DETAIL_PWM 0x0403
380 #define E120_PRODUCT_DETAIL_DC 0x0404 /* Variable voltage */
381 #define E120_PRODUCT_DETAIL_HFBALLAST 0x0405 /* for Fluroescent */
382 #define E120_PRODUCT_DETAIL_HFHV_NEONBALLAST 0x0406 /* for Neon/Argon and other coldcathode. */
383 #define E120_PRODUCT_DETAIL_HFHV_EL 0x0407 /* for Electroluminscent */
384 #define E120_PRODUCT_DETAIL_MHR_BALLAST 0x0408 /* for Metal Halide */
385 #define E120_PRODUCT_DETAIL_BITANGLE_MODULATION 0x0409
386 #define E120_PRODUCT_DETAIL_FREQUENCY_MODULATION 0x040A
387 #define E120_PRODUCT_DETAIL_HIGHFREQUENCY_12V 0x040B /* as commonly used with MR16 lamps */
388 #define E120_PRODUCT_DETAIL_RELAY_MECHANICAL 0x040C /* See Note 1 */
389 #define E120_PRODUCT_DETAIL_RELAY_ELECTRONIC 0x040D /* See Note 1, Note 2 */
390 #define E120_PRODUCT_DETAIL_SWITCH_ELECTRONIC 0x040E /* See Note 1, Note 2 */
391 #define E120_PRODUCT_DETAIL_CONTACTOR 0x040F /* See Note 1 */
392 
393 /* Generally applied to Scenic drive */
394 #define E120_PRODUCT_DETAIL_MIRRORBALL_ROTATOR 0x0500
395 #define E120_PRODUCT_DETAIL_OTHER_ROTATOR 0x0501 /* includes turntables */
396 #define E120_PRODUCT_DETAIL_KABUKI_DROP 0x0502
397 #define E120_PRODUCT_DETAIL_CURTAIN 0x0503 /* flown or traveller */
398 #define E120_PRODUCT_DETAIL_LINESET 0x0504
399 #define E120_PRODUCT_DETAIL_MOTOR_CONTROL 0x0505
400 #define E120_PRODUCT_DETAIL_DAMPER_CONTROL 0x0506 /* HVAC Damper */
401 
402 /* Generally applied to Data Distribution */
403 #define E120_PRODUCT_DETAIL_SPLITTER 0x0600 /* Includes buffers/repeaters */
404 #define E120_PRODUCT_DETAIL_ETHERNET_NODE 0x0601 /* DMX512 to/from Ethernet */
405 #define E120_PRODUCT_DETAIL_MERGE 0x0602 /* DMX512 combiner */
406 #define E120_PRODUCT_DETAIL_DATAPATCH 0x0603 /* Electronic Datalink Patch */
407 #define E120_PRODUCT_DETAIL_WIRELESS_LINK 0x0604 /* radio/infrared */
408 
409 /* Generally applied to Data Conversion and Interfaces */
410 #define E120_PRODUCT_DETAIL_PROTOCOL_CONVERTOR 0x0701 /* D54/AMX192/Non DMX serial links, etc to/from DMX512 */
411 #define E120_PRODUCT_DETAIL_ANALOG_DEMULTIPLEX 0x0702 /* DMX to DC voltage */
412 #define E120_PRODUCT_DETAIL_ANALOG_MULTIPLEX 0x0703 /* DC Voltage to DMX */
413 #define E120_PRODUCT_DETAIL_SWITCH_PANEL 0x0704 /* Pushbuttons to DMX or polled using RDM */
414 
415 /* Generally applied to Audio or Video (AV) devices */
416 #define E120_PRODUCT_DETAIL_ROUTER 0x0800 /* Switching device */
417 #define E120_PRODUCT_DETAIL_FADER 0x0801 /* Single channel */
418 #define E120_PRODUCT_DETAIL_MIXER 0x0802 /* Multi-channel */
419 
420 /* Generally applied to Controllers, Backup devices and Test Equipment */
421 #define E120_PRODUCT_DETAIL_CHANGEOVER_MANUAL 0x0900 /* requires manual intervention to assume control of DMX line */
422 #define E120_PRODUCT_DETAIL_CHANGEOVER_AUTO 0x0901 /* may automatically assume control of DMX line */
423 #define E120_PRODUCT_DETAIL_TEST 0x0902 /* test equipment */
424 
425 /* Could be applied to any category */
426 #define E120_PRODUCT_DETAIL_GFI_RCD 0x0A00 /* device includes GFI/RCD trip */
427 #define E120_PRODUCT_DETAIL_BATTERY 0x0A01 /* device is battery operated */
428 #define E120_PRODUCT_DETAIL_CONTROLLABLE_BREAKER 0x0A02
429 
430 
431 #define E120_PRODUCT_DETAIL_OTHER 0x7FFF /* for use where the Manufacturer believes that none of the
432  defined details apply. */
433 /* Manufacturer Specific Types 0x8000-
434  0xDFFF */
435 
436 /* Note 1: Products intended for switching 50V AC / 120V DC or greater should be declared with a
437  Product Category of PRODUCT_CATEGORY_POWER_CONTROL.
438 
439  Products only suitable for extra low voltage switching (typically up to 50VAC / 30VDC) at currents
440  less than 1 ampere should be declared with a Product Category of PRODUCT_CATEGORY_DATA_CONVERSION.
441 
442  Please refer to GET: DEVICE_INFO and Table A-5 for an explanation of Product Category declaration.
443  Note 2: Products with TTL, MOSFET or Open Collector Transistor Outputs or similar non-isolated electronic
444  outputs should be declared as PRODUCT_DETAIL_SWITCH_ELECTRONIC. Use of PRODUCT_DETAIL_RELAY_ELECTRONIC
445  shall be restricted to devices whereby the switched circuits are electrically isolated from the control signals. */
446 
447 
448 /********************************************************/
449 /* Table A-7: Preset Playback Defines */
450 /********************************************************/
451 
452 #define E120_PRESET_PLAYBACK_OFF 0x0000 /* Returns to Normal DMX512 Input */
453 #define E120_PRESET_PLAYBACK_ALL 0xFFFF /* Plays Scenes in Sequence if supported. */
454 /* E120_PRESET_PLAYBACK_SCENE 0x0001-
455  0xFFFE Plays individual Scene # */
456 
457 /********************************************************/
458 /* Table A-8: Lamp State Defines */
459 /********************************************************/
460 
461 #define E120_LAMP_OFF 0x00 /* No demonstrable light output */
462 #define E120_LAMP_ON 0x01
463 #define E120_LAMP_STRIKE 0x02 /* Arc-Lamp ignite */
464 #define E120_LAMP_STANDBY 0x03 /* Arc-Lamp Reduced Power Mode */
465 #define E120_LAMP_NOT_PRESENT 0x04 /* Lamp not installed */
466 #define E120_LAMP_ERROR 0x7F
467 /* Manufacturer-Specific States 0x80-
468  0xDF */
469 
470 /********************************************************/
471 /* Table A-9: Lamp On Mode Defines */
472 /********************************************************/
473 
474 #define E120_LAMP_ON_MODE_OFF 0x00 /* Lamp Stays off until directly instructed to Strike. */
475 #define E120_LAMP_ON_MODE_DMX 0x01 /* Lamp Strikes upon receiving a DMX512 signal. */
476 #define E120_LAMP_ON_MODE_ON 0x02 /* Lamp Strikes automatically at Power-up. */
477 #define E120_LAMP_ON_MODE_AFTER_CAL 0x03 /* Lamp Strikes after Calibration or Homing procedure. */
478 /* Manufacturer-Specific Modes 0x80-
479  0xDF */
480 
481 /********************************************************/
482 /* Table A-10: Self Test Defines */
483 /********************************************************/
484 
485 #define E120_SELF_TEST_OFF 0x00 /* Turns Self Tests Off */
486 /* Manufacturer Tests 0x01-
487  0xFE Various Manufacturer Self Tests */
488 #define E120_SELF_TEST_ALL 0xFF /* Self Test All, if applicable */
489 
490 /********************************************************/
491 /* Table A-11: Power State Defines */
492 /********************************************************/
493 
494 #define E120_POWER_STATE_FULL_OFF 0x00 /* Completely disengages power to device. Device can no longer respond. */
495 #define E120_POWER_STATE_SHUTDOWN 0x01 /* Reduced power mode, may require device reset to return to
496  normal operation. Device still responds to messages. */
497 #define E120_POWER_STATE_STANDBY 0x02 /* Reduced power mode. Device can return to NORMAL without a
498  reset. Device still responds to messages. */
499 #define E120_POWER_STATE_NORMAL 0xFF /* Normal Operating Mode. */
500 
501 /********************************************************/
502 /* Table A-12: Sensor Type Defines */
503 /********************************************************/
504 
505 #define E120_SENS_TEMPERATURE 0x00
506 #define E120_SENS_VOLTAGE 0x01
507 #define E120_SENS_CURRENT 0x02
508 #define E120_SENS_FREQUENCY 0x03
509 #define E120_SENS_RESISTANCE 0x04 /* Eg: Cable resistance */
510 #define E120_SENS_POWER 0x05
511 #define E120_SENS_MASS 0x06 /* Eg: Truss load Cell */
512 #define E120_SENS_LENGTH 0x07
513 #define E120_SENS_AREA 0x08
514 #define E120_SENS_VOLUME 0x09 /* Eg: Smoke Fluid */
515 #define E120_SENS_DENSITY 0x0A
516 #define E120_SENS_VELOCITY 0x0B
517 #define E120_SENS_ACCELERATION 0x0C
518 #define E120_SENS_FORCE 0x0D
519 #define E120_SENS_ENERGY 0x0E
520 #define E120_SENS_PRESSURE 0x0F
521 #define E120_SENS_TIME 0x10
522 #define E120_SENS_ANGLE 0x11
523 #define E120_SENS_POSITION_X 0x12 /* E.g.: Lamp position on Truss */
524 #define E120_SENS_POSITION_Y 0x13
525 #define E120_SENS_POSITION_Z 0x14
526 #define E120_SENS_ANGULAR_VELOCITY 0x15 /* E.g.: Wind speed */
527 #define E120_SENS_LUMINOUS_INTENSITY 0x16
528 #define E120_SENS_LUMINOUS_FLUX 0x17
529 #define E120_SENS_ILLUMINANCE 0x18
530 #define E120_SENS_CHROMINANCE_RED 0x19
531 #define E120_SENS_CHROMINANCE_GREEN 0x1A
532 #define E120_SENS_CHROMINANCE_BLUE 0x1B
533 #define E120_SENS_CONTACTS 0x1C /* E.g.: Switch inputs. */
534 #define E120_SENS_MEMORY 0x1D /* E.g.: ROM Size */
535 #define E120_SENS_ITEMS 0x1E /* E.g.: Scroller gel frames. */
536 #define E120_SENS_HUMIDITY 0x1F
537 #define E120_SENS_COUNTER_16BIT 0x20
538 #define E120_SENS_OTHER 0x7F
539 /* Manufacturer-Specific Sensors 0x80-
540  0xFF */
541 
542 /********************************************************/
543 /* Table A-13: Sensor Unit Defines */
544 /********************************************************/
545 
546 #define E120_UNITS_NONE 0x00 /* CONTACTS */
547 #define E120_UNITS_CENTIGRADE 0x01 /* TEMPERATURE */
548 #define E120_UNITS_VOLTS_DC 0x02 /* VOLTAGE */
549 #define E120_UNITS_VOLTS_AC_PEAK 0x03 /* VOLTAGE */
550 #define E120_UNITS_VOLTS_AC_RMS 0x04 /* VOLTAGE */
551 #define E120_UNITS_AMPERE_DC 0x05 /* CURRENT */
552 #define E120_UNITS_AMPERE_AC_PEAK 0x06 /* CURRENT */
553 #define E120_UNITS_AMPERE_AC_RMS 0x07 /* CURRENT */
554 #define E120_UNITS_HERTZ 0x08 /* FREQUENCY / ANG_VEL */
555 #define E120_UNITS_OHM 0x09 /* RESISTANCE */
556 #define E120_UNITS_WATT 0x0A /* POWER */
557 #define E120_UNITS_KILOGRAM 0x0B /* MASS */
558 #define E120_UNITS_METERS 0x0C /* LENGTH / POSITION */
559 #define E120_UNITS_METERS_SQUARED 0x0D /* AREA */
560 #define E120_UNITS_METERS_CUBED 0x0E /* VOLUME */
561 #define E120_UNITS_KILOGRAMMES_PER_METER_CUBED 0x0F /* DENSITY */
562 #define E120_UNITS_METERS_PER_SECOND 0x10 /* VELOCITY */
563 #define E120_UNITS_METERS_PER_SECOND_SQUARED 0x11 /* ACCELERATION */
564 #define E120_UNITS_NEWTON 0x12 /* FORCE */
565 #define E120_UNITS_JOULE 0x13 /* ENERGY */
566 #define E120_UNITS_PASCAL 0x14 /* PRESSURE */
567 #define E120_UNITS_SECOND 0x15 /* TIME */
568 #define E120_UNITS_DEGREE 0x16 /* ANGLE */
569 #define E120_UNITS_STERADIAN 0x17 /* ANGLE */
570 #define E120_UNITS_CANDELA 0x18 /* LUMINOUS_INTENSITY */
571 #define E120_UNITS_LUMEN 0x19 /* LUMINOUS_FLUX */
572 #define E120_UNITS_LUX 0x1A /* ILLUMINANCE */
573 #define E120_UNITS_IRE 0x1B /* CHROMINANCE */
574 #define E120_UNITS_BYTE 0x1C /* MEMORY */
575 /* Manufacturer-Specific Units 0x80-
576  0xFF */
577 
578 
579 /********************************************************/
580 /* Table A-14: Sensor Unit Prefix Defines */
581 /********************************************************/
582 
583 #define E120_PREFIX_NONE 0x00 /* Multiply by 1 */
584 #define E120_PREFIX_DECI 0x01 /* Multiply by 10-1 */
585 #define E120_PREFIX_CENTI 0x02 /* Multiply by 10-2 */
586 #define E120_PREFIX_MILLI 0x03 /* Multiply by 10-3 */
587 #define E120_PREFIX_MICRO 0x04 /* Multiply by 10-6 */
588 #define E120_PREFIX_NANO 0x05 /* Multiply by 10-9 */
589 #define E120_PREFIX_PICO 0x06 /* Multiply by 10-12 */
590 #define E120_PREFIX_FEMPTO 0x07 /* Multiply by 10-15 */
591 #define E120_PREFIX_ATTO 0x08 /* Multiply by 10-18 */
592 #define E120_PREFIX_ZEPTO 0x09 /* Multiply by 10-21 */
593 #define E120_PREFIX_YOCTO 0x0A /* Multiply by 10-24 */
594 #define E120_PREFIX_DECA 0x11 /* Multiply by 10+1 */
595 #define E120_PREFIX_HECTO 0x12 /* Multiply by 10+2 */
596 #define E120_PREFIX_KILO 0x13 /* Multiply by 10+3 */
597 #define E120_PREFIX_MEGA 0x14 /* Multiply by 10+6 */
598 #define E120_PREFIX_GIGA 0x15 /* Multiply by 10+9 */
599 #define E120_PREFIX_TERRA 0x16 /* Multiply by 10+12 */
600 #define E120_PREFIX_PETA 0x17 /* Multiply by 10+15 */
601 #define E120_PREFIX_EXA 0x18 /* Multiply by 10+18 */
602 #define E120_PREFIX_ZETTA 0x19 /* Multiply by 10+21 */
603 #define E120_PREFIX_YOTTA 0x1A /* Multiply by 10+24 */
604 
605 
606 /********************************************************/
607 /* Table A-15: Data Type Defines */
608 /********************************************************/
609 
610 #define E120_DS_NOT_DEFINED 0x00 /* Data type is not defined */
611 #define E120_DS_BIT_FIELD 0x01 /* Data is bit packed */
612 #define E120_DS_ASCII 0x02 /* Data is a string */
613 #define E120_DS_UNSIGNED_BYTE 0x03 /* Data is an array of unsigned bytes */
614 #define E120_DS_SIGNED_BYTE 0x04 /* Data is an array of signed bytes */
615 #define E120_DS_UNSIGNED_WORD 0x05 /* Data is an array of unsigned 16-bit words */
616 #define E120_DS_SIGNED_WORD 0x06 /* Data is an array of signed 16-bit words */
617 #define E120_DS_UNSIGNED_DWORD 0x07 /* Data is an array of unsigned 32-bit words */
618 #define E120_DS_SIGNED_DWORD 0x08 /* Data is an array of signed 32-bit words */
619 /* Manufacturer-Specific Data Types 0x80- */
620 /* 0xDF */
621 
622 /********************************************************/
623 /* Table A-16: Parameter Desc. Command Class Defines */
624 /********************************************************/
625 
626 #define E120_CC_GET 0x01 /* PID supports GET only */
627 #define E120_CC_SET 0x02 /* PID supports SET only */
628 #define E120_CC_GET_SET 0x03 /* PID supports GET & SET */
629 
630 /********************************************************/
631 /* Table A-17: Response NACK Reason Code Defines */
632 /********************************************************/
633 
634 #define E120_NR_UNKNOWN_PID 0x0000 /* The responder cannot comply with request because the message
635  is not implemented in responder. */
636 #define E120_NR_FORMAT_ERROR 0x0001 /* The responder cannot interpret request as controller data
637  was not formatted correctly. */
638 #define E120_NR_HARDWARE_FAULT 0x0002 /* The responder cannot comply due to an internal hardware fault*/
639 // TODO: Change "line master" to different terminology once it's changed in the standard.
640 #define E120_NR_PROXY_REJECT 0x0003 /* Proxy is not the RDM line master and cannot comply with message.*/
641 #define E120_NR_WRITE_PROTECT 0x0004 /* SET Command normally allowed but being blocked currently. */
642 #define E120_NR_UNSUPPORTED_COMMAND_CLASS 0x0005 /* Not valid for Command Class attempted. May be used where
643  GET allowed but SET is not supported. */
644 #define E120_NR_DATA_OUT_OF_RANGE 0x0006 /* Value for given Parameter out of allowable range or
645  not supported. */
646 #define E120_NR_BUFFER_FULL 0x0007 /* Buffer or Queue space currently has no free space to store data. */
647 #define E120_NR_PACKET_SIZE_UNSUPPORTED 0x0008 /* Incoming message exceeds buffer capacity. */
648 #define E120_NR_SUB_DEVICE_OUT_OF_RANGE 0x0009 /* Sub-Device is out of range or unknown. */
649 #define E120_NR_PROXY_BUFFER_FULL 0x000A /* Proxy buffer is full and can not store any more Queued */
650  /* Message or Status Message responses. */
651 #define E137_2_NR_ACTION_NOT_SUPPORTED 0x000B /* The parameter data is valid but the SET operation cannot be */
652  /* performed with the current configuration. */
653 
654 /********************************************************************************************************************************/
655 /********************************************************************************************************************************/
656 /* ANSI E1.33 DEFINES */
657 /********************************************************************************************************************************/
658 /********************************************************************************************************************************/
659 
660 /********************************************************/
661 /* Table A-16: Additional Response NACK Reason Codes */
662 /********************************************************/
663 #define E133_NR_UNKNOWN_SCOPE 0x000F /* The Component is not participating in the given Scope. */
664 #define E133_NR_INVALID_STATIC_CONFIG_TYPE 0x0010 /* The Static Config Type provided is invalid. */
665 #define E133_NR_INVALID_IPV4_ADDRESS 0x0011 /* The IPv4 Address provided is invalid. */
666 #define E133_NR_INVALID_IPV6_ADDRESS 0x0012 /* The IPv6 Address provided is invalid. */
667 #define E133_NR_INVALID_PORT 0x0013 /* The transport layer port provided is invalid. */
668 
669 
670 /********************************************************************************************************************************/
671 /********************************************************************************************************************************/
672 /* ANSI E1.37-1 DEFINES */
673 /********************************************************************************************************************************/
674 /********************************************************************************************************************************/
675 
676 /********************************************************/
677 /* E1.37-1 Table A-2: Preset Programmed Defines */
678 /********************************************************/
679 #define E137_1_PRESET_NOT_PROGRAMMED 0x00 /* Preset Scene not programmed. */
680 #define E137_1_PRESET_PROGRAMMED 0x01 /* Preset Scene programmed. */
681 #define E137_1_PRESET_PROGRAMMED_READ_ONLY 0x02 /* Preset Scene read-only, factory programmed. */
682 
683 /********************************************************/
684 /* E1.37-1 Table A-3: Merge Mode Defines */
685 /********************************************************/
686 #define E137_1_MERGEMODE_DEFAULT 0x00 /* Preset overrides DMX512 default behavior as defined in */
687  /* E1.20 PRESET_PLAYBACK */
688 #define E137_1_MERGEMODE_HTP 0x01 /* Highest Takes Precedence on slot by slot basis */
689 #define E137_1_MERGEMODE_LTP 0x02 /* Latest Takes Precedence from Preset or DMX512 on slot by slot */
690 #define E137_1_MERGEMODE_DMX_ONLY 0x03 /* DMX512 only, Preset ignored */
691 #define E137_1_MERGEMODE_OTHER 0xFF /* Other (undefined) merge mode */
692 
693 
694 /********************************************************************************************************************************/
695 /********************************************************************************************************************************/
696 /* ANSI E1.37-2 DEFINES */
697 /********************************************************************************************************************************/
698 /********************************************************************************************************************************/
699 
700 /********************************************************/
701 /* E1.37-2 Table A-3: DHCP Mode Defines */
702 /********************************************************/
703 #define E137_2_DHCP_MODE_INACTIVE 0x00 /* IP Address was not obtained via DHCP */
704 #define E137_2_DHCP_MODE_ACTIVE 0x01 /* IP Address was obtained via DHCP */
705 #define E137_2_DHCP_MODE_UNKNOWN 0x02 /* The system cannot determine if address was obtained via DHCP. */
706 
707 
708 /********************************************************************************************************************************/
709 /********************************************************************************************************************************/
710 /* ANSI E1.37-7 DEFINES */
711 /********************************************************************************************************************************/
712 /********************************************************************************************************************************/
713 
714 /********************************************************/
715 /* E1.37-7 Table A-1: RDM Parameter ID Defines */
716 /********************************************************/
717 #define E137_7_ENDPOINT_LIST 0x0900
718 #define E137_7_ENDPOINT_LIST_CHANGE 0x0901
719 #define E137_7_IDENTIFY_ENDPOINT 0x0902
720 #define E137_7_ENDPOINT_TO_UNIVERSE 0x0903
721 #define E137_7_ENDPOINT_MODE 0x0904
722 #define E137_7_ENDPOINT_LABEL 0x0905
723 #define E137_7_RDM_TRAFFIC_ENABLE 0x0906
724 #define E137_7_DISCOVERY_STATE 0x0907
725 #define E137_7_BACKGROUND_DISCOVERY 0x0908
726 #define E137_7_ENDPOINT_TIMING 0x0909
727 #define E137_7_ENDPOINT_TIMING_DESCRIPTION 0x090A
728 #define E137_7_ENDPOINT_RESPONDERS 0x090B
729 #define E137_7_ENDPOINT_RESPONDER_LIST_CHANGE 0x090C
730 #define E137_7_BINDING_CONTROL_FIELDS 0x090D
731 #define E137_7_BACKGROUND_QUEUED_STATUS_POLICY 0x090E
732 #define E137_7_BACKGROUND_QUEUED_STATUS_POLICY_DESCRIPTION 0x090F
733 
734 /********************************************************/
735 /* E1.37-7 Table A-2: Discovery State Defines */
736 /********************************************************/
737 #define E137_7_DISCOVERY_INCOMPLETE 0x00
738 #define E137_7_DISCOVERY_INCREMENTAL 0x01
739 #define E137_7_DISCOVERY_FULL 0x02
740 #define E137_7_DISCOVERY_NOT_ACTIVE 0x04
741 
742 /********************************************************/
743 /* E1.37-7 Table A-3: Discovery Status Defines */
744 /********************************************************/
745 #define E137_7_DISCOVERY_COUNT_INCOMPLETE 0x0000
746 #define E137_7_DISCOVERY_COUNT_UNKNOWN 0xFFFF
747 
748 /********************************************************/
749 /* E1.37-7 Table A-4: Endpoint Mode Defines */
750 /********************************************************/
751 #define E137_7_ENDPOINT_MODE_DISABLED 0x00
752 #define E137_7_ENDPOINT_MODE_INPUT 0x01
753 #define E137_7_ENDPOINT_MODE_OUTPUT 0x02
754 
755 /********************************************************/
756 /* E1.37-7 Table A-5: Endpoint Types */
757 /********************************************************/
758 #define E137_7_ENDPOINT_TYPE_VIRTUAL 0x00
759 #define E137_7_ENDPOINT_TYPE_PHYSICAL 0x01
760 
761 /********************************************************/
762 /* Table A-12: Additional Reponse NACK Reason Codes */
763 /********************************************************/
764 #define E137_7_NR_ACTION_NOT_SUPPORTED 0x000B /* The specified action is not supported. */
765 #define E137_7_NR_ENDPOINT_NUMBER_INVALID 0x000C /* The specified endpoint is invalid. */
766 #define E137_7_NR_INVALID_ENDPOINT_MODE 0x000D /* The specified endpoint is in an invalid Endpoint Mode for the requested action. */
767 #define E137_7_NR_UNKNOWN_UID 0x000E /* The specified UID is not recognized. */