mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-11 02:35:00 +00:00
Removes essentials-framework as a submodule and brings the files back into the main repo
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
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
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
|
||||
using PepperDash.Core;
|
||||
using PepperDash.Essentials.Core.CrestronIO;
|
||||
|
||||
namespace PepperDash.Essentials.Core.Shades
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class for a shade device
|
||||
/// </summary>
|
||||
public abstract class ShadeBase : Device, IShadesOpenClose
|
||||
{
|
||||
public ShadeBase(string key, string name)
|
||||
: base(key, name)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
#region iShadesOpenClose Members
|
||||
|
||||
public abstract void Open();
|
||||
public abstract void StopOrPreset();
|
||||
public abstract void Close();
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
|
||||
using PepperDash.Core;
|
||||
|
||||
namespace PepperDash.Essentials.Core.Shades
|
||||
{
|
||||
/// <summary>
|
||||
/// Class that contains the shades to be controlled in a room
|
||||
/// </summary>
|
||||
public class ShadeController : Device, IShades
|
||||
{
|
||||
ShadeControllerConfigProperties Config;
|
||||
|
||||
public List<ShadeBase> Shades { get; private set; }
|
||||
|
||||
public ShadeController(string key, string name, ShadeControllerConfigProperties config)
|
||||
: base(key, name)
|
||||
{
|
||||
Config = config;
|
||||
|
||||
Shades = new List<ShadeBase>();
|
||||
}
|
||||
|
||||
public override bool CustomActivate()
|
||||
{
|
||||
foreach (var shadeConfig in Config.Shades)
|
||||
{
|
||||
var shade = DeviceManager.GetDeviceForKey(shadeConfig.Key) as ShadeBase;
|
||||
|
||||
if (shade != null)
|
||||
{
|
||||
AddShade(shade);
|
||||
}
|
||||
}
|
||||
return base.CustomActivate();
|
||||
}
|
||||
|
||||
void AddShade(ShadeBase shade)
|
||||
{
|
||||
Shades.Add(shade);
|
||||
}
|
||||
}
|
||||
|
||||
public class ShadeControllerConfigProperties
|
||||
{
|
||||
public List<ShadeConfig> Shades { get; set; }
|
||||
|
||||
|
||||
public class ShadeConfig
|
||||
{
|
||||
public string Key { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user