mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-02 06:14:52 +00:00
97 lines
3.0 KiB
C#
97 lines
3.0 KiB
C#
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using PepperDash.Essentials.Core;
|
|
using PepperDash.Essentials.Devices.Common.Displays;
|
|
|
|
namespace PepperDash.Essentials.AppServer.Messengers
|
|
{
|
|
public class TwoWayDisplayBaseMessenger : MessengerBase
|
|
{
|
|
private readonly TwoWayDisplayBase _display;
|
|
|
|
public TwoWayDisplayBaseMessenger(string key, string messagePath) : base(key, messagePath)
|
|
{
|
|
}
|
|
|
|
public TwoWayDisplayBaseMessenger(string key, string messagePath, TwoWayDisplayBase display)
|
|
: this(key, messagePath)
|
|
{
|
|
_display = display;
|
|
}
|
|
|
|
#region Overrides of MessengerBase
|
|
|
|
public void SendFullStatus()
|
|
{
|
|
var messageObj = new TwoWayDisplayBaseStateMessage
|
|
{
|
|
//PowerState = _display.PowerIsOnFeedback.BoolValue,
|
|
CurrentInput = _display.CurrentInputFeedback.StringValue
|
|
};
|
|
|
|
PostStatusMessage(messageObj);
|
|
}
|
|
|
|
protected override void RegisterActions()
|
|
{
|
|
base.RegisterActions();
|
|
|
|
AddAction("/fullStatus", (id, content) => SendFullStatus());
|
|
|
|
//_display.PowerIsOnFeedback.OutputChange += PowerIsOnFeedbackOnOutputChange;
|
|
_display.CurrentInputFeedback.OutputChange += CurrentInputFeedbackOnOutputChange;
|
|
_display.IsCoolingDownFeedback.OutputChange += IsCoolingFeedbackOnOutputChange;
|
|
_display.IsWarmingUpFeedback.OutputChange += IsWarmingFeedbackOnOutputChange;
|
|
}
|
|
|
|
private void CurrentInputFeedbackOnOutputChange(object sender, FeedbackEventArgs feedbackEventArgs)
|
|
{
|
|
PostStatusMessage(JToken.FromObject(new
|
|
{
|
|
currentInput = feedbackEventArgs.StringValue
|
|
})
|
|
);
|
|
}
|
|
|
|
|
|
//private void PowerIsOnFeedbackOnOutputChange(object sender, FeedbackEventArgs feedbackEventArgs)
|
|
//{
|
|
// PostStatusMessage(JToken.FromObject(new
|
|
// {
|
|
// powerState = feedbackEventArgs.BoolValue
|
|
// })
|
|
// );
|
|
//}
|
|
|
|
private void IsWarmingFeedbackOnOutputChange(object sender, FeedbackEventArgs feedbackEventArgs)
|
|
{
|
|
PostStatusMessage(JToken.FromObject(new
|
|
{
|
|
isWarming = feedbackEventArgs.BoolValue
|
|
})
|
|
);
|
|
}
|
|
|
|
private void IsCoolingFeedbackOnOutputChange(object sender, FeedbackEventArgs feedbackEventArgs)
|
|
{
|
|
PostStatusMessage(JToken.FromObject(new
|
|
{
|
|
isCooling = feedbackEventArgs.BoolValue
|
|
})
|
|
);
|
|
|
|
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
|
|
public class TwoWayDisplayBaseStateMessage : DeviceStateMessageBase
|
|
{
|
|
//[JsonProperty("powerState", NullValueHandling = NullValueHandling.Ignore)]
|
|
//public bool? PowerState { get; set; }
|
|
|
|
[JsonProperty("currentInput", NullValueHandling = NullValueHandling.Ignore)]
|
|
public string CurrentInput { get; set; }
|
|
}
|
|
} |