mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-27 11:24:55 +00:00
119 lines
2.5 KiB
C#
119 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Crestron.SimplSharp;
|
|
|
|
using PepperDash.Core;
|
|
|
|
namespace PepperDash.Essentials.Core.Shades
|
|
{
|
|
/// <summary>
|
|
/// Requirements for an object that contains shades
|
|
/// </summary>
|
|
public interface IShades
|
|
{
|
|
List<ShadeBase> Shades { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Requirements for a device that implements basic Open/Close shade control
|
|
/// </summary>
|
|
public interface IShadesOpenClose
|
|
{
|
|
void Open();
|
|
void Close();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Requirements for a device that implements basic Open/Close/Stop shade control (Uses 3 relays)
|
|
/// </summary>
|
|
public interface IShadesOpenCloseStop : IShadesOpenClose
|
|
{
|
|
void StopOrPreset();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Requirements for a shade that implements press/hold raise/lower functions
|
|
/// </summary>
|
|
public interface IShadesRaiseLower
|
|
{
|
|
void Raise(bool state);
|
|
void Lower(bool state);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Requirements for a shade device that provides raising/lowering feedback
|
|
/// </summary>
|
|
public interface IShadesRaiseLowerFeedback
|
|
{
|
|
BoolFeedback ShadeIsLoweringFeedback { get; }
|
|
BoolFeedback ShadeIsRaisingFeedback { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Requirements for a shade/scene that is open or closed
|
|
/// </summary>
|
|
public interface IShadesOpenClosedFeedback: IShadesOpenClose
|
|
{
|
|
BoolFeedback ShadeIsOpenFeedback { get; }
|
|
BoolFeedback ShadeIsClosedFeedback { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public interface IShadesStop
|
|
{
|
|
void Stop();
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public interface IShadesStopOrMove
|
|
{
|
|
void OpenOrStop();
|
|
void CloseOrStop();
|
|
void OpenCloseOrStop();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Basic feedback for shades/scene stopped
|
|
/// </summary>
|
|
public interface IShadesStopFeedback
|
|
{
|
|
BoolFeedback IsStoppedFeedback { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Requirements for position
|
|
/// </summary>
|
|
public interface IShadesPosition
|
|
{
|
|
void SetPosition(ushort value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Basic feedback for shades position
|
|
/// </summary>
|
|
public interface IShadesFeedback: IShadesPosition, IShadesStopFeedback
|
|
{
|
|
IntFeedback PositionFeedback { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public interface ISceneFeedback
|
|
{
|
|
void Run();
|
|
BoolFeedback AllAreAtSceneFeedback { get; }
|
|
}
|
|
|
|
public interface ICrestronBasicShade : IShadesOpenClosedFeedback, IShadesStop,
|
|
IShadesStopOrMove, IShadesFeedback, IShadesRaiseLowerFeedback
|
|
{
|
|
|
|
}
|
|
} |