fix(essentials): Updates to shade interfaces to clarify functionality

This commit is contained in:
Neil Dorin
2022-10-06 10:05:44 -06:00
parent 5994704fbd
commit 040c57b5e1
4 changed files with 32 additions and 19 deletions

View File

@@ -97,10 +97,10 @@ namespace PepperDash.Essentials
{ {
TriList.SetSigFalseAction(ButtonPressJoinBase + 1, ShadeDevice.Open); TriList.SetSigFalseAction(ButtonPressJoinBase + 1, ShadeDevice.Open);
TriList.SetSigFalseAction(ButtonPressJoinBase + 2, (ShadeDevice as IShadesOpenCloseStop).StopOrPreset); TriList.SetSigFalseAction(ButtonPressJoinBase + 2, (ShadeDevice as IShadesOpenCloseStop).Stop);
if(ShadeDevice is RelayControlledShade) if (ShadeDevice is IShadesOpenCloseStop)
TriList.SetString(StringJoinBase + 2, (ShadeDevice as RelayControlledShade).StopOrPresetButtonLabel); TriList.SetString(StringJoinBase + 2, "Stop");
TriList.SetSigFalseAction(ButtonPressJoinBase + 3, ShadeDevice.Close); TriList.SetSigFalseAction(ButtonPressJoinBase + 3, ShadeDevice.Close);
} }

View File

@@ -19,6 +19,7 @@ namespace PepperDash.Essentials.Core.Shades
/// <summary> /// <summary>
/// Requirements for a device that implements basic Open/Close shade control /// Requirements for a device that implements basic Open/Close shade control
/// </summary> /// </summary>
[Obsolete("Please use IShadesOpenCloseStop instead")]
public interface IShadesOpenClose public interface IShadesOpenClose
{ {
void Open(); void Open();
@@ -28,15 +29,26 @@ namespace PepperDash.Essentials.Core.Shades
/// <summary> /// <summary>
/// Requirements for a device that implements basic Open/Close/Stop shade control (Uses 3 relays) /// Requirements for a device that implements basic Open/Close/Stop shade control (Uses 3 relays)
/// </summary> /// </summary>
public interface IShadesOpenCloseStop : IShadesOpenClose public interface IShadesOpenCloseStop
{ {
void StopOrPreset(); void Open();
void Close();
void Stop();
}
public interface IShadesOpenClosePreset : IShadesOpenCloseStop
{
void RecallPreset(uint presetNumber);
void SavePreset(uint presetNumber);
string StopOrPresetButtonLabel { get; } string StopOrPresetButtonLabel { get; }
event EventHandler PresetSaved;
} }
/// <summary> /// <summary>
/// Requirements for a shade that implements press/hold raise/lower functions /// Requirements for a shade that implements press/hold raise/lower functions
/// </summary> /// </summary>
[Obsolete("Please use IShadesOpenCloseStop instead")]
public interface IShadesRaiseLower public interface IShadesRaiseLower
{ {
void Raise(bool state); void Raise(bool state);
@@ -55,7 +67,7 @@ namespace PepperDash.Essentials.Core.Shades
/// <summary> /// <summary>
/// Requirements for a shade/scene that is open or closed /// Requirements for a shade/scene that is open or closed
/// </summary> /// </summary>
public interface IShadesOpenClosedFeedback: IShadesOpenClose public interface IShadesOpenClosedFeedback: IShadesOpenCloseStop
{ {
BoolFeedback ShadeIsOpenFeedback { get; } BoolFeedback ShadeIsOpenFeedback { get; }
BoolFeedback ShadeIsClosedFeedback { get; } BoolFeedback ShadeIsClosedFeedback { get; }
@@ -64,13 +76,14 @@ namespace PepperDash.Essentials.Core.Shades
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Obsolete("Please use IShadesOpenCloseStop instead")]
public interface IShadesStop public interface IShadesStop
{ {
void Stop(); void Stop();
} }
/// <summary> /// <summary>
/// /// Used to implement raise/stop/lower/stop from single button
/// </summary> /// </summary>
public interface IShadesStopOrMove public interface IShadesStopOrMove
{ {
@@ -82,7 +95,7 @@ namespace PepperDash.Essentials.Core.Shades
/// <summary> /// <summary>
/// Basic feedback for shades/scene stopped /// Basic feedback for shades/scene stopped
/// </summary> /// </summary>
public interface IShadesStopFeedback public interface IShadesStopFeedback : IShadesOpenCloseStop
{ {
BoolFeedback IsStoppedFeedback { get; } BoolFeedback IsStoppedFeedback { get; }
} }

View File

@@ -12,7 +12,7 @@ namespace PepperDash.Essentials.Core.Shades
/// <summary> /// <summary>
/// Base class for a shade device /// Base class for a shade device
/// </summary> /// </summary>
public abstract class ShadeBase : EssentialsDevice, IShadesOpenClose public abstract class ShadeBase : EssentialsDevice, IShadesOpenCloseStop
{ {
public ShadeBase(string key, string name) public ShadeBase(string key, string name)
: base(key, name) : base(key, name)
@@ -23,7 +23,7 @@ namespace PepperDash.Essentials.Core.Shades
#region iShadesOpenClose Members #region iShadesOpenClose Members
public abstract void Open(); public abstract void Open();
public abstract void StopOrPreset(); public abstract void Stop();
public abstract void Close(); public abstract void Close();
#endregion #endregion

View File

@@ -56,9 +56,9 @@ namespace PepperDash.Essentials.Devices.Common.Environment.Somfy
PulseOutput(OpenRelay, RelayPulseTime); PulseOutput(OpenRelay, RelayPulseTime);
} }
public override void StopOrPreset() public override void Stop()
{ {
Debug.Console(1, this, "Stopping or recalling preset on Shade: '{0}'", this.Name); Debug.Console(1, this, "Stopping Shade: '{0}'", this.Name);
PulseOutput(StopOrPresetRelay, RelayPulseTime); PulseOutput(StopOrPresetRelay, RelayPulseTime);
} }