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.Devices.Common.Occupancy { /// /// Aggregates the RoomIsOccupied feedbacks of one or more IOccupancyStatusProvider objects /// public class IOccupancyStatusProviderAggregator : Device, IOccupancyStatusProvider { /// /// Aggregated feedback of all linked IOccupancyStatusProvider devices /// public BoolFeedback RoomIsOccupiedFeedback { get { return AggregatedOccupancyStatus.Output; } } private BoolFeedbackOr AggregatedOccupancyStatus; public IOccupancyStatusProviderAggregator(string key, string name) : base(key, name) { AggregatedOccupancyStatus = new BoolFeedbackOr(); } /// /// Adds an IOccupancyStatusProvider device /// /// public void AddOccupancyStatusProvider(IOccupancyStatusProvider statusProvider) { AggregatedOccupancyStatus.AddOutputIn(statusProvider.RoomIsOccupiedFeedback); } } }