Open Lighting Architecture  Latest Git
Classes | Typedefs | Enumerations | Functions
ola::usb Namespace Reference

Detailed Description

USB device drivers.

Classes

class  AsynchronousLibUsbAdaptor
 A LibUsbAdaptor for use with Asynchronous widgets. More...
 
class  BaseLibUsbAdaptor
 The base LibUsbAdaptor that passes most calls through to libusb. More...
 
class  HotplugAgent
 Detects when USB devices are added or removed. More...
 
class  JaRulePortHandle
 Represents a DMX/RDM port on a Ja Rule device. More...
 
class  JaRulePortHandleImpl
 The internal implementation of a Ja Rule Port Handle. More...
 
class  JaRuleWidget
 A Ja Rule hardware device (widget). More...
 
class  JaRuleWidgetPort
 The internal model of a port on a JaRule device. More...
 
class  LibUsbAdaptor
 Wraps calls to libusb so we can test the code. More...
 
class  LibUsbSimpleThread
 The non-hotplug version of LibUsbThread. More...
 
class  LibUsbThread
 The base class for the dedicated libusb thread. More...
 
class  SynchronousLibUsbAdaptor
 A LibUsbAdaptor for use with Synchronous widgets. More...
 
class  USBDeviceID
 

Typedefs

typedef ola::BaseCallback4< void, USBCommandResult, JaRuleReturnCode, uint8_t, const ola::io::ByteString & > CommandCompleteCallback
 A command completion callback. More...
 

Enumerations

enum  JaRuleStatusFlags { FLAGS_CHANGED_FLAG = 0x02, MSG_TRUNCATED_FLAG = 0x04 }
 Ja Rule status flags. More...
 
enum  JaRulePortMode { CONTROLLER_MODE, RESPONDER_MODE, SELF_TEST_MODE }
 Ja Rule Port modes. More...
 
enum  USBCommandResult {
  COMMAND_RESULT_OK, COMMAND_RESULT_MALFORMED, COMMAND_RESULT_SEND_ERROR, COMMAND_RESULT_QUEUE_FULL,
  COMMAND_RESULT_TIMEOUT, COMMAND_RESULT_CLASS_MISMATCH, COMMAND_RESULT_CANCELLED, COMMAND_RESULT_INVALID_PORT
}
 Indicates the eventual state of a Ja Rule command. More...
 
enum  CommandClass {
  JARULE_CMD_RESET_DEVICE = 0x00, JARULE_CMD_SET_MODE = 0x01, JARULE_CMD_GET_HARDWARE_INFO = 0x02, JARULE_CMD_RUN_SELF_TEST = 0x03,
  JARULE_CMD_SET_BREAK_TIME = 0x10, JARULE_CMD_GET_BREAK_TIME = 0x11, JARULE_CMD_SET_MARK_TIME = 0x12, JARULE_CMD_GET_MARK_TIME = 0x13,
  JARULE_CMD_SET_RDM_BROADCAST_TIMEOUT = 0x20, JARULE_CMD_GET_RDM_BROADCAST_TIMEOUT = 0x21, JARULE_CMD_SET_RDM_RESPONSE_TIMEOUT = 0x22, JARULE_CMD_GET_RDM_RESPONSE_TIMEOUT = 0x23,
  JARULE_CMD_SET_RDM_DUB_RESPONSE_LIMIT = 0x24, JARULE_CMD_GET_RDM_DUB_RESPONSE_LIMIT = 0x25, JARULE_CMD_SET_RDM_RESPONDER_DELAY = 0x26, JARULE_CMD_GET_RDM_RESPONDER_DELAY = 0x27,
  JARULE_CMD_SET_RDM_RESPONDER_JITTER = 0x28, JARULE_CMD_GET_RDM_RESPONDER_JITTER = 0x29, JARULE_CMD_TX_DMX = 0x30, JARULE_CMD_RDM_DUB_REQUEST = 0x40,
  JARULE_CMD_RDM_REQUEST = 0x41, JARULE_CMD_RDM_BROADCAST_REQUEST = 0x42, JARULE_CMD_ECHO = 0xf0, JARULE_CMD_GET_FLAGS = 0xf2
}
 The Ja Rule command set.
 
enum  JaRuleReturnCode {
  RC_OK, RC_UNKNOWN, RC_BUFFER_FULL, RC_BAD_PARAM,
  RC_TX_ERROR, RC_RDM_TIMEOUT, RC_RDM_BCAST_RESPONSE, RC_RDM_INVALID_RESPONSE,
  RC_INVALID_MODE, RC_LAST
}
 JaRule command return codes. More...
 

Functions

ostream & operator<< (ostream &os, const USBCommandResult &result)
 
ostream & operator<< (ostream &os, const CommandClass &command_class)
 
ostream & operator<< (ostream &os, const JaRuleReturnCode &rc)
 
ostream & operator<< (ostream &os, const USBDeviceID &id)
 

Typedef Documentation

◆ CommandCompleteCallback

A command completion callback.

Template Parameters
Theresult of the command operation
Thereturn code from the Ja Rule device.
Thestatus flags.
Theresponse payload.

If the USBCommandResult is not COMMAND_COMPLETED_OK, the remaining values are undefined.

Enumeration Type Documentation

◆ JaRulePortMode

Ja Rule Port modes.

Enumerator
CONTROLLER_MODE 

DMX/RDM Controller mode.

RESPONDER_MODE 

DMX/RDM Responder mode.

SELF_TEST_MODE 

Self test mode.

◆ JaRuleReturnCode

JaRule command return codes.

Enumerator
RC_OK 

The command completed successfully.

RC_UNKNOWN 

Unknown command.

RC_BUFFER_FULL 

The command could not be completed due to a full memory buffer.

RC_BAD_PARAM 

The command was malformed.

RC_TX_ERROR 

There was an error during transceiver transmit.

RC_RDM_TIMEOUT 

No RDM response was received.

RC_RDM_BCAST_RESPONSE 

Data was received in response to a broadcast RDM command.

This usually indicates a broken responder.

RC_RDM_INVALID_RESPONSE 

An invalid RDM response was received.

RC_INVALID_MODE 

The command is invalid in the current mode.

RC_LAST 

One past the last valid return code.

◆ JaRuleStatusFlags

Ja Rule status flags.

Enumerator
FLAGS_CHANGED_FLAG 

Flags have changed.

MSG_TRUNCATED_FLAG 

The message has been truncated.

◆ USBCommandResult

Indicates the eventual state of a Ja Rule command.

Various failures can occur at the libusb layer.

Enumerator
COMMAND_RESULT_OK 

The command was sent and a response was received.

COMMAND_RESULT_MALFORMED 

The command is malformed.

This could mean the payload is too big or a NULL pointer with a non-0 size was provided.

COMMAND_RESULT_SEND_ERROR 

An error occurred when trying to send the command.

COMMAND_RESULT_QUEUE_FULL 

The command was not sent as the TX queue was full.

COMMAND_RESULT_TIMEOUT 

The command was sent but no response was received.

COMMAND_RESULT_CLASS_MISMATCH 

The command class returned did not match the request.

COMMAND_RESULT_CANCELLED 

The command was cancelled.

COMMAND_RESULT_INVALID_PORT 

Invalid port.