mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-11 19:44:52 +00:00
Refactor timer disposal and improve code readability
Co-authored-by: erikdred <88980320+erikdred@users.noreply.github.com>
This commit is contained in:
@@ -199,14 +199,7 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
|||||||
if (RaiseRelayConfig.RaiseTimeInMs > 0)
|
if (RaiseRelayConfig.RaiseTimeInMs > 0)
|
||||||
{
|
{
|
||||||
_isMoving = true;
|
_isMoving = true;
|
||||||
|
DisposeMovementTimer();
|
||||||
// Dispose previous timer if exists
|
|
||||||
if (_movementTimer != null)
|
|
||||||
{
|
|
||||||
_movementTimer.Stop();
|
|
||||||
_movementTimer.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
_movementTimer = new CTimer(OnMovementComplete, RaiseRelayConfig.RaiseTimeInMs);
|
_movementTimer = new CTimer(OnMovementComplete, RaiseRelayConfig.RaiseTimeInMs);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -249,14 +242,7 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
|||||||
if (LowerRelayConfig.LowerTimeInMs > 0)
|
if (LowerRelayConfig.LowerTimeInMs > 0)
|
||||||
{
|
{
|
||||||
_isMoving = true;
|
_isMoving = true;
|
||||||
|
DisposeMovementTimer();
|
||||||
// Dispose previous timer if exists
|
|
||||||
if (_movementTimer != null)
|
|
||||||
{
|
|
||||||
_movementTimer.Stop();
|
|
||||||
_movementTimer.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
_movementTimer = new CTimer(OnMovementComplete, LowerRelayConfig.LowerTimeInMs);
|
_movementTimer = new CTimer(OnMovementComplete, LowerRelayConfig.LowerTimeInMs);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -270,6 +256,19 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
|||||||
InUpPosition = false;
|
InUpPosition = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Disposes the current movement timer if it exists
|
||||||
|
/// </summary>
|
||||||
|
private void DisposeMovementTimer()
|
||||||
|
{
|
||||||
|
if (_movementTimer != null)
|
||||||
|
{
|
||||||
|
_movementTimer.Stop();
|
||||||
|
_movementTimer.Dispose();
|
||||||
|
_movementTimer = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Called when movement timer completes
|
/// Called when movement timer completes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -287,28 +286,30 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
|||||||
var commandToExecute = _requestedState;
|
var commandToExecute = _requestedState;
|
||||||
_requestedState = RequestedState.None;
|
_requestedState = RequestedState.None;
|
||||||
|
|
||||||
// Check if current state matches what the banked command would do
|
// Check if current state matches what the banked command would do and execute if different
|
||||||
// If so, ignore it
|
switch (commandToExecute)
|
||||||
if (commandToExecute == RequestedState.Raise && InUpPosition)
|
|
||||||
{
|
{
|
||||||
Debug.LogMessage(LogEventLevel.Debug, this, $"Already in up position, ignoring banked Raise command");
|
case RequestedState.Raise:
|
||||||
return;
|
if (InUpPosition)
|
||||||
}
|
{
|
||||||
|
Debug.LogMessage(LogEventLevel.Debug, this, $"Already in up position, ignoring banked Raise command");
|
||||||
if (commandToExecute == RequestedState.Lower && !InUpPosition)
|
}
|
||||||
{
|
else
|
||||||
Debug.LogMessage(LogEventLevel.Debug, this, $"Already in down position, ignoring banked Lower command");
|
{
|
||||||
return;
|
Raise();
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
// Execute the banked command
|
|
||||||
if (commandToExecute == RequestedState.Raise)
|
case RequestedState.Lower:
|
||||||
{
|
if (!InUpPosition)
|
||||||
Raise();
|
{
|
||||||
}
|
Debug.LogMessage(LogEventLevel.Debug, this, $"Already in down position, ignoring banked Lower command");
|
||||||
else if (commandToExecute == RequestedState.Lower)
|
}
|
||||||
{
|
else
|
||||||
Lower();
|
{
|
||||||
|
Lower();
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user