using System; using Crestron.SimplSharp; using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace PepperDash.Core { /// /// Represents a ControlPropertiesConfig /// public class ControlPropertiesConfig { /// /// The method of control /// [JsonProperty("method")] [JsonConverter(typeof(StringEnumConverter))] public eControlMethod Method { get; set; } /// /// The key of the device that contains the control port /// [JsonProperty("controlPortDevKey", NullValueHandling = NullValueHandling.Ignore)] public string ControlPortDevKey { get; set; } /// /// The number of the control port on the device specified by ControlPortDevKey /// [JsonProperty("controlPortNumber", NullValueHandling = NullValueHandling.Ignore)] // In case "null" is present in config on this value public uint? ControlPortNumber { get; set; } /// /// The name of the control port on the device specified by ControlPortDevKey /// [JsonProperty("controlPortName", NullValueHandling = NullValueHandling.Ignore)] // In case "null" is present in config on this value public string ControlPortName { get; set; } /// /// Properties for ethernet based communications /// [JsonProperty("tcpSshProperties", NullValueHandling = NullValueHandling.Ignore)] public TcpSshPropertiesConfig TcpSshProperties { get; set; } /// /// The filename and path for the IR file /// [JsonProperty("irFile", NullValueHandling = NullValueHandling.Ignore)] public string IrFile { get; set; } /// /// The IpId of a Crestron device /// [JsonProperty("ipId", NullValueHandling = NullValueHandling.Ignore)] public string IpId { get; set; } /// /// Readonly uint representation of the IpId /// [JsonIgnore] public uint IpIdInt { get { return Convert.ToUInt32(IpId, 16); } } /// /// Char indicating end of line /// [JsonProperty("endOfLineChar", NullValueHandling = NullValueHandling.Ignore)] public char EndOfLineChar { get; set; } /// /// Defaults to Environment.NewLine; /// [JsonProperty("endOfLineString", NullValueHandling = NullValueHandling.Ignore)] public string EndOfLineString { get; set; } /// /// Indicates /// [JsonProperty("deviceReadyResponsePattern", NullValueHandling = NullValueHandling.Ignore)] public string DeviceReadyResponsePattern { get; set; } /// /// Used when communcating to programs running in VC-4 /// [JsonProperty("roomId", NullValueHandling = NullValueHandling.Ignore)] public string RoomId { get; set; } /// /// Constructor /// public ControlPropertiesConfig() { } } }