diff --git a/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsShadeDriver.cs b/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsShadeDriver.cs index b62e047c..fb40252c 100644 --- a/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsShadeDriver.cs +++ b/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsShadeDriver.cs @@ -97,10 +97,10 @@ namespace PepperDash.Essentials { TriList.SetSigFalseAction(ButtonPressJoinBase + 1, ShadeDevice.Open); - TriList.SetSigFalseAction(ButtonPressJoinBase + 2, (ShadeDevice as IShadesOpenCloseStop).StopOrPreset); - - if(ShadeDevice is RelayControlledShade) - TriList.SetString(StringJoinBase + 2, (ShadeDevice as RelayControlledShade).StopOrPresetButtonLabel); + TriList.SetSigFalseAction(ButtonPressJoinBase + 2, (ShadeDevice as IShadesOpenCloseStop).Stop); + + if (ShadeDevice is IShadesOpenCloseStop) + TriList.SetString(StringJoinBase + 2, "Stop"); TriList.SetSigFalseAction(ButtonPressJoinBase + 3, ShadeDevice.Close); } diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Shades/Shade Interfaces.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Shades/Shade Interfaces.cs index 35492162..949009f6 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Shades/Shade Interfaces.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Shades/Shade Interfaces.cs @@ -19,6 +19,7 @@ namespace PepperDash.Essentials.Core.Shades /// /// Requirements for a device that implements basic Open/Close shade control /// + [Obsolete("Please use IShadesOpenCloseStop instead")] public interface IShadesOpenClose { void Open(); @@ -28,15 +29,26 @@ namespace PepperDash.Essentials.Core.Shades /// /// Requirements for a device that implements basic Open/Close/Stop shade control (Uses 3 relays) /// - public interface IShadesOpenCloseStop : IShadesOpenClose - { - void StopOrPreset(); - string StopOrPresetButtonLabel { get; } + public interface IShadesOpenCloseStop + { + void Open(); + void Close(); + void Stop(); + } + + public interface IShadesOpenClosePreset : IShadesOpenCloseStop + { + void RecallPreset(uint presetNumber); + void SavePreset(uint presetNumber); + string StopOrPresetButtonLabel { get; } + + event EventHandler PresetSaved; } /// /// Requirements for a shade that implements press/hold raise/lower functions - /// + /// + [Obsolete("Please use IShadesOpenCloseStop instead")] public interface IShadesRaiseLower { void Raise(bool state); @@ -55,7 +67,7 @@ namespace PepperDash.Essentials.Core.Shades /// /// Requirements for a shade/scene that is open or closed /// - public interface IShadesOpenClosedFeedback: IShadesOpenClose + public interface IShadesOpenClosedFeedback: IShadesOpenCloseStop { BoolFeedback ShadeIsOpenFeedback { get; } BoolFeedback ShadeIsClosedFeedback { get; } @@ -63,15 +75,16 @@ namespace PepperDash.Essentials.Core.Shades /// /// - /// - public interface IShadesStop + /// + [Obsolete("Please use IShadesOpenCloseStop instead")] + public interface IShadesStop { void Stop(); } /// - /// - /// + /// Used to implement raise/stop/lower/stop from single button + /// public interface IShadesStopOrMove { void OpenOrStop(); @@ -82,7 +95,7 @@ namespace PepperDash.Essentials.Core.Shades /// /// Basic feedback for shades/scene stopped /// - public interface IShadesStopFeedback + public interface IShadesStopFeedback : IShadesOpenCloseStop { BoolFeedback IsStoppedFeedback { get; } } diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Shades/ShadeBase.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Shades/ShadeBase.cs index d30b716a..2b92480e 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Shades/ShadeBase.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Shades/ShadeBase.cs @@ -12,7 +12,7 @@ namespace PepperDash.Essentials.Core.Shades /// /// Base class for a shade device /// - public abstract class ShadeBase : EssentialsDevice, IShadesOpenClose + public abstract class ShadeBase : EssentialsDevice, IShadesOpenCloseStop { public ShadeBase(string key, string name) : base(key, name) @@ -23,7 +23,7 @@ namespace PepperDash.Essentials.Core.Shades #region iShadesOpenClose Members public abstract void Open(); - public abstract void StopOrPreset(); + public abstract void Stop(); public abstract void Close(); #endregion diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/Environment/Somfy/RelayControlledShade.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Environment/Somfy/RelayControlledShade.cs index a78e5045..852d554f 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/Environment/Somfy/RelayControlledShade.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Environment/Somfy/RelayControlledShade.cs @@ -56,9 +56,9 @@ namespace PepperDash.Essentials.Devices.Common.Environment.Somfy 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); }