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

Detailed Description

PLASA E1.20 Remote Device Management.

Classes

class  QueuedResponse
class  DescriptorConsistencyChecker
class  FakeNetworkManager
 An implementation of NetworkManagerInterface which simulates a network configuration. More...
class  StaticGroupTokenCalculator
class  GroupSizeCalculator
class  NetworkManager
 A NetworkManager which reflects the actual host network configuration. More...
class  PidStoreLoader
class  FakeSensor
class  VariableFieldSizeCalculator
class  AckTimerResponder
class  AdvancedDimmerResponder
class  CommandPrinter
class  DimmerResponder
class  DimmerRootDevice
class  DimmerSubDevice
class  DiscoveryTargetInterface
class  DiscoveryAgent
class  DummyResponder
class  MessageDeserializer
class  MessageSerializer
class  MovingLightResponder
class  NetworkManagerInterface
 Gets global network information. More...
class  NetworkResponder
class  RootPidStore
 The root of the RDM parameter descriptor store. More...
class  PidStore
 Holds the PidDescriptors for a single manufacturer. More...
class  PidDescriptor
class  PidStoreHelper
class  QueueingRDMController
class  DiscoverableQueueingRDMController
struct  StatusMessage
struct  ParameterDescriptor
struct  SensorDescriptor
class  QueuedMessageHandler
class  RDMAPI
class  ResponseStatus
 Represents the state of a response and/or any error codes. More...
class  RDMAPIImplInterface
 This is the interface for an RDMAPI implementation. More...
class  RDMCommand
 The base class that all RDM commands inherit from. More...
class  RDMRequest
 RDM Commands that represent requests (GET, SET or DISCOVER). More...
class  RDMGetSetRequest
 The parent class for GET/SET requests. More...
class  BaseRDMRequest
class  RDMResponse
 The set of RDM Commands that represent responses (GET, SET or DISCOVER). More...
class  RDMGetSetResponse
 The base class for GET/SET responses. More...
class  BaseRDMResponse
class  RDMDiscoveryRequest
 An RDM request of type DISCOVER_COMMAND. More...
class  RDMDiscoveryResponse
 An RDM response of type DISCOVER_COMMAND. More...
class  RDMCommandSerializer
class  DiscoverableRDMControllerAdaptor
class  RDMControllerInterface
class  DiscoverableRDMControllerInterface
class  RDMMessagePrinter
class  ProxiedDevicesPrinter
class  StatusMessagePrinter
class  SupportedParamsPrinter
class  DeviceInfoPrinter
class  LabelPrinter
class  ProductIdPrinter
class  LanguageCapabilityPrinter
class  ClockPrinter
class  SlotInfoPrinter
class  SensorDefinitionPrinter
struct  RDMCommandHeader
class  ResponderHelper
class  LoadSensor
class  ResponderOps
 A class which dispatches RDM requests to registered PID handlers. More...
class  Personality
class  PersonalityCollection
class  PersonalityManager
class  Sensor
 Holds information about a single sensor. More...
class  SettingInterface
 The base class all Settings inherit from. More...
class  BasicSetting
 A Setting which has a description and no other properties. More...
class  FrequencyModulationSetting
 A PWM Frequency Setting. See Section 4.10 of E1.37-1. More...
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  SettingManager
class  SlotData
 Holds information about a single DMX slot. More...
class  SlotDataCollection
 Holds information about a set of slots. More...
class  SensorResponder
class  StringMessageBuilder
class  SubDeviceDispatcher
class  UID
 Represents a RDM UID. More...
class  UIDAllocator
 Allocate UIDs from a pool. More...
class  UIDSet
 Represents a set of RDM UIDs. More...

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::BaseCallback3
< void, rdm_response_code,
const RDMResponse *, const
std::vector< std::string > & > 
RDMCallback
typedef ola::BaseCallback1
< void, const ola::rdm::UIDSet & > 
RDMDiscoveryCallback
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_message_type { RDM_REQUEST, RDM_RESPONSE, RDM_INVALID }
 An OLA specific enum that allows us to tell if a command is a request or a response. See RDMCommandClass for more information. More...
enum  rdm_protocol_version { RDM_VERSION_1_0 = 0x100 }
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

bool GuessMessageType (rdm_message_type *type_arg, RDMCommand::RDMCommandClass *command_class_arg, const uint8_t *data, unsigned int length)
 Guess the type of an RDM message.
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 ResponseCodeToString (rdm_response_code 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 const RDMResponseGenericGetIntValue (const RDMRequest *request, T value, uint8_t queued_message_count=0)
template<typename T >
static const 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;})

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

typedef ola::BaseCallback3<void, rdm_response_code, const RDMResponse*, const std::vector<std::string>&> ola::rdm::RDMCallback

This is the type of callback that is run when a request completes or fails. For performance reasons we can take either a single use callback or a permanent callback.

Parameters
rdm_response_codethe status code for the response
RDMResponsea pointer to the response object
vector<string>a list of strings that contain the raw response messages (if the device supports this, some don't).

This is the callback used when discovery completes.

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 http://opendmx.net/index.php/Open_Lighting_PIDs 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

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 ( rdm_response_code  status)

Convert a rdm_response_code to a string

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::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