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;
}
}
}
}
}