set/timeout ops modify the operational state
This commit is contained in:
parent
53ac273c0b
commit
a5958448ff
|
@ -131,6 +131,7 @@ void Universe::setData(const std::vector<uint8_t>& data)
|
|||
rx_timeout_(true);
|
||||
|
||||
// notify callbacks
|
||||
status_ = Status::DMX_ACTIVE;
|
||||
doDataCallbacks();
|
||||
}
|
||||
|
||||
|
@ -194,6 +195,9 @@ void Universe::setValue(const uint16_t address, const uint8_t value)
|
|||
null_start_mutex.lock();
|
||||
null_start_data[address] = value;
|
||||
null_start_mutex.unlock();
|
||||
|
||||
status_ = Status::DMX_ACTIVE;
|
||||
doDataCallbacks();
|
||||
}
|
||||
|
||||
|
||||
|
@ -214,6 +218,9 @@ void Universe::setValue(const uint16_t start, const uint16_t footprint,
|
|||
null_start_mutex.lock();
|
||||
std::copy(data, data + footprint, null_start_data.begin() + start);
|
||||
null_start_mutex.unlock();
|
||||
|
||||
status_ = Status::DMX_ACTIVE;
|
||||
doDataCallbacks();
|
||||
}
|
||||
|
||||
|
||||
|
@ -267,9 +274,16 @@ void Universe::rx_timeout_(bool add_now)
|
|||
if (add_now)
|
||||
rx_times_.push(now);
|
||||
|
||||
while (rx_times_.size() > 0 &&
|
||||
while (!rx_times_.empty() &&
|
||||
elapsed(now, rx_times_.front()).count() > rx_timeout_period_)
|
||||
{
|
||||
rx_times_.pop();
|
||||
if (rx_times_.empty())
|
||||
{
|
||||
status_ = Status::DMX_LOST;
|
||||
doDataCallbacks();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace DMX
|
||||
|
|
Loading…
Reference in New Issue