Remote Device Management.
Files | |
file | rdm.h |
Remote Device Management. | |
file | rdm_buffer.h |
The memory buffer used to construct the RDM response. | |
file | rdm_frame.h |
Remote Device Management. | |
file | rdm_model.h |
The API for an RDM Model implementation. | |
file | rdm_responder.h |
The base RDM Responder. | |
Data Structures | |
struct | __attribute__ |
The common RDM header. More... | |
struct | ModelEntry |
The function table entry for a particular responder model. More... | |
struct | ParameterDescription |
A parameter description. More... | |
struct | PIDDescriptor |
A descriptor for a PID. More... | |
struct | ProductDetailIds |
The Product Detail IDs for the responder. More... | |
struct | SlotDefinition |
The definition of a DMX slot. More... | |
struct | PersonalityDefinition |
The definition of a DMX512 personality. More... | |
struct | SensorDefinition |
An RDM sensor definition. More... | |
struct | SensorData |
Data for an RDM Sensor. More... | |
struct | ResponderDefinition |
The definition of a responder. More... | |
struct | RDMResponder |
A core implementation of a responder. More... | |
struct | RDMResponderSettings |
The settings to use for the RDM Responder. More... | |
Typedefs | |
typedef int(* | PIDCommandHandler )(const RDMHeader *incoming_header, const uint8_t *param_data) |
A PID handler. More... | |
Enumerations | |
enum | { MAX_PRODUCT_DETAILS = 6 } |
The maximum number of product detail ids a responder can have. | |
enum | { RDM_DEFAULT_STRING_SIZE = 32 } |
The size of the default strings used in RDM. | |
enum | { RDM_LANGUAGE_STRING_SIZE = 2 } |
The size of the language strings used in RDM. | |
enum | { DUB_RESPONSE_LENGTH = 24 } |
The size of a DUB response. | |
enum | { RDM_MAX_FRAME_SIZE = 257 } |
The size of an RDM frame. | |
enum | { MAX_PARAM_DATA_SIZE = 231 } |
Maximum size of RDM Parameter Data. More... | |
enum | { SENSOR_SUPPORTS_RECORDING_MASK = 0x01 } |
The recording mask for the recorded value support bit field. | |
enum | { SENSOR_SUPPORTS_LOWEST_HIGHEST_MASK = 0x02 } |
The lowest / highest mask for the recorded value support bit field. | |
enum | { DNS_HOST_NAME_SIZE = 63 } |
The size of the DNS Host Name field from E1.37-2. | |
enum | { DNS_DOMAIN_NAME_SIZE = 231 } |
The size of the DNS Domain Name field from E1.37-2. | |
enum | { ETHERNET_HARDWARE_TYPE = 1, IPSEC_HARDWARE_TYPE = 31 } |
Interface hardware types. More... | |
enum | DHCPMode { DHCP_STATUS_INACTIVE = 0x00, DHCP_STATUS_ACTIVE = 0x01, DHCP_STATUS_UNKNOWN = 0x02 } |
DHCP Status. | |
enum | RDMCommandClass { DISCOVERY_COMMAND = 0x10, DISCOVERY_COMMAND_RESPONSE = 0x11, GET_COMMAND = 0x20, GET_COMMAND_RESPONSE = 0x21, SET_COMMAND = 0x30, SET_COMMAND_RESPONSE = 0x31 } |
RDM Command Classes from E1.20. More... | |
enum | RDMResponseType { ACK = 0x00, ACK_TIMER = 0x01, NACK_REASON = 0x02, ACK_OVERFLOW = 0x03 } |
RDM Command Classes from E1.20. More... | |
enum | RDMPid { PID_DISC_UNIQUE_BRANCH = 0x0001, PID_DISC_MUTE = 0x0002, PID_DISC_UN_MUTE = 0x0003, PID_PROXIED_DEVICES = 0x0010, PID_PROXIED_DEVICE_COUNT = 0x0011, PID_COMMS_STATUS = 0x0015, PID_QUEUED_MESSAGE = 0x0020, PID_STATUS_MESSAGES = 0x0030, PID_STATUS_ID_DESCRIPTION = 0x0031, PID_CLEAR_STATUS_ID = 0x0032, PID_SUB_DEVICE_STATUS_REPORT_THRESHOLD = 0x0033, PID_SUPPORTED_PARAMETERS = 0x0050, PID_PARAMETER_DESCRIPTION = 0x0051, PID_DEVICE_INFO = 0x0060, PID_PRODUCT_DETAIL_ID_LIST = 0x0070, PID_DEVICE_MODEL_DESCRIPTION = 0x0080, PID_MANUFACTURER_LABEL = 0x0081, PID_DEVICE_LABEL = 0x0082, PID_FACTORY_DEFAULTS = 0x0090, PID_LANGUAGE_CAPABILITIES = 0x00a0, PID_LANGUAGE = 0x00b0, PID_SOFTWARE_VERSION_LABEL = 0x00c0, PID_BOOT_SOFTWARE_VERSION_ID = 0x00c1, PID_BOOT_SOFTWARE_VERSION_LABEL = 0x00c2, PID_DMX_PERSONALITY = 0x00e0, PID_DMX_PERSONALITY_DESCRIPTION = 0x00e1, PID_DMX_START_ADDRESS = 0x00f0, PID_SLOT_INFO = 0x0120, PID_SLOT_DESCRIPTION = 0x0121, PID_DEFAULT_SLOT_VALUE = 0x0122, PID_SENSOR_DEFINITION = 0x0200, PID_SENSOR_VALUE = 0x0201, PID_RECORD_SENSORS = 0x0202, PID_DEVICE_HOURS = 0x0400, PID_LAMP_HOURS = 0x0401, PID_LAMP_STRIKES = 0x0402, PID_LAMP_STATE = 0x0403, PID_LAMP_ON_MODE = 0x0404, PID_DEVICE_POWER_CYCLES = 0x0405, PID_DISPLAY_INVERT = 0x0500, PID_DISPLAY_LEVEL = 0x0501, PID_PAN_INVERT = 0x0600, PID_TILT_INVERT = 0x0601, PID_PAN_TILT_SWAP = 0x0602, PID_REAL_TIME_CLOCK = 0x0603, PID_IDENTIFY_DEVICE = 0x1000, PID_RESET_DEVICE = 0x1001, PID_POWER_STATE = 0x1010, PID_PERFORM_SELFTEST = 0x1020, PID_SELF_TEST_DESCRIPTION = 0x1021, PID_CAPTURE_PRESET = 0x1030, PID_PRESET_PLAYBACK = 0x1031, PID_DMX_BLOCK_ADDRESS = 0x0140, PID_DMX_FAIL_MODE = 0x0141, PID_DMX_STARTUP_MODE = 0x0142, PID_DIMMER_INFO = 0x0340, PID_MINIMUM_LEVEL = 0x0341, PID_MAXIMUM_LEVEL = 0x0342, PID_CURVE = 0x0343, PID_CURVE_DESCRIPTION = 0x0344, PID_OUTPUT_RESPONSE_TIME = 0x0345, PID_OUTPUT_RESPONSE_TIME_DESCRIPTION = 0x0346, PID_MODULATION_FREQUENCY = 0x0347, PID_MODULATION_FREQUENCY_DESCRIPTION = 0x0348, PID_BURN_IN = 0x0440, PID_LOCK_PIN = 0x0640, PID_LOCK_STATE = 0x0641, PID_LOCK_STATE_DESCRIPTION = 0x0642, PID_IDENTIFY_MODE = 0x1040, PID_PRESET_INFO = 0x1041, PID_PRESET_STATUS = 0x1042, PID_PRESET_MERGEMODE = 0x1043, PID_POWER_ON_SELF_TEST = 0x1044, PID_LIST_INTERFACES = 0x0700, PID_INTERFACE_LABEL = 0x0701, PID_INTERFACE_HARDWARE_ADDRESS_TYPE1 = 0x0702, PID_IPV4_DHCP_MODE = 0x0703, PID_IPV4_ZEROCONF_MODE = 0x0704, PID_IPV4_CURRENT_ADDRESS = 0x0705, PID_IPV4_STATIC_ADDRESS = 0x0706, PID_INTERFACE_RENEW_DHCP = 0x0707, PID_INTERFACE_RELEASE_DHCP = 0x0708, PID_INTERFACE_APPLY_CONFIGURATION = 0x0709, PID_IPV4_DEFAULT_ROUTE = 0x070a, PID_DNS_NAME_SERVER = 0x070b, PID_DNS_HOSTNAME = 0x070c, PID_DNS_DOMAIN_NAME = 0x070d } |
RDM Parameter IDs. More... | |
enum | OpenLightingManufacturerPID { PID_DEVICE_MODEL = 0x8002, PID_DEVICE_MODEL_LIST = 0x8003, PID_PIXEL_TYPE = 0x8005, PID_PIXEL_COUNT = 0x8006 } |
Open Lighting Project manufacturer PIDs. | |
enum | RDMNackReason { NR_UNKNOWN_PID = 0x0000, NR_FORMAT_ERROR = 0x0001, NR_HARDWARE_FAULT = 0x0002, NR_PROXY_REJECT = 0x0003, NR_WRITE_PROTECT = 0x0004, NR_UNSUPPORTED_COMMAND_CLASS = 0x0005, NR_DATA_OUT_OF_RANGE = 0x0006, NR_BUFFER_FULL = 0x0007, NR_PACKET_SIZE_UNSUPPORTED = 0x0008, NR_SUB_DEVICE_OUT_OF_RANGE = 0x0009, NR_PROXY_BUFFER_FULL = 0x000a, NR_ACTION_NOT_SUPPORTED = 0x000b, NR_ENDPOINT_NUMBER_INVALID = 0x0011 } |
RDM NACK reason codes from E1.20. More... | |
enum | RDMStatusType { STATUS_NONE = 0x0, STATUS_GET_LAST_MESSAGE = 0x1, STATUS_ADVISORY = 0x2, STATUS_WARNING = 0x3, STATUS_ERROR = 0x4, STATUS_ADVISORY_CLEARED = 0x12, STATUS_WARNING_CLEARED = 0x13, STATUS_ERROR_CLEARED = 0x14 } |
enum | __attribute__ { PRODUCT_CATEGORY_NOT_DECLARED = 0x0000, PRODUCT_CATEGORY_FIXTURE = 0x0100, PRODUCT_CATEGORY_FIXTURE_FIXED = 0x0101, PRODUCT_CATEGORY_FIXTURE_MOVING_YOKE = 0x0102, PRODUCT_CATEGORY_FIXTURE_MOVING_MIRROR = 0x0103, PRODUCT_CATEGORY_FIXTURE_OTHER = 0x01ff, PRODUCT_CATEGORY_FIXTURE_ACCESSORY = 0x0200, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_COLOR = 0x0201, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_YOKE = 0x0202, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_MIRROR = 0x0203, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_EFFECT = 0x0204, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_BEAM = 0x0205, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_OTHER = 0x02ff, PRODUCT_CATEGORY_PROJECTOR = 0x0300, PRODUCT_CATEGORY_PROJECTOR_FIXED = 0x0301, PRODUCT_CATEGORY_PROJECTOR_MOVING_YOKE = 0x0302, PRODUCT_CATEGORY_PROJECTOR_MOVING_MIRROR = 0x0303, PRODUCT_CATEGORY_PROJECTOR_OTHER = 0x03ff, PRODUCT_CATEGORY_ATMOSPHERIC = 0x0400, PRODUCT_CATEGORY_ATMOSPHERIC_EFFECT = 0x0401, PRODUCT_CATEGORY_ATMOSPHERIC_PYRO = 0x0402, PRODUCT_CATEGORY_ATMOSPHERIC_OTHER = 0x04ff, PRODUCT_CATEGORY_DIMMER = 0x0500, PRODUCT_CATEGORY_DIMMER_AC_INCANDESCENT = 0x0501, PRODUCT_CATEGORY_DIMMER_AC_FLUORESCENT = 0x0502, PRODUCT_CATEGORY_DIMMER_AC_COLDCATHODE = 0x0503, PRODUCT_CATEGORY_DIMMER_AC_NONDIM = 0x0504, PRODUCT_CATEGORY_DIMMER_AC_ELV = 0x0505, PRODUCT_CATEGORY_DIMMER_AC_OTHER = 0x0506, PRODUCT_CATEGORY_DIMMER_DC_LEVEL = 0x0507, PRODUCT_CATEGORY_DIMMER_DC_PWM = 0x0508, PRODUCT_CATEGORY_DIMMER_CS_LED = 0x0509, PRODUCT_CATEGORY_DIMMER_OTHER = 0x05ff, PRODUCT_CATEGORY_POWER = 0x0600, PRODUCT_CATEGORY_POWER_CONTROL = 0x0601, PRODUCT_CATEGORY_POWER_SOURCE = 0x0602, PRODUCT_CATEGORY_POWER_OTHER = 0x06ff, PRODUCT_CATEGORY_SCENIC = 0x0700, PRODUCT_CATEGORY_SCENIC_DRIVE = 0x0701, PRODUCT_CATEGORY_SCENIC_OTHER = 0x07ff, PRODUCT_CATEGORY_DATA = 0x0800, PRODUCT_CATEGORY_DATA_DISTRIBUTION = 0x0801, PRODUCT_CATEGORY_DATA_CONVERSION = 0x0802, PRODUCT_CATEGORY_DATA_OTHER = 0x08ff, PRODUCT_CATEGORY_AV = 0x0900, PRODUCT_CATEGORY_AV_AUDIO = 0x0901, PRODUCT_CATEGORY_AV_VIDEO = 0x0902, PRODUCT_CATEGORY_AV_OTHER = 0x09ff, PRODUCT_CATEGORY_MONITOR = 0x0a00, PRODUCT_CATEGORY_MONITOR_ACLINEPOWER = 0x0a01, PRODUCT_CATEGORY_MONITOR_DCPOWER = 0x0a02, PRODUCT_CATEGORY_MONITOR_ENVIRONMENTAL = 0x0a03, PRODUCT_CATEGORY_MONITOR_OTHER = 0x0aff, PRODUCT_CATEGORY_CONTROL = 0x7000, PRODUCT_CATEGORY_CONTROL_CONTROLLER = 0x7001, PRODUCT_CATEGORY_CONTROL_BACKUPDEVICE = 0x7002, PRODUCT_CATEGORY_CONTROL_OTHER = 0x70ff, PRODUCT_CATEGORY_TEST = 0x7100, PRODUCT_CATEGORY_TEST_EQUIPMENT = 0x7101, PRODUCT_CATEGORY_TEST_EQUIPMENT_OTHER = 0x71ff, PRODUCT_CATEGORY_OTHER = 0x7fff, PRODUCT_DETAIL_NOT_DECLARED = 0x0000, PRODUCT_DETAIL_ARC = 0x0001, PRODUCT_DETAIL_METAL_HALIDE = 0x0002, PRODUCT_DETAIL_INCANDESCENT = 0x0003, PRODUCT_DETAIL_LED = 0x0004, PRODUCT_DETAIL_FLUORESCENT = 0x0005, PRODUCT_DETAIL_COLDCATHODE = 0x0006, PRODUCT_DETAIL_ELECTROLUMINESCENT = 0x0007, PRODUCT_DETAIL_LASER = 0x0008, PRODUCT_DETAIL_FLASHTUBE = 0x0009, PRODUCT_DETAIL_COLORSCROLLER = 0x0100, PRODUCT_DETAIL_COLORWHEEL = 0x0101, PRODUCT_DETAIL_COLORCHANGE = 0x0102, PRODUCT_DETAIL_IRIS_DOUSER = 0x0103, PRODUCT_DETAIL_DIMMING_SHUTTER = 0x0104, PRODUCT_DETAIL_PROFILE_SHUTTER = 0x0105, PRODUCT_DETAIL_BARNDOOR_SHUTTER = 0x0106, PRODUCT_DETAIL_EFFECTS_DISC = 0x0107, PRODUCT_DETAIL_GOBO_ROTATOR = 0x0108, PRODUCT_DETAIL_VIDEO = 0x0200, PRODUCT_DETAIL_SLIDE = 0x0201, PRODUCT_DETAIL_FILM = 0x0202, PRODUCT_DETAIL_OILWHEEL = 0x0203, PRODUCT_DETAIL_LCDGATE = 0x0204, PRODUCT_DETAIL_FOGGER_GLYCOL = 0x0300, PRODUCT_DETAIL_FOGGER_MINERALOIL = 0x0301, PRODUCT_DETAIL_FOGGER_WATER = 0x0302, PRODUCT_DETAIL_CO2 = 0x0303, PRODUCT_DETAIL_LN2 = 0x0304, PRODUCT_DETAIL_BUBBLE = 0x0305, PRODUCT_DETAIL_FLAME_PROPANE = 0x0306, PRODUCT_DETAIL_FLAME_OTHER = 0x0307, PRODUCT_DETAIL_OLEFACTORY_STIMULATOR = 0x0308, PRODUCT_DETAIL_SNOW = 0x0309, PRODUCT_DETAIL_WATER_JET = 0x030a, PRODUCT_DETAIL_WIND = 0x030b, PRODUCT_DETAIL_CONFETTI = 0x030c, PRODUCT_DETAIL_HAZARD = 0x030d, PRODUCT_DETAIL_PHASE_CONTROL = 0x0400, PRODUCT_DETAIL_REVERSE_PHASE_CONTROL = 0x0401, PRODUCT_DETAIL_SINE = 0x0402, PRODUCT_DETAIL_PWM = 0x0403, PRODUCT_DETAIL_DC = 0x0404, PRODUCT_DETAIL_HFBALLAST = 0x0405, PRODUCT_DETAIL_HFHV_NEONBALLAST = 0x0406, PRODUCT_DETAIL_HFHV_EL = 0x0407, PRODUCT_DETAIL_MHR_BALLAST = 0x0408, PRODUCT_DETAIL_BITANGLE_MODULATION = 0x0409, PRODUCT_DETAIL_FREQUENCY_MODULATION = 0x040a, PRODUCT_DETAIL_HIGHFREQUENCY_12V = 0x040b, PRODUCT_DETAIL_RELAY_MECHANICAL = 0x040c, PRODUCT_DETAIL_RELAY_ELECTRONIC = 0x040d, PRODUCT_DETAIL_SWITCH_ELECTRONIC = 0x040e, PRODUCT_DETAIL_CONTACTOR = 0x040f, PRODUCT_DETAIL_MIRRORBALL_ROTATOR = 0x0500, PRODUCT_DETAIL_OTHER_ROTATOR = 0x0501, PRODUCT_DETAIL_KABUKI_DROP = 0x0502, PRODUCT_DETAIL_CURTAIN = 0x0503, PRODUCT_DETAIL_LINESET = 0x0504, PRODUCT_DETAIL_MOTOR_CONTROL = 0x0505, PRODUCT_DETAIL_DAMPER_CONTROL = 0x0506, PRODUCT_DETAIL_SPLITTER = 0x0600, PRODUCT_DETAIL_ETHERNET_NODE = 0x0601, PRODUCT_DETAIL_MERGE = 0x0602, PRODUCT_DETAIL_DATAPATCH = 0x0603, PRODUCT_DETAIL_WIRELESS_LINK = 0x0604, PRODUCT_DETAIL_PROTOCOL_CONVERTER = 0x0701, PRODUCT_DETAIL_ANALOG_DEMULTIPLEX = 0x0702, PRODUCT_DETAIL_ANALOG_MULTIPLEX = 0x0703, PRODUCT_DETAIL_SWITCH_PANEL = 0x0704, PRODUCT_DETAIL_ROUTER = 0x0800, PRODUCT_DETAIL_FADER = 0x0801, PRODUCT_DETAIL_MIXER = 0x0802, PRODUCT_DETAIL_CHANGEOVER_MANUAL = 0x0900, PRODUCT_DETAIL_CHANGEOVER_AUTO = 0x0901, PRODUCT_DETAIL_TEST = 0x0902, PRODUCT_DETAIL_GFI_RCD = 0x0a00, PRODUCT_DETAIL_BATTERY = 0x0a01, PRODUCT_DETAIL_CONTROLLABLE_BREAKER = 0x0a02, PRODUCT_DETAIL_OTHER = 0x7fff, SENSOR_TEMPERATURE = 0x00, SENSOR_VOLTAGE = 0x01, SENSOR_CURRENT = 0x02, SENSOR_FREQUENCY = 0x03, SENSOR_RESISTANCE = 0x04, SENSOR_POWER = 0x05, SENSOR_MASS = 0x06, SENSOR_LENGTH = 0x07, SENSOR_AREA = 0x08, SENSOR_VOLUME = 0x09, SENSOR_DENSITY = 0x0a, SENSOR_VELOCITY = 0x0b, SENSOR_ACCELERATION = 0x0c, SENSOR_FORCE = 0x0d, SENSOR_ENERGY = 0x0e, SENSOR_PRESSURE = 0x0f, SENSOR_TIME = 0x10, SENSOR_ANGLE = 0x11, SENSOR_POSITION_X = 0x12, SENSOR_POSITION_Y = 0x13, SENSOR_POSITION_Z = 0x14, SENSOR_ANGULAR_VELOCITY = 0x15, SENSOR_LUMINOUS_INTENSITY = 0x16, SENSOR_LUMINOUS_FLUX = 0x17, SENSOR_ILLUMINANCE = 0x18, SENSOR_CHROMINANCE_RED = 0x19, SENSOR_CHROMINANCE_GREEN = 0x1a, SENSOR_CHROMINANCE_BLUE = 0x1b, SENSOR_CONTACTS = 0x1c, SENSOR_MEMORY = 0x1d, SENSOR_ITEMS = 0x1e, SENSOR_HUMIDITY = 0x1f, SENSOR_COUNTER_16BIT = 0x20, SENSOR_OTHER = 0x7f, UNITS_NONE = 0x00, UNITS_CENTIGRADE = 0x01, UNITS_VOLTS_DC = 0x02, UNITS_VOLTS_AC_PEAK = 0x03, UNITS_VOLTS_AC_RMS = 0x04, UNITS_AMPERE_DC = 0x05, UNITS_AMPERE_AC_PEAK = 0x06, UNITS_AMPERE_AC_RMS = 0x07, UNITS_HERTZ = 0x08, UNITS_OHM = 0x09, UNITS_WATT = 0x0a, UNITS_KILOGRAM = 0x0b, UNITS_METERS = 0x0c, UNITS_METERS_SQUARED = 0x0d, UNITS_METERS_CUBED = 0x0e, UNITS_KILOGRAMMES_PER_METER_CUBED = 0x0f, UNITS_METERS_PER_SECOND = 0x10, UNITS_METERS_PER_SECOND_SQUARED = 0x11, UNITS_NEWTON = 0x12, UNITS_JOULE = 0x13, UNITS_PASCAL = 0x14, UNITS_SECOND = 0x15, UNITS_DEGREE = 0x16, UNITS_STERADIAN = 0x17, UNITS_CANDELA = 0x18, UNITS_LUMEN = 0x19, UNITS_LUX = 0x1a, UNITS_IRE = 0x1b, UNITS_BYTE = 0x1c, PREFIX_NONE = 0x00, PREFIX_DECI = 0x01, PREFIX_CENTI = 0x02, PREFIX_MILLI = 0x03, PREFIX_MICRO = 0x04, PREFIX_NANO = 0x05, PREFIX_PICO = 0x06, PREFIX_FEMTO = 0x07, PREFIX_ATTO = 0x08, PREFIX_ZEPTO = 0x09, PREFIX_YOCTO = 0x0a, PREFIX_DECA = 0x11, PREFIX_HECTO = 0x12, PREFIX_KILO = 0x13, PREFIX_MEGA = 0x14, PREFIX_GIGA = 0x15, PREFIX_TERA = 0x16, PREFIX_PETA = 0x17, PREFIX_EXA = 0x18, PREFIX_ZETTA = 0x19, PREFIX_YOTTA = 0x1a } |
RDM Product Category codes from E1.20. More... | |
enum | __attribute__ { PRODUCT_CATEGORY_NOT_DECLARED = 0x0000, PRODUCT_CATEGORY_FIXTURE = 0x0100, PRODUCT_CATEGORY_FIXTURE_FIXED = 0x0101, PRODUCT_CATEGORY_FIXTURE_MOVING_YOKE = 0x0102, PRODUCT_CATEGORY_FIXTURE_MOVING_MIRROR = 0x0103, PRODUCT_CATEGORY_FIXTURE_OTHER = 0x01ff, PRODUCT_CATEGORY_FIXTURE_ACCESSORY = 0x0200, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_COLOR = 0x0201, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_YOKE = 0x0202, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_MIRROR = 0x0203, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_EFFECT = 0x0204, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_BEAM = 0x0205, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_OTHER = 0x02ff, PRODUCT_CATEGORY_PROJECTOR = 0x0300, PRODUCT_CATEGORY_PROJECTOR_FIXED = 0x0301, PRODUCT_CATEGORY_PROJECTOR_MOVING_YOKE = 0x0302, PRODUCT_CATEGORY_PROJECTOR_MOVING_MIRROR = 0x0303, PRODUCT_CATEGORY_PROJECTOR_OTHER = 0x03ff, PRODUCT_CATEGORY_ATMOSPHERIC = 0x0400, PRODUCT_CATEGORY_ATMOSPHERIC_EFFECT = 0x0401, PRODUCT_CATEGORY_ATMOSPHERIC_PYRO = 0x0402, PRODUCT_CATEGORY_ATMOSPHERIC_OTHER = 0x04ff, PRODUCT_CATEGORY_DIMMER = 0x0500, PRODUCT_CATEGORY_DIMMER_AC_INCANDESCENT = 0x0501, PRODUCT_CATEGORY_DIMMER_AC_FLUORESCENT = 0x0502, PRODUCT_CATEGORY_DIMMER_AC_COLDCATHODE = 0x0503, PRODUCT_CATEGORY_DIMMER_AC_NONDIM = 0x0504, PRODUCT_CATEGORY_DIMMER_AC_ELV = 0x0505, PRODUCT_CATEGORY_DIMMER_AC_OTHER = 0x0506, PRODUCT_CATEGORY_DIMMER_DC_LEVEL = 0x0507, PRODUCT_CATEGORY_DIMMER_DC_PWM = 0x0508, PRODUCT_CATEGORY_DIMMER_CS_LED = 0x0509, PRODUCT_CATEGORY_DIMMER_OTHER = 0x05ff, PRODUCT_CATEGORY_POWER = 0x0600, PRODUCT_CATEGORY_POWER_CONTROL = 0x0601, PRODUCT_CATEGORY_POWER_SOURCE = 0x0602, PRODUCT_CATEGORY_POWER_OTHER = 0x06ff, PRODUCT_CATEGORY_SCENIC = 0x0700, PRODUCT_CATEGORY_SCENIC_DRIVE = 0x0701, PRODUCT_CATEGORY_SCENIC_OTHER = 0x07ff, PRODUCT_CATEGORY_DATA = 0x0800, PRODUCT_CATEGORY_DATA_DISTRIBUTION = 0x0801, PRODUCT_CATEGORY_DATA_CONVERSION = 0x0802, PRODUCT_CATEGORY_DATA_OTHER = 0x08ff, PRODUCT_CATEGORY_AV = 0x0900, PRODUCT_CATEGORY_AV_AUDIO = 0x0901, PRODUCT_CATEGORY_AV_VIDEO = 0x0902, PRODUCT_CATEGORY_AV_OTHER = 0x09ff, PRODUCT_CATEGORY_MONITOR = 0x0a00, PRODUCT_CATEGORY_MONITOR_ACLINEPOWER = 0x0a01, PRODUCT_CATEGORY_MONITOR_DCPOWER = 0x0a02, PRODUCT_CATEGORY_MONITOR_ENVIRONMENTAL = 0x0a03, PRODUCT_CATEGORY_MONITOR_OTHER = 0x0aff, PRODUCT_CATEGORY_CONTROL = 0x7000, PRODUCT_CATEGORY_CONTROL_CONTROLLER = 0x7001, PRODUCT_CATEGORY_CONTROL_BACKUPDEVICE = 0x7002, PRODUCT_CATEGORY_CONTROL_OTHER = 0x70ff, PRODUCT_CATEGORY_TEST = 0x7100, PRODUCT_CATEGORY_TEST_EQUIPMENT = 0x7101, PRODUCT_CATEGORY_TEST_EQUIPMENT_OTHER = 0x71ff, PRODUCT_CATEGORY_OTHER = 0x7fff, PRODUCT_DETAIL_NOT_DECLARED = 0x0000, PRODUCT_DETAIL_ARC = 0x0001, PRODUCT_DETAIL_METAL_HALIDE = 0x0002, PRODUCT_DETAIL_INCANDESCENT = 0x0003, PRODUCT_DETAIL_LED = 0x0004, PRODUCT_DETAIL_FLUORESCENT = 0x0005, PRODUCT_DETAIL_COLDCATHODE = 0x0006, PRODUCT_DETAIL_ELECTROLUMINESCENT = 0x0007, PRODUCT_DETAIL_LASER = 0x0008, PRODUCT_DETAIL_FLASHTUBE = 0x0009, PRODUCT_DETAIL_COLORSCROLLER = 0x0100, PRODUCT_DETAIL_COLORWHEEL = 0x0101, PRODUCT_DETAIL_COLORCHANGE = 0x0102, PRODUCT_DETAIL_IRIS_DOUSER = 0x0103, PRODUCT_DETAIL_DIMMING_SHUTTER = 0x0104, PRODUCT_DETAIL_PROFILE_SHUTTER = 0x0105, PRODUCT_DETAIL_BARNDOOR_SHUTTER = 0x0106, PRODUCT_DETAIL_EFFECTS_DISC = 0x0107, PRODUCT_DETAIL_GOBO_ROTATOR = 0x0108, PRODUCT_DETAIL_VIDEO = 0x0200, PRODUCT_DETAIL_SLIDE = 0x0201, PRODUCT_DETAIL_FILM = 0x0202, PRODUCT_DETAIL_OILWHEEL = 0x0203, PRODUCT_DETAIL_LCDGATE = 0x0204, PRODUCT_DETAIL_FOGGER_GLYCOL = 0x0300, PRODUCT_DETAIL_FOGGER_MINERALOIL = 0x0301, PRODUCT_DETAIL_FOGGER_WATER = 0x0302, PRODUCT_DETAIL_CO2 = 0x0303, PRODUCT_DETAIL_LN2 = 0x0304, PRODUCT_DETAIL_BUBBLE = 0x0305, PRODUCT_DETAIL_FLAME_PROPANE = 0x0306, PRODUCT_DETAIL_FLAME_OTHER = 0x0307, PRODUCT_DETAIL_OLEFACTORY_STIMULATOR = 0x0308, PRODUCT_DETAIL_SNOW = 0x0309, PRODUCT_DETAIL_WATER_JET = 0x030a, PRODUCT_DETAIL_WIND = 0x030b, PRODUCT_DETAIL_CONFETTI = 0x030c, PRODUCT_DETAIL_HAZARD = 0x030d, PRODUCT_DETAIL_PHASE_CONTROL = 0x0400, PRODUCT_DETAIL_REVERSE_PHASE_CONTROL = 0x0401, PRODUCT_DETAIL_SINE = 0x0402, PRODUCT_DETAIL_PWM = 0x0403, PRODUCT_DETAIL_DC = 0x0404, PRODUCT_DETAIL_HFBALLAST = 0x0405, PRODUCT_DETAIL_HFHV_NEONBALLAST = 0x0406, PRODUCT_DETAIL_HFHV_EL = 0x0407, PRODUCT_DETAIL_MHR_BALLAST = 0x0408, PRODUCT_DETAIL_BITANGLE_MODULATION = 0x0409, PRODUCT_DETAIL_FREQUENCY_MODULATION = 0x040a, PRODUCT_DETAIL_HIGHFREQUENCY_12V = 0x040b, PRODUCT_DETAIL_RELAY_MECHANICAL = 0x040c, PRODUCT_DETAIL_RELAY_ELECTRONIC = 0x040d, PRODUCT_DETAIL_SWITCH_ELECTRONIC = 0x040e, PRODUCT_DETAIL_CONTACTOR = 0x040f, PRODUCT_DETAIL_MIRRORBALL_ROTATOR = 0x0500, PRODUCT_DETAIL_OTHER_ROTATOR = 0x0501, PRODUCT_DETAIL_KABUKI_DROP = 0x0502, PRODUCT_DETAIL_CURTAIN = 0x0503, PRODUCT_DETAIL_LINESET = 0x0504, PRODUCT_DETAIL_MOTOR_CONTROL = 0x0505, PRODUCT_DETAIL_DAMPER_CONTROL = 0x0506, PRODUCT_DETAIL_SPLITTER = 0x0600, PRODUCT_DETAIL_ETHERNET_NODE = 0x0601, PRODUCT_DETAIL_MERGE = 0x0602, PRODUCT_DETAIL_DATAPATCH = 0x0603, PRODUCT_DETAIL_WIRELESS_LINK = 0x0604, PRODUCT_DETAIL_PROTOCOL_CONVERTER = 0x0701, PRODUCT_DETAIL_ANALOG_DEMULTIPLEX = 0x0702, PRODUCT_DETAIL_ANALOG_MULTIPLEX = 0x0703, PRODUCT_DETAIL_SWITCH_PANEL = 0x0704, PRODUCT_DETAIL_ROUTER = 0x0800, PRODUCT_DETAIL_FADER = 0x0801, PRODUCT_DETAIL_MIXER = 0x0802, PRODUCT_DETAIL_CHANGEOVER_MANUAL = 0x0900, PRODUCT_DETAIL_CHANGEOVER_AUTO = 0x0901, PRODUCT_DETAIL_TEST = 0x0902, PRODUCT_DETAIL_GFI_RCD = 0x0a00, PRODUCT_DETAIL_BATTERY = 0x0a01, PRODUCT_DETAIL_CONTROLLABLE_BREAKER = 0x0a02, PRODUCT_DETAIL_OTHER = 0x7fff, SENSOR_TEMPERATURE = 0x00, SENSOR_VOLTAGE = 0x01, SENSOR_CURRENT = 0x02, SENSOR_FREQUENCY = 0x03, SENSOR_RESISTANCE = 0x04, SENSOR_POWER = 0x05, SENSOR_MASS = 0x06, SENSOR_LENGTH = 0x07, SENSOR_AREA = 0x08, SENSOR_VOLUME = 0x09, SENSOR_DENSITY = 0x0a, SENSOR_VELOCITY = 0x0b, SENSOR_ACCELERATION = 0x0c, SENSOR_FORCE = 0x0d, SENSOR_ENERGY = 0x0e, SENSOR_PRESSURE = 0x0f, SENSOR_TIME = 0x10, SENSOR_ANGLE = 0x11, SENSOR_POSITION_X = 0x12, SENSOR_POSITION_Y = 0x13, SENSOR_POSITION_Z = 0x14, SENSOR_ANGULAR_VELOCITY = 0x15, SENSOR_LUMINOUS_INTENSITY = 0x16, SENSOR_LUMINOUS_FLUX = 0x17, SENSOR_ILLUMINANCE = 0x18, SENSOR_CHROMINANCE_RED = 0x19, SENSOR_CHROMINANCE_GREEN = 0x1a, SENSOR_CHROMINANCE_BLUE = 0x1b, SENSOR_CONTACTS = 0x1c, SENSOR_MEMORY = 0x1d, SENSOR_ITEMS = 0x1e, SENSOR_HUMIDITY = 0x1f, SENSOR_COUNTER_16BIT = 0x20, SENSOR_OTHER = 0x7f, UNITS_NONE = 0x00, UNITS_CENTIGRADE = 0x01, UNITS_VOLTS_DC = 0x02, UNITS_VOLTS_AC_PEAK = 0x03, UNITS_VOLTS_AC_RMS = 0x04, UNITS_AMPERE_DC = 0x05, UNITS_AMPERE_AC_PEAK = 0x06, UNITS_AMPERE_AC_RMS = 0x07, UNITS_HERTZ = 0x08, UNITS_OHM = 0x09, UNITS_WATT = 0x0a, UNITS_KILOGRAM = 0x0b, UNITS_METERS = 0x0c, UNITS_METERS_SQUARED = 0x0d, UNITS_METERS_CUBED = 0x0e, UNITS_KILOGRAMMES_PER_METER_CUBED = 0x0f, UNITS_METERS_PER_SECOND = 0x10, UNITS_METERS_PER_SECOND_SQUARED = 0x11, UNITS_NEWTON = 0x12, UNITS_JOULE = 0x13, UNITS_PASCAL = 0x14, UNITS_SECOND = 0x15, UNITS_DEGREE = 0x16, UNITS_STERADIAN = 0x17, UNITS_CANDELA = 0x18, UNITS_LUMEN = 0x19, UNITS_LUX = 0x1a, UNITS_IRE = 0x1b, UNITS_BYTE = 0x1c, PREFIX_NONE = 0x00, PREFIX_DECI = 0x01, PREFIX_CENTI = 0x02, PREFIX_MILLI = 0x03, PREFIX_MICRO = 0x04, PREFIX_NANO = 0x05, PREFIX_PICO = 0x06, PREFIX_FEMTO = 0x07, PREFIX_ATTO = 0x08, PREFIX_ZEPTO = 0x09, PREFIX_YOCTO = 0x0a, PREFIX_DECA = 0x11, PREFIX_HECTO = 0x12, PREFIX_KILO = 0x13, PREFIX_MEGA = 0x14, PREFIX_GIGA = 0x15, PREFIX_TERA = 0x16, PREFIX_PETA = 0x17, PREFIX_EXA = 0x18, PREFIX_ZETTA = 0x19, PREFIX_YOTTA = 0x1a } |
enum | RDMLampState { LAMP_OFF = 0x00, LAMP_ON = 0x01, LAMP_STRIKE = 0x02, LAMP_STANDBY = 0x03, LAMP_NOT_PRESENT = 0x04, LAMP_ERROR = 0x7f } |
enum | RDMLampMode { LAMP_ON_MODE_OFF = 0x00, LAMP_ON_MODE_DMX = 0x01, LAMP_ON_MODE_ON = 0x02, LAMP_ON_MODE_ON_AFTER_CAL = 0x03 } |
enum | RDMDisplayInvert { DISPLAY_INVERT_OFF = 0x00, DISPLAY_INVERT_ON = 0x01, DISPLAY_INVERT_AUTO = 0x02 } |
enum | RDMSelfTest { SELF_TEST_OFF = 0x00, SELF_TEST_ALL = 0xff } |
enum | RDMPowerState { POWER_STATE_FULL_OFF = 0x00, POWER_STATE_SHUTDOWN = 0x01, POWER_STATE_STANDBY = 0x02, POWER_STATE_NORMAL = 0xff } |
enum | __attribute__ { PRODUCT_CATEGORY_NOT_DECLARED = 0x0000, PRODUCT_CATEGORY_FIXTURE = 0x0100, PRODUCT_CATEGORY_FIXTURE_FIXED = 0x0101, PRODUCT_CATEGORY_FIXTURE_MOVING_YOKE = 0x0102, PRODUCT_CATEGORY_FIXTURE_MOVING_MIRROR = 0x0103, PRODUCT_CATEGORY_FIXTURE_OTHER = 0x01ff, PRODUCT_CATEGORY_FIXTURE_ACCESSORY = 0x0200, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_COLOR = 0x0201, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_YOKE = 0x0202, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_MIRROR = 0x0203, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_EFFECT = 0x0204, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_BEAM = 0x0205, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_OTHER = 0x02ff, PRODUCT_CATEGORY_PROJECTOR = 0x0300, PRODUCT_CATEGORY_PROJECTOR_FIXED = 0x0301, PRODUCT_CATEGORY_PROJECTOR_MOVING_YOKE = 0x0302, PRODUCT_CATEGORY_PROJECTOR_MOVING_MIRROR = 0x0303, PRODUCT_CATEGORY_PROJECTOR_OTHER = 0x03ff, PRODUCT_CATEGORY_ATMOSPHERIC = 0x0400, PRODUCT_CATEGORY_ATMOSPHERIC_EFFECT = 0x0401, PRODUCT_CATEGORY_ATMOSPHERIC_PYRO = 0x0402, PRODUCT_CATEGORY_ATMOSPHERIC_OTHER = 0x04ff, PRODUCT_CATEGORY_DIMMER = 0x0500, PRODUCT_CATEGORY_DIMMER_AC_INCANDESCENT = 0x0501, PRODUCT_CATEGORY_DIMMER_AC_FLUORESCENT = 0x0502, PRODUCT_CATEGORY_DIMMER_AC_COLDCATHODE = 0x0503, PRODUCT_CATEGORY_DIMMER_AC_NONDIM = 0x0504, PRODUCT_CATEGORY_DIMMER_AC_ELV = 0x0505, PRODUCT_CATEGORY_DIMMER_AC_OTHER = 0x0506, PRODUCT_CATEGORY_DIMMER_DC_LEVEL = 0x0507, PRODUCT_CATEGORY_DIMMER_DC_PWM = 0x0508, PRODUCT_CATEGORY_DIMMER_CS_LED = 0x0509, PRODUCT_CATEGORY_DIMMER_OTHER = 0x05ff, PRODUCT_CATEGORY_POWER = 0x0600, PRODUCT_CATEGORY_POWER_CONTROL = 0x0601, PRODUCT_CATEGORY_POWER_SOURCE = 0x0602, PRODUCT_CATEGORY_POWER_OTHER = 0x06ff, PRODUCT_CATEGORY_SCENIC = 0x0700, PRODUCT_CATEGORY_SCENIC_DRIVE = 0x0701, PRODUCT_CATEGORY_SCENIC_OTHER = 0x07ff, PRODUCT_CATEGORY_DATA = 0x0800, PRODUCT_CATEGORY_DATA_DISTRIBUTION = 0x0801, PRODUCT_CATEGORY_DATA_CONVERSION = 0x0802, PRODUCT_CATEGORY_DATA_OTHER = 0x08ff, PRODUCT_CATEGORY_AV = 0x0900, PRODUCT_CATEGORY_AV_AUDIO = 0x0901, PRODUCT_CATEGORY_AV_VIDEO = 0x0902, PRODUCT_CATEGORY_AV_OTHER = 0x09ff, PRODUCT_CATEGORY_MONITOR = 0x0a00, PRODUCT_CATEGORY_MONITOR_ACLINEPOWER = 0x0a01, PRODUCT_CATEGORY_MONITOR_DCPOWER = 0x0a02, PRODUCT_CATEGORY_MONITOR_ENVIRONMENTAL = 0x0a03, PRODUCT_CATEGORY_MONITOR_OTHER = 0x0aff, PRODUCT_CATEGORY_CONTROL = 0x7000, PRODUCT_CATEGORY_CONTROL_CONTROLLER = 0x7001, PRODUCT_CATEGORY_CONTROL_BACKUPDEVICE = 0x7002, PRODUCT_CATEGORY_CONTROL_OTHER = 0x70ff, PRODUCT_CATEGORY_TEST = 0x7100, PRODUCT_CATEGORY_TEST_EQUIPMENT = 0x7101, PRODUCT_CATEGORY_TEST_EQUIPMENT_OTHER = 0x71ff, PRODUCT_CATEGORY_OTHER = 0x7fff, PRODUCT_DETAIL_NOT_DECLARED = 0x0000, PRODUCT_DETAIL_ARC = 0x0001, PRODUCT_DETAIL_METAL_HALIDE = 0x0002, PRODUCT_DETAIL_INCANDESCENT = 0x0003, PRODUCT_DETAIL_LED = 0x0004, PRODUCT_DETAIL_FLUORESCENT = 0x0005, PRODUCT_DETAIL_COLDCATHODE = 0x0006, PRODUCT_DETAIL_ELECTROLUMINESCENT = 0x0007, PRODUCT_DETAIL_LASER = 0x0008, PRODUCT_DETAIL_FLASHTUBE = 0x0009, PRODUCT_DETAIL_COLORSCROLLER = 0x0100, PRODUCT_DETAIL_COLORWHEEL = 0x0101, PRODUCT_DETAIL_COLORCHANGE = 0x0102, PRODUCT_DETAIL_IRIS_DOUSER = 0x0103, PRODUCT_DETAIL_DIMMING_SHUTTER = 0x0104, PRODUCT_DETAIL_PROFILE_SHUTTER = 0x0105, PRODUCT_DETAIL_BARNDOOR_SHUTTER = 0x0106, PRODUCT_DETAIL_EFFECTS_DISC = 0x0107, PRODUCT_DETAIL_GOBO_ROTATOR = 0x0108, PRODUCT_DETAIL_VIDEO = 0x0200, PRODUCT_DETAIL_SLIDE = 0x0201, PRODUCT_DETAIL_FILM = 0x0202, PRODUCT_DETAIL_OILWHEEL = 0x0203, PRODUCT_DETAIL_LCDGATE = 0x0204, PRODUCT_DETAIL_FOGGER_GLYCOL = 0x0300, PRODUCT_DETAIL_FOGGER_MINERALOIL = 0x0301, PRODUCT_DETAIL_FOGGER_WATER = 0x0302, PRODUCT_DETAIL_CO2 = 0x0303, PRODUCT_DETAIL_LN2 = 0x0304, PRODUCT_DETAIL_BUBBLE = 0x0305, PRODUCT_DETAIL_FLAME_PROPANE = 0x0306, PRODUCT_DETAIL_FLAME_OTHER = 0x0307, PRODUCT_DETAIL_OLEFACTORY_STIMULATOR = 0x0308, PRODUCT_DETAIL_SNOW = 0x0309, PRODUCT_DETAIL_WATER_JET = 0x030a, PRODUCT_DETAIL_WIND = 0x030b, PRODUCT_DETAIL_CONFETTI = 0x030c, PRODUCT_DETAIL_HAZARD = 0x030d, PRODUCT_DETAIL_PHASE_CONTROL = 0x0400, PRODUCT_DETAIL_REVERSE_PHASE_CONTROL = 0x0401, PRODUCT_DETAIL_SINE = 0x0402, PRODUCT_DETAIL_PWM = 0x0403, PRODUCT_DETAIL_DC = 0x0404, PRODUCT_DETAIL_HFBALLAST = 0x0405, PRODUCT_DETAIL_HFHV_NEONBALLAST = 0x0406, PRODUCT_DETAIL_HFHV_EL = 0x0407, PRODUCT_DETAIL_MHR_BALLAST = 0x0408, PRODUCT_DETAIL_BITANGLE_MODULATION = 0x0409, PRODUCT_DETAIL_FREQUENCY_MODULATION = 0x040a, PRODUCT_DETAIL_HIGHFREQUENCY_12V = 0x040b, PRODUCT_DETAIL_RELAY_MECHANICAL = 0x040c, PRODUCT_DETAIL_RELAY_ELECTRONIC = 0x040d, PRODUCT_DETAIL_SWITCH_ELECTRONIC = 0x040e, PRODUCT_DETAIL_CONTACTOR = 0x040f, PRODUCT_DETAIL_MIRRORBALL_ROTATOR = 0x0500, PRODUCT_DETAIL_OTHER_ROTATOR = 0x0501, PRODUCT_DETAIL_KABUKI_DROP = 0x0502, PRODUCT_DETAIL_CURTAIN = 0x0503, PRODUCT_DETAIL_LINESET = 0x0504, PRODUCT_DETAIL_MOTOR_CONTROL = 0x0505, PRODUCT_DETAIL_DAMPER_CONTROL = 0x0506, PRODUCT_DETAIL_SPLITTER = 0x0600, PRODUCT_DETAIL_ETHERNET_NODE = 0x0601, PRODUCT_DETAIL_MERGE = 0x0602, PRODUCT_DETAIL_DATAPATCH = 0x0603, PRODUCT_DETAIL_WIRELESS_LINK = 0x0604, PRODUCT_DETAIL_PROTOCOL_CONVERTER = 0x0701, PRODUCT_DETAIL_ANALOG_DEMULTIPLEX = 0x0702, PRODUCT_DETAIL_ANALOG_MULTIPLEX = 0x0703, PRODUCT_DETAIL_SWITCH_PANEL = 0x0704, PRODUCT_DETAIL_ROUTER = 0x0800, PRODUCT_DETAIL_FADER = 0x0801, PRODUCT_DETAIL_MIXER = 0x0802, PRODUCT_DETAIL_CHANGEOVER_MANUAL = 0x0900, PRODUCT_DETAIL_CHANGEOVER_AUTO = 0x0901, PRODUCT_DETAIL_TEST = 0x0902, PRODUCT_DETAIL_GFI_RCD = 0x0a00, PRODUCT_DETAIL_BATTERY = 0x0a01, PRODUCT_DETAIL_CONTROLLABLE_BREAKER = 0x0a02, PRODUCT_DETAIL_OTHER = 0x7fff, SENSOR_TEMPERATURE = 0x00, SENSOR_VOLTAGE = 0x01, SENSOR_CURRENT = 0x02, SENSOR_FREQUENCY = 0x03, SENSOR_RESISTANCE = 0x04, SENSOR_POWER = 0x05, SENSOR_MASS = 0x06, SENSOR_LENGTH = 0x07, SENSOR_AREA = 0x08, SENSOR_VOLUME = 0x09, SENSOR_DENSITY = 0x0a, SENSOR_VELOCITY = 0x0b, SENSOR_ACCELERATION = 0x0c, SENSOR_FORCE = 0x0d, SENSOR_ENERGY = 0x0e, SENSOR_PRESSURE = 0x0f, SENSOR_TIME = 0x10, SENSOR_ANGLE = 0x11, SENSOR_POSITION_X = 0x12, SENSOR_POSITION_Y = 0x13, SENSOR_POSITION_Z = 0x14, SENSOR_ANGULAR_VELOCITY = 0x15, SENSOR_LUMINOUS_INTENSITY = 0x16, SENSOR_LUMINOUS_FLUX = 0x17, SENSOR_ILLUMINANCE = 0x18, SENSOR_CHROMINANCE_RED = 0x19, SENSOR_CHROMINANCE_GREEN = 0x1a, SENSOR_CHROMINANCE_BLUE = 0x1b, SENSOR_CONTACTS = 0x1c, SENSOR_MEMORY = 0x1d, SENSOR_ITEMS = 0x1e, SENSOR_HUMIDITY = 0x1f, SENSOR_COUNTER_16BIT = 0x20, SENSOR_OTHER = 0x7f, UNITS_NONE = 0x00, UNITS_CENTIGRADE = 0x01, UNITS_VOLTS_DC = 0x02, UNITS_VOLTS_AC_PEAK = 0x03, UNITS_VOLTS_AC_RMS = 0x04, UNITS_AMPERE_DC = 0x05, UNITS_AMPERE_AC_PEAK = 0x06, UNITS_AMPERE_AC_RMS = 0x07, UNITS_HERTZ = 0x08, UNITS_OHM = 0x09, UNITS_WATT = 0x0a, UNITS_KILOGRAM = 0x0b, UNITS_METERS = 0x0c, UNITS_METERS_SQUARED = 0x0d, UNITS_METERS_CUBED = 0x0e, UNITS_KILOGRAMMES_PER_METER_CUBED = 0x0f, UNITS_METERS_PER_SECOND = 0x10, UNITS_METERS_PER_SECOND_SQUARED = 0x11, UNITS_NEWTON = 0x12, UNITS_JOULE = 0x13, UNITS_PASCAL = 0x14, UNITS_SECOND = 0x15, UNITS_DEGREE = 0x16, UNITS_STERADIAN = 0x17, UNITS_CANDELA = 0x18, UNITS_LUMEN = 0x19, UNITS_LUX = 0x1a, UNITS_IRE = 0x1b, UNITS_BYTE = 0x1c, PREFIX_NONE = 0x00, PREFIX_DECI = 0x01, PREFIX_CENTI = 0x02, PREFIX_MILLI = 0x03, PREFIX_MICRO = 0x04, PREFIX_NANO = 0x05, PREFIX_PICO = 0x06, PREFIX_FEMTO = 0x07, PREFIX_ATTO = 0x08, PREFIX_ZEPTO = 0x09, PREFIX_YOCTO = 0x0a, PREFIX_DECA = 0x11, PREFIX_HECTO = 0x12, PREFIX_KILO = 0x13, PREFIX_MEGA = 0x14, PREFIX_GIGA = 0x15, PREFIX_TERA = 0x16, PREFIX_PETA = 0x17, PREFIX_EXA = 0x18, PREFIX_ZETTA = 0x19, PREFIX_YOTTA = 0x1a } |
enum | __attribute__ { PRODUCT_CATEGORY_NOT_DECLARED = 0x0000, PRODUCT_CATEGORY_FIXTURE = 0x0100, PRODUCT_CATEGORY_FIXTURE_FIXED = 0x0101, PRODUCT_CATEGORY_FIXTURE_MOVING_YOKE = 0x0102, PRODUCT_CATEGORY_FIXTURE_MOVING_MIRROR = 0x0103, PRODUCT_CATEGORY_FIXTURE_OTHER = 0x01ff, PRODUCT_CATEGORY_FIXTURE_ACCESSORY = 0x0200, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_COLOR = 0x0201, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_YOKE = 0x0202, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_MIRROR = 0x0203, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_EFFECT = 0x0204, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_BEAM = 0x0205, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_OTHER = 0x02ff, PRODUCT_CATEGORY_PROJECTOR = 0x0300, PRODUCT_CATEGORY_PROJECTOR_FIXED = 0x0301, PRODUCT_CATEGORY_PROJECTOR_MOVING_YOKE = 0x0302, PRODUCT_CATEGORY_PROJECTOR_MOVING_MIRROR = 0x0303, PRODUCT_CATEGORY_PROJECTOR_OTHER = 0x03ff, PRODUCT_CATEGORY_ATMOSPHERIC = 0x0400, PRODUCT_CATEGORY_ATMOSPHERIC_EFFECT = 0x0401, PRODUCT_CATEGORY_ATMOSPHERIC_PYRO = 0x0402, PRODUCT_CATEGORY_ATMOSPHERIC_OTHER = 0x04ff, PRODUCT_CATEGORY_DIMMER = 0x0500, PRODUCT_CATEGORY_DIMMER_AC_INCANDESCENT = 0x0501, PRODUCT_CATEGORY_DIMMER_AC_FLUORESCENT = 0x0502, PRODUCT_CATEGORY_DIMMER_AC_COLDCATHODE = 0x0503, PRODUCT_CATEGORY_DIMMER_AC_NONDIM = 0x0504, PRODUCT_CATEGORY_DIMMER_AC_ELV = 0x0505, PRODUCT_CATEGORY_DIMMER_AC_OTHER = 0x0506, PRODUCT_CATEGORY_DIMMER_DC_LEVEL = 0x0507, PRODUCT_CATEGORY_DIMMER_DC_PWM = 0x0508, PRODUCT_CATEGORY_DIMMER_CS_LED = 0x0509, PRODUCT_CATEGORY_DIMMER_OTHER = 0x05ff, PRODUCT_CATEGORY_POWER = 0x0600, PRODUCT_CATEGORY_POWER_CONTROL = 0x0601, PRODUCT_CATEGORY_POWER_SOURCE = 0x0602, PRODUCT_CATEGORY_POWER_OTHER = 0x06ff, PRODUCT_CATEGORY_SCENIC = 0x0700, PRODUCT_CATEGORY_SCENIC_DRIVE = 0x0701, PRODUCT_CATEGORY_SCENIC_OTHER = 0x07ff, PRODUCT_CATEGORY_DATA = 0x0800, PRODUCT_CATEGORY_DATA_DISTRIBUTION = 0x0801, PRODUCT_CATEGORY_DATA_CONVERSION = 0x0802, PRODUCT_CATEGORY_DATA_OTHER = 0x08ff, PRODUCT_CATEGORY_AV = 0x0900, PRODUCT_CATEGORY_AV_AUDIO = 0x0901, PRODUCT_CATEGORY_AV_VIDEO = 0x0902, PRODUCT_CATEGORY_AV_OTHER = 0x09ff, PRODUCT_CATEGORY_MONITOR = 0x0a00, PRODUCT_CATEGORY_MONITOR_ACLINEPOWER = 0x0a01, PRODUCT_CATEGORY_MONITOR_DCPOWER = 0x0a02, PRODUCT_CATEGORY_MONITOR_ENVIRONMENTAL = 0x0a03, PRODUCT_CATEGORY_MONITOR_OTHER = 0x0aff, PRODUCT_CATEGORY_CONTROL = 0x7000, PRODUCT_CATEGORY_CONTROL_CONTROLLER = 0x7001, PRODUCT_CATEGORY_CONTROL_BACKUPDEVICE = 0x7002, PRODUCT_CATEGORY_CONTROL_OTHER = 0x70ff, PRODUCT_CATEGORY_TEST = 0x7100, PRODUCT_CATEGORY_TEST_EQUIPMENT = 0x7101, PRODUCT_CATEGORY_TEST_EQUIPMENT_OTHER = 0x71ff, PRODUCT_CATEGORY_OTHER = 0x7fff, PRODUCT_DETAIL_NOT_DECLARED = 0x0000, PRODUCT_DETAIL_ARC = 0x0001, PRODUCT_DETAIL_METAL_HALIDE = 0x0002, PRODUCT_DETAIL_INCANDESCENT = 0x0003, PRODUCT_DETAIL_LED = 0x0004, PRODUCT_DETAIL_FLUORESCENT = 0x0005, PRODUCT_DETAIL_COLDCATHODE = 0x0006, PRODUCT_DETAIL_ELECTROLUMINESCENT = 0x0007, PRODUCT_DETAIL_LASER = 0x0008, PRODUCT_DETAIL_FLASHTUBE = 0x0009, PRODUCT_DETAIL_COLORSCROLLER = 0x0100, PRODUCT_DETAIL_COLORWHEEL = 0x0101, PRODUCT_DETAIL_COLORCHANGE = 0x0102, PRODUCT_DETAIL_IRIS_DOUSER = 0x0103, PRODUCT_DETAIL_DIMMING_SHUTTER = 0x0104, PRODUCT_DETAIL_PROFILE_SHUTTER = 0x0105, PRODUCT_DETAIL_BARNDOOR_SHUTTER = 0x0106, PRODUCT_DETAIL_EFFECTS_DISC = 0x0107, PRODUCT_DETAIL_GOBO_ROTATOR = 0x0108, PRODUCT_DETAIL_VIDEO = 0x0200, PRODUCT_DETAIL_SLIDE = 0x0201, PRODUCT_DETAIL_FILM = 0x0202, PRODUCT_DETAIL_OILWHEEL = 0x0203, PRODUCT_DETAIL_LCDGATE = 0x0204, PRODUCT_DETAIL_FOGGER_GLYCOL = 0x0300, PRODUCT_DETAIL_FOGGER_MINERALOIL = 0x0301, PRODUCT_DETAIL_FOGGER_WATER = 0x0302, PRODUCT_DETAIL_CO2 = 0x0303, PRODUCT_DETAIL_LN2 = 0x0304, PRODUCT_DETAIL_BUBBLE = 0x0305, PRODUCT_DETAIL_FLAME_PROPANE = 0x0306, PRODUCT_DETAIL_FLAME_OTHER = 0x0307, PRODUCT_DETAIL_OLEFACTORY_STIMULATOR = 0x0308, PRODUCT_DETAIL_SNOW = 0x0309, PRODUCT_DETAIL_WATER_JET = 0x030a, PRODUCT_DETAIL_WIND = 0x030b, PRODUCT_DETAIL_CONFETTI = 0x030c, PRODUCT_DETAIL_HAZARD = 0x030d, PRODUCT_DETAIL_PHASE_CONTROL = 0x0400, PRODUCT_DETAIL_REVERSE_PHASE_CONTROL = 0x0401, PRODUCT_DETAIL_SINE = 0x0402, PRODUCT_DETAIL_PWM = 0x0403, PRODUCT_DETAIL_DC = 0x0404, PRODUCT_DETAIL_HFBALLAST = 0x0405, PRODUCT_DETAIL_HFHV_NEONBALLAST = 0x0406, PRODUCT_DETAIL_HFHV_EL = 0x0407, PRODUCT_DETAIL_MHR_BALLAST = 0x0408, PRODUCT_DETAIL_BITANGLE_MODULATION = 0x0409, PRODUCT_DETAIL_FREQUENCY_MODULATION = 0x040a, PRODUCT_DETAIL_HIGHFREQUENCY_12V = 0x040b, PRODUCT_DETAIL_RELAY_MECHANICAL = 0x040c, PRODUCT_DETAIL_RELAY_ELECTRONIC = 0x040d, PRODUCT_DETAIL_SWITCH_ELECTRONIC = 0x040e, PRODUCT_DETAIL_CONTACTOR = 0x040f, PRODUCT_DETAIL_MIRRORBALL_ROTATOR = 0x0500, PRODUCT_DETAIL_OTHER_ROTATOR = 0x0501, PRODUCT_DETAIL_KABUKI_DROP = 0x0502, PRODUCT_DETAIL_CURTAIN = 0x0503, PRODUCT_DETAIL_LINESET = 0x0504, PRODUCT_DETAIL_MOTOR_CONTROL = 0x0505, PRODUCT_DETAIL_DAMPER_CONTROL = 0x0506, PRODUCT_DETAIL_SPLITTER = 0x0600, PRODUCT_DETAIL_ETHERNET_NODE = 0x0601, PRODUCT_DETAIL_MERGE = 0x0602, PRODUCT_DETAIL_DATAPATCH = 0x0603, PRODUCT_DETAIL_WIRELESS_LINK = 0x0604, PRODUCT_DETAIL_PROTOCOL_CONVERTER = 0x0701, PRODUCT_DETAIL_ANALOG_DEMULTIPLEX = 0x0702, PRODUCT_DETAIL_ANALOG_MULTIPLEX = 0x0703, PRODUCT_DETAIL_SWITCH_PANEL = 0x0704, PRODUCT_DETAIL_ROUTER = 0x0800, PRODUCT_DETAIL_FADER = 0x0801, PRODUCT_DETAIL_MIXER = 0x0802, PRODUCT_DETAIL_CHANGEOVER_MANUAL = 0x0900, PRODUCT_DETAIL_CHANGEOVER_AUTO = 0x0901, PRODUCT_DETAIL_TEST = 0x0902, PRODUCT_DETAIL_GFI_RCD = 0x0a00, PRODUCT_DETAIL_BATTERY = 0x0a01, PRODUCT_DETAIL_CONTROLLABLE_BREAKER = 0x0a02, PRODUCT_DETAIL_OTHER = 0x7fff, SENSOR_TEMPERATURE = 0x00, SENSOR_VOLTAGE = 0x01, SENSOR_CURRENT = 0x02, SENSOR_FREQUENCY = 0x03, SENSOR_RESISTANCE = 0x04, SENSOR_POWER = 0x05, SENSOR_MASS = 0x06, SENSOR_LENGTH = 0x07, SENSOR_AREA = 0x08, SENSOR_VOLUME = 0x09, SENSOR_DENSITY = 0x0a, SENSOR_VELOCITY = 0x0b, SENSOR_ACCELERATION = 0x0c, SENSOR_FORCE = 0x0d, SENSOR_ENERGY = 0x0e, SENSOR_PRESSURE = 0x0f, SENSOR_TIME = 0x10, SENSOR_ANGLE = 0x11, SENSOR_POSITION_X = 0x12, SENSOR_POSITION_Y = 0x13, SENSOR_POSITION_Z = 0x14, SENSOR_ANGULAR_VELOCITY = 0x15, SENSOR_LUMINOUS_INTENSITY = 0x16, SENSOR_LUMINOUS_FLUX = 0x17, SENSOR_ILLUMINANCE = 0x18, SENSOR_CHROMINANCE_RED = 0x19, SENSOR_CHROMINANCE_GREEN = 0x1a, SENSOR_CHROMINANCE_BLUE = 0x1b, SENSOR_CONTACTS = 0x1c, SENSOR_MEMORY = 0x1d, SENSOR_ITEMS = 0x1e, SENSOR_HUMIDITY = 0x1f, SENSOR_COUNTER_16BIT = 0x20, SENSOR_OTHER = 0x7f, UNITS_NONE = 0x00, UNITS_CENTIGRADE = 0x01, UNITS_VOLTS_DC = 0x02, UNITS_VOLTS_AC_PEAK = 0x03, UNITS_VOLTS_AC_RMS = 0x04, UNITS_AMPERE_DC = 0x05, UNITS_AMPERE_AC_PEAK = 0x06, UNITS_AMPERE_AC_RMS = 0x07, UNITS_HERTZ = 0x08, UNITS_OHM = 0x09, UNITS_WATT = 0x0a, UNITS_KILOGRAM = 0x0b, UNITS_METERS = 0x0c, UNITS_METERS_SQUARED = 0x0d, UNITS_METERS_CUBED = 0x0e, UNITS_KILOGRAMMES_PER_METER_CUBED = 0x0f, UNITS_METERS_PER_SECOND = 0x10, UNITS_METERS_PER_SECOND_SQUARED = 0x11, UNITS_NEWTON = 0x12, UNITS_JOULE = 0x13, UNITS_PASCAL = 0x14, UNITS_SECOND = 0x15, UNITS_DEGREE = 0x16, UNITS_STERADIAN = 0x17, UNITS_CANDELA = 0x18, UNITS_LUMEN = 0x19, UNITS_LUX = 0x1a, UNITS_IRE = 0x1b, UNITS_BYTE = 0x1c, PREFIX_NONE = 0x00, PREFIX_DECI = 0x01, PREFIX_CENTI = 0x02, PREFIX_MILLI = 0x03, PREFIX_MICRO = 0x04, PREFIX_NANO = 0x05, PREFIX_PICO = 0x06, PREFIX_FEMTO = 0x07, PREFIX_ATTO = 0x08, PREFIX_ZEPTO = 0x09, PREFIX_YOCTO = 0x0a, PREFIX_DECA = 0x11, PREFIX_HECTO = 0x12, PREFIX_KILO = 0x13, PREFIX_MEGA = 0x14, PREFIX_GIGA = 0x15, PREFIX_TERA = 0x16, PREFIX_PETA = 0x17, PREFIX_EXA = 0x18, PREFIX_ZETTA = 0x19, PREFIX_YOTTA = 0x1a } |
enum | __attribute__ { PRODUCT_CATEGORY_NOT_DECLARED = 0x0000, PRODUCT_CATEGORY_FIXTURE = 0x0100, PRODUCT_CATEGORY_FIXTURE_FIXED = 0x0101, PRODUCT_CATEGORY_FIXTURE_MOVING_YOKE = 0x0102, PRODUCT_CATEGORY_FIXTURE_MOVING_MIRROR = 0x0103, PRODUCT_CATEGORY_FIXTURE_OTHER = 0x01ff, PRODUCT_CATEGORY_FIXTURE_ACCESSORY = 0x0200, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_COLOR = 0x0201, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_YOKE = 0x0202, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_MIRROR = 0x0203, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_EFFECT = 0x0204, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_BEAM = 0x0205, PRODUCT_CATEGORY_FIXTURE_ACCESSORY_OTHER = 0x02ff, PRODUCT_CATEGORY_PROJECTOR = 0x0300, PRODUCT_CATEGORY_PROJECTOR_FIXED = 0x0301, PRODUCT_CATEGORY_PROJECTOR_MOVING_YOKE = 0x0302, PRODUCT_CATEGORY_PROJECTOR_MOVING_MIRROR = 0x0303, PRODUCT_CATEGORY_PROJECTOR_OTHER = 0x03ff, PRODUCT_CATEGORY_ATMOSPHERIC = 0x0400, PRODUCT_CATEGORY_ATMOSPHERIC_EFFECT = 0x0401, PRODUCT_CATEGORY_ATMOSPHERIC_PYRO = 0x0402, PRODUCT_CATEGORY_ATMOSPHERIC_OTHER = 0x04ff, PRODUCT_CATEGORY_DIMMER = 0x0500, PRODUCT_CATEGORY_DIMMER_AC_INCANDESCENT = 0x0501, PRODUCT_CATEGORY_DIMMER_AC_FLUORESCENT = 0x0502, PRODUCT_CATEGORY_DIMMER_AC_COLDCATHODE = 0x0503, PRODUCT_CATEGORY_DIMMER_AC_NONDIM = 0x0504, PRODUCT_CATEGORY_DIMMER_AC_ELV = 0x0505, PRODUCT_CATEGORY_DIMMER_AC_OTHER = 0x0506, PRODUCT_CATEGORY_DIMMER_DC_LEVEL = 0x0507, PRODUCT_CATEGORY_DIMMER_DC_PWM = 0x0508, PRODUCT_CATEGORY_DIMMER_CS_LED = 0x0509, PRODUCT_CATEGORY_DIMMER_OTHER = 0x05ff, PRODUCT_CATEGORY_POWER = 0x0600, PRODUCT_CATEGORY_POWER_CONTROL = 0x0601, PRODUCT_CATEGORY_POWER_SOURCE = 0x0602, PRODUCT_CATEGORY_POWER_OTHER = 0x06ff, PRODUCT_CATEGORY_SCENIC = 0x0700, PRODUCT_CATEGORY_SCENIC_DRIVE = 0x0701, PRODUCT_CATEGORY_SCENIC_OTHER = 0x07ff, PRODUCT_CATEGORY_DATA = 0x0800, PRODUCT_CATEGORY_DATA_DISTRIBUTION = 0x0801, PRODUCT_CATEGORY_DATA_CONVERSION = 0x0802, PRODUCT_CATEGORY_DATA_OTHER = 0x08ff, PRODUCT_CATEGORY_AV = 0x0900, PRODUCT_CATEGORY_AV_AUDIO = 0x0901, PRODUCT_CATEGORY_AV_VIDEO = 0x0902, PRODUCT_CATEGORY_AV_OTHER = 0x09ff, PRODUCT_CATEGORY_MONITOR = 0x0a00, PRODUCT_CATEGORY_MONITOR_ACLINEPOWER = 0x0a01, PRODUCT_CATEGORY_MONITOR_DCPOWER = 0x0a02, PRODUCT_CATEGORY_MONITOR_ENVIRONMENTAL = 0x0a03, PRODUCT_CATEGORY_MONITOR_OTHER = 0x0aff, PRODUCT_CATEGORY_CONTROL = 0x7000, PRODUCT_CATEGORY_CONTROL_CONTROLLER = 0x7001, PRODUCT_CATEGORY_CONTROL_BACKUPDEVICE = 0x7002, PRODUCT_CATEGORY_CONTROL_OTHER = 0x70ff, PRODUCT_CATEGORY_TEST = 0x7100, PRODUCT_CATEGORY_TEST_EQUIPMENT = 0x7101, PRODUCT_CATEGORY_TEST_EQUIPMENT_OTHER = 0x71ff, PRODUCT_CATEGORY_OTHER = 0x7fff, PRODUCT_DETAIL_NOT_DECLARED = 0x0000, PRODUCT_DETAIL_ARC = 0x0001, PRODUCT_DETAIL_METAL_HALIDE = 0x0002, PRODUCT_DETAIL_INCANDESCENT = 0x0003, PRODUCT_DETAIL_LED = 0x0004, PRODUCT_DETAIL_FLUORESCENT = 0x0005, PRODUCT_DETAIL_COLDCATHODE = 0x0006, PRODUCT_DETAIL_ELECTROLUMINESCENT = 0x0007, PRODUCT_DETAIL_LASER = 0x0008, PRODUCT_DETAIL_FLASHTUBE = 0x0009, PRODUCT_DETAIL_COLORSCROLLER = 0x0100, PRODUCT_DETAIL_COLORWHEEL = 0x0101, PRODUCT_DETAIL_COLORCHANGE = 0x0102, PRODUCT_DETAIL_IRIS_DOUSER = 0x0103, PRODUCT_DETAIL_DIMMING_SHUTTER = 0x0104, PRODUCT_DETAIL_PROFILE_SHUTTER = 0x0105, PRODUCT_DETAIL_BARNDOOR_SHUTTER = 0x0106, PRODUCT_DETAIL_EFFECTS_DISC = 0x0107, PRODUCT_DETAIL_GOBO_ROTATOR = 0x0108, PRODUCT_DETAIL_VIDEO = 0x0200, PRODUCT_DETAIL_SLIDE = 0x0201, PRODUCT_DETAIL_FILM = 0x0202, PRODUCT_DETAIL_OILWHEEL = 0x0203, PRODUCT_DETAIL_LCDGATE = 0x0204, PRODUCT_DETAIL_FOGGER_GLYCOL = 0x0300, PRODUCT_DETAIL_FOGGER_MINERALOIL = 0x0301, PRODUCT_DETAIL_FOGGER_WATER = 0x0302, PRODUCT_DETAIL_CO2 = 0x0303, PRODUCT_DETAIL_LN2 = 0x0304, PRODUCT_DETAIL_BUBBLE = 0x0305, PRODUCT_DETAIL_FLAME_PROPANE = 0x0306, PRODUCT_DETAIL_FLAME_OTHER = 0x0307, PRODUCT_DETAIL_OLEFACTORY_STIMULATOR = 0x0308, PRODUCT_DETAIL_SNOW = 0x0309, PRODUCT_DETAIL_WATER_JET = 0x030a, PRODUCT_DETAIL_WIND = 0x030b, PRODUCT_DETAIL_CONFETTI = 0x030c, PRODUCT_DETAIL_HAZARD = 0x030d, PRODUCT_DETAIL_PHASE_CONTROL = 0x0400, PRODUCT_DETAIL_REVERSE_PHASE_CONTROL = 0x0401, PRODUCT_DETAIL_SINE = 0x0402, PRODUCT_DETAIL_PWM = 0x0403, PRODUCT_DETAIL_DC = 0x0404, PRODUCT_DETAIL_HFBALLAST = 0x0405, PRODUCT_DETAIL_HFHV_NEONBALLAST = 0x0406, PRODUCT_DETAIL_HFHV_EL = 0x0407, PRODUCT_DETAIL_MHR_BALLAST = 0x0408, PRODUCT_DETAIL_BITANGLE_MODULATION = 0x0409, PRODUCT_DETAIL_FREQUENCY_MODULATION = 0x040a, PRODUCT_DETAIL_HIGHFREQUENCY_12V = 0x040b, PRODUCT_DETAIL_RELAY_MECHANICAL = 0x040c, PRODUCT_DETAIL_RELAY_ELECTRONIC = 0x040d, PRODUCT_DETAIL_SWITCH_ELECTRONIC = 0x040e, PRODUCT_DETAIL_CONTACTOR = 0x040f, PRODUCT_DETAIL_MIRRORBALL_ROTATOR = 0x0500, PRODUCT_DETAIL_OTHER_ROTATOR = 0x0501, PRODUCT_DETAIL_KABUKI_DROP = 0x0502, PRODUCT_DETAIL_CURTAIN = 0x0503, PRODUCT_DETAIL_LINESET = 0x0504, PRODUCT_DETAIL_MOTOR_CONTROL = 0x0505, PRODUCT_DETAIL_DAMPER_CONTROL = 0x0506, PRODUCT_DETAIL_SPLITTER = 0x0600, PRODUCT_DETAIL_ETHERNET_NODE = 0x0601, PRODUCT_DETAIL_MERGE = 0x0602, PRODUCT_DETAIL_DATAPATCH = 0x0603, PRODUCT_DETAIL_WIRELESS_LINK = 0x0604, PRODUCT_DETAIL_PROTOCOL_CONVERTER = 0x0701, PRODUCT_DETAIL_ANALOG_DEMULTIPLEX = 0x0702, PRODUCT_DETAIL_ANALOG_MULTIPLEX = 0x0703, PRODUCT_DETAIL_SWITCH_PANEL = 0x0704, PRODUCT_DETAIL_ROUTER = 0x0800, PRODUCT_DETAIL_FADER = 0x0801, PRODUCT_DETAIL_MIXER = 0x0802, PRODUCT_DETAIL_CHANGEOVER_MANUAL = 0x0900, PRODUCT_DETAIL_CHANGEOVER_AUTO = 0x0901, PRODUCT_DETAIL_TEST = 0x0902, PRODUCT_DETAIL_GFI_RCD = 0x0a00, PRODUCT_DETAIL_BATTERY = 0x0a01, PRODUCT_DETAIL_CONTROLLABLE_BREAKER = 0x0a02, PRODUCT_DETAIL_OTHER = 0x7fff, SENSOR_TEMPERATURE = 0x00, SENSOR_VOLTAGE = 0x01, SENSOR_CURRENT = 0x02, SENSOR_FREQUENCY = 0x03, SENSOR_RESISTANCE = 0x04, SENSOR_POWER = 0x05, SENSOR_MASS = 0x06, SENSOR_LENGTH = 0x07, SENSOR_AREA = 0x08, SENSOR_VOLUME = 0x09, SENSOR_DENSITY = 0x0a, SENSOR_VELOCITY = 0x0b, SENSOR_ACCELERATION = 0x0c, SENSOR_FORCE = 0x0d, SENSOR_ENERGY = 0x0e, SENSOR_PRESSURE = 0x0f, SENSOR_TIME = 0x10, SENSOR_ANGLE = 0x11, SENSOR_POSITION_X = 0x12, SENSOR_POSITION_Y = 0x13, SENSOR_POSITION_Z = 0x14, SENSOR_ANGULAR_VELOCITY = 0x15, SENSOR_LUMINOUS_INTENSITY = 0x16, SENSOR_LUMINOUS_FLUX = 0x17, SENSOR_ILLUMINANCE = 0x18, SENSOR_CHROMINANCE_RED = 0x19, SENSOR_CHROMINANCE_GREEN = 0x1a, SENSOR_CHROMINANCE_BLUE = 0x1b, SENSOR_CONTACTS = 0x1c, SENSOR_MEMORY = 0x1d, SENSOR_ITEMS = 0x1e, SENSOR_HUMIDITY = 0x1f, SENSOR_COUNTER_16BIT = 0x20, SENSOR_OTHER = 0x7f, UNITS_NONE = 0x00, UNITS_CENTIGRADE = 0x01, UNITS_VOLTS_DC = 0x02, UNITS_VOLTS_AC_PEAK = 0x03, UNITS_VOLTS_AC_RMS = 0x04, UNITS_AMPERE_DC = 0x05, UNITS_AMPERE_AC_PEAK = 0x06, UNITS_AMPERE_AC_RMS = 0x07, UNITS_HERTZ = 0x08, UNITS_OHM = 0x09, UNITS_WATT = 0x0a, UNITS_KILOGRAM = 0x0b, UNITS_METERS = 0x0c, UNITS_METERS_SQUARED = 0x0d, UNITS_METERS_CUBED = 0x0e, UNITS_KILOGRAMMES_PER_METER_CUBED = 0x0f, UNITS_METERS_PER_SECOND = 0x10, UNITS_METERS_PER_SECOND_SQUARED = 0x11, UNITS_NEWTON = 0x12, UNITS_JOULE = 0x13, UNITS_PASCAL = 0x14, UNITS_SECOND = 0x15, UNITS_DEGREE = 0x16, UNITS_STERADIAN = 0x17, UNITS_CANDELA = 0x18, UNITS_LUMEN = 0x19, UNITS_LUX = 0x1a, UNITS_IRE = 0x1b, UNITS_BYTE = 0x1c, PREFIX_NONE = 0x00, PREFIX_DECI = 0x01, PREFIX_CENTI = 0x02, PREFIX_MILLI = 0x03, PREFIX_MICRO = 0x04, PREFIX_NANO = 0x05, PREFIX_PICO = 0x06, PREFIX_FEMTO = 0x07, PREFIX_ATTO = 0x08, PREFIX_ZEPTO = 0x09, PREFIX_YOCTO = 0x0a, PREFIX_DECA = 0x11, PREFIX_HECTO = 0x12, PREFIX_KILO = 0x13, PREFIX_MEGA = 0x14, PREFIX_GIGA = 0x15, PREFIX_TERA = 0x16, PREFIX_PETA = 0x17, PREFIX_EXA = 0x18, PREFIX_ZETTA = 0x19, PREFIX_YOTTA = 0x1a } |
enum | RDMDataType { DS_NOT_DEFINED = 0x0, DS_BIT_FIELD = 0x01, DS_ASCII = 0x02, DS_UNSIGNED_BYTE = 0x03, DS_SIGNED_BYTE = 0x04, DS_UNSIGNED_WORD = 0x05, DS_SIGNED_WORD = 0x06, DS_UNSIGNED_DWORD = 0x07, DS_SIGNED_DWORD = 0x08 } |
enum | RDMCommandClassSupported { CC_GET = 0x01, CC_SET = 0x02, CC_GET_SET = 0x03 } |
enum | RDMSlotType { ST_PRIMARY = 0x00, ST_SEC_FINE = 0x01, ST_SEC_TIMING = 0x02, ST_SEC_SPEED = 0x03, ST_SEC_CONTROL = 0x04, ST_SEC_INDEX = 0x05, ST_SEC_ROTATION = 0x06, ST_SEC_INDEX_ROTATE = 0x07, ST_SEC_UNDEFINED = 0xff } |
The RDM slot types, from table C-1 of the standard. | |
enum | RDMSlotCategory { SD_INTENSITY = 0x0001, SD_INTENSITY_MASTER = 0x0002, SD_PAN = 0x0101, SD_TILT = 0x0102, SD_COLOR_WHEEL = 0x0201, SD_COLOR_SUB_CYAN = 0x0202, SD_COLOR_SUB_YELLOW = 0x0203, SD_COLOR_SUB_MAGENTA = 0x0204, SD_COLOR_ADD_RED = 0x0205, SD_COLOR_ADD_GREEN = 0x0206, SD_COLOR_ADD_BLUE = 0x0207, SD_COLOR_CORRECTION = 0x0208, SD_COLOR_SCROLL = 0x0209, SD_COLOR_SEMAPHORE = 0x0210, SD_COLOR_ADD_AMBER = 0x0211, SD_COLOR_ADD_WHITE = 0x0212, SD_COLOR_ADD_WARM_WHITE = 0x0213, SD_COLOR_ADD_COOL_WHITE = 0x0214, SD_COLOR_SUB_UV = 0x0215, SD_COLOR_HUE = 0x0216, SD_COLOR_SATURATION = 0x0217, SD_STATIC_GOBO_WHEEL = 0x0301, SD_ROTO_GOBO_WHEEL = 0x0302, SD_PRISM_WHEEL = 0x0303, SD_EFFECTS_WHEEL = 0x0304, SD_BEAM_SIZE_IRIS = 0x0401, SD_EDGE = 0x0402, SD_FROST = 0x0403, SD_STROBE = 0x0404, SD_ZOOM = 0x0405, SD_FRAMING_SHUTTER = 0x0406, SD_SHUTTER_ROTATE = 0x0407, SD_DOUSER = 0x0408, SD_BARN_DOOR = 0x0409, SD_LAMP_CONTROL = 0x0501, SD_FIXTURE_CONTROL = 0x0502, SD_FIXTURE_SPEED = 0x0503, SD_MACRO = 0x0504, SD_POWER_CONTROL = 0x0505, SD_FAN_CONTROL = 0x0506, SD_HEATER_CONTROL = 0x0507, SD_FOUNTAIN_CONTROL = 0x0508, SD_UNDEFINED = 0xffff } |
enum | RDMIdentifyMode { IDENTIFY_MODE_QUIET = 0x00, IDENTIFY_MODE_LOUD = 0xff } |
enum | RDMPresetPlayback { PRESET_PLAYBACK_OFF = 0x0000, PRESET_PLAYBACK_ALL = 0xffff } |
enum | RDMPresetProgrammed { PRESET_NOT_PROGRAMMED = 0x00, PRESET_PROGRAMMED = 0x01, PRESET_PROGRAMMED_READ_ONLY = 0x02 } |
enum | RDMMergeMode { MERGE_MODE_DEFAULT = 0x00, MERGE_MODE_HTP = 0x01, MERGE_MODE_LTP = 0x02, MERGE_MODE_DMX_ONLY = 0x03, MERGE_MODE_OTHER = 0xff } |
enum | RDMStatusMessageId { STS_CAL_FAIL = 0x0001, STS_SENS_NOT_FOUND = 0x0002, STS_SENS_ALWAYS_ON = 0x0003, STS_FEEDBACK_ERROR = 0x0004, STS_INDEX_ERROR = 0x0005, STS_LAMP_DOUSED = 0x0011, STS_LAMP_STRIKE = 0x0012, STS_LAMP_ACCESS_OPEN = 0x0013, STS_LAMP_ALWAYS_ON = 0x0014, STS_OVERTEMP = 0x0021, STS_UNDERTEMP = 0x0022, STS_SENS_OUT_RANGE = 0x0023, STS_OVERVOLTAGE_PHASE = 0x0031, STS_UNDERVOLTAGE_PHASE = 0x0032, STS_OVERCURRENT = 0x0033, STS_UNDERCURRENT = 0x0034, STS_PHASE = 0x0035, STS_PHASE_ERROR = 0x0036, STS_AMPS = 0x0037, STS_VOLTS = 0x0038, STS_DIMSLOT_OCCUPIED = 0x0041, STS_BREAKER_TRIP = 0x0042, STS_WATTS = 0x0043, STS_DIM_FAILURE = 0x0044, STS_DIM_PANIC = 0x0045, STS_LOAD_FAILURE = 0x0046, STS_READY = 0x0050, STS_NOT_READY = 0x0051, STS_LOW_FLUID = 0x0052, STS_EEPROM_ERROR = 0x0060, STS_RAM_ERROR = 0x0061, STS_FPGA_ERROR = 0x0062, STS_PROXY_BROADCAST_DROPPED = 0x0070, STS_ASC_RXOK = 0x0071, STS_ASC_DROPPED = 0x0072, STS_DMXNSCNONE = 0x0080, STS_DMXNSCLOSS = 0x0081, STS_DMXNSCERROR = 0x0082, STS_DMXNSC_OK = 0x0083 } |
enum | OpenLightingStatusIdType { STS_OLP_TESTING = 0x8000, STS_OLP_SELFTEST_PASSED = 0x8001, STS_OLP_SELFTEST_FAILED = 0x8002 } |
enum | ResponderModel { NULL_MODEL_ID = 0x0000, LED_MODEL_ID = 0x0100, PROXY_MODEL_ID = 0x0101, MOVING_LIGHT_MODEL_ID = 0x0102, SENSOR_MODEL_ID = 0x0103, NETWORK_MODEL_ID = 0x0104, DIMMER_MODEL_ID = 0x0105, PROXY_CHILD_MODEL_ID = 0x0106 } |
The Model IDs. More... | |
enum | ModelIoctl { IOCTL_GET_UID } |
Model ioctl enums. More... | |
Functions | |
void | RDMResponder_Initialize (const RDMResponderSettings *settings) |
Initialize an RDMResponder struct. More... | |
void | RDMResponder_Tasks () |
Perform the periodic tasks. More... | |
void | RDMResponder_SwitchResponder (RDMResponder *responder) |
Switch the current responder. More... | |
void | RDMResponder_RestoreResponder () |
Restore to the default responder. | |
void | RDMResponder_InitResponder () |
Initialize the current responder with default values. | |
void | RDMResponder_ResetToFactoryDefaults () |
Reset an RDMResponder to the factory defaults. | |
void | RDMResponder_GetUID (uint8_t *uid) |
Get the UID of the responder. More... | |
int | RDMResponder_HandleDUBRequest (const uint8_t *param_data, unsigned int param_data_length) |
Handle a Discovery-unique-branch request. More... | |
void | RDMResponder_BuildHeader (const RDMHeader *incoming_header, RDMResponseType response_type, RDMCommandClass command_class, uint16_t pid, unsigned int param_data_length) |
Build the RDM header in the output buffer. More... | |
int | RDMResponder_AddHeaderAndChecksum (const RDMHeader *incoming_header, RDMResponseType response_type, unsigned int message_length) |
int | RDMResponder_HandleDiscovery (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle discovery commands. More... | |
int | RDMResponder_BuildSetAck (const RDMHeader *incoming_header) |
Build an RDM Set ACK with no param data. More... | |
int | RDMResponder_BuildNack (const RDMHeader *incoming_header, RDMNackReason reason) |
Build an RDM NACK. More... | |
int | RDMResponder_BuildAckTimer (const RDMHeader *incoming_header, uint16_t delay) |
Build an ACK TIMER. More... | |
int | RDMResponder_BuildParamDescription (const RDMHeader *incoming_header, uint16_t param_id, const ParameterDescription *description) |
Build a PARAMETER_DESCRIPTION response. More... | |
int | RDMResponder_DispatchPID (const RDMHeader *incoming_header, const uint8_t *param_data) |
Invoke a PID handler from the ResponderDefinition. More... | |
int | RDMResponder_Ioctl (ModelIoctl command, uint8_t *data, unsigned int length) |
A base Ioctl handler. More... | |
int | RDMResponder_GenericReturnString (const RDMHeader *incoming_header, const char *reply_string, unsigned int max_size) |
Build a response containing a string. More... | |
int | RDMResponder_GenericGetBool (const RDMHeader *incoming_header, bool value) |
Handle a request to get a bool value. More... | |
int | RDMResponder_GenericSetBool (const RDMHeader *incoming_header, const uint8_t *param_data, bool *value) |
Handle a request to set a bool value. More... | |
int | RDMResponder_GenericGetUInt8 (const RDMHeader *incoming_header, uint8_t value) |
Handle a request to get a uint8_t value. More... | |
int | RDMResponder_GenericSetUInt8 (const RDMHeader *incoming_header, const uint8_t *param_data, uint8_t *value) |
Handle a request to set a uint8_t value. More... | |
int | RDMResponder_GenericGetUInt16 (const RDMHeader *incoming_header, uint16_t value) |
Handle a request to get a uint16_t value. More... | |
int | RDMResponder_GenericSetUInt16 (const RDMHeader *incoming_header, const uint8_t *param_data, uint16_t *value) |
Handle a request to set a uint16_t value. More... | |
int | RDMResponder_GenericGetUInt32 (const RDMHeader *incoming_header, uint32_t value) |
Handle a request to get a uint32_t value. More... | |
int | RDMResponder_GenericSetUInt32 (const RDMHeader *incoming_header, const uint8_t *param_data, uint32_t *value) |
Handle a request to set a uint32_t value. More... | |
int | RDMResponder_SetMute (const RDMHeader *incoming_header) |
Handle a SET MUTE request. More... | |
int | RDMResponder_SetUnMute (const RDMHeader *incoming_header) |
Handle a SET UN_MUTE request. More... | |
int | RDMResponder_GetCommsStatus (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET COMMS_STATUS request. More... | |
int | RDMResponder_SetCommsStatus (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a SET COMMS_STATUS request. More... | |
int | RDMResponder_GetDeviceInfo (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET DEVICE_INFO request. More... | |
int | RDMResponder_GetSupportedParameters (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a SUPPORTED_PARAMETERS request. More... | |
int | RDMResponder_GetProductDetailIds (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET PRODUCT_DETAIL_IDS request. More... | |
int | RDMResponder_GetDeviceModelDescription (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET DEVICE_MODEL_DESCRIPTION request. More... | |
int | RDMResponder_GetManufacturerLabel (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET MANUFACTURER_LABEL request. More... | |
int | RDMResponder_GetSoftwareVersionLabel (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET SOFTWARE_VERSION_LABEL request. More... | |
int | RDMResponder_GetBootSoftwareVersion (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET BOOT_SOFTWARE_VERSION request. More... | |
int | RDMResponder_GetBootSoftwareVersionLabel (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET BOOT_SOFTWARE_LABEL request. More... | |
int | RDMResponder_GetDeviceLabel (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET DEVICE_LABEL request. More... | |
int | RDMResponder_SetDeviceLabel (const RDMHeader *incoming_header, const uint8_t *param_data) |
int | RDMResponder_GetDMXPersonality (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET DMX_PERSONALITY request. More... | |
int | RDMResponder_SetDMXPersonality (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a SET DMX_PERSONALITY request. More... | |
int | RDMResponder_GetDMXPersonalityDescription (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET DMX_PERSONALITY_DESCRIPTION request. More... | |
int | RDMResponder_GetDMXStartAddress (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET DMX_START_ADDRESS request. More... | |
int | RDMResponder_SetDMXStartAddress (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a SET DMX_START_ADDRESS request. More... | |
int | RDMResponder_GetSlotInfo (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET SLOT_INFO request. More... | |
int | RDMResponder_GetSlotDescription (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET SLOT_DESCRIPTION request. More... | |
int | RDMResponder_GetDefaultSlotValue (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET DEFAULT_SLOT_VALUE request. More... | |
int | RDMResponder_GetSensorDefinition (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET SENSOR_DEFINITION request. More... | |
int | RDMResponder_GetSensorValue (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET SENSOR_VALUE request. More... | |
int | RDMResponder_SetSensorValue (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a SET SENSOR_VALUE request. More... | |
int | RDMResponder_SetRecordSensor (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a SET RECORD_SENSOR request. More... | |
int | RDMResponder_GetIdentifyDevice (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a GET IDENTIFY_DEVICE request. More... | |
int | RDMResponder_SetIdentifyDevice (const RDMHeader *incoming_header, const uint8_t *param_data) |
Handle a SET IDENTIFY_DEVICE request. More... | |
Variables | |
static const uint16_t | SUBDEVICE_ROOT = 0u |
The root sub device. | |
static const uint16_t | SUBDEVICE_ALL = 0xffffu |
All sub devices. | |
static const uint16_t | SUBDEVICE_MAX = 0x0200u |
The maximum index for a sub device. | |
static const uint8_t | SUB_START_CODE = 0x01u |
The RDM Sub Start Code. | |
static const uint8_t | RDM_CHECKSUM_LENGTH = 2u |
The number of bytes in an RDM checksum. | |
static const uint8_t | MESSAGE_LENGTH_OFFSET = 2u |
The location of the message length field in a frame. | |
static const uint8_t | RDM_PARAM_DATA_LENGTH_OFFSET = 23u |
The location of the parameter data length in a frame. | |
static const uint8_t | RDM_PARAM_DATA_OFFSET = 24u |
The location of the parameter data in a frame. | |
static const uint16_t | RDM_VERSION = 0x0100u |
The RDM version we support. | |
static const uint16_t | MAX_DMX_START_ADDRESS = 512u |
The maximum value for a DMX start address. | |
static const uint16_t | INVALID_DMX_START_ADDRESS = 0xffffu |
The 'unpatched' DMX start address. | |
static const uint16_t | MUTE_MANAGED_PROXY_FLAG = 0x01 |
Indicates the responder is a managed proxy. | |
static const uint16_t | MUTE_SUBDEVICE_FLAG = 0x02 |
Indicates the responder has subdevices. | |
static const uint16_t | MUTE_BOOTLOADER_FLAG = 0x04 |
Indicates the responder is in bootloader mode. | |
static const uint16_t | MUTE_PROXY_FLAG = 0x08 |
Indicates the responder is a proxy. | |
static const uint8_t | ALL_SENSORS = 0xffu |
The all-sensors value. | |
static const uint16_t | SENSOR_VALUE_UNSUPPORTED = 0u |
Indicates that recorded / highest / lowest values aren't supported. | |
static const unsigned int | MAX_STATUS_MESSAGES_PER_FRAME = 21u |
static const unsigned int | MAX_SLOT_INFO_PER_FRAME = 46u |
static const unsigned int | MAX_DEFAULT_SLOT_VALUE_PER_FRAME = 77u |
The maximum number of default slot value entries in a RDM frame. | |
static const uint16_t | MAX_PIN_CODE = 9999u |
The maximum pin code from E1.37-1. | |
static const uint32_t | NO_DEFAULT_ROUTE = 0u |
Indicates no route is assigned. | |
static const uint32_t | IPV4_UNCONFIGURED = 0u |
Indicates no IP address is configured. | |
static const uint8_t | MAX_NETMASK = 32u |
The maximum netmask value. | |
uint8_t * | g_rdm_buffer |
The memory location used to build the RDM response. More... | |
const char | MANUFACTURER_LABEL [] |
The common MANUFACTURER_LABEL. | |
RDMResponder * | g_responder |
The global RDMResponder object. | |
static const int | RDM_RESPONDER_NO_RESPONSE = 0 |
Indicates there is no response required for the request. | |
typedef int(* PIDCommandHandler)(const RDMHeader *incoming_header, const uint8_t *param_data) |
A PID handler.
incoming_header | The header for the request. |
param_data | The parameter data, or NULL if there isn't any. |
anonymous enum |
anonymous enum |
enum __attribute__ |
RDM Product Category codes from E1.20.
enum ModelIoctl |
Model ioctl enums.
Ioctls are the generic 'catch-all' operations. We use them so we can reduce the number of functions we need to implement when adding a new model.
enum RDMCommandClass |
enum RDMNackReason |
RDM NACK reason codes from E1.20.
enum RDMPid |
RDM Parameter IDs.
enum RDMResponseType |
enum ResponderModel |
The Model IDs.
Enumerator | |
---|---|
NULL_MODEL_ID |
No model set. |
LED_MODEL_ID |
A LED driver model. |
PROXY_MODEL_ID |
A responder that acts as a proxy. |
MOVING_LIGHT_MODEL_ID |
A responder that acts a moving light. |
SENSOR_MODEL_ID |
A responder that contains only sensors. |
NETWORK_MODEL_ID |
A responder that presents network interfaces. |
DIMMER_MODEL_ID |
A responder that acts as a dimmer with sub-devices. |
PROXY_CHILD_MODEL_ID |
A responder that sits behind the PROXY_MODEL_ID device. |
int RDMResponder_BuildAckTimer | ( | const RDMHeader * | incoming_header, |
uint16_t | delay | ||
) |
Build an ACK TIMER.
incoming_header | The header of the incoming frame. |
delay | The ack timer delay in 10ths of a second. |
void RDMResponder_BuildHeader | ( | const RDMHeader * | incoming_header, |
RDMResponseType | response_type, | ||
RDMCommandClass | command_class, | ||
uint16_t | pid, | ||
unsigned int | param_data_length | ||
) |
Build the RDM header in the output buffer.
incoming_header | The header of the incoming frame. |
response_type | The response type to use. |
command_class | The command class to use. |
pid | the PID to use. |
param_data_length | The length of the parameter data. |
int RDMResponder_BuildNack | ( | const RDMHeader * | incoming_header, |
RDMNackReason | reason | ||
) |
Build an RDM NACK.
incoming_header | The header of the incoming frame. |
reason | The NACK reason code. |
int RDMResponder_BuildParamDescription | ( | const RDMHeader * | incoming_header, |
uint16_t | param_id, | ||
const ParameterDescription * | description | ||
) |
Build a PARAMETER_DESCRIPTION response.
incoming_header | The header of the incoming frame. |
param_id | The PID this description is for. |
description | the parameter description. |
int RDMResponder_BuildSetAck | ( | const RDMHeader * | incoming_header | ) |
Build an RDM Set ACK with no param data.
incoming_header | The header of the incoming frame. |
int RDMResponder_DispatchPID | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Invoke a PID handler from the ResponderDefinition.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
This checks the ResponderDefinition for a matching PID handler of the correct command class. If one isn't found, it'll NACK with NR_UNSUPPORTED_COMMAND_CLASS or NR_UNKNOWN_PID.
int RDMResponder_GenericGetBool | ( | const RDMHeader * | incoming_header, |
bool | value | ||
) |
Handle a request to get a bool value.
incoming_header | The header of the incoming frame. |
value | The bool value |
int RDMResponder_GenericGetUInt16 | ( | const RDMHeader * | incoming_header, |
uint16_t | value | ||
) |
Handle a request to get a uint16_t value.
incoming_header | The header of the incoming frame. |
value | The uint16_t value to return. |
int RDMResponder_GenericGetUInt32 | ( | const RDMHeader * | incoming_header, |
uint32_t | value | ||
) |
Handle a request to get a uint32_t value.
incoming_header | The header of the incoming frame. |
value | The unsigned int value |
int RDMResponder_GenericGetUInt8 | ( | const RDMHeader * | incoming_header, |
uint8_t | value | ||
) |
Handle a request to get a uint8_t value.
incoming_header | The header of the incoming frame. |
value | The uint8_t value to return. |
int RDMResponder_GenericReturnString | ( | const RDMHeader * | incoming_header, |
const char * | reply_string, | ||
unsigned int | max_size | ||
) |
Build a response containing a string.
incoming_header | The header of the incoming frame. |
reply_string | The string to reply with |
max_size | The maximum size of the string. We may return a shorter string if it contains a NULL. |
int RDMResponder_GenericSetBool | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data, | ||
bool * | value | ||
) |
Handle a request to set a bool value.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
value | The bool value to set |
int RDMResponder_GenericSetUInt16 | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data, | ||
uint16_t * | value | ||
) |
Handle a request to set a uint16_t value.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
value | The uint16_t value to set. |
int RDMResponder_GenericSetUInt32 | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data, | ||
uint32_t * | value | ||
) |
Handle a request to set a uint32_t value.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
value | The uint32_t value to set |
int RDMResponder_GenericSetUInt8 | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data, | ||
uint8_t * | value | ||
) |
Handle a request to set a uint8_t value.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
value | The uint8_t value to set. |
int RDMResponder_GetBootSoftwareVersion | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET BOOT_SOFTWARE_VERSION request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetBootSoftwareVersionLabel | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET BOOT_SOFTWARE_LABEL request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetCommsStatus | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET COMMS_STATUS request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetDefaultSlotValue | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET DEFAULT_SLOT_VALUE request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetDeviceInfo | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET DEVICE_INFO request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetDeviceLabel | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET DEVICE_LABEL request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetDeviceModelDescription | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET DEVICE_MODEL_DESCRIPTION request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetDMXPersonality | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET DMX_PERSONALITY request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetDMXPersonalityDescription | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET DMX_PERSONALITY_DESCRIPTION request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetDMXStartAddress | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET DMX_START_ADDRESS request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetIdentifyDevice | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET IDENTIFY_DEVICE request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetManufacturerLabel | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET MANUFACTURER_LABEL request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetProductDetailIds | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET PRODUCT_DETAIL_IDS request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetSensorDefinition | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET SENSOR_DEFINITION request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetSensorValue | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET SENSOR_VALUE request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetSlotDescription | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET SLOT_DESCRIPTION request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetSlotInfo | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET SLOT_INFO request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetSoftwareVersionLabel | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a GET SOFTWARE_VERSION_LABEL request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_GetSupportedParameters | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a SUPPORTED_PARAMETERS request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
void RDMResponder_GetUID | ( | uint8_t * | uid | ) |
Get the UID of the responder.
uid | A pointer to copy the UID to; should be at least UID_LENGTH. |
int RDMResponder_HandleDiscovery | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle discovery commands.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_HandleDUBRequest | ( | const uint8_t * | param_data, |
unsigned int | param_data_length | ||
) |
Handle a Discovery-unique-branch request.
param_data | The DUB request param_data. |
param_data_length | The size of the param_data. |
void RDMResponder_Initialize | ( | const RDMResponderSettings * | settings | ) |
Initialize an RDMResponder struct.
settings | the settings to use for the responder. |
int RDMResponder_Ioctl | ( | ModelIoctl | command, |
uint8_t * | data, | ||
unsigned int | length | ||
) |
A base Ioctl handler.
command | The ioctl command to run. |
data | arbitrary data, depends on the ModelIoctl. |
length | the size of the data. |
int RDMResponder_SetCommsStatus | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a SET COMMS_STATUS request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_SetDeviceLabel | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_SetDMXPersonality | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a SET DMX_PERSONALITY request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_SetDMXStartAddress | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a SET DMX_START_ADDRESS request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_SetIdentifyDevice | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a SET IDENTIFY_DEVICE request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_SetMute | ( | const RDMHeader * | incoming_header | ) |
Handle a SET MUTE request.
incoming_header | The header of the incoming frame. |
int RDMResponder_SetRecordSensor | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a SET RECORD_SENSOR request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_SetSensorValue | ( | const RDMHeader * | incoming_header, |
const uint8_t * | param_data | ||
) |
Handle a SET SENSOR_VALUE request.
incoming_header | The header of the incoming frame. |
param_data | The received parameter data. |
int RDMResponder_SetUnMute | ( | const RDMHeader * | incoming_header | ) |
Handle a SET UN_MUTE request.
incoming_header | The header of the incoming frame. |
void RDMResponder_SwitchResponder | ( | RDMResponder * | responder | ) |
Switch the current responder.
responder | The new responder to use. |
void RDMResponder_Tasks | ( | ) |
Perform the periodic tasks.
This should be called in the main event loop.
uint8_t* g_rdm_buffer |
The memory location used to build the RDM response.
Guaranteed to be at least RDM_MAX_FRAME_SIZE bytes.