1
0
Fork 0

metadata setter functions

This commit is contained in:
Kevin Matz 2023-04-05 09:19:16 -04:00
parent 10ee3c1d22
commit 54244d4988
2 changed files with 71 additions and 12 deletions

View File

@ -95,6 +95,60 @@ void Widget::close()
}
/**
* @brief Widget::setTxBreakTime
* @param time
*/
void Widget::setTxBreakTime(double time)
{
setTxBreakIntervals(time / Pro::DMX_BREAK_INTERVAL);
}
/**
* @brief Widget::setTxBreakIntervals
* @param count
*/
void Widget::setTxBreakIntervals(uint8_t count)
{
count = std::max(count, Pro::DMX_BREAK_MIN);
count = std::min(count, Pro::DMX_BREAK_MAX);
tx_break_intervals = count;
}
/**
* @brief Widget::setTxMabTime
* @param time
*/
void Widget::setTxMabTime(double time)
{
setTxMabIntervals(time / Pro::DMX_MAB_INTERVAL);
}
/**
* @brief Widget::setTxMabIntervals
* @param count
*/
void Widget::setTxMabIntervals(uint8_t count)
{
count = std::max(count, Pro::DMX_MAB_MIN);
count = std::min(count, Pro::DMX_MAB_MAX);
tx_mab_intervals = count;
}
/**
* @brief Widget::setTxRate
* @param rate
*/
void Widget::setTxRate(uint8_t rate)
{
tx_rate = std::min(rate, Pro::DMX_RATE_MAX);
}
/**
* @brief Widget::routeRxMessage
* @param msg
@ -230,11 +284,6 @@ void Widget::sendMessage(std::shared_ptr<Pro::MessageData> msg) const
/**
* @brief Widget::rebootBootloader
*
* The base implimentation is to request a USB device to reset.
*
* Hardware emulations should reimpliment this funciton to reboot into a firmware writing
* mode, and do not need to call the base class function.
*/
void Widget::rebootBootloader()
{
@ -333,6 +382,8 @@ void Widget::rxMsgGetWidgetParametersRequest(std::shared_ptr<Pro::MsgGetWidgetPa
/**
* @brief Widget::rxMsgGetWidgetParametersReply
* @param msg
*
* No sanity checking is performed on the values in the reply.
*/
void Widget::rxMsgGetWidgetParametersReply(std::shared_ptr<Pro::MsgGetWidgetParametersReply> msg)
{
@ -350,9 +401,9 @@ void Widget::rxMsgGetWidgetParametersReply(std::shared_ptr<Pro::MsgGetWidgetPara
*/
void Widget::rxMsgSetWidgetParametersRequest(std::shared_ptr<Pro::MsgSetWidgetParametersRequest> msg)
{
tx_break_intervals = msg->break_time;
tx_mab_intervals = msg->mab_time;
tx_rate = msg->rate;
setTxBreakIntervals(msg->break_time);
setTxMabIntervals(msg->mab_time);
setTxRate(msg->rate);
user_configuration = std::vector<uint8_t>(msg->user_data);
}

View File

@ -63,25 +63,33 @@ public:
* @return
*/
double txBreakTime() const { return tx_break_intervals * Pro::DMX_BREAK_INTERVAL; }
void setTxBreakTime(double);
void setTxBreakIntervals(uint8_t);
/**
* @brief txMabTime
* @return
*/
double txMabTime() const { return tx_mab_intervals * Pro::DMX_MAB_INTERVAL; }
void setTxMabTime(double);
void setTxMabIntervals(uint8_t);
/**
* @brief txRate
* @return
*/
double txRate() const { return tx_rate; }
uint8_t txRate() const { return tx_rate; }
void setTxRate(uint8_t);
protected:
void routeRxMessage(std::shared_ptr<Pro::MessageData>);
virtual void sendMessage(std::shared_ptr<Pro::MessageData>) const;
virtual void rebootBootloader();
void getSerialNumber();
// USB Host operations
virtual void sendMessage(std::shared_ptr<Pro::MessageData>) const;
void rebootBootloader();
void getParameters(size_t user_length = 0);
void setParameters() const;
void getSerialNumber();
/**
* @brief writeFwPage