|
UniSet
2.6.0
|
Открытые члены | |
| void | run (timeout_t msec) noexcept |
| void | reset () noexcept |
| timeout_t | duration () const noexcept |
| bool | rotate (bool st) noexcept |
| timeout_t | current () const noexcept |
| timeout_t | interval () const noexcept |
| bool | check () const noexcept |
| bool | enabled () const noexcept |
| timeout_t | amount () const noexcept |
| timeout_t | remain () const noexcept |
Защищенные данные | |
| PassiveTimer | t |
| bool | _state = { false } |
| timeout_t | _sand = { 0 } |
| timeout_t | _size = { 0 } |
Песочные часы. Класс реализующий логику песочных часов. Удобен для создания задержек на срабатывание и на отпускание (как фильтр от кратковременных изменений) с "накоплением времени". Аналогия с песочными часами:
Класс является "пассивным", т.е. требует периодического вызова функции rotate и check, для проверки наступления условия срабатывания.
HourGlass hg;
hg.run(10000); // настраиваем часы на 10 сек..
while( ....)
{
hg.rotate( in_temp > HiTemp ); // управляем состоянием песочных часов (прямой или обратный ход часов).
isOverheating = hg.check();
}
timeout_t uniset::HourGlass::_sand = { 0 } [protected] |
сколько песка ещё осталось..
timeout_t uniset::HourGlass::_size = { 0 } [protected] |
размер часов
bool uniset::HourGlass::_state = { false } [protected] |
текущее "положение часов", true - прямое, false - обратное (перевёрнутое)
PassiveTimer uniset::HourGlass::t [protected] |
таймер для отсчёта времени..
1.7.6.1