using System;
using Newtonsoft.Json;
using PepperDash.Core;
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
namespace PepperDash.Essentials.AppServer.Messengers
{
///
/// Represents a IHumiditySensorMessenger
///
public class IHumiditySensorMessenger : MessengerBase
{
private readonly IHumiditySensor device;
public IHumiditySensorMessenger(string key, IHumiditySensor device, string messagePath)
: base(key, messagePath, device as IKeyName)
{
this.device = device;
}
protected override void RegisterActions()
{
base.RegisterActions();
AddAction("/fullStatus", (id, content) => SendFullStatus(id));
AddAction("/humidityStatus", (id, content) => SendFullStatus(id));
device.HumidityFeedback.OutputChange += new EventHandler((o, a) => SendFullStatus());
}
private void SendFullStatus(string id = null)
{
var state = new IHumiditySensorStateMessage
{
Humidity = string.Format("{0}%", device.HumidityFeedback.UShortValue)
};
PostStatusMessage(state, id);
}
}
///
/// Represents a IHumiditySensorStateMessage
///
public class IHumiditySensorStateMessage : DeviceStateMessageBase
{
///
/// Gets or sets the Humidity
///
[JsonProperty("humidity")]
public string Humidity { get; set; }
}
}