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

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

isWaitingOn(), isWaitingOff(), isWaiting().
parent 31e51211
...@@ -145,6 +145,22 @@ namespace uniset ...@@ -145,6 +145,22 @@ namespace uniset
return pt.getCurrent(); 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: protected:
PassiveTimer pt; PassiveTimer pt;
bool prevState = { false }; bool prevState = { false };
......
...@@ -202,3 +202,33 @@ TEST_CASE("[DelayTimer]: zero time", "[DelayTimer]" ) ...@@ -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