Commit 125dfe05 authored by Pavel Vainerman's avatar Pavel Vainerman

(DelayTimer): добавил несколько новых функций

isWaitingOn(), isWaitingOff(), isWaiting().
parent 31e51211
......@@ -145,6 +145,22 @@ namespace uniset
return pt.getCurrent();
}
inline bool isWaitingOn() noexcept
{
return !get() && waiting_on;
}
inline bool isWaitingOff() noexcept
{
return get() && waiting_off;
}
inline bool isWaiting() noexcept
{
check(prevState);
return (waiting_off || waiting_on);
}
protected:
PassiveTimer pt;
bool prevState = { false };
......
......@@ -202,3 +202,33 @@ TEST_CASE("[DelayTimer]: zero time", "[DelayTimer]" )
}
}
// -----------------------------------------------------------------------------
TEST_CASE("[DelayTimer]: wait[On|Off]", "[DelayTimer]" )
{
DelayTimer dt(100, 100);
REQUIRE_FALSE(dt.isWaitingOn());
REQUIRE_FALSE(dt.isWaitingOff());
REQUIRE_FALSE(dt.isWaiting());
REQUIRE_FALSE( dt.get() );
dt.check(true);
REQUIRE(dt.isWaitingOn());
REQUIRE_FALSE(dt.isWaitingOff());
REQUIRE(dt.isWaiting());
msleep(200);
REQUIRE_FALSE(dt.isWaitingOn());
REQUIRE_FALSE(dt.isWaitingOff());
REQUIRE_FALSE(dt.isWaiting());
dt.check(false);
REQUIRE_FALSE(dt.isWaitingOn());
REQUIRE(dt.isWaitingOff());
REQUIRE(dt.isWaiting());
msleep(200);
REQUIRE_FALSE(dt.isWaitingOn());
REQUIRE_FALSE(dt.isWaitingOff());
REQUIRE_FALSE(dt.isWaiting());
REQUIRE_FALSE( dt.get() );
}
// -----------------------------------------------------------------------------
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment