mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 20:54:55 +00:00
Adds sub interfaces to capture EssentialsRoomBase
This commit is contained in:
@@ -102,7 +102,7 @@ namespace PepperDash.Essentials.Core.Interfaces.Components
|
|||||||
/// Describes a group of room behaviour component. Is able to contain a collection of components that aggregate
|
/// Describes a group of room behaviour component. Is able to contain a collection of components that aggregate
|
||||||
/// together to behave as one
|
/// together to behave as one
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IRoomBehaviourGroupComponent
|
public interface IRoomBehaviourGroupComponent : IRoomComponent
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A collection of components that work together to achieve a common behaviour
|
/// A collection of components that work together to achieve a common behaviour
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Crestron.SimplSharp;
|
||||||
|
|
||||||
|
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Core.Interfaces.Room
|
||||||
|
{
|
||||||
|
public interface IHasMobileControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Indicates if this room is Mobile Control Enabled
|
||||||
|
/// </summary>
|
||||||
|
bool IsMobileControlEnabled { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The bridge for this room if Mobile Control is enabled
|
||||||
|
/// </summary>
|
||||||
|
IMobileControlRoomBridge MobileControlRoomBridge { get; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Crestron.SimplSharp;
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Core.Interfaces.Room
|
||||||
|
{
|
||||||
|
public interface IHasRoomOccupancyStatusProvider
|
||||||
|
{
|
||||||
|
event EventHandler<EventArgs> RoomOccupancyIsSet;
|
||||||
|
|
||||||
|
IOccupancyStatusProvider RoomOccupancy { get; }
|
||||||
|
|
||||||
|
bool OccupancyStatusProviderIsRemote { get; }
|
||||||
|
|
||||||
|
int ShutdownVacancySeconds { get; }
|
||||||
|
|
||||||
|
eVacancyMode VacancyMode { get; }
|
||||||
|
|
||||||
|
void StartRoomVacancyTimer(eVacancyMode mode);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the object to be used as the IOccupancyStatusProvider for the room. Can be an Occupancy Aggregator or a specific device
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="statusProvider"></param>
|
||||||
|
/// <param name="timoutMinutes"></param>
|
||||||
|
void SetRoomOccupancy(IOccupancyStatusProvider statusProvider, int timeoutMinutes);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Executes when RoomVacancyShutdownTimer expires. Used to trigger specific room actions as needed. Must nullify the timer object when executed
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="o"></param>
|
||||||
|
void RoomVacatedForTimeoutPeriod(object o);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Crestron.SimplSharp;
|
||||||
|
|
||||||
|
using PepperDash.Core;
|
||||||
|
using PepperDash.Essentials.Core;
|
||||||
|
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Core.Interfaces.Room
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Describes the necessary functions for a room that can be powered on and shutdown
|
||||||
|
/// </summary>
|
||||||
|
public interface IHasRoomOn
|
||||||
|
{
|
||||||
|
BoolFeedback OnFeedback { get; }
|
||||||
|
|
||||||
|
BoolFeedback IsWarmingUpFeedback { get; }
|
||||||
|
BoolFeedback IsCoolingDownFeedback { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Timer used for informing the UIs of a shutdown
|
||||||
|
/// </summary>
|
||||||
|
SecondsCountdownTimer ShutdownPromptTimer { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
int ShutdownPromptSeconds { get; set; }
|
||||||
|
int ShutdownVacancySeconds { get; set; }
|
||||||
|
eShutdownType ShutdownType { get; private set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Starts the Shutdown process based on the type
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="type"></param>
|
||||||
|
void StartShutdown(eShutdownType type);
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Resets the vacancy mode and shuts down the room
|
||||||
|
/// </summary>
|
||||||
|
void Shutdown();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -228,6 +228,9 @@
|
|||||||
<Compile Include="Interfaces\Components\RoomComponents.cs" />
|
<Compile Include="Interfaces\Components\RoomComponents.cs" />
|
||||||
<Compile Include="Interfaces\ILogStrings.cs" />
|
<Compile Include="Interfaces\ILogStrings.cs" />
|
||||||
<Compile Include="Interfaces\ILogStringsWithLevel.cs" />
|
<Compile Include="Interfaces\ILogStringsWithLevel.cs" />
|
||||||
|
<Compile Include="Interfaces\Room\IHasMobileControl.cs" />
|
||||||
|
<Compile Include="Interfaces\Room\IHasRoomOccupancyStatusProvider.cs" />
|
||||||
|
<Compile Include="Interfaces\Room\IHasRoomOn.cs" />
|
||||||
<Compile Include="Queues\ComsMessage.cs" />
|
<Compile Include="Queues\ComsMessage.cs" />
|
||||||
<Compile Include="Queues\ProcessStringMessage.cs" />
|
<Compile Include="Queues\ProcessStringMessage.cs" />
|
||||||
<Compile Include="Queues\GenericQueue.cs" />
|
<Compile Include="Queues\GenericQueue.cs" />
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ namespace PepperDash.Essentials.Core
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
/// Starts the Shutdown process based on the type
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="type"></param>
|
/// <param name="type"></param>
|
||||||
public void StartShutdown(eShutdownType type)
|
public void StartShutdown(eShutdownType type)
|
||||||
|
|||||||
Reference in New Issue
Block a user