pub struct DmxController<C: ControllerDriverErrorDef> { /* private fields */ }
Expand description
An RDM controller
Implementations§
Source§impl<D: ControllerDriverErrorDef> DmxController<D>
impl<D: ControllerDriverErrorDef> DmxController<D>
Sourcepub fn new(driver: D, config: &DmxControllerConfig) -> Self
pub fn new(driver: D, config: &DmxControllerConfig) -> Self
Creates a new DmxManager instance.
Sourcepub fn get_driver(&mut self) -> &mut D
pub fn get_driver(&mut self) -> &mut D
Get a reference to the underlying driver.
Source§impl<D: CustomStartCodeControllerDriver> DmxController<D>
impl<D: CustomStartCodeControllerDriver> DmxController<D>
Sourcepub fn send_custom_package(
&mut self,
start_code: u8,
package: &[u8],
) -> Result<(), RdmResponseError<D::DriverError>>
pub fn send_custom_package( &mut self, start_code: u8, package: &[u8], ) -> Result<(), RdmResponseError<D::DriverError>>
Sends a package with a custom start code.
Source§impl<D: DmxControllerDriver> DmxController<D>
impl<D: DmxControllerDriver> DmxController<D>
Sourcepub fn send_dmx_package(
&mut self,
package: &[u8],
) -> Result<(), RdmResponseError<D::DriverError>>
pub fn send_dmx_package( &mut self, package: &[u8], ) -> Result<(), RdmResponseError<D::DriverError>>
Sends a dmx package. Package can’t be bigger than 512 bytes.
Source§impl<D: RdmControllerDriver> DmxController<D>
impl<D: RdmControllerDriver> DmxController<D>
Sourcepub fn rdm_get(
&mut self,
request: RdmRequest,
) -> Result<RdmResponse, RdmResponseError<D::DriverError>>
pub fn rdm_get( &mut self, request: RdmRequest, ) -> Result<RdmResponse, RdmResponseError<D::DriverError>>
Sends a get request.
Sourcepub fn rdm_set(
&mut self,
request: RdmRequest,
) -> Result<RdmResponse, RdmResponseError<D::DriverError>>
pub fn rdm_set( &mut self, request: RdmRequest, ) -> Result<RdmResponse, RdmResponseError<D::DriverError>>
Sends a set request.
Sourcepub fn rdm_discover(
&mut self,
first_uid: u64,
last_uid: u64,
) -> Result<DiscoveryOption, RdmResponseError<D::DriverError>>
pub fn rdm_discover( &mut self, first_uid: u64, last_uid: u64, ) -> Result<DiscoveryOption, RdmResponseError<D::DriverError>>
Sends a discovery request to a range of device ids and returns the found uid if there is no collision and the device does not have its discovery muted.
Sourcepub fn rdm_disc_mute(
&mut self,
uid: PackageAddress,
) -> Result<Option<DiscoveryMuteResponse>, RdmResponseError<D::DriverError>>
pub fn rdm_disc_mute( &mut self, uid: PackageAddress, ) -> Result<Option<DiscoveryMuteResponse>, RdmResponseError<D::DriverError>>
Mute device from discovery. It will not respond to discovery requests anymore. Returns None if the request was a broadcast.
Sourcepub fn rdm_disc_un_mute(
&mut self,
uid: PackageAddress,
) -> Result<Option<DiscoveryMuteResponse>, RdmResponseError<D::DriverError>>
pub fn rdm_disc_un_mute( &mut self, uid: PackageAddress, ) -> Result<Option<DiscoveryMuteResponse>, RdmResponseError<D::DriverError>>
Unmute device from discovery. It will respond to discovery requests again. Returns None if the request was a broadcast.
Sourcepub fn rdm_get_identify(
&mut self,
uid: UniqueIdentifier,
) -> Result<bool, RdmResponseError<D::DriverError>>
pub fn rdm_get_identify( &mut self, uid: UniqueIdentifier, ) -> Result<bool, RdmResponseError<D::DriverError>>
Get the identify state in the rdm device (led for searching)
Sourcepub fn rdm_set_identify(
&mut self,
uid: PackageAddress,
enabled: bool,
) -> Result<(), RdmResponseError<D::DriverError>>
pub fn rdm_set_identify( &mut self, uid: PackageAddress, enabled: bool, ) -> Result<(), RdmResponseError<D::DriverError>>
Set the identify state in the rdm device (led for searching)
Sourcepub fn rdm_get_software_version_label(
&mut self,
uid: UniqueIdentifier,
) -> Result<String<32>, RdmResponseError<D::DriverError>>
pub fn rdm_get_software_version_label( &mut self, uid: UniqueIdentifier, ) -> Result<String<32>, RdmResponseError<D::DriverError>>
Get the software version label.
Sourcepub fn rdm_get_dmx_start_address(
&mut self,
uid: UniqueIdentifier,
) -> Result<DmxStartAddress, RdmResponseError<D::DriverError>>
pub fn rdm_get_dmx_start_address( &mut self, uid: UniqueIdentifier, ) -> Result<DmxStartAddress, RdmResponseError<D::DriverError>>
Get the current start address of the dmx slave.
Sourcepub fn rdm_set_dmx_start_address(
&mut self,
uid: PackageAddress,
start_address: u16,
) -> Result<(), RdmResponseError<D::DriverError>>
pub fn rdm_set_dmx_start_address( &mut self, uid: PackageAddress, start_address: u16, ) -> Result<(), RdmResponseError<D::DriverError>>
Set the current start address of the dmx slave. The address has to be between 1 and 512.
Sourcepub fn rdm_get_queued_message(
&mut self,
uid: UniqueIdentifier,
status_requested: StatusType,
) -> Result<RdmResponsePackage, RdmResponseError<D::DriverError>>
pub fn rdm_get_queued_message( &mut self, uid: UniqueIdentifier, status_requested: StatusType, ) -> Result<RdmResponsePackage, RdmResponseError<D::DriverError>>
Get the last queued message.
Use DmxController::rdm_get_last_message_count to receive the message count from the last request.
If no messages are queued this will return the current StatusMessages. You can use the StatusType to filter these StatusMessages.
Note that you can only use StatusType::StatusAdvisory, StatusType::StatusWarning, StatusType::StatusError and StatusType::StatusGetLastMessage.
If you want to receive the previous response use StatusType::StatusGetLastMessage.
Sourcepub fn rdm_get_status_messages(
&mut self,
uid: UniqueIdentifier,
status_requested: StatusType,
) -> Result<OverflowMessageResp<StatusMessages>, RdmResponseError<D::DriverError>>
pub fn rdm_get_status_messages( &mut self, uid: UniqueIdentifier, status_requested: StatusType, ) -> Result<OverflowMessageResp<StatusMessages>, RdmResponseError<D::DriverError>>
Get status messages. Filter severity by using the StatusType::StatusAdvisory, StatusType::StatusWarning and StatusType::StatusError.
If you want to receive the previously set of status messages again use StatusType::StatusGetLastMessage. To perform an availability test use StatusType::StatusNone.
If this parameter message is properly implemented on the slave you should never get a OverflowMessageResp::Incomplete back, since STATUS_MESSAGE uses its own queuing.
Sourcepub fn rdm_get_supported_parameters(
&mut self,
uid: UniqueIdentifier,
) -> Result<OverflowMessageResp<SupportedParameters>, RdmResponseError<D::DriverError>>
pub fn rdm_get_supported_parameters( &mut self, uid: UniqueIdentifier, ) -> Result<OverflowMessageResp<SupportedParameters>, RdmResponseError<D::DriverError>>
Get the parameter ids that are supported by the responder.
Sourcepub fn rdm_get_device_info(
&mut self,
uid: UniqueIdentifier,
) -> Result<DeviceInfo, RdmResponseError<D::DriverError>>
pub fn rdm_get_device_info( &mut self, uid: UniqueIdentifier, ) -> Result<DeviceInfo, RdmResponseError<D::DriverError>>
Get the device info from the rdm device.
Sourcepub fn rdm_get_last_message_count(&self) -> u8
pub fn rdm_get_last_message_count(&self) -> u8
Returns the message count that was received on the last request using this instance.