Open Lighting Architecture  Latest Git
Public Member Functions | List of all members
ola::OutputPort Class Referenceabstract

Detailed Description

A port that sends DMX512 data.

Inheritance diagram for ola::OutputPort:
Inheritance graph
[legend]
Collaboration diagram for ola::OutputPort:
Collaboration graph
[legend]

Public Member Functions

virtual bool WriteDMX (const DmxBuffer &buffer, uint8_t priority)=0
 Write DMX data to this port. More...
 
virtual void UniverseNameChanged (const std::string &new_name)=0
 Called if the universe name changes.
 
virtual void SendRDMRequest (ola::rdm::RDMRequest *request, ola::rdm::RDMCallback *callback)=0
 Send a RDM command. More...
 
virtual void RunFullDiscovery (ola::rdm::RDMDiscoveryCallback *on_complete)=0
 Start a full discovery operation. More...
 
virtual void RunIncrementalDiscovery (ola::rdm::RDMDiscoveryCallback *on_complete)=0
 Start an incremental discovery operation. More...
 
virtual bool SupportsTimeCode () const =0
 
virtual bool SendTimeCode (const ola::timecode::TimeCode &timecode)=0
 
- Public Member Functions inherited from ola::Port
virtual unsigned int PortId () const =0
 Get the Port ID. This is the index within the device. More...
 
virtual AbstractDeviceGetDevice () const =0
 Get the device which owns this Port. More...
 
virtual std::string Description () const =0
 Fetch the string description for a Port. More...
 
virtual bool SetUniverse (Universe *universe)=0
 Bind this port to a universe. More...
 
virtual UniverseGetUniverse () const =0
 Fetch the universe this Port is bound to. More...
 
virtual std::string UniqueId () const =0
 Return the globally unique id for a Port. More...
 
virtual port_priority_capability PriorityCapability () const =0
 Get the priority capabilities for this port. More...
 
virtual bool SetPriority (uint8_t priority)=0
 Set the Priority for this Port. More...
 
virtual uint8_t GetPriority () const =0
 Get the numeric priority for this Port. More...
 
virtual void SetPriorityMode (port_priority_mode mode)=0
 Set the Priority Mode for this Port. More...
 
virtual port_priority_mode GetPriorityMode () const =0
 Get the Priority Mode for this Port. More...
 
virtual bool SupportsRDM () const =0
 Check if this Port supports RDM or not. More...
 

Member Function Documentation

◆ RunFullDiscovery()

virtual void ola::OutputPort::RunFullDiscovery ( ola::rdm::RDMDiscoveryCallback callback)
pure virtual

◆ RunIncrementalDiscovery()

virtual void ola::OutputPort::RunIncrementalDiscovery ( ola::rdm::RDMDiscoveryCallback callback)
pure virtual

◆ SendRDMRequest()

virtual void ola::OutputPort::SendRDMRequest ( ola::rdm::RDMRequest request,
ola::rdm::RDMCallback on_complete 
)
pure virtual

Send a RDM command.

Parameters
requestthe RDMRequest, ownership is transferred.
on_completeThe callback to run when the request completes.

Implementors much ensure that the callback is always run at some point. In other words, there must be no way that a request can be dropped in such a way that the callback is never run. Doing so will either block all subsequent requests, or leak memory depending on the implementation.

Also the implementor of this class may want to re-write the transaction #, and possibly the UID (changing src UIDs isn't addressed by the RDM spec).

The RDMRequest may be a DISCOVERY_COMMAND, if the implementation does not support DISCOVERY_COMMANDs then the callback should be run with ola::rdm::RDM_PLUGIN_DISCOVERY_NOT_SUPPORTED.

Implements ola::rdm::RDMControllerInterface.

Implemented in ola::BasicOutputPort, ola::plugin::usbpro::UsbProOutputPort, ola::plugin::usbpro::RobeOutputPort, ola::plugin::artnet::ArtNetOutputPort, ola::plugin::dummy::DummyPort, ola::plugin::usbpro::ArduinoRGBOutputPort, ola::plugin::usbpro::DmxTriOutputPort, ola::plugin::usbdmx::JaRuleOutputPort, ola::plugin::usbpro::DmxterOutputPort, and ola::plugin::spi::SPIOutputPort.

◆ WriteDMX()

virtual bool ola::OutputPort::WriteDMX ( const DmxBuffer buffer,
uint8_t  priority 
)
pure virtual

The documentation for this class was generated from the following file: