setting parameters may optionally set the user data
This commit is contained in:
parent
a58ffc5c4a
commit
80bfce67b7
|
@ -278,6 +278,40 @@ void Widget::setUserData(std::vector<uint8_t> data)
|
|||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief Widget::getParameters
|
||||
* @param user_length
|
||||
*/
|
||||
void Widget::getParameters(size_t user_length)
|
||||
{
|
||||
auto msg = std::make_shared<Pro::MsgGetWidgetParametersRequest>();
|
||||
msg->size = std::min(user_length, Pro::USER_CONFIGURATION_MAX);
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Widget::setParameters
|
||||
* @param user_length
|
||||
*/
|
||||
void Widget::setParameters(size_t user_length) const
|
||||
{
|
||||
auto msg = std::make_shared<Pro::MsgSetWidgetParametersRequest>();
|
||||
{
|
||||
std::scoped_lock lock(mtx_metadata_);
|
||||
msg->break_time = tx_break_intervals;
|
||||
msg->mab_time = tx_mab_intervals;
|
||||
msg->rate = tx_rate;
|
||||
msg->user_data = user_configuration;
|
||||
}
|
||||
size_t length = user_length < 0 ? user_configuration.size() : user_length;
|
||||
length = std::min(length, Pro::USER_CONFIGURATION_MAX);
|
||||
msg->user_data.resize(length, 0xff); // resized data padded with 0xFF (matching OEM)
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Widget::writeFirmware
|
||||
* @param data
|
||||
|
@ -528,37 +562,6 @@ void Widget::getSerialNumber()
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Widget::getParameters
|
||||
* @param user_length
|
||||
* @param timeout Milliseconds to block while waiting for the device to reply.
|
||||
* @return True if the parameters has been updated.
|
||||
*/
|
||||
bool Widget::getParameters(size_t user_length, int timeout)
|
||||
{
|
||||
auto msg = std::make_shared<Pro::MsgGetWidgetParametersRequest>();
|
||||
msg->size = std::min(user_length, Pro::USER_CONFIGURATION_MAX);
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Widget::setParameters
|
||||
*/
|
||||
void Widget::setParameters() const
|
||||
{
|
||||
auto msg = std::make_shared<Pro::MsgSetWidgetParametersRequest>();
|
||||
{
|
||||
std::scoped_lock lock(mtx_metadata_);
|
||||
msg->break_time = tx_break_intervals;
|
||||
msg->mab_time = tx_mab_intervals;
|
||||
msg->rate = tx_rate;
|
||||
msg->user_data = user_configuration;
|
||||
}
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Widget::sendDmx
|
||||
* @param trimmed
|
||||
|
|
|
@ -85,6 +85,9 @@ public:
|
|||
const std::vector<uint8_t> &userData() const;
|
||||
void setUserData(std::vector<uint8_t>);
|
||||
|
||||
void getParameters(size_t user_length = 0);
|
||||
void setParameters(size_t user_length = 0) const;
|
||||
|
||||
void getSerialNumber();
|
||||
|
||||
bool writeFirmware(const uint8_t *, const size_t);
|
||||
|
@ -104,8 +107,6 @@ protected:
|
|||
// USB Host operations
|
||||
virtual void sendMessage(std::shared_ptr<Pro::MessageData>) const;
|
||||
virtual void rebootBootloader();
|
||||
bool getParameters(size_t user_length = 0, int timeout = 0);
|
||||
void setParameters() const;
|
||||
void sendDmx(bool trimmed = true) const;
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue