connect RDM responder I/O
This commit is contained in:
parent
e951c25461
commit
fc48300964
|
@ -22,6 +22,7 @@
|
|||
SOFTWARE.
|
||||
*/
|
||||
#include "widget.h"
|
||||
#include <rdm.h>
|
||||
|
||||
namespace ENTTEC {
|
||||
|
||||
|
@ -37,6 +38,11 @@ Widget::Widget()
|
|||
, rdm_controller_(nullptr)
|
||||
, rdm_responder_(nullptr)
|
||||
{
|
||||
token_rdm_receive_ = DMX::Universe::onRxData(RDM::SC_RDM, [this](const std::vector<uint8_t> &data)
|
||||
{
|
||||
if (rdm_responder_)
|
||||
rdm_responder_->receive(data);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
@ -139,6 +145,8 @@ void Widget::setModeBridge(Pro::DMX_RX_MODE mode)
|
|||
{
|
||||
RDM::UID id(serial_number, 0x454E); // Use the ENTTEC manufacturer ID?
|
||||
rdm_responder_ = new RDM::Responder(id);
|
||||
token_rdm_send_ = rdm_responder_->setSender(std::bind(&Widget::sendRDMdata,
|
||||
this, std::placeholders::_1));
|
||||
device_class_ = DMX::RESPONDER;
|
||||
}
|
||||
else
|
||||
|
@ -592,6 +600,31 @@ void Widget::sendDmx(bool trimmed) const
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Request that the USB Device send RDM data.
|
||||
* @param data
|
||||
*/
|
||||
void Widget::sendRDMdata(const std::vector<uint8_t> & data) const
|
||||
{
|
||||
auto msg = std::make_shared<Pro::MsgSendRDMData>();
|
||||
msg->data = data;
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Request that the USB Device send RDM discovery data.
|
||||
* @param data
|
||||
*/
|
||||
void Widget::sendRDMdiscovery(const std::vector<uint8_t> & data) const
|
||||
{
|
||||
auto msg = std::make_shared<Pro::MsgSendRDMDiscovery>();
|
||||
(void)data;
|
||||
/// \todo copy data to discovery message
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Widget::rxMsgHello
|
||||
*/
|
||||
|
|
|
@ -110,6 +110,8 @@ protected:
|
|||
virtual void sendMessage(std::shared_ptr<Pro::MessageData>) const;
|
||||
virtual void rebootBootloader();
|
||||
void sendDmx(bool trimmed = true) const;
|
||||
void sendRDMdata(const std::vector<uint8_t> &) const;
|
||||
void sendRDMdiscovery(const std::vector<uint8_t> &) const;
|
||||
|
||||
/**
|
||||
* @brief writeFwPage
|
||||
|
@ -150,6 +152,8 @@ private:
|
|||
|
||||
mutable std::mutex mtx_metadata_;
|
||||
std::shared_ptr<void> token_data_changed_;
|
||||
std::shared_ptr<void> token_rdm_receive_;
|
||||
std::shared_ptr<void> token_rdm_send_;
|
||||
|
||||
RDM::Controller *rdm_controller_;
|
||||
RDM::Responder *rdm_responder_;
|
||||
|
|
Loading…
Reference in New Issue