using System; using System.Collections.Generic; using System.Linq; using System.Text; using Crestron.SimplSharp; using PepperDash.Core; namespace PepperDash.Essentials.Core.Shades { /// /// Requirements for an object that contains shades /// public interface IShades { List Shades { get; } } /// /// Requirements for a device that implements basic Open/Close shade control /// [Obsolete("Please use IShadesOpenCloseStop instead")] public interface IShadesOpenClose { void Open(); void Close(); } /// /// Requirements for a device that implements basic Open/Close/Stop shade control (Uses 3 relays) /// 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); void Lower(bool state); } /// /// Requirements for a shade device that provides raising/lowering feedback /// public interface IShadesRaiseLowerFeedback { BoolFeedback ShadeIsLoweringFeedback { get; } BoolFeedback ShadeIsRaisingFeedback { get; } } /// /// Requirements for a shade/scene that is open or closed /// public interface IShadesOpenClosedFeedback: IShadesOpenCloseStop { BoolFeedback ShadeIsOpenFeedback { get; } BoolFeedback ShadeIsClosedFeedback { get; } } /// /// /// [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(); void CloseOrStop(); void OpenCloseOrStop(); } /// /// Basic feedback for shades/scene stopped /// public interface IShadesStopFeedback : IShadesOpenCloseStop { BoolFeedback IsStoppedFeedback { get; } } /// /// Requirements for position /// public interface IShadesPosition { void SetPosition(ushort value); } /// /// Basic feedback for shades position /// public interface IShadesFeedback: IShadesPosition, IShadesStopFeedback { IntFeedback PositionFeedback { get; } } /// /// /// public interface ISceneFeedback { void Run(); BoolFeedback AllAreAtSceneFeedback { get; } } public interface ICrestronBasicShade : IShadesOpenClosedFeedback, IShadesStop, IShadesStopOrMove, IShadesFeedback, IShadesRaiseLowerFeedback { } }