Open Lighting Architecture 0.10.9
Loading...
Searching...
No Matches
ola::OutputPort Class Referenceabstract

Detailed Description

A port that sends DMX512 data.

Inheritance diagram for ola::OutputPort:
ola::Port ola::rdm::DiscoverableRDMControllerInterface ola::BasicOutputPort ola::plugin::artnet::ArtNetOutputPort ola::plugin::dmx4linux::Dmx4LinuxOutputPort ola::plugin::dummy::DummyPort ola::plugin::e131::E131OutputPort ola::plugin::espnet::EspNetOutputPort ola::plugin::ftdidmx::FtdiDmxOutputPort ola::plugin::gpio::GPIOOutputPort ola::plugin::karate::KarateOutputPort ola::plugin::kinet::KiNetOutputPort ola::plugin::milinst::MilInstOutputPort ola::plugin::opendmx::OpenDmxOutputPort ola::plugin::openpixelcontrol::OPCOutputPort ola::plugin::osc::OSCOutputPort ola::plugin::pathport::PathportOutputPort ola::plugin::renard::RenardOutputPort ola::plugin::sandnet::SandNetOutputPort ola::plugin::shownet::ShowNetOutputPort ola::plugin::spi::SPIOutputPort ola::plugin::stageprofi::StageProfiOutputPort ola::plugin::uartdmx::UartDmxOutputPort ola::plugin::usbdmx::GenericOutputPort ola::plugin::usbdmx::JaRuleOutputPort ola::plugin::usbpro::ArduinoRGBOutputPort ola::plugin::usbpro::DmxTriOutputPort ola::plugin::usbpro::DmxterOutputPort ola::plugin::usbpro::RobeOutputPort ola::plugin::usbpro::UltraDMXProOutputPort ola::plugin::usbpro::UsbProOutputPort

Public Member Functions

virtual bool WriteDMX (const DmxBuffer &buffer, uint8_t priority)=0
 Write DMX data to this port.
 
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.
 
virtual void RunFullDiscovery (ola::rdm::RDMDiscoveryCallback *on_complete)=0
 Start a full discovery operation.
 
virtual void RunIncrementalDiscovery (ola::rdm::RDMDiscoveryCallback *on_complete)=0
 Start an incremental discovery operation.
 
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.
 
virtual AbstractDeviceGetDevice () const =0
 Get the device which owns this Port.
 
virtual std::string Description () const =0
 Fetch the string description for a Port.
 
virtual bool SetUniverse (Universe *universe)=0
 Bind this port to a universe.
 
virtual UniverseGetUniverse () const =0
 Fetch the universe this Port is bound to.
 
virtual std::string UniqueId () const =0
 Return the globally unique id for a Port.
 
virtual port_priority_capability PriorityCapability () const =0
 Get the priority capabilities for this port.
 
virtual bool SetPriority (uint8_t priority)=0
 Set the Priority for this Port.
 
virtual uint8_t GetPriority () const =0
 Get the numeric priority for this Port.
 
virtual void SetPriorityMode (port_priority_mode mode)=0
 Set the Priority Mode for this Port.
 
virtual port_priority_mode GetPriorityMode () const =0
 Get the Priority Mode for this Port.
 
virtual bool SupportsRDM () const =0
 Check if this Port supports RDM or not.
 

Member Function Documentation

◆ RunFullDiscovery()

◆ 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::artnet::ArtNetOutputPort, ola::plugin::dummy::DummyPort, ola::plugin::spi::SPIOutputPort, ola::plugin::usbdmx::JaRuleOutputPort, ola::plugin::usbpro::ArduinoRGBOutputPort, ola::plugin::usbpro::DmxterOutputPort, ola::plugin::usbpro::DmxTriOutputPort, ola::plugin::usbpro::RobeOutputPort, and ola::plugin::usbpro::UsbProOutputPort.

◆ SendTimeCode()

virtual bool ola::OutputPort::SendTimeCode ( const ola::timecode::TimeCode & timecode)
pure virtual

◆ UniverseNameChanged()

virtual void ola::OutputPort::UniverseNameChanged ( const std::string & new_name)
pure virtual

Called if the universe name changes.

Implemented in ola::BasicOutputPort.

◆ WriteDMX()


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