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);
}