using System; using System.Xml; namespace DTS.DASLib.Service { /// /// Class for storing/applying Streaming output settings as a channel /// [Serializable] public class StreamInputDASChannel : InputDASChannel { /// /// CTOR to populate a channel's owning module and channel WRT that module. Calls /// base class CTOR. /// /// Module that contains this channel. /// ChannelNumber of this channel WRT owning module. public StreamInputDASChannel(DASModule owner, int channelNumber) : base(owner, channelNumber) { } public StreamInputDASChannel() { } /// /// Serial number of the sensor. /// public string SerialNumber { get; set; } /// /// The name of the hardware channel /// public string HardwareChannelName { get; set; } public string UDPAddress { get; set; } = string.Empty; /// /// If the channel has a serial number in the SerialNumber field, it is "Configured". /// public override bool IsConfigured() { return !string.IsNullOrEmpty(SerialNumber); } public override string ToString() { return $"Stream{ModuleChannelNumber}"; } public override void WriteXml(XmlWriter writer) { base.WriteXml(writer); // SerialNumber XMLHelper.PutString(writer, "SerialNumber", SerialNumber); XMLHelper.PutString(writer, "HardwareChannelName", HardwareChannelName); XMLHelper.PutString(writer, "UDPAddress", UDPAddress.ToString()); } private const string SERIALNUMBER_TAG = "SerialNumber"; private const string HARDWARECHANNELNAME_TAG = "HardwareChannelName"; private const string UDPADDRESS_TAG = "UDPAddress"; protected override void HandleElement(XmlReader reader) { base.HandleElement(reader); if (reader.NodeType == XmlNodeType.Element) { var value = string.Empty; switch (reader.Name) { case SERIALNUMBER_TAG: SerialNumber = XMLHelper.GetString(reader); break; case HARDWARECHANNELNAME_TAG: HardwareChannelName = XMLHelper.GetString(reader); break; case UDPADDRESS_TAG: UDPAddress = XMLHelper.GetString(reader); break; default: // let child handle it return; } } } } }