Open Lighting Architecture  0.10.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Typedefs | Enumerations | Functions | Variables
ola::rdm Namespace Reference

Detailed Description

PLASA E1.20 Remote Device Management.

Classes

class  AckTimerResponder
 
class  AdvancedDimmerResponder
 
class  BaseRDMRequest
 
class  BaseRDMResponse
 
class  BasicSetting
 A Setting which has a description and no other properties. More...
 
class  ClockPrinter
 
class  CommandPrinter
 
class  DescriptorConsistencyChecker
 
class  DeviceInfoPrinter
 
class  DimmerResponder
 
class  DimmerRootDevice
 
class  DimmerSubDevice
 
class  DiscoverableQueueingRDMController
 
class  DiscoverableRDMControllerAdaptor
 
class  DiscoverableRDMControllerInterface
 The interface that can send RDM commands, as well as perform discovery operations. More...
 
class  DiscoveryAgent
 An asyncronous RDM Discovery algorithm. More...
 
class  DiscoveryTargetInterface
 The interface used by the DiscoveryTarget to send RDM commands. More...
 
class  DummyResponder
 
class  FakeNetworkManager
 An implementation of NetworkManagerInterface which simulates a network configuration. More...
 
class  FakeSensor
 
class  FrequencyModulationSetting
 A PWM Frequency Setting. See Section 4.10 of E1.37-1. More...
 
class  GroupSizeCalculator
 
class  LabelPrinter
 
class  LanguageCapabilityPrinter
 
class  LoadSensor
 
class  MessageDeserializer
 
class  MessageSerializer
 
class  MovingLightResponder
 
class  NetworkManager
 A NetworkManager which reflects the actual host network configuration. More...
 
class  NetworkManagerInterface
 Gets global network information. More...
 
class  NetworkResponder
 
struct  ParameterDescriptor
 
class  Personality
 
class  PersonalityCollection
 
class  PersonalityManager
 
class  PidDescriptor
 
class  PidStore
 Holds the PidDescriptors for a single manufacturer. More...
 
class  PidStoreHelper
 
class  PidStoreLoader
 
class  ProductIdPrinter
 
class  ProxiedDevicesPrinter
 
class  QueuedMessageHandler
 
class  QueuedResponse
 
class  QueueingRDMController
 
class  RDMAPI
 
class  RDMAPIImplInterface
 This is the interface for an RDMAPI implementation. More...
 
class  RDMCommand
 The base class that all RDM requests & responses inherit from. More...
 
struct  RDMCommandHeader
 
class  RDMCommandSerializer
 Serializes RDMCommands. More...
 
class  RDMControllerInterface
 The interface that can send RDMRequest. More...
 
class  RDMDiscoveryRequest
 An RDM request of type DISCOVER_COMMAND. More...
 
class  RDMDiscoveryResponse
 An RDM response of type DISCOVER_COMMAND. More...
 
class  RDMFrame
 The raw data for a RDM message and its associated timing information. More...
 
class  RDMGetSetRequest
 An RDM Get / Set Request. More...
 
class  RDMGetSetResponse
 The base class for GET/SET responses. More...
 
class  RDMMessagePrinter
 
struct  RDMReply
 Holds the final state of an RDM request. More...
 
class  RDMRequest
 RDM Commands that represent requests (GET, SET or DISCOVER). More...
 
class  RDMResponse
 An RDM Command that represents responses (GET, SET or DISCOVER). More...
 
class  ResponderHelper
 
class  ResponderOps
 A class which dispatches RDM requests to registered PID handlers. More...
 
class  ResponseStatus
 Represents the state of a response and/or any error codes. More...
 
class  RootPidStore
 The root of the RDM parameter descriptor store. More...
 
class  Sensor
 Holds information about a single sensor. More...
 
class  SensorDefinitionPrinter
 
struct  SensorDescriptor
 
class  SensorResponder
 
class  SettingCollection
 Holds the list of settings for a class of responder. A single instance is shared between all responders of the same type. Subclass this and use a singleton. More...
 
class  SettingInterface
 The base class all Settings inherit from. More...
 
class  SettingManager
 
class  SlotData
 Holds information about a single DMX slot. More...
 
class  SlotDataCollection
 Holds information about a set of slots. More...
 
class  SlotInfoPrinter
 
class  StaticGroupTokenCalculator
 
struct  StatusMessage
 
class  StatusMessagePrinter
 
class  StringMessageBuilder
 
class  SubDeviceDispatcher
 
class  SupportedParamsPrinter
 
class  UID
 Represents a RDM UID. More...
 
class  UIDAllocator
 Allocate UIDs from a pool. More...
 
class  UIDSet
 Represents a set of RDM UIDs. More...
 
class  VariableFieldSizeCalculator
 

Typedefs

typedef struct device_info_s DeviceDescriptor
 
typedef struct slot_info_s SlotDescriptor
 
typedef struct slot_default_s SlotDefault
 
typedef struct sensor_values_s SensorValueDescriptor
 
typedef struct clock_value_s ClockValue
 
typedef BaseRDMRequest
< RDMCommand::GET_COMMAND
RDMGetRequest
 
typedef BaseRDMRequest
< RDMCommand::SET_COMMAND
RDMSetRequest
 
typedef BaseRDMResponse
< RDMCommand::GET_COMMAND_RESPONSE
RDMGetResponse
 
typedef BaseRDMResponse
< RDMCommand::SET_COMMAND_RESPONSE
RDMSetResponse
 
typedef ola::BaseCallback1
< void, RDMReply * > 
RDMCallback
 The callback run when a RDM request completes. More...
 
typedef ola::BaseCallback1
< void, const ola::rdm::UIDSet & > 
RDMDiscoveryCallback
 The callback run when a discovery operation completes. More...
 
typedef std::vector< RDMFrameRDMFrames
 A vector of RDMFrames.
 
typedef std::vector
< ola::rdm::Sensor * > 
Sensors
 
typedef SettingCollection
< BasicSetting
BasicSettingCollection
 
typedef SettingManager
< BasicSetting
BasicSettingManager
 

Enumerations

enum  rdm_ola_manufacturer_pid { OLA_MANUFACTURER_PID_SERIAL_NUMBER = 0x8000, OLA_MANUFACTURER_PID_CODE_VERSION = 0x8001 }
 
enum  ola_rdm_model_id {
  OLA_DUMMY_DEVICE_MODEL = 1, OLA_SPI_DEVICE_MODEL = 3, OLA_DUMMY_DIMMER_MODEL = 4, OLA_DUMMY_MOVING_LIGHT_MODEL = 5,
  OLA_ACK_TIMER_MODEL = 6, OLA_SENSOR_ONLY_MODEL = 7, OLA_E137_DIMMER_MODEL = 8, OLA_E137_2_MODEL = 9
}
 
enum  rdm_protocol_version { RDM_VERSION_1_0 = 0x100 }
 
enum  RDMCommandClass {
  DISCOVER_COMMAND = 0x10, DISCOVER_COMMAND_RESPONSE = 0x11, GET_COMMAND = 0x20, GET_COMMAND_RESPONSE = 0x21,
  SET_COMMAND = 0x30, SET_COMMAND_RESPONSE = 0x31, INVALID_COMMAND = 0xff
}
 A set of values representing CommandClasses in E1.20. More...
 
enum  rdm_pid {
  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_ENDPOINT_LIST = 0x7FE0, PID_ENDPOINT_TO_UNIVERSE = 0x7FE1, PID_RDM_TRAFFIC_ENABLE = 0x7FE2,
  PID_ENDPOINT_MODE = 0x7FE3, PID_ENDPOINT_LABEL = 0x7FE4, PID_DISCOVERY_STATE = 0x7FE5, PID_ENDPOINT_TIMING = 0x7FE6,
  PID_ENDPOINT_TIMING_DESCRIPTION = 0x7FE7, PID_BINDING_CONTROL_FIELDS = 0x7FE8, PID_ENDPOINT_IDENTIFY = 0x7FE9, PID_BACKGROUND_DISCOVERY = 0x7FEA,
  PID_ENDPOINT_DEVICE_LIST_CHANGE = 0x7FEB, PID_ENDPOINT_DEVICES = 0x7FEC, PID_TCP_COMMS_STATUS = 0x7FED, PID_ENDPOINT_LIST_CHANGE = 0x7FEE,
  PID_BACKGROUND_QUEUED_STATUS_POLICY = 0x7FD0, PID_BACKGROUND_QUEUED_STATUS_POLICY_DESCRIPTION = 0x7FD1, PID_BACKGROUND_STATUS_TYPE = 0x7FD2, PID_QUEUED_STATUS_ENDPOINT_COLLECTION = 0x7FD3,
  PID_QUEUED_STATUS_UID_COLLECTION = 0x7FD4, 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
}
 
enum  rdm_status_type {
  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  rdm_sensor_type {
  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
}
 
enum  rdm_pid_unit {
  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
}
 
enum  rdm_pid_prefix {
  PREFIX_NONE = 0x00, PREFIX_DECI = 0x01, PREFIX_CENTI = 0x02, PREFIX_MILLI = 0x03,
  PREFIX_MICRO = 0x04, PREFIX_NANO = 0x05, PREFIX_PICO = 0x06, PREFIX_FEMPTO = 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_TERRA = 0x16, PREFIX_PETA = 0x17, PREFIX_EXA = 0x18, PREFIX_ZETTA = 0x19,
  PREFIX_YOTTA = 0x1A
}
 
enum  rdm_command_class { CC_GET = 0x01, CC_SET = 0x02, CC_GET_SET = 0x03 }
 
enum  rdm_data_type {
  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  rdm_nack_reason {
  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
}
 
enum  rdm_product_category {
  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
}
 
enum  rdm_product_detail {
  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_CONVERTOR = 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
}
 
enum  rdm_slot_type {
  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  rdm_slot_definition {
  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
}
 The RDM slot definitions, from table C-2 of the standard.
 
enum  rdm_status_message_id {
  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  rdm_lamp_state {
  LAMP_OFF = 0x00, LAMP_ON = 0x01, LAMP_STRIKE = 0x02, LAMP_STANDBY = 0x03,
  LAMP_NOT_PRESENT = 0x04, LAMP_ERROR = 0x7F
}
 
enum  rdm_lamp_mode { LAMP_ON_MODE_OFF = 0x00, LAMP_ON_MODE_DMX = 0x01, LAMP_ON_MODE_ON = 0x02, LAMP_ON_MODE_ON_AFTER_CAL = 0x03 }
 
enum  rdm_power_state { POWER_STATE_FULL_OFF = 0x00, POWER_STATE_SHUTDOWN = 0x01, POWER_STATE_STANDBY = 0x02, POWER_STATE_NORMAL = 0xFF }
 
enum  rdm_display_invert { DISPLAY_INVERT_OFF = 0x00, DISPLAY_INVERT_ON = 0x01, DISPLAY_INVERT_AUTO = 0x02, DISPLAY_INVERT_MAX }
 
enum  rdm_identify_mode { IDENTIFY_MODE_QUIET = 0x00, IDENTIFY_MODE_LOUD = 0xFF }
 
enum  rdm_reset_device_mode { RESET_WARM = 0x01, RESET_COLD = 0xFF }
 
enum  rdm_preset_programmed_mode { PRESET_NOT_PROGRAMMED = 0x00, PRESET_PROGRAMMED = 0x01, PRESET_PROGRAMMED_READ_ONLY = 0x02 }
 
enum  rdm_preset_mergemode {
  MERGEMODE_DEFAULT = 0x00, MERGEMODE_HTP = 0x01, MERGEMODE_LTP = 0x02, MERGEMODE_DMX_ONLY = 0x03,
  MERGEMODE_OTHER = 0xFF
}
 
enum  rdm_dhcp_status { DHCP_STATUS_INACTIVE = 0x00, DHCP_STATUS_ACTIVE = 0x01, DHCP_STATUS_UNKNOWN = 0x02, DHCP_STATUS_MAX }
 

Functions

RDMResponseNackWithReason (const RDMRequest *request, rdm_nack_reason reason, uint8_t outstanding_messages=0)
 Generate a NACK response with a reason code.
 
RDMResponseGetResponseFromData (const RDMRequest *request, const uint8_t *data=NULL, unsigned int length=0, rdm_response_type type=RDM_ACK, uint8_t outstanding_messages=0)
 Generate an ACK Response with some data.
 
RDMResponseGetResponseWithPid (const RDMRequest *request, uint16_t pid, const uint8_t *data, unsigned int length, uint8_t type=RDM_ACK, uint8_t outstanding_messages=0)
 Construct an RDM response from a RDMRequest object.
 
RDMDiscoveryRequestNewDiscoveryUniqueBranchRequest (const UID &source, const UID &lower, const UID &upper, uint8_t transaction_number, uint8_t port_id=1)
 Create a new DUB request object.
 
RDMDiscoveryRequestNewMuteRequest (const UID &source, const UID &destination, uint8_t transaction_number, uint8_t port_id=1)
 Create a new Mute Request Object.
 
RDMDiscoveryRequestNewUnMuteRequest (const UID &source, const UID &destination, uint8_t transaction_number, uint8_t port_id)
 
string StatusCodeToString (RDMStatusCode status)
 
string DataTypeToString (uint8_t type)
 
string LampModeToString (uint8_t lamp_mode)
 
string LampStateToString (uint8_t lamp_state)
 
string NackReasonToString (uint16_t reason)
 
string PowerStateToString (uint8_t power_state)
 
bool UIntToPowerState (uint8_t state, rdm_power_state *power_state)
 
string PrefixToString (uint8_t prefix)
 
string ProductCategoryToString (uint16_t category)
 
string ProductDetailToString (uint16_t detail)
 
string ResetDeviceToString (uint8_t reset_device)
 
bool UIntToResetDevice (uint8_t state, rdm_reset_device_mode *reset_device)
 
string SensorTypeToString (uint8_t type)
 
string SensorSupportsRecordingToString (uint8_t supports_recording)
 
string SlotInfoToString (uint8_t slot_type, uint16_t slot_label)
 
string StatusMessageIdToString (uint16_t message_id, int16_t data1, int16_t data2)
 
string StatusTypeToString (uint8_t status_type)
 
string UnitToString (uint8_t unit)
 
template<typename T >
static bool GenericExtractValue (const RDMRequest *request, T *output)
 
template<typename T >
static RDMResponseGenericGetIntValue (const RDMRequest *request, T value, uint8_t queued_message_count=0)
 
template<typename T >
static RDMResponseGenericSetIntValue (const RDMRequest *request, T *value, uint8_t queued_message_count=0)
 
 PACK (struct device_info_s{uint8_t protocol_version_high;uint8_t protocol_version_low;uint16_t device_model;uint16_t product_category;uint32_t software_version;uint16_t dmx_footprint;uint8_t current_personality;uint8_t personality_count;uint16_t dmx_start_address;uint16_t sub_device_count;uint8_t sensor_count;})
 
 PACK (struct slot_info_s{uint16_t slot_offset;uint8_t slot_type;uint16_t slot_label;})
 
 PACK (struct slot_default_s{uint16_t slot_offset;uint8_t default_value;})
 
 PACK (struct sensor_values_s{uint8_t sensor_number;int16_t present_value;int16_t lowest;int16_t highest;int16_t recorded;})
 
 PACK (struct clock_value_s{uint16_t year;uint8_t month;uint8_t day;uint8_t hour;uint8_t minute;uint8_t second;})
 
void RunRDMCallback (RDMCallback *callback, RDMStatusCode status_code)
 A helper message to run a RDMCallback with the given status code. More...
 
std::string ResponseCodeToString (RDMStatusCode status)
 

Variables

const char OLA_MANUFACTURER_LABEL [] = "Open Lighting Project"
 
static const uint16_t ROOT_RDM_DEVICE = 0
 
static const uint16_t ALL_RDM_SUBDEVICES = 0xffff
 
static const uint16_t MAX_SUBDEVICE_NUMBER = 0x0200
 
static const uint8_t MAX_RDM_STRING_LENGTH = 32
 
static const uint16_t ZERO_FOOTPRINT_DMX_ADDRESS = 0xffff
 
static const uint8_t MAX_QUEUED_MESSAGE_COUNT = 255
 
static const uint8_t ACK_OVERFLOW = 3
 
static const uint16_t PRESET_PLAYBACK_OFF = 0x0000
 
static const uint16_t PRESET_PLAYBACK_ALL = 0xFFFF
 
static const uint8_t ALL_SENSORS = 0xff
 
static const uint8_t SENSOR_RECORDED_VALUE = 0x01
 
static const uint8_t SENSOR_RECORDED_RANGE_VALUES = 0x02
 
static const uint8_t SENSOR_RECORDED_UNSUPPORTED = 0x0000
 
static const uint8_t SENSOR_RECORDED_RANGE_UNSUPPORTED = 0x0000
 
static const int16_t SENSOR_DEFINITION_RANGE_MIN_UNDEFINED = -0x8000
 
static const int16_t SENSOR_DEFINITION_RANGE_MAX_UNDEFINED = 0x7FFF
 
static const int16_t SENSOR_DEFINITION_NORMAL_MIN_UNDEFINED = -0x8000
 
static const int16_t SENSOR_DEFINITION_NORMAL_MAX_UNDEFINED = 0x7FFF
 
static const uint16_t MAX_LOCK_PIN = 9999
 
static const uint16_t IPV4_UNCONFIGURED = 0x00000000
 
static const uint16_t NO_DEFAULT_ROUTE = 0x00000000
 
static const uint8_t MAX_RDM_HOSTNAME_LENGTH = 63
 
static const uint8_t MAX_RDM_DOMAIN_NAME_LENGTH = 231
 
static const uint8_t DNS_NAME_SERVER_MAX_INDEX = 2
 
static const uint8_t START_CODE = 0xcc
 
static const uint8_t SUB_START_CODE = 0x01
 
static const unsigned int CHECKSUM_LENGTH = 2
 

Typedef Documentation

The callback run when a RDM request completes.

Template Parameters
replyThe RDMReply object. The reply object is valid for the duration of the call.

The RDMReply is not const, since some stages of the pipeline may need to rewrite the UID / Transaction Number.

For performance reasons this can be either a single use callback or a permanent callback.

The callback run when a discovery operation completes.

Template Parameters
UIDSetThe UIDs that were discovered.

Enumeration Type Documentation

Please discuss on open-.nosp@m.ligh.nosp@m.ting@.nosp@m.goog.nosp@m.legro.nosp@m.ups..nosp@m.com before claiming additional manufacturer PIDs and update https://wiki.openlighting.org/index.php/Open_Lighting_PIDs N.B. This list may only include PIDs relevant to OLA, not other Open Lighting Project products. See ANSI E1.20 section 6.2.10.2 Parameter ID (PID) for info on assigning manufacturer PIDs, although we're not currently sticking entirely to the specification, like a number of other companies

A set of values representing CommandClasses in E1.20.

Note
See section 6.2.10 of ANSI E1.20 for more information.
Enumerator
DISCOVER_COMMAND 

Discovery Command

DISCOVER_COMMAND_RESPONSE 

Discovery Response

GET_COMMAND 

Get Command

GET_COMMAND_RESPONSE 

Get Response

SET_COMMAND 

Set Command

SET_COMMAND_RESPONSE 

Set Response

INVALID_COMMAND 

Invalid Command, specific to OLA

Function Documentation

std::string ola::rdm::DataTypeToString ( uint8_t  type)

Convert a uint8_t representing a data type to a human-readable string.

Parameters
typethe data type value
std::string ola::rdm::LampModeToString ( uint8_t  lamp_mode)

Convert a uint8_t representing a lamp mode to a human-readable string.

Parameters
lamp_modethe lamp mode value
std::string ola::rdm::LampStateToString ( uint8_t  lamp_state)

Convert a uint8_t representing a lamp state to a human-readable string.

Parameters
lamp_statethe lamp state value
std::string ola::rdm::NackReasonToString ( uint16_t  reason)

Convert a uint16_t representing a nack reason to a human-readable string.

Parameters
reasonthe nack reason value
std::string ola::rdm::PowerStateToString ( uint8_t  power_state)

Convert a uint8_t representing a power state to a human-readable string.

Parameters
power_statethe power state value
std::string ola::rdm::PrefixToString ( uint8_t  prefix)

Convert a uint8 representing a prefix to a human-readable string.

Parameters
prefixthe prefix value
std::string ola::rdm::ProductCategoryToString ( uint16_t  category)

Convert a uint16_t representing a product category to a human-readable string.

Parameters
categorythe product category value
std::string ola::rdm::ProductDetailToString ( uint16_t  detail)

Convert a uint16_t representing a product detail to a human-readable string.

Parameters
detailthe product detail value.
std::string ola::rdm::ResetDeviceToString ( uint8_t  reset_device)

Convert a uint8_t representing a reset device to a human-readable string.

Parameters
reset_devicethe reset device value
std::string ola::rdm::ResponseCodeToString ( RDMStatusCode  status)
inline
Deprecated:
Use StatusCodeToString instead.
void ola::rdm::RunRDMCallback ( RDMCallback *  callback,
RDMStatusCode  status_code 
)
inline

A helper message to run a RDMCallback with the given status code.

Parameters
callbackThe RDMCallback to run.
status_codeThe status code to use in the RDMReply.
std::string ola::rdm::SensorSupportsRecordingToString ( uint8_t  supports_recording)

Convert a uint8_t representing a sensor's recording support to a human-readable string.

Parameters
supports_recordingthe sensor recording support bitmask
std::string ola::rdm::SensorTypeToString ( uint8_t  type)

Convert a uint8_t representing a sensor type to a human-readable string.

Parameters
typethe sensor type value
std::string ola::rdm::SlotInfoToString ( uint8_t  slot_type,
uint16_t  slot_label 
)

Convert a uint16_t representing a slot type to a human-readable string.

Parameters
slot_typethe type of the slot.
slot_labelthe label for the slot.
std::string ola::rdm::StatusCodeToString ( RDMStatusCode  status)

Convert a RDMStatusCode to a string

std::string ola::rdm::StatusMessageIdToString ( uint16_t  message_id,
int16_t  data1,
int16_t  data2 
)

Convert a uint16_t representing a status message to a human-readable string.

Parameters
message_idthe status message value
data1the first data value for the message
data2the second data value for the message
std::string ola::rdm::StatusTypeToString ( uint8_t  status_type)

Convert a uint8_t representing a status type to a human-readable string.

Parameters
status_typethe status type value
bool ola::rdm::UIntToPowerState ( uint8_t  state,
rdm_power_state *  power_state 
)

Safely convert a uint8_t to a rdm_power_state

bool ola::rdm::UIntToResetDevice ( uint8_t  state,
rdm_reset_device_mode *  reset_device 
)

Safely convert a uint8_t to a rdm_reset_device_mode

std::string ola::rdm::UnitToString ( uint8_t  unit)

Convert a uint8_t representing a unit to a human-readable string.

Parameters
unitthe unit value