Open Lighting Architecture
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15  *
16  * RDMENUMS.h
17  * Provide a generic RDM ENUMS that can use different implementations.
18  * Copyright (C) 2010 Simon Newton
19  */
20 
29 #ifndef INCLUDE_OLA_RDM_RDMENUMS_H_
30 #define INCLUDE_OLA_RDM_RDMENUMS_H_
31 
32 #include <stdint.h>
33 
34 namespace ola {
35 namespace rdm {
36 
37 static const uint16_t ROOT_RDM_DEVICE = 0;
38 static const uint16_t ALL_RDM_SUBDEVICES = 0xffff;
39 static const uint16_t MAX_SUBDEVICE_NUMBER = 0x0200;
40 static const uint8_t MAX_RDM_STRING_LENGTH = 32;
41 static const uint16_t ZERO_FOOTPRINT_DMX_ADDRESS = 0xffff;
42 static const uint8_t MAX_QUEUED_MESSAGE_COUNT = 255;
43 // This is separated out because we never propagate OVERFLOWs up to the
44 // clients.
45 static const uint8_t ACK_OVERFLOW = 3;
46 
47 typedef enum {
48  RDM_VERSION_1_0 = 0x100,
49 } rdm_protocol_version;
50 
51 typedef enum {
52  // discovery
53  PID_DISC_UNIQUE_BRANCH = 0x0001,
54  PID_DISC_MUTE = 0x0002,
55  PID_DISC_UN_MUTE = 0x0003,
56  // network managment
57  PID_PROXIED_DEVICES = 0x0010,
58  PID_PROXIED_DEVICE_COUNT = 0x0011,
59  PID_COMMS_STATUS = 0x0015,
60  // status collection
61  PID_QUEUED_MESSAGE = 0x0020,
62  PID_STATUS_MESSAGES = 0x0030,
63  PID_STATUS_ID_DESCRIPTION = 0x0031,
64  PID_CLEAR_STATUS_ID = 0x0032,
65  PID_SUB_DEVICE_STATUS_REPORT_THRESHOLD = 0x0033,
66  // RDM information
67  PID_SUPPORTED_PARAMETERS = 0x0050,
68  PID_PARAMETER_DESCRIPTION = 0x0051,
69  // production information
70  PID_DEVICE_INFO = 0x0060,
71  PID_PRODUCT_DETAIL_ID_LIST = 0x0070,
72  PID_DEVICE_MODEL_DESCRIPTION = 0x0080,
73  PID_MANUFACTURER_LABEL = 0x0081,
74  PID_DEVICE_LABEL = 0x0082,
75  PID_FACTORY_DEFAULTS = 0x0090,
76  PID_LANGUAGE_CAPABILITIES = 0x00A0,
77  PID_LANGUAGE = 0x00B0,
78  PID_SOFTWARE_VERSION_LABEL = 0x00C0,
79  PID_BOOT_SOFTWARE_VERSION_ID = 0x00C1,
80  PID_BOOT_SOFTWARE_VERSION_LABEL = 0x00C2,
81  // dmx512
82  PID_DMX_PERSONALITY = 0x00E0,
83  PID_DMX_PERSONALITY_DESCRIPTION = 0x00E1,
84  PID_DMX_START_ADDRESS = 0x00F0,
85  PID_SLOT_INFO = 0x0120,
86  PID_SLOT_DESCRIPTION = 0x0121,
87  PID_DEFAULT_SLOT_VALUE = 0x0122,
88  // sensors
89  PID_SENSOR_DEFINITION = 0x0200,
90  PID_SENSOR_VALUE = 0x0201,
91  PID_RECORD_SENSORS = 0x0202,
92  // power/lamp settings
93  PID_DEVICE_HOURS = 0x0400,
94  PID_LAMP_HOURS = 0x0401,
95  PID_LAMP_STRIKES = 0x0402,
96  PID_LAMP_STATE = 0x0403,
97  PID_LAMP_ON_MODE = 0x0404,
98  PID_DEVICE_POWER_CYCLES = 0x0405,
99  // display settings
100  PID_DISPLAY_INVERT = 0x0500,
101  PID_DISPLAY_LEVEL = 0x0501,
102  // configuration
103  PID_PAN_INVERT = 0x0600,
104  PID_TILT_INVERT = 0x0601,
105  PID_PAN_TILT_SWAP = 0x0602,
106  PID_REAL_TIME_CLOCK = 0x0603,
107  // control
108  PID_IDENTIFY_DEVICE = 0x1000,
109  PID_RESET_DEVICE = 0x1001,
110  PID_POWER_STATE = 0x1010,
111  PID_PERFORM_SELFTEST = 0x1020,
112  PID_SELF_TEST_DESCRIPTION = 0x1021,
113  PID_CAPTURE_PRESET = 0x1030,
114  PID_PRESET_PLAYBACK = 0x1031,
115 
116  // E1.37-1 PIDS
117  // Dmx512 setup
118  PID_DMX_BLOCK_ADDRESS = 0x0140,
119  PID_DMX_FAIL_MODE = 0x0141,
120  PID_DMX_STARTUP_MODE = 0x0142,
121 
122  // Dimmer Settings
123  PID_DIMMER_INFO = 0x0340,
124  PID_MINIMUM_LEVEL = 0x0341,
125  PID_MAXIMUM_LEVEL = 0x0342,
126  PID_CURVE = 0x0343,
127  PID_CURVE_DESCRIPTION = 0x0344,
128 
129  // Control
130  PID_OUTPUT_RESPONSE_TIME = 0x0345,
131  PID_OUTPUT_RESPONSE_TIME_DESCRIPTION = 0x0346,
132  PID_MODULATION_FREQUENCY = 0x0347,
133  PID_MODULATION_FREQUENCY_DESCRIPTION = 0x0348,
134 
135  // Power/Lamp Settings
136  PID_BURN_IN = 0x0440,
137 
138  // Configuration
139  PID_LOCK_PIN = 0x0640,
140  PID_LOCK_STATE = 0x0641,
141  PID_LOCK_STATE_DESCRIPTION = 0x0642,
142  PID_IDENTIFY_MODE = 0x1040,
143  PID_PRESET_INFO = 0x1041,
144  PID_PRESET_STATUS = 0x1042,
145  PID_PRESET_MERGEMODE = 0x1043,
146  PID_POWER_ON_SELF_TEST = 0x1044,
147 
148  // Draft E1.33 PIDs - DO NOT USE
149  PID_ENDPOINT_LIST = 0x7fe0,
150  PID_ENDPOINT_LIST_CHANGE = 0x7fee,
151  PID_ENDPOINT_IDENTIFY = 0x7fe9,
152  PID_ENDPOINT_TO_UNIVERSE = 0x7fe1,
153  PID_RDM_TRAFFIC_ENABLE = 0x7ef2,
154  PID_ENDPOINT_MODE = 0x7fe3,
155  PID_ENDPOINT_LABEL = 0x7fe4,
156  PID_DISCOVERY_STATE = 0x7fe5,
157  PID_BACKGROUND_DISCOVERY = 0x7fea,
158  PID_ENDPOINT_TIMING = 0x7fe6,
159  PID_ENDPOINT_TIMING_DESCRIPTION = 0x7fe7,
160  PID_ENDPOINT_DEVICE_LIST_CHANGE = 0x7feb,
161  PID_ENDPOINT_DEVICES = 0x7fec,
162  PID_BINDING_CONTROL_FIELDS = 0x7fe8,
163  PID_TCP_COMMS_STATUS = 0x7fed,
164  PID_BACKGROUND_QUEUED_STATUS_POLICY = 0x7fd0,
165  PID_BACKGROUND_QUEUED_STATUS_POLICY_DESCRIPTION = 0x7fd1,
166  PID_BACKGROUND_STATUS_TYPE = 0x7fd2,
167  PID_QUEUED_STATUS_ENDPOINT_COLLECTION = 0x7fd3,
168  PID_QUEUED_STATUS_UID_COLLECTION = 0x7fd4,
169 } rdm_pid;
170 
171 
172 typedef enum {
173  STATUS_NONE = 0x0,
174  STATUS_GET_LAST_MESSAGE = 0x1,
175  STATUS_ADVISORY = 0x2,
176  STATUS_WARNING = 0x3,
177  STATUS_ERROR = 0x4,
178  STATUS_ADVISORY_CLEARED = 0x12,
179  STATUS_WARNING_CLEARED = 0x13,
180  STATUS_ERROR_CLEARED = 0x14,
181 } rdm_status_type;
182 
183 
184 typedef enum {
185  SENSOR_TEMPERATURE = 0x00,
186  SENSOR_VOLTAGE = 0x01,
187  SENSOR_CURRENT = 0x02,
188  SENSOR_FREQUENCY = 0x03,
189  SENSOR_RESISTANCE = 0x04,
190  SENSOR_POWER = 0x05,
191  SENSOR_MASS = 0x06,
192  SENSOR_LENGTH = 0x07,
193  SENSOR_AREA = 0x08,
194  SENSOR_VOLUME = 0x09,
195  SENSOR_DENSITY = 0x0A,
196  SENSOR_VELOCITY = 0x0B,
197  SENSOR_ACCELERATION = 0x0C,
198  SENSOR_FORCE = 0x0D,
199  SENSOR_ENERGY = 0x0E,
200  SENSOR_PRESSURE = 0x0F,
201  SENSOR_TIME = 0x10,
202  SENSOR_ANGLE = 0x11,
203  SENSOR_POSITION_X = 0x12,
204  SENSOR_POSITION_Y = 0x13,
205  SENSOR_POSITION_Z = 0x14,
206  SENSOR_ANGULAR_VELOCITY = 0x15,
207  SENSOR_LUMINOUS_INTENSITY = 0x16,
208  SENSOR_LUMINOUS_FLUX = 0x17,
209  SENSOR_ILLUMINANCE = 0x18,
210  SENSOR_CHROMINANCE_RED = 0x19,
211  SENSOR_CHROMINANCE_GREEN = 0x1A,
212  SENSOR_CHROMINANCE_BLUE = 0x1B,
213  SENSOR_CONTACTS = 0x1C,
214  SENSOR_MEMORY = 0x1D,
215  SENSOR_ITEMS = 0x1E,
216  SENSOR_HUMIDITY = 0x1F,
217  SENSOR_COUNTER_16BIT = 0x20,
218  SENSOR_OTHER = 0x7F,
219 } rdm_sensor_type;
220 
221 typedef enum {
222  UNITS_NONE = 0x00,
223  UNITS_CENTIGRADE = 0x01,
224  UNITS_VOLTS_DC = 0x02,
225  UNITS_VOLTS_AC_PEAK = 0x03,
226  UNITS_VOLTS_AC_RMS = 0x04,
227  UNITS_AMPERE_DC = 0x05,
228  UNITS_AMPERE_AC_PEAK = 0x06,
229  UNITS_AMPERE_AC_RMS = 0x07,
230  UNITS_HERTZ = 0x08,
231  UNITS_OHM = 0x09,
232  UNITS_WATT = 0x0A,
233  UNITS_KILOGRAM = 0x0B,
234  UNITS_METERS = 0x0C,
235  UNITS_METERS_SQUARED = 0x0D,
236  UNITS_METERS_CUBED = 0x0E,
237  UNITS_KILOGRAMMES_PER_METER_CUBED = 0x0F,
238  UNITS_METERS_PER_SECOND = 0x10,
239  UNITS_METERS_PER_SECOND_SQUARED = 0x11,
240  UNITS_NEWTON = 0x12,
241  UNITS_JOULE = 0x13,
242  UNITS_PASCAL = 0x14,
243  UNITS_SECOND = 0x15,
244  UNITS_DEGREE = 0x16,
245  UNITS_STERADIAN = 0x17,
246  UNITS_CANDELA = 0x18,
247  UNITS_LUMEN = 0x19,
248  UNITS_LUX = 0x1A,
249  UNITS_IRE = 0x1B,
250  UNITS_BYTE = 0x1C,
251 } rdm_pid_unit;
252 
253 
254 typedef enum {
255  PREFIX_NONE = 0x00,
256  PREFIX_DECI = 0x01,
257  PREFIX_CENTI = 0x02,
258  PREFIX_MILLI = 0x03,
259  PREFIX_MICRO = 0x04,
260  PREFIX_NANO = 0x05,
261  PREFIX_PICO = 0x06,
262  PREFIX_FEMPTO = 0x07,
263  PREFIX_ATTO = 0x08,
264  PREFIX_ZEPTO = 0x09,
265  PREFIX_YOCTO = 0x0A,
266  PREFIX_DECA = 0x11,
267  PREFIX_HECTO = 0x12,
268  PREFIX_KILO = 0x13,
269  PREFIX_MEGA = 0x14,
270  PREFIX_GIGA = 0x15,
271  PREFIX_TERRA = 0x16,
272  PREFIX_PETA = 0x17,
273  PREFIX_EXA = 0x18,
274  PREFIX_ZETTA = 0x19,
275  PREFIX_YOTTA = 0x1A,
276 } rdm_pid_prefix;
277 
278 
279 typedef enum {
280  CC_GET = 0x01,
281  CC_SET = 0x02,
282  CC_GET_SET = 0x03,
283 } rdm_command_class;
284 
285 
286 typedef enum {
287  DS_NOT_DEFINED = 0x0,
288  DS_BIT_FIELD = 0x01,
289  DS_ASCII = 0x02,
290  DS_UNSIGNED_BYTE = 0x03,
291  DS_SIGNED_BYTE = 0x04,
292  DS_UNSIGNED_WORD = 0x05,
293  DS_SIGNED_WORD = 0x06,
294  DS_UNSIGNED_DWORD = 0x07,
295  DS_SIGNED_DWORD = 0x08,
296 } rdm_data_type;
297 
298 
299 typedef enum {
300  NR_UNKNOWN_PID = 0x0000,
301  NR_FORMAT_ERROR = 0x0001,
302  NR_HARDWARE_FAULT = 0x0002,
303  NR_PROXY_REJECT = 0x0003,
304  NR_WRITE_PROTECT = 0x0004,
305  NR_UNSUPPORTED_COMMAND_CLASS = 0x0005,
306  NR_DATA_OUT_OF_RANGE = 0x0006,
307  NR_BUFFER_FULL = 0x0007,
308  NR_PACKET_SIZE_UNSUPPORTED = 0x0008,
309  NR_SUB_DEVICE_OUT_OF_RANGE = 0x0009,
310  NR_PROXY_BUFFER_FULL = 0x000A,
311  NR_ACTION_NOT_SUPPORTED = 0x0010,
312  NR_ENDPOINT_NUMBER_INVALID = 0x0011
313 } rdm_nack_reason;
314 
315 
316 typedef enum {
317  PRODUCT_CATEGORY_NOT_DECLARED = 0x0000,
318  PRODUCT_CATEGORY_FIXTURE = 0x0100,
319  PRODUCT_CATEGORY_FIXTURE_FIXED = 0x0101,
320  PRODUCT_CATEGORY_FIXTURE_MOVING_YOKE = 0x0102,
321  PRODUCT_CATEGORY_FIXTURE_MOVING_MIRROR = 0x0103,
322  PRODUCT_CATEGORY_FIXTURE_OTHER = 0x01FF,
323  PRODUCT_CATEGORY_FIXTURE_ACCESSORY = 0x0200,
324  PRODUCT_CATEGORY_FIXTURE_ACCESSORY_COLOR = 0x0201,
325  PRODUCT_CATEGORY_FIXTURE_ACCESSORY_YOKE = 0x0202,
326  PRODUCT_CATEGORY_FIXTURE_ACCESSORY_MIRROR = 0x0203,
327  PRODUCT_CATEGORY_FIXTURE_ACCESSORY_EFFECT = 0x0204,
328  PRODUCT_CATEGORY_FIXTURE_ACCESSORY_BEAM = 0x0205,
329  PRODUCT_CATEGORY_FIXTURE_ACCESSORY_OTHER = 0x02FF,
330  PRODUCT_CATEGORY_PROJECTOR = 0x0300,
331  PRODUCT_CATEGORY_PROJECTOR_FIXED = 0x0301,
332  PRODUCT_CATEGORY_PROJECTOR_MOVING_YOKE = 0x0302,
333  PRODUCT_CATEGORY_PROJECTOR_MOVING_MIRROR = 0x0303,
334  PRODUCT_CATEGORY_PROJECTOR_OTHER = 0x03FF,
335  PRODUCT_CATEGORY_ATMOSPHERIC = 0x0400,
336  PRODUCT_CATEGORY_ATMOSPHERIC_EFFECT = 0x0401,
337  PRODUCT_CATEGORY_ATMOSPHERIC_PYRO = 0x0402,
338  PRODUCT_CATEGORY_ATMOSPHERIC_OTHER = 0x04FF,
339  PRODUCT_CATEGORY_DIMMER = 0x0500,
340  PRODUCT_CATEGORY_DIMMER_AC_INCANDESCENT = 0x0501,
341  PRODUCT_CATEGORY_DIMMER_AC_FLUORESCENT = 0x0502,
342  PRODUCT_CATEGORY_DIMMER_AC_COLDCATHODE = 0x0503,
343  PRODUCT_CATEGORY_DIMMER_AC_NONDIM = 0x0504,
344  PRODUCT_CATEGORY_DIMMER_AC_ELV = 0x0505,
345  PRODUCT_CATEGORY_DIMMER_AC_OTHER = 0x0506,
346  PRODUCT_CATEGORY_DIMMER_DC_LEVEL = 0x0507,
347  PRODUCT_CATEGORY_DIMMER_DC_PWM = 0x0508,
348  PRODUCT_CATEGORY_DIMMER_CS_LED = 0x0509,
349  PRODUCT_CATEGORY_DIMMER_OTHER = 0x05FF,
350  PRODUCT_CATEGORY_POWER = 0x0600,
351  PRODUCT_CATEGORY_POWER_CONTROL = 0x0601,
352  PRODUCT_CATEGORY_POWER_SOURCE = 0x0602,
353  PRODUCT_CATEGORY_POWER_OTHER = 0x06FF,
354  PRODUCT_CATEGORY_SCENIC = 0x0700,
355  PRODUCT_CATEGORY_SCENIC_DRIVE = 0x0701,
356  PRODUCT_CATEGORY_SCENIC_OTHER = 0x07FF,
357  PRODUCT_CATEGORY_DATA = 0x0800,
358  PRODUCT_CATEGORY_DATA_DISTRIBUTION = 0x0801,
359  PRODUCT_CATEGORY_DATA_CONVERSION = 0x0802,
360  PRODUCT_CATEGORY_DATA_OTHER = 0x08FF,
361  PRODUCT_CATEGORY_AV = 0x0900,
362  PRODUCT_CATEGORY_AV_AUDIO = 0x0901,
363  PRODUCT_CATEGORY_AV_VIDEO = 0x0902,
364  PRODUCT_CATEGORY_AV_OTHER = 0x09FF,
365  PRODUCT_CATEGORY_MONITOR = 0x0A00,
366  PRODUCT_CATEGORY_MONITOR_ACLINEPOWER = 0x0A01,
367  PRODUCT_CATEGORY_MONITOR_DCPOWER = 0x0A02,
368  PRODUCT_CATEGORY_MONITOR_ENVIRONMENTAL = 0x0A03,
369  PRODUCT_CATEGORY_MONITOR_OTHER = 0x0AFF,
370  PRODUCT_CATEGORY_CONTROL = 0x7000,
371  PRODUCT_CATEGORY_CONTROL_CONTROLLER = 0x7001,
372  PRODUCT_CATEGORY_CONTROL_BACKUPDEVICE = 0x7002,
373  PRODUCT_CATEGORY_CONTROL_OTHER = 0x70FF,
374  PRODUCT_CATEGORY_TEST = 0x7100,
375  PRODUCT_CATEGORY_TEST_EQUIPMENT = 0x7101,
376  PRODUCT_CATEGORY_TEST_EQUIPMENT_OTHER = 0x71FF,
377  PRODUCT_CATEGORY_OTHER = 0x7FFF,
378 } rdm_product_category;
379 
380 
381 // product details
382 typedef enum {
383  PRODUCT_DETAIL_NOT_DECLARED = 0x0000,
384  PRODUCT_DETAIL_ARC = 0x0001,
385  PRODUCT_DETAIL_METAL_HALIDE = 0x0002,
386  PRODUCT_DETAIL_INCANDESCENT = 0x0003,
387  PRODUCT_DETAIL_LED = 0x0004,
388  PRODUCT_DETAIL_FLUROESCENT = 0x0005,
389  PRODUCT_DETAIL_COLDCATHODE = 0x0006,
390  PRODUCT_DETAIL_ELECTROLUMINESCENT = 0x0007,
391  PRODUCT_DETAIL_LASER = 0x0008,
392  PRODUCT_DETAIL_FLASHTUBE = 0x0009,
393  PRODUCT_DETAIL_COLORSCROLLER = 0x0100,
394  PRODUCT_DETAIL_COLORWHEEL = 0x0101,
395  PRODUCT_DETAIL_COLORCHANGE = 0x0102,
396  PRODUCT_DETAIL_IRIS_DOUSER = 0x0103,
397  PRODUCT_DETAIL_DIMMING_SHUTTER = 0x0104,
398  PRODUCT_DETAIL_PROFILE_SHUTTER = 0x0105,
399  PRODUCT_DETAIL_BARNDOOR_SHUTTER = 0x0106,
400  PRODUCT_DETAIL_EFFECTS_DISC = 0x0107,
401  PRODUCT_DETAIL_GOBO_ROTATOR = 0x0108,
402  PRODUCT_DETAIL_VIDEO = 0x0200,
403  PRODUCT_DETAIL_SLIDE = 0x0201,
404  PRODUCT_DETAIL_FILM = 0x0202,
405  PRODUCT_DETAIL_OILWHEEL = 0x0203,
406  PRODUCT_DETAIL_LCDGATE = 0x0204,
407  PRODUCT_DETAIL_FOGGER_GLYCOL = 0x0300,
408  PRODUCT_DETAIL_FOGGER_MINERALOIL = 0x0301,
409  PRODUCT_DETAIL_FOGGER_WATER = 0x0302,
410  PRODUCT_DETAIL_CO2 = 0x0303,
411  PRODUCT_DETAIL_LN2 = 0x0304,
412  PRODUCT_DETAIL_BUBBLE = 0x0305,
413  PRODUCT_DETAIL_FLAME_PROPANE = 0x0306,
414  PRODUCT_DETAIL_FLAME_OTHER = 0x0307,
415  PRODUCT_DETAIL_OLEFACTORY_STIMULATOR = 0x0308,
416  PRODUCT_DETAIL_SNOW = 0x0309,
417  PRODUCT_DETAIL_WATER_JET = 0x030A,
418  PRODUCT_DETAIL_WIND = 0x030B,
419  PRODUCT_DETAIL_CONFETTI = 0x030C,
420  PRODUCT_DETAIL_HAZARD = 0x030D,
421  PRODUCT_DETAIL_PHASE_CONTROL = 0x0400,
422  PRODUCT_DETAIL_REVERSE_PHASE_CONTROL = 0x0401,
423  PRODUCT_DETAIL_SINE = 0x0402,
424  PRODUCT_DETAIL_PWM = 0x0403,
425  PRODUCT_DETAIL_DC = 0x0404,
426  PRODUCT_DETAIL_HFBALLAST = 0x0405,
427  PRODUCT_DETAIL_HFHV_NEONBALLAST = 0x0406,
428  PRODUCT_DETAIL_HFHV_EL = 0x0407,
429  PRODUCT_DETAIL_MHR_BALLAST = 0x0408,
430  PRODUCT_DETAIL_BITANGLE_MODULATION = 0x0409,
431  PRODUCT_DETAIL_FREQUENCY_MODULATION = 0x040A,
432  PRODUCT_DETAIL_HIGHFREQUENCY_12V = 0x040B,
433  PRODUCT_DETAIL_RELAY_MECHANICAL = 0x040C,
434  PRODUCT_DETAIL_RELAY_ELECTRONIC = 0x040D,
435  PRODUCT_DETAIL_SWITCH_ELECTRONIC = 0x040E,
436  PRODUCT_DETAIL_CONTACTOR = 0x040F,
437  PRODUCT_DETAIL_MIRRORBALL_ROTATOR = 0x0500,
438  PRODUCT_DETAIL_OTHER_ROTATOR = 0x0501,
439  PRODUCT_DETAIL_KABUKI_DROP = 0x0502,
440  PRODUCT_DETAIL_CURTAIN = 0x0503,
441  PRODUCT_DETAIL_LINESET = 0x0504,
442  PRODUCT_DETAIL_MOTOR_CONTROL = 0x0505,
443  PRODUCT_DETAIL_DAMPER_CONTROL = 0x0506,
444  PRODUCT_DETAIL_SPLITTER = 0x0600,
445  PRODUCT_DETAIL_ETHERNET_NODE = 0x0601,
446  PRODUCT_DETAIL_MERGE = 0x0602,
447  PRODUCT_DETAIL_DATAPATCH = 0x0603,
448  PRODUCT_DETAIL_WIRELESS_LINK = 0x0604,
449  PRODUCT_DETAIL_PROTOCOL_CONVERTOR = 0x0701,
450  PRODUCT_DETAIL_ANALOG_DEMULTIPLEX = 0x0702,
451  PRODUCT_DETAIL_ANALOG_MULTIPLEX = 0x0703,
452  PRODUCT_DETAIL_SWITCH_PANEL = 0x0704,
453  PRODUCT_DETAIL_ROUTER = 0x0800,
454  PRODUCT_DETAIL_FADER = 0x0801,
455  PRODUCT_DETAIL_MIXER = 0x0802,
456  PRODUCT_DETAIL_CHANGEOVER_MANUAL = 0x0900,
457  PRODUCT_DETAIL_CHANGEOVER_AUTO = 0x0901,
458  PRODUCT_DETAIL_TEST = 0x0902,
459  PRODUCT_DETAIL_GFI_RCD = 0x0A00,
460  PRODUCT_DETAIL_BATTERY = 0x0A01,
461  PRODUCT_DETAIL_CONTROLLABLE_BREAKER = 0x0A02,
462  PRODUCT_DETAIL_OTHER = 0x7FFF,
463 } rdm_product_detail;
464 
465 
469 typedef enum {
470  ST_PRIMARY = 0x00,
471  ST_SEC_FINE = 0x01,
472  ST_SEC_TIMING = 0x02,
473  ST_SEC_SPEED = 0x03,
474  ST_SEC_CONTROL = 0x04,
475  ST_SEC_INDEX = 0x05,
476  ST_SEC_ROTATION = 0x06,
477  ST_SEC_INDEX_ROTATE = 0x07,
478  ST_SEC_UNDEFINED = 0xFF,
479 } rdm_slot_type;
480 
481 
485 typedef enum {
486  SD_INTENSITY = 0x0001,
487  SD_INTENSITY_MASTER = 0x0002,
488  SD_PAN = 0x0101,
489  SD_TILT = 0x0102,
490  SD_COLOR_WHEEL = 0x0201,
491  SD_COLOR_SUB_CYAN = 0x0202,
492  SD_COLOR_SUB_YELLOW = 0x0203,
493  SD_COLOR_SUB_MAGENTA = 0x0204,
494  SD_COLOR_ADD_RED = 0x0205,
495  SD_COLOR_ADD_GREEN = 0x0206,
496  SD_COLOR_ADD_BLUE = 0x0207,
497  SD_COLOR_CORRECTION = 0x0208,
498  SD_COLOR_SCROLL = 0x0209,
499  SD_COLOR_SEMAPHORE = 0x0210,
500  SD_STATIC_GOBO_WHEEL = 0x0301,
501  SD_ROTO_GOBO_WHEEL = 0x0302,
502  SD_PRISM_WHEEL = 0x0303,
503  SD_EFFECTS_WHEEL = 0x0304,
504  SD_BEAM_SIZE_IRIS = 0x0401,
505  SD_EDGE = 0x0402,
506  SD_FROST = 0x0403,
507  SD_STROBE = 0x0404,
508  SD_ZOOM = 0x0405,
509  SD_FRAMING_SHUTTER = 0x0406,
510  SD_SHUTTER_ROTATE = 0x0407,
511  SD_DOUSER = 0x0408,
512  SD_BARN_DOOR = 0x0409,
513  SD_LAMP_CONTROL = 0x0501,
514  SD_FIXTURE_CONTROL = 0x0502,
515  SD_FIXTURE_SPEED = 0x0503,
516  SD_MACRO = 0x0504,
517  SD_UNDEFINED = 0xFFFF,
519 
520 
521 typedef enum {
522  STS_CAL_FAIL = 0x0001,
523  STS_SENS_NOT_FOUND = 0x0002,
524  STS_SENS_ALWAYS_ON = 0x0003,
525  STS_LAMP_DOUSED = 0x0011,
526  STS_LAMP_STRIKE = 0x0012,
527  STS_OVERTEMP = 0x0021,
528  STS_UNDERTEMP = 0x0022,
529  STS_SENS_OUT_RANGE = 0x0023,
530  STS_OVERVOLTAGE_PHASE = 0x0031,
531  STS_UNDERVOLTAGE_PHASE = 0x0032,
532  STS_OVERCURRENT = 0x0033,
533  STS_UNDERCURRENT = 0x0034,
534  STS_PHASE = 0x0035,
535  STS_PHASE_ERROR = 0x0036,
536  STS_AMPS = 0x0037,
537  STS_VOLTS = 0x0038,
538  STS_DIMSLOT_OCCUPIED = 0x0041,
539  STS_BREAKER_TRIP = 0x0042,
540  STS_WATTS = 0x0043,
541  STS_DIM_FAILURE = 0x0044,
542  STS_DIM_PANIC = 0x0045,
543  STS_READY = 0x0050,
544  STS_NOT_READY = 0x0051,
545  STS_LOW_FLUID = 0x0052,
546 } rdm_status_message_id;
547 
548 
549 typedef enum {
550  LAMP_OFF = 0x00,
551  LAMP_ON = 0x01,
552  LAMP_STRIKE = 0x02,
553  LAMP_STANDBY = 0x03,
554  LAMP_NOT_PRESENT = 0x04,
555  LAMP_ERROR = 0x7F,
556 } rdm_lamp_state;
557 
558 typedef enum {
559  LAMP_ON_MODE_OFF = 0x00,
560  LAMP_ON_MODE_DMX = 0x01,
561  LAMP_ON_MODE_ON = 0x02,
562  LAMP_ON_MODE_AFTER_CAL = 0x03,
563 } rdm_lamp_mode;
564 
565 typedef enum {
566  POWER_STATE_FULL_OFF = 0x00,
567  POWER_STATE_SHUTDOWN = 0x01,
568  POWER_STATE_STANDBY = 0x02,
569  POWER_STATE_NORMAL = 0xFF,
570 } rdm_power_state;
571 
572 typedef enum {
573  DISPLAY_INVERT_OFF = 0x00,
574  DISPLAY_INVERT_ON = 0x01,
575  DISPLAY_INVERT_AUTO = 0x02,
576 } rdm_display_invert;
577 
578 // The identify modes from E1.37-1
579 typedef enum {
580  IDENTIFY_MODE_QUIET = 0x00,
581  IDENTIFY_MODE_LOUD = 0xff
582 } rdm_identify_mode;
583 
584 typedef enum {
585  RESET_WARM = 0x01,
586  RESET_COLD = 0xff,
587 } rdm_reset_device_mode;
588 
589 // the two special presets
590 static const uint16_t PRESET_PLAYBACK_OFF = 0x0000;
591 static const uint16_t PRESET_PLAYBACK_ALL = 0xffff;
592 
593 // bit masks for sensor values
594 static const uint8_t SENSOR_RECORDED_VALUE = 0x01;
595 static const uint8_t SENSOR_RECORDED_RANGE_VALUES = 0x02;
596 static const uint8_t ALL_SENSORS = 0xff;
597 
598 // The maximum PIN
599 static const uint16_t MAX_LOCK_PIN = 9999;
600 
601 // The Preset programmed modes
602 typedef enum {
603  PRESET_NOT_PROGRAMMED = 0,
604  PRESET_PROGRAMMED = 1,
605  PRESET_PROGRAMMED_READ_ONLY = 2,
606 } rdm_preset_programmed_mode;
607 
608 // The RDM merge modes
609 typedef enum {
610  MERGEMODE_DEFAULT = 0,
611  MERGEMODE_HTP = 1,
612  MERGEMODE_LTP = 2,
613  MERGEMODE_DMX_ONLY = 3,
614  MERGEMODE_OTHER = 0xff,
615 } rdm_preset_merge_mode;
616 } // namespace rdm
617 } // namespace ola
618 #endif // INCLUDE_OLA_RDM_RDMENUMS_H_