mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-04-12 12:06:58 +00:00
fix: various updates for room combining from testing
This commit is contained in:
parent
c47a93f4d0
commit
64ab315142
5 changed files with 31 additions and 13 deletions
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
using PepperDash.Core;
|
||||
|
||||
namespace PepperDash.Essentials.Core
|
||||
{
|
||||
|
|
@ -17,7 +18,7 @@ namespace PepperDash.Essentials.Core
|
|||
{
|
||||
private IPartitionStateProvider _partitionSensor;
|
||||
|
||||
private bool isInAutoMode;
|
||||
public bool IsInAutoMode { get; private set; }
|
||||
|
||||
private bool _partitionPresent;
|
||||
|
||||
|
|
@ -64,7 +65,7 @@ namespace PepperDash.Essentials.Core
|
|||
SetManualMode();
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
SetManualMode();
|
||||
}
|
||||
|
|
@ -74,7 +75,7 @@ namespace PepperDash.Essentials.Core
|
|||
|
||||
void PartitionPresentFeedback_OutputChange(object sender, FeedbackEventArgs e)
|
||||
{
|
||||
if (isInAutoMode)
|
||||
if (IsInAutoMode)
|
||||
{
|
||||
PartitionPresentFeedback.FireUpdate();
|
||||
}
|
||||
|
|
@ -86,7 +87,7 @@ namespace PepperDash.Essentials.Core
|
|||
|
||||
public void SetAutoMode()
|
||||
{
|
||||
isInAutoMode = true;
|
||||
IsInAutoMode = true;
|
||||
if (PartitionPresentFeedback != null)
|
||||
{
|
||||
PartitionPresentFeedback.SetValueFunc(() => _partitionSensor.PartitionPresentFeedback.BoolValue);
|
||||
|
|
@ -98,13 +99,14 @@ namespace PepperDash.Essentials.Core
|
|||
|
||||
if (_partitionSensor != null)
|
||||
{
|
||||
_partitionSensor.PartitionPresentFeedback.OutputChange -= PartitionPresentFeedback_OutputChange;
|
||||
_partitionSensor.PartitionPresentFeedback.OutputChange += PartitionPresentFeedback_OutputChange;
|
||||
}
|
||||
}
|
||||
|
||||
public void SetManualMode()
|
||||
{
|
||||
isInAutoMode = false;
|
||||
IsInAutoMode = false;
|
||||
if (PartitionPresentFeedback != null)
|
||||
{
|
||||
PartitionPresentFeedback.SetValueFunc(() => _partitionPresent);
|
||||
|
|
@ -123,7 +125,7 @@ namespace PepperDash.Essentials.Core
|
|||
|
||||
public void SetPartitionStatePresent()
|
||||
{
|
||||
if (!isInAutoMode)
|
||||
if (!IsInAutoMode)
|
||||
{
|
||||
PartitionPresent = true;
|
||||
PartitionPresentFeedback.FireUpdate();
|
||||
|
|
@ -132,7 +134,7 @@ namespace PepperDash.Essentials.Core
|
|||
|
||||
public void SetPartitionStateNotPresent()
|
||||
{
|
||||
if (!isInAutoMode)
|
||||
if (!IsInAutoMode)
|
||||
{
|
||||
PartitionPresent = false;
|
||||
PartitionPresentFeedback.FireUpdate();
|
||||
|
|
@ -141,7 +143,10 @@ namespace PepperDash.Essentials.Core
|
|||
|
||||
public void ToggglePartitionState()
|
||||
{
|
||||
if (!isInAutoMode)
|
||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Verbose, $"Toggling Partition State for {Key}", this);
|
||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Verbose, $"IsInAutoMode: {IsInAutoMode}", this);
|
||||
|
||||
if (!IsInAutoMode)
|
||||
{
|
||||
PartitionPresent = !PartitionPresent;
|
||||
PartitionPresentFeedback.FireUpdate();
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ namespace PepperDash.Essentials.Core
|
|||
[JsonProperty("adjacentRoomKeys")]
|
||||
List<string> AdjacentRoomKeys { get; }
|
||||
|
||||
[JsonProperty("isInAutoMode")]
|
||||
bool IsInAutoMode { get; }
|
||||
|
||||
void SetPartitionStatePresent();
|
||||
|
||||
void SetPartitionStateNotPresent();
|
||||
|
|
|
|||
|
|
@ -137,7 +137,11 @@ namespace PepperDash.Essentials.Core
|
|||
|
||||
void StartDebounceTimer()
|
||||
{
|
||||
var time = _scenarioChangeDebounceTimeSeconds * 1000;
|
||||
// default to 500ms for manual mode
|
||||
var time = 500;
|
||||
|
||||
// if in auto mode, debounce the scenario change
|
||||
if(IsInAutoMode) time = _scenarioChangeDebounceTimeSeconds * 1000;
|
||||
|
||||
if (_scenarioChangeDebounceTimer == null)
|
||||
{
|
||||
|
|
@ -211,7 +215,7 @@ namespace PepperDash.Essentials.Core
|
|||
{
|
||||
_currentScenario.Activate();
|
||||
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Current Scenario: {0}", _currentScenario.Name);
|
||||
Debug.LogMessage(LogEventLevel.Debug, $"Current Scenario: {_currentScenario.Name}", this);
|
||||
}
|
||||
|
||||
var handler = RoomCombinationScenarioChanged;
|
||||
|
|
@ -246,7 +250,7 @@ namespace PepperDash.Essentials.Core
|
|||
|
||||
public void TogglePartitionState(string partitionKey)
|
||||
{
|
||||
var partition = Partitions.FirstOrDefault((p) => p.Key.Equals(partitionKey)) as IPartitionController;
|
||||
var partition = Partitions.FirstOrDefault((p) => p.Key.Equals(partitionKey));
|
||||
|
||||
if (partition != null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -141,6 +141,7 @@ namespace PepperDash.Essentials.Core
|
|||
if (!ShutdownPromptTimer.IsRunningFeedback.BoolValue)
|
||||
ShutdownType = eShutdownType.None;
|
||||
};
|
||||
|
||||
ShutdownPromptTimer.HasFinished += (o, a) => Shutdown(); // Shutdown is triggered
|
||||
|
||||
ShutdownPromptSeconds = 60;
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ namespace PepperDash.Essentials.Core
|
|||
|
||||
var timeSpan = FinishTime - DateTime.Now;
|
||||
|
||||
Debug.LogMessage(LogEventLevel.Verbose, this,
|
||||
"timeSpan.Minutes == {0}, timeSpan.Seconds == {1}, timeSpan.TotalSeconds == {2}",
|
||||
Debug.LogMessage(LogEventLevel.Verbose,
|
||||
"timeSpan.Minutes == {0}, timeSpan.Seconds == {1}, timeSpan.TotalSeconds == {2}", this,
|
||||
timeSpan.Minutes, timeSpan.Seconds, timeSpan.TotalSeconds);
|
||||
|
||||
if (Math.Floor(timeSpan.TotalSeconds) < 60 && Math.Floor(timeSpan.TotalSeconds) >= 0) //ignore milliseconds
|
||||
|
|
@ -103,6 +103,7 @@ namespace PepperDash.Essentials.Core
|
|||
public void Reset()
|
||||
{
|
||||
_isRunning = false;
|
||||
IsRunningFeedback.FireUpdate();
|
||||
Start();
|
||||
}
|
||||
|
||||
|
|
@ -133,7 +134,11 @@ namespace PepperDash.Essentials.Core
|
|||
void StopHelper()
|
||||
{
|
||||
if (_secondTimer != null)
|
||||
{
|
||||
_secondTimer.Stop();
|
||||
_secondTimer = null;
|
||||
}
|
||||
|
||||
_isRunning = false;
|
||||
IsRunningFeedback.FireUpdate();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue