1
0
Fork 0

setting parameters may optionally set the user data

This commit is contained in:
Kevin Matz 2023-04-14 10:09:26 -04:00
parent a58ffc5c4a
commit 80bfce67b7
2 changed files with 37 additions and 33 deletions

View File

@ -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

View File

@ -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;
/**