Open Lighting Architecture: include/ola/rdm/RDMEnums.h Source File

| Open Lighting Architecture 0.10.9

Loading...
Searching...
No Matches
RDMEnums.h
Go to the documentation of this file.
1/*
2 * This library is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU Lesser General Public
4 * License as published by the Free Software Foundation; either
5 * version 2.1 of the License, or (at your option) any later version.
6 *
7 * This library is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
11 *
12 * You should have received a copy of the GNU Lesser General Public
13 * License along with this library; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15 *
16 * RDMEnums.h
17 * Provide a generic RDM ENUMS that can use different implementations.
18 * Copyright (C) 2010 Simon Newton
19 */
20
28
29#ifndef INCLUDE_OLA_RDM_RDMENUMS_H_
30#define INCLUDE_OLA_RDM_RDMENUMS_H_
31
32#include <stdint.h>
33
34namespace ola {
35namespace rdm {
36
37static const uint16_t ROOT_RDM_DEVICE = 0;
38static const uint16_t ALL_RDM_SUBDEVICES = 0xffff;
39static const uint16_t MAX_SUBDEVICE_NUMBER = 0x0200;
40static const uint8_t MAX_RDM_STRING_LENGTH = 32;
41static const uint16_t ZERO_FOOTPRINT_DMX_ADDRESS = 0xffff;
42static const uint8_t MAX_QUEUED_MESSAGE_COUNT = 255;
43// This is separated out because we never propagate OVERFLOWs up to the
44// clients.
45static const uint8_t ACK_OVERFLOW = 3;
46
47typedef enum {
48 RDM_VERSION_1_0 = 0x100,
49} rdm_protocol_version;
50
55 typedef enum {
56 DISCOVER_COMMAND = 0x10,
57 DISCOVER_COMMAND_RESPONSE = 0x11,
58 GET_COMMAND = 0x20,
59 GET_COMMAND_RESPONSE = 0x21,
60 SET_COMMAND = 0x30,
61 SET_COMMAND_RESPONSE = 0x31,
62 INVALID_COMMAND = 0xff,
63} RDMCommandClass;
64
65typedef enum {
66 // discovery
67 PID_DISC_UNIQUE_BRANCH = 0x0001,
68 PID_DISC_MUTE = 0x0002,
69 PID_DISC_UN_MUTE = 0x0003,
70 // network management
71 PID_PROXIED_DEVICES = 0x0010,
72 PID_PROXIED_DEVICE_COUNT = 0x0011,
73 PID_COMMS_STATUS = 0x0015,
74 // status collection
75 PID_QUEUED_MESSAGE = 0x0020,
76 PID_STATUS_MESSAGES = 0x0030,
77 PID_STATUS_ID_DESCRIPTION = 0x0031,
78 PID_CLEAR_STATUS_ID = 0x0032,
79 PID_SUB_DEVICE_STATUS_REPORT_THRESHOLD = 0x0033,
80 // RDM information
81 PID_SUPPORTED_PARAMETERS = 0x0050,
82 PID_PARAMETER_DESCRIPTION = 0x0051,
83 // production information
84 PID_DEVICE_INFO = 0x0060,
85 PID_PRODUCT_DETAIL_ID_LIST = 0x0070,
86 PID_DEVICE_MODEL_DESCRIPTION = 0x0080,
87 PID_MANUFACTURER_LABEL = 0x0081,
88 PID_DEVICE_LABEL = 0x0082,
89 PID_FACTORY_DEFAULTS = 0x0090,
90 PID_LANGUAGE_CAPABILITIES = 0x00A0,
91 PID_LANGUAGE = 0x00B0,
92 PID_SOFTWARE_VERSION_LABEL = 0x00C0,
93 PID_BOOT_SOFTWARE_VERSION_ID = 0x00C1,
94 PID_BOOT_SOFTWARE_VERSION_LABEL = 0x00C2,
95 // DMX512
96 PID_DMX_PERSONALITY = 0x00E0,
97 PID_DMX_PERSONALITY_DESCRIPTION = 0x00E1,
98 PID_DMX_START_ADDRESS = 0x00F0,
99 PID_SLOT_INFO = 0x0120,
100 PID_SLOT_DESCRIPTION = 0x0121,
101 PID_DEFAULT_SLOT_VALUE = 0x0122,
102 // sensors
103 PID_SENSOR_DEFINITION = 0x0200,
104 PID_SENSOR_VALUE = 0x0201,
105 PID_RECORD_SENSORS = 0x0202,
106 // power/lamp settings
107 PID_DEVICE_HOURS = 0x0400,
108 PID_LAMP_HOURS = 0x0401,
109 PID_LAMP_STRIKES = 0x0402,
110 PID_LAMP_STATE = 0x0403,
111 PID_LAMP_ON_MODE = 0x0404,
112 PID_DEVICE_POWER_CYCLES = 0x0405,
113 // display settings
114 PID_DISPLAY_INVERT = 0x0500,
115 PID_DISPLAY_LEVEL = 0x0501,
116 // configuration
117 PID_PAN_INVERT = 0x0600,
118 PID_TILT_INVERT = 0x0601,
119 PID_PAN_TILT_SWAP = 0x0602,
120 PID_REAL_TIME_CLOCK = 0x0603,
121 // control
122 PID_IDENTIFY_DEVICE = 0x1000,
123 PID_RESET_DEVICE = 0x1001,
124 PID_POWER_STATE = 0x1010,
125 PID_PERFORM_SELFTEST = 0x1020,
126 PID_SELF_TEST_DESCRIPTION = 0x1021,
127 PID_CAPTURE_PRESET = 0x1030,
128 PID_PRESET_PLAYBACK = 0x1031,
129
130 // E1.37-1 PIDS
131 // DMX512 setup
132 PID_DMX_BLOCK_ADDRESS = 0x0140,
133 PID_DMX_FAIL_MODE = 0x0141,
134 PID_DMX_STARTUP_MODE = 0x0142,
135
136 // Dimmer Settings
137 PID_DIMMER_INFO = 0x0340,
138 PID_MINIMUM_LEVEL = 0x0341,
139 PID_MAXIMUM_LEVEL = 0x0342,
140 PID_CURVE = 0x0343,
141 PID_CURVE_DESCRIPTION = 0x0344,
142
143 // Control
144 PID_OUTPUT_RESPONSE_TIME = 0x0345,
145 PID_OUTPUT_RESPONSE_TIME_DESCRIPTION = 0x0346,
146 PID_MODULATION_FREQUENCY = 0x0347,
147 PID_MODULATION_FREQUENCY_DESCRIPTION = 0x0348,
148
149 // Power/Lamp Settings
150 PID_BURN_IN = 0x0440,
151
152 // Configuration
153 PID_LOCK_PIN = 0x0640,
154 PID_LOCK_STATE = 0x0641,
155 PID_LOCK_STATE_DESCRIPTION = 0x0642,
156 PID_IDENTIFY_MODE = 0x1040,
157 PID_PRESET_INFO = 0x1041,
158 PID_PRESET_STATUS = 0x1042,
159 PID_PRESET_MERGEMODE = 0x1043,
160 PID_POWER_ON_SELF_TEST = 0x1044,
161
162 // Draft E1.33 PIDs - DO NOT USE
163 PID_ENDPOINT_LIST = 0x7FE0,
164 PID_ENDPOINT_TO_UNIVERSE = 0x7FE1,
165 PID_RDM_TRAFFIC_ENABLE = 0x7FE2,
166 PID_ENDPOINT_MODE = 0x7FE3,
167 PID_ENDPOINT_LABEL = 0x7FE4,
168 PID_DISCOVERY_STATE = 0x7FE5,
169 PID_ENDPOINT_TIMING = 0x7FE6,
170 PID_ENDPOINT_TIMING_DESCRIPTION = 0x7FE7,
171 PID_BINDING_CONTROL_FIELDS = 0x7FE8,
172 PID_ENDPOINT_IDENTIFY = 0x7FE9,
173 PID_BACKGROUND_DISCOVERY = 0x7FEA,
174 PID_ENDPOINT_DEVICE_LIST_CHANGE = 0x7FEB,
175 PID_ENDPOINT_DEVICES = 0x7FEC,
176 PID_TCP_COMMS_STATUS = 0x7FED,
177 PID_ENDPOINT_LIST_CHANGE = 0x7FEE,
178 PID_BACKGROUND_QUEUED_STATUS_POLICY = 0x7FD0,
179 PID_BACKGROUND_QUEUED_STATUS_POLICY_DESCRIPTION = 0x7FD1,
180 PID_BACKGROUND_STATUS_TYPE = 0x7FD2,
181 PID_QUEUED_STATUS_ENDPOINT_COLLECTION = 0x7FD3,
182 PID_QUEUED_STATUS_UID_COLLECTION = 0x7FD4,
183
184 // E1.37-2 PIDs
185 PID_LIST_INTERFACES = 0x0700,
186 PID_INTERFACE_LABEL = 0x0701,
187 PID_INTERFACE_HARDWARE_ADDRESS_TYPE1 = 0x0702,
188 PID_IPV4_DHCP_MODE = 0x0703,
189 PID_IPV4_ZEROCONF_MODE = 0x0704,
190 PID_IPV4_CURRENT_ADDRESS = 0x0705,
191 PID_IPV4_STATIC_ADDRESS = 0x0706,
192 PID_INTERFACE_RENEW_DHCP = 0x0707,
193 PID_INTERFACE_RELEASE_DHCP = 0x0708,
194 PID_INTERFACE_APPLY_CONFIGURATION = 0x0709,
195 PID_IPV4_DEFAULT_ROUTE = 0x070A,
196 PID_DNS_NAME_SERVER = 0x070B,
197 PID_DNS_HOSTNAME = 0x070C,
198 PID_DNS_DOMAIN_NAME = 0x070D,
199} rdm_pid;
200
201
202typedef enum {
203 STATUS_NONE = 0x0,
204 STATUS_GET_LAST_MESSAGE = 0x1,
205 STATUS_ADVISORY = 0x2,
206 STATUS_WARNING = 0x3,
207 STATUS_ERROR = 0x4,
208 STATUS_ADVISORY_CLEARED = 0x12,
209 STATUS_WARNING_CLEARED = 0x13,
210 STATUS_ERROR_CLEARED = 0x14,
211} rdm_status_type;
212
213
214typedef enum {
215 SENSOR_TEMPERATURE = 0x00,
216 SENSOR_VOLTAGE = 0x01,
217 SENSOR_CURRENT = 0x02,
218 SENSOR_FREQUENCY = 0x03,
219 SENSOR_RESISTANCE = 0x04,
220 SENSOR_POWER = 0x05,
221 SENSOR_MASS = 0x06,
222 SENSOR_LENGTH = 0x07,
223 SENSOR_AREA = 0x08,
224 SENSOR_VOLUME = 0x09,
225 SENSOR_DENSITY = 0x0A,
226 SENSOR_VELOCITY = 0x0B,
227 SENSOR_ACCELERATION = 0x0C,
228 SENSOR_FORCE = 0x0D,
229 SENSOR_ENERGY = 0x0E,
230 SENSOR_PRESSURE = 0x0F,
231 SENSOR_TIME = 0x10,
232 SENSOR_ANGLE = 0x11,
233 SENSOR_POSITION_X = 0x12,
234 SENSOR_POSITION_Y = 0x13,
235 SENSOR_POSITION_Z = 0x14,
236 SENSOR_ANGULAR_VELOCITY = 0x15,
237 SENSOR_LUMINOUS_INTENSITY = 0x16,
238 SENSOR_LUMINOUS_FLUX = 0x17,
239 SENSOR_ILLUMINANCE = 0x18,
240 SENSOR_CHROMINANCE_RED = 0x19,
241 SENSOR_CHROMINANCE_GREEN = 0x1A,
242 SENSOR_CHROMINANCE_BLUE = 0x1B,
243 SENSOR_CONTACTS = 0x1C,
244 SENSOR_MEMORY = 0x1D,
245 SENSOR_ITEMS = 0x1E,
246 SENSOR_HUMIDITY = 0x1F,
247 SENSOR_COUNTER_16BIT = 0x20,
248 SENSOR_OTHER = 0x7F,
249} rdm_sensor_type;
250
251typedef enum {
252 UNITS_NONE = 0x00,
253 UNITS_CENTIGRADE = 0x01,
254 UNITS_VOLTS_DC = 0x02,
255 UNITS_VOLTS_AC_PEAK = 0x03,
256 UNITS_VOLTS_AC_RMS = 0x04,
257 UNITS_AMPERE_DC = 0x05,
258 UNITS_AMPERE_AC_PEAK = 0x06,
259 UNITS_AMPERE_AC_RMS = 0x07,
260 UNITS_HERTZ = 0x08,
261 UNITS_OHM = 0x09,
262 UNITS_WATT = 0x0A,
263 UNITS_KILOGRAM = 0x0B,
264 UNITS_METERS = 0x0C,
265 UNITS_METERS_SQUARED = 0x0D,
266 UNITS_METERS_CUBED = 0x0E,
267 UNITS_KILOGRAMMES_PER_METER_CUBED = 0x0F,
268 UNITS_METERS_PER_SECOND = 0x10,
269 UNITS_METERS_PER_SECOND_SQUARED = 0x11,
270 UNITS_NEWTON = 0x12,
271 UNITS_JOULE = 0x13,
272 UNITS_PASCAL = 0x14,
273 UNITS_SECOND = 0x15,
274 UNITS_DEGREE = 0x16,
275 UNITS_STERADIAN = 0x17,
276 UNITS_CANDELA = 0x18,
277 UNITS_LUMEN = 0x19,
278 UNITS_LUX = 0x1A,
279 UNITS_IRE = 0x1B,
280 UNITS_BYTE = 0x1C,
281} rdm_pid_unit;
282
283
284typedef enum {
285 PREFIX_NONE = 0x00,
286 PREFIX_DECI = 0x01,
287 PREFIX_CENTI = 0x02,
288 PREFIX_MILLI = 0x03,
289 PREFIX_MICRO = 0x04,
290 PREFIX_NANO = 0x05,
291 PREFIX_PICO = 0x06,
292 PREFIX_FEMTO = 0x07,
293 PREFIX_ATTO = 0x08,
294 PREFIX_ZEPTO = 0x09,
295 PREFIX_YOCTO = 0x0A,
296 PREFIX_DECA = 0x11,
297 PREFIX_HECTO = 0x12,
298 PREFIX_KILO = 0x13,
299 PREFIX_MEGA = 0x14,
300 PREFIX_GIGA = 0x15,
301 PREFIX_TERA = 0x16,
302 PREFIX_PETA = 0x17,
303 PREFIX_EXA = 0x18,
304 PREFIX_ZETTA = 0x19,
305 PREFIX_YOTTA = 0x1A,
306} rdm_pid_prefix;
307
308
309typedef enum {
310 CC_GET = 0x01,
311 CC_SET = 0x02,
312 CC_GET_SET = 0x03,
313} rdm_command_class;
314
315
316typedef enum {
317 DS_NOT_DEFINED = 0x0,
318 DS_BIT_FIELD = 0x01,
319 DS_ASCII = 0x02,
320 DS_UNSIGNED_BYTE = 0x03,
321 DS_SIGNED_BYTE = 0x04,
322 DS_UNSIGNED_WORD = 0x05,
323 DS_SIGNED_WORD = 0x06,
324 DS_UNSIGNED_DWORD = 0x07,
325 DS_SIGNED_DWORD = 0x08,
326} rdm_data_type;
327
328
329// Remember to update the other places when adding new NACK codes:
330// common/rdm/RDMHelper.cpp
331// plugins/usbpro/DmxTriWidget.cpp
332// plugins/usbpro/DmxTriWidget.h
333// python/ola/OlaClient.py
334typedef enum {
335 NR_UNKNOWN_PID = 0x0000,
336 NR_FORMAT_ERROR = 0x0001,
337 NR_HARDWARE_FAULT = 0x0002,
338 NR_PROXY_REJECT = 0x0003,
339 NR_WRITE_PROTECT = 0x0004,
340 NR_UNSUPPORTED_COMMAND_CLASS = 0x0005,
341 NR_DATA_OUT_OF_RANGE = 0x0006,
342 NR_BUFFER_FULL = 0x0007,
343 NR_PACKET_SIZE_UNSUPPORTED = 0x0008,
344 NR_SUB_DEVICE_OUT_OF_RANGE = 0x0009,
345 NR_PROXY_BUFFER_FULL = 0x000A,
346 NR_ACTION_NOT_SUPPORTED = 0x000B,
347 NR_ENDPOINT_NUMBER_INVALID = 0x000C,
348 NR_INVALID_ENDPOINT_MODE = 0x000D,
349 NR_UNKNOWN_UID = 0x000E,
350 NR_UNKNOWN_SCOPE = 0x000F,
351 NR_INVALID_STATIC_CONFIG_TYPE = 0x0010,
352 NR_INVALID_IPV4_ADDRESS = 0x0011,
353 NR_INVALID_IPV6_ADDRESS = 0x0012,
354 NR_INVALID_PORT = 0x0013
355} rdm_nack_reason;
356
357
358typedef enum {
359 PRODUCT_CATEGORY_NOT_DECLARED = 0x0000,
360 PRODUCT_CATEGORY_FIXTURE = 0x0100,
361 PRODUCT_CATEGORY_FIXTURE_FIXED = 0x0101,
362 PRODUCT_CATEGORY_FIXTURE_MOVING_YOKE = 0x0102,
363 PRODUCT_CATEGORY_FIXTURE_MOVING_MIRROR = 0x0103,
364 PRODUCT_CATEGORY_FIXTURE_OTHER = 0x01FF,
365 PRODUCT_CATEGORY_FIXTURE_ACCESSORY = 0x0200,
366 PRODUCT_CATEGORY_FIXTURE_ACCESSORY_COLOR = 0x0201,
367 PRODUCT_CATEGORY_FIXTURE_ACCESSORY_YOKE = 0x0202,
368 PRODUCT_CATEGORY_FIXTURE_ACCESSORY_MIRROR = 0x0203,
369 PRODUCT_CATEGORY_FIXTURE_ACCESSORY_EFFECT = 0x0204,
370 PRODUCT_CATEGORY_FIXTURE_ACCESSORY_BEAM = 0x0205,
371 PRODUCT_CATEGORY_FIXTURE_ACCESSORY_OTHER = 0x02FF,
372 PRODUCT_CATEGORY_PROJECTOR = 0x0300,
373 PRODUCT_CATEGORY_PROJECTOR_FIXED = 0x0301,
374 PRODUCT_CATEGORY_PROJECTOR_MOVING_YOKE = 0x0302,
375 PRODUCT_CATEGORY_PROJECTOR_MOVING_MIRROR = 0x0303,
376 PRODUCT_CATEGORY_PROJECTOR_OTHER = 0x03FF,
377 PRODUCT_CATEGORY_ATMOSPHERIC = 0x0400,
378 PRODUCT_CATEGORY_ATMOSPHERIC_EFFECT = 0x0401,
379 PRODUCT_CATEGORY_ATMOSPHERIC_PYRO = 0x0402,
380 PRODUCT_CATEGORY_ATMOSPHERIC_OTHER = 0x04FF,
381 PRODUCT_CATEGORY_DIMMER = 0x0500,
382 PRODUCT_CATEGORY_DIMMER_AC_INCANDESCENT = 0x0501,
383 PRODUCT_CATEGORY_DIMMER_AC_FLUORESCENT = 0x0502,
384 PRODUCT_CATEGORY_DIMMER_AC_COLDCATHODE = 0x0503,
385 PRODUCT_CATEGORY_DIMMER_AC_NONDIM = 0x0504,
386 PRODUCT_CATEGORY_DIMMER_AC_ELV = 0x0505,
387 PRODUCT_CATEGORY_DIMMER_AC_OTHER = 0x0506,
388 PRODUCT_CATEGORY_DIMMER_DC_LEVEL = 0x0507,
389 PRODUCT_CATEGORY_DIMMER_DC_PWM = 0x0508,
390 PRODUCT_CATEGORY_DIMMER_CS_LED = 0x0509,
391 PRODUCT_CATEGORY_DIMMER_OTHER = 0x05FF,
392 PRODUCT_CATEGORY_POWER = 0x0600,
393 PRODUCT_CATEGORY_POWER_CONTROL = 0x0601,
394 PRODUCT_CATEGORY_POWER_SOURCE = 0x0602,
395 PRODUCT_CATEGORY_POWER_OTHER = 0x06FF,
396 PRODUCT_CATEGORY_SCENIC = 0x0700,
397 PRODUCT_CATEGORY_SCENIC_DRIVE = 0x0701,
398 PRODUCT_CATEGORY_SCENIC_OTHER = 0x07FF,
399 PRODUCT_CATEGORY_DATA = 0x0800,
400 PRODUCT_CATEGORY_DATA_DISTRIBUTION = 0x0801,
401 PRODUCT_CATEGORY_DATA_CONVERSION = 0x0802,
402 PRODUCT_CATEGORY_DATA_OTHER = 0x08FF,
403 PRODUCT_CATEGORY_AV = 0x0900,
404 PRODUCT_CATEGORY_AV_AUDIO = 0x0901,
405 PRODUCT_CATEGORY_AV_VIDEO = 0x0902,
406 PRODUCT_CATEGORY_AV_OTHER = 0x09FF,
407 PRODUCT_CATEGORY_MONITOR = 0x0A00,
408 PRODUCT_CATEGORY_MONITOR_ACLINEPOWER = 0x0A01,
409 PRODUCT_CATEGORY_MONITOR_DCPOWER = 0x0A02,
410 PRODUCT_CATEGORY_MONITOR_ENVIRONMENTAL = 0x0A03,
411 PRODUCT_CATEGORY_MONITOR_OTHER = 0x0AFF,
412 PRODUCT_CATEGORY_CONTROL = 0x7000,
413 PRODUCT_CATEGORY_CONTROL_CONTROLLER = 0x7001,
414 PRODUCT_CATEGORY_CONTROL_BACKUPDEVICE = 0x7002,
415 PRODUCT_CATEGORY_CONTROL_OTHER = 0x70FF,
416 PRODUCT_CATEGORY_TEST = 0x7100,
417 PRODUCT_CATEGORY_TEST_EQUIPMENT = 0x7101,
418 PRODUCT_CATEGORY_TEST_EQUIPMENT_OTHER = 0x71FF,
419 PRODUCT_CATEGORY_OTHER = 0x7FFF,
420} rdm_product_category;
421
422
423// product details
424typedef enum {
425 PRODUCT_DETAIL_NOT_DECLARED = 0x0000,
426 PRODUCT_DETAIL_ARC = 0x0001,
427 PRODUCT_DETAIL_METAL_HALIDE = 0x0002,
428 PRODUCT_DETAIL_INCANDESCENT = 0x0003,
429 PRODUCT_DETAIL_LED = 0x0004,
430 PRODUCT_DETAIL_FLUORESCENT = 0x0005,
431 PRODUCT_DETAIL_COLDCATHODE = 0x0006,
432 PRODUCT_DETAIL_ELECTROLUMINESCENT = 0x0007,
433 PRODUCT_DETAIL_LASER = 0x0008,
434 PRODUCT_DETAIL_FLASHTUBE = 0x0009,
435 PRODUCT_DETAIL_COLORSCROLLER = 0x0100,
436 PRODUCT_DETAIL_COLORWHEEL = 0x0101,
437 PRODUCT_DETAIL_COLORCHANGE = 0x0102,
438 PRODUCT_DETAIL_IRIS_DOUSER = 0x0103,
439 PRODUCT_DETAIL_DIMMING_SHUTTER = 0x0104,
440 PRODUCT_DETAIL_PROFILE_SHUTTER = 0x0105,
441 PRODUCT_DETAIL_BARNDOOR_SHUTTER = 0x0106,
442 PRODUCT_DETAIL_EFFECTS_DISC = 0x0107,
443 PRODUCT_DETAIL_GOBO_ROTATOR = 0x0108,
444 PRODUCT_DETAIL_VIDEO = 0x0200,
445 PRODUCT_DETAIL_SLIDE = 0x0201,
446 PRODUCT_DETAIL_FILM = 0x0202,
447 PRODUCT_DETAIL_OILWHEEL = 0x0203,
448 PRODUCT_DETAIL_LCDGATE = 0x0204,
449 PRODUCT_DETAIL_FOGGER_GLYCOL = 0x0300,
450 PRODUCT_DETAIL_FOGGER_MINERALOIL = 0x0301,
451 PRODUCT_DETAIL_FOGGER_WATER = 0x0302,
452 PRODUCT_DETAIL_CO2 = 0x0303,
453 PRODUCT_DETAIL_LN2 = 0x0304,
454 PRODUCT_DETAIL_BUBBLE = 0x0305,
455 PRODUCT_DETAIL_FLAME_PROPANE = 0x0306,
456 PRODUCT_DETAIL_FLAME_OTHER = 0x0307,
457 PRODUCT_DETAIL_OLEFACTORY_STIMULATOR = 0x0308,
458 PRODUCT_DETAIL_SNOW = 0x0309,
459 PRODUCT_DETAIL_WATER_JET = 0x030A,
460 PRODUCT_DETAIL_WIND = 0x030B,
461 PRODUCT_DETAIL_CONFETTI = 0x030C,
462 PRODUCT_DETAIL_HAZARD = 0x030D,
463 PRODUCT_DETAIL_PHASE_CONTROL = 0x0400,
464 PRODUCT_DETAIL_REVERSE_PHASE_CONTROL = 0x0401,
465 PRODUCT_DETAIL_SINE = 0x0402,
466 PRODUCT_DETAIL_PWM = 0x0403,
467 PRODUCT_DETAIL_DC = 0x0404,
468 PRODUCT_DETAIL_HFBALLAST = 0x0405,
469 PRODUCT_DETAIL_HFHV_NEONBALLAST = 0x0406,
470 PRODUCT_DETAIL_HFHV_EL = 0x0407,
471 PRODUCT_DETAIL_MHR_BALLAST = 0x0408,
472 PRODUCT_DETAIL_BITANGLE_MODULATION = 0x0409,
473 PRODUCT_DETAIL_FREQUENCY_MODULATION = 0x040A,
474 PRODUCT_DETAIL_HIGHFREQUENCY_12V = 0x040B,
475 PRODUCT_DETAIL_RELAY_MECHANICAL = 0x040C,
476 PRODUCT_DETAIL_RELAY_ELECTRONIC = 0x040D,
477 PRODUCT_DETAIL_SWITCH_ELECTRONIC = 0x040E,
478 PRODUCT_DETAIL_CONTACTOR = 0x040F,
479 PRODUCT_DETAIL_MIRRORBALL_ROTATOR = 0x0500,
480 PRODUCT_DETAIL_OTHER_ROTATOR = 0x0501,
481 PRODUCT_DETAIL_KABUKI_DROP = 0x0502,
482 PRODUCT_DETAIL_CURTAIN = 0x0503,
483 PRODUCT_DETAIL_LINESET = 0x0504,
484 PRODUCT_DETAIL_MOTOR_CONTROL = 0x0505,
485 PRODUCT_DETAIL_DAMPER_CONTROL = 0x0506,
486 PRODUCT_DETAIL_SPLITTER = 0x0600,
487 PRODUCT_DETAIL_ETHERNET_NODE = 0x0601,
488 PRODUCT_DETAIL_MERGE = 0x0602,
489 PRODUCT_DETAIL_DATAPATCH = 0x0603,
490 PRODUCT_DETAIL_WIRELESS_LINK = 0x0604,
491 PRODUCT_DETAIL_PROTOCOL_CONVERTER = 0x0701,
492 PRODUCT_DETAIL_ANALOG_DEMULTIPLEX = 0x0702,
493 PRODUCT_DETAIL_ANALOG_MULTIPLEX = 0x0703,
494 PRODUCT_DETAIL_SWITCH_PANEL = 0x0704,
495 PRODUCT_DETAIL_ROUTER = 0x0800,
496 PRODUCT_DETAIL_FADER = 0x0801,
497 PRODUCT_DETAIL_MIXER = 0x0802,
498 PRODUCT_DETAIL_CHANGEOVER_MANUAL = 0x0900,
499 PRODUCT_DETAIL_CHANGEOVER_AUTO = 0x0901,
500 PRODUCT_DETAIL_TEST = 0x0902,
501 PRODUCT_DETAIL_GFI_RCD = 0x0A00,
502 PRODUCT_DETAIL_BATTERY = 0x0A01,
503 PRODUCT_DETAIL_CONTROLLABLE_BREAKER = 0x0A02,
504 PRODUCT_DETAIL_OTHER = 0x7FFF,
505} rdm_product_detail;
506
507
511 typedef enum {
512 ST_PRIMARY = 0x00,
513 ST_SEC_FINE = 0x01,
514 ST_SEC_TIMING = 0x02,
515 ST_SEC_SPEED = 0x03,
516 ST_SEC_CONTROL = 0x04,
517 ST_SEC_INDEX = 0x05,
518 ST_SEC_ROTATION = 0x06,
519 ST_SEC_INDEX_ROTATE = 0x07,
520 ST_SEC_UNDEFINED = 0xFF,
521} rdm_slot_type;
522
523
527 typedef enum {
528 SD_INTENSITY = 0x0001,
529 SD_INTENSITY_MASTER = 0x0002,
530 SD_PAN = 0x0101,
531 SD_TILT = 0x0102,
532 SD_COLOR_WHEEL = 0x0201,
533 SD_COLOR_SUB_CYAN = 0x0202,
534 SD_COLOR_SUB_YELLOW = 0x0203,
535 SD_COLOR_SUB_MAGENTA = 0x0204,
536 SD_COLOR_ADD_RED = 0x0205,
537 SD_COLOR_ADD_GREEN = 0x0206,
538 SD_COLOR_ADD_BLUE = 0x0207,
539 SD_COLOR_CORRECTION = 0x0208,
540 SD_COLOR_SCROLL = 0x0209,
541 SD_COLOR_SEMAPHORE = 0x0210,
542 SD_COLOR_ADD_AMBER = 0x0211,
543 SD_COLOR_ADD_WHITE = 0x0212,
544 SD_COLOR_ADD_WARM_WHITE = 0x0213,
545 SD_COLOR_ADD_COOL_WHITE = 0x0214,
546 SD_COLOR_SUB_UV = 0x0215,
547 SD_COLOR_HUE = 0x0216,
548 SD_COLOR_SATURATION = 0x0217,
549 SD_STATIC_GOBO_WHEEL = 0x0301,
550 SD_ROTO_GOBO_WHEEL = 0x0302,
551 SD_PRISM_WHEEL = 0x0303,
552 SD_EFFECTS_WHEEL = 0x0304,
553 SD_BEAM_SIZE_IRIS = 0x0401,
554 SD_EDGE = 0x0402,
555 SD_FROST = 0x0403,
556 SD_STROBE = 0x0404,
557 SD_ZOOM = 0x0405,
558 SD_FRAMING_SHUTTER = 0x0406,
559 SD_SHUTTER_ROTATE = 0x0407,
560 SD_DOUSER = 0x0408,
561 SD_BARN_DOOR = 0x0409,
562 SD_LAMP_CONTROL = 0x0501,
563 SD_FIXTURE_CONTROL = 0x0502,
564 SD_FIXTURE_SPEED = 0x0503,
565 SD_MACRO = 0x0504,
566 SD_POWER_CONTROL = 0x0505,
567 SD_FAN_CONTROL = 0x0506,
568 SD_HEATER_CONTROL = 0x0507,
569 SD_FOUNTAIN_CONTROL = 0x0508,
570 SD_UNDEFINED = 0xFFFF,
571} rdm_slot_definition;
572
573
574typedef enum {
575 STS_CAL_FAIL = 0x0001,
576 STS_SENS_NOT_FOUND = 0x0002,
577 STS_SENS_ALWAYS_ON = 0x0003,
578 STS_FEEDBACK_ERROR = 0x0004,
579 STS_INDEX_ERROR = 0x0005,
580 STS_LAMP_DOUSED = 0x0011,
581 STS_LAMP_STRIKE = 0x0012,
582 STS_LAMP_ACCESS_OPEN = 0x0013,
583 STS_LAMP_ALWAYS_ON = 0x0014,
584 STS_OVERTEMP = 0x0021,
585 STS_UNDERTEMP = 0x0022,
586 STS_SENS_OUT_RANGE = 0x0023,
587 STS_OVERVOLTAGE_PHASE = 0x0031,
588 STS_UNDERVOLTAGE_PHASE = 0x0032,
589 STS_OVERCURRENT = 0x0033,
590 STS_UNDERCURRENT = 0x0034,
591 STS_PHASE = 0x0035,
592 STS_PHASE_ERROR = 0x0036,
593 STS_AMPS = 0x0037,
594 STS_VOLTS = 0x0038,
595 STS_DIMSLOT_OCCUPIED = 0x0041,
596 STS_BREAKER_TRIP = 0x0042,
597 STS_WATTS = 0x0043,
598 STS_DIM_FAILURE = 0x0044,
599 STS_DIM_PANIC = 0x0045,
600 STS_LOAD_FAILURE = 0x0046,
601 STS_READY = 0x0050,
602 STS_NOT_READY = 0x0051,
603 STS_LOW_FLUID = 0x0052,
604 STS_EEPROM_ERROR = 0x0060,
605 STS_RAM_ERROR = 0x0061,
606 STS_FPGA_ERROR = 0x0062,
607 STS_PROXY_BROADCAST_DROPPED = 0x0070,
608 STS_ASC_RXOK = 0x0071,
609 STS_ASC_DROPPED = 0x0072,
610 STS_DMXNSCNONE = 0x0080,
611 STS_DMXNSCLOSS = 0x0081,
612 STS_DMXNSCERROR = 0x0082,
613 STS_DMXNSC_OK = 0x0083,
614} rdm_status_message_id;
615
616
617typedef enum {
618 LAMP_OFF = 0x00,
619 LAMP_ON = 0x01,
620 LAMP_STRIKE = 0x02,
621 LAMP_STANDBY = 0x03,
622 LAMP_NOT_PRESENT = 0x04,
623 LAMP_ERROR = 0x7F,
624} rdm_lamp_state;
625
626typedef enum {
627 LAMP_ON_MODE_OFF = 0x00,
628 LAMP_ON_MODE_DMX = 0x01,
629 LAMP_ON_MODE_ON = 0x02,
630 LAMP_ON_MODE_ON_AFTER_CAL = 0x03,
631} rdm_lamp_mode;
632
633typedef enum {
634 POWER_STATE_FULL_OFF = 0x00,
635 POWER_STATE_SHUTDOWN = 0x01,
636 POWER_STATE_STANDBY = 0x02,
637 POWER_STATE_NORMAL = 0xFF,
638} rdm_power_state;
639
640typedef enum {
641 DISPLAY_INVERT_OFF = 0x00,
642 DISPLAY_INVERT_ON = 0x01,
643 DISPLAY_INVERT_AUTO = 0x02,
644 DISPLAY_INVERT_MAX,
645} rdm_display_invert;
646
647// The identify modes from E1.37-1
648typedef enum {
649 IDENTIFY_MODE_QUIET = 0x00,
650 IDENTIFY_MODE_LOUD = 0xFF,
651} rdm_identify_mode;
652
653typedef enum {
654 RESET_WARM = 0x01,
655 RESET_COLD = 0xFF,
656} rdm_reset_device_mode;
657
658// the two special presets
659static const uint16_t PRESET_PLAYBACK_OFF = 0x0000;
660static const uint16_t PRESET_PLAYBACK_ALL = 0xFFFF;
661
662static const uint8_t ALL_SENSORS = 0xff;
663
664// bit masks for sensor values
665static const uint8_t SENSOR_RECORDED_VALUE = 0x01;
666static const uint8_t SENSOR_RECORDED_RANGE_VALUES = 0x02;
667
668// Consts for sensor values when unsupported
669static const uint8_t SENSOR_RECORDED_UNSUPPORTED = 0x0000;
670static const uint8_t SENSOR_RECORDED_RANGE_UNSUPPORTED = 0x0000;
671
672// Consts for SENSOR_DEFINITION's range_min
673static const int16_t SENSOR_DEFINITION_RANGE_MIN_UNDEFINED = -0x8000;
674
675// Consts for SENSOR_DEFINITION's range_max
676static const int16_t SENSOR_DEFINITION_RANGE_MAX_UNDEFINED = 0x7FFF;
677
678// Consts for SENSOR_DEFINITION's normal_min
679static const int16_t SENSOR_DEFINITION_NORMAL_MIN_UNDEFINED = -0x8000;
680
681// Consts for SENSOR_DEFINITION's normal_max
682static const int16_t SENSOR_DEFINITION_NORMAL_MAX_UNDEFINED = 0x7FFF;
683
684// The maximum PIN
685static const uint16_t MAX_LOCK_PIN = 9999;
686
687// The Preset programmed modes
688typedef enum {
689 PRESET_NOT_PROGRAMMED = 0x00,
690 PRESET_PROGRAMMED = 0x01,
691 PRESET_PROGRAMMED_READ_ONLY = 0x02,
692} rdm_preset_programmed_mode;
693
694// The RDM merge modes
695typedef enum {
696 MERGEMODE_DEFAULT = 0x00,
697 MERGEMODE_HTP = 0x01,
698 MERGEMODE_LTP = 0x02,
699 MERGEMODE_DMX_ONLY = 0x03,
700 MERGEMODE_OTHER = 0xFF,
701} rdm_preset_mergemode;
702
703// Consts for E1.37-2
704static const uint16_t IPV4_UNCONFIGURED = 0x00000000;
705static const uint16_t NO_DEFAULT_ROUTE = 0x00000000;
706
707static const uint32_t MIN_RDM_INTERFACE_INDEX = 0x00000001;
708static const uint32_t MAX_RDM_INTERFACE_INDEX = 0xFFFFFF00;
709
710typedef enum {
711 DHCP_STATUS_INACTIVE = 0x00,
712 DHCP_STATUS_ACTIVE = 0x01,
713 DHCP_STATUS_UNKNOWN = 0x02,
714 DHCP_STATUS_MAX,
715} rdm_dhcp_status;
716
717static const uint8_t MAX_RDM_HOSTNAME_LENGTH = 63;
718static const uint8_t MAX_RDM_DOMAIN_NAME_LENGTH = 231;
719
720static const uint8_t DNS_NAME_SERVER_MAX_INDEX = 2;
721} // namespace rdm
722} // namespace ola
723#endif // INCLUDE_OLA_RDM_RDMENUMS_H_
ola::rdm
PLASA E1.20 Remote Device Management.
Definition AckTimerResponder.cpp:38
ola::rdm::RDMCommandClass
RDMCommandClass
A set of values representing CommandClasses in E1.20.
Definition RDMEnums.h:55
ola::rdm::SET_COMMAND_RESPONSE
@ SET_COMMAND_RESPONSE
Definition RDMEnums.h:61
ola::rdm::DISCOVER_COMMAND
@ DISCOVER_COMMAND
Definition RDMEnums.h:56
ola::rdm::DISCOVER_COMMAND_RESPONSE
@ DISCOVER_COMMAND_RESPONSE
Definition RDMEnums.h:57
ola::rdm::GET_COMMAND
@ GET_COMMAND
Definition RDMEnums.h:58
ola::rdm::SET_COMMAND
@ SET_COMMAND
Definition RDMEnums.h:60
ola::rdm::INVALID_COMMAND
@ INVALID_COMMAND
Definition RDMEnums.h:62
ola::rdm::GET_COMMAND_RESPONSE
@ GET_COMMAND_RESPONSE
Definition RDMEnums.h:59
ola::rdm::rdm_slot_definition
rdm_slot_definition
The RDM slot definitions, from table C-2 of the standard.
Definition RDMEnums.h:527
ola::rdm::rdm_slot_type
rdm_slot_type
The RDM slot types, from table C-1 of the standard.
Definition RDMEnums.h:511
ola
The namespace containing all OLA symbols.
Definition Credentials.cpp:44