123 lines
4.7 KiB
Plaintext
123 lines
4.7 KiB
Plaintext
using System;
|
|
using DTS.Common.Enums.DASFactory;
|
|
using System.Xml;
|
|
using System.IO.Ports;
|
|
using DTS.Common.Enums;
|
|
using DTS.Common.Utilities.Logging;
|
|
|
|
namespace DTS.DASLib.Service
|
|
{
|
|
/// <summary>
|
|
/// Class for storing/applying CAN settings as a channel
|
|
/// </summary>
|
|
[Serializable]
|
|
public class CANInputDASChannel : InputDASChannel
|
|
{
|
|
/// <summary>
|
|
/// CTOR to populate a channel's owning module and channel WRT that module. Calls
|
|
/// base class CTOR.
|
|
/// </summary>
|
|
/// <param name="owner">Module that contains this channel.</param>
|
|
/// <param name="channelNumber">ChannelNumber of this channel WRT owning module.</param>
|
|
public CANInputDASChannel(DASModule owner, int channelNumber)
|
|
: base(owner, channelNumber)
|
|
{
|
|
SerialNumber = owner.SerialNumber();
|
|
}
|
|
|
|
public CANInputDASChannel()
|
|
{
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Serial number of the sensor.
|
|
/// </summary>
|
|
public string SerialNumber { get; set; }
|
|
|
|
/// <summary>
|
|
/// The name of the hardware channel
|
|
/// </summary>
|
|
public string HardwareChannelName { get; set; }
|
|
|
|
public bool IsFD { get; set; }
|
|
public int ArbBaseBitrate { get; set; }
|
|
public int ArbBaseSJW { get; set; }
|
|
public int DataBitrate { get; set; }
|
|
public int DataSJW { get; set; }
|
|
public string FileType { get; set; }
|
|
|
|
/// <summary>
|
|
/// If the channel has a serial number in the SerialNumber field, it is "Configured".
|
|
/// </summary>
|
|
public override bool IsConfigured()
|
|
{
|
|
return !string.IsNullOrEmpty(SerialNumber);
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"CAN{ModuleChannelNumber}";
|
|
}
|
|
public override void WriteXml(XmlWriter writer)
|
|
{
|
|
base.WriteXml(writer);
|
|
|
|
// SerialNumber
|
|
XMLHelper.PutString(writer, "SerialNumber", SerialNumber);
|
|
XMLHelper.PutString(writer, "HardwareChannelName", HardwareChannelName);
|
|
XMLHelper.PutString(writer, "IsFD", IsFD.ToString());
|
|
XMLHelper.PutString(writer, "ArbBaseBitrate", ArbBaseBitrate.ToString());
|
|
XMLHelper.PutString(writer, "ArbBaseSJW", ArbBaseSJW.ToString());
|
|
XMLHelper.PutString(writer, "DataBitrate", DataBitrate.ToString());
|
|
XMLHelper.PutString(writer, "DataSJW", DataSJW.ToString());
|
|
XMLHelper.PutString(writer, "FileType", FileType);
|
|
}
|
|
private const string SERIALNUMBER_TAG = "SerialNumber";
|
|
private const string HARDWARECHANNELNAME_TAG = "HardwareChannelName";
|
|
private const string ISFD_TAG = "IsFD";
|
|
private const string ARBBASEBITRATE_TAG = "ArbBaseBitrate";
|
|
private const string ARBBASESJW_TAG = "ArbBaseSJW";
|
|
private const string DATABITRATE_TAG = "DataBitrate";
|
|
private const string DATASJW_TAG = "DataSJW";
|
|
private const string FILETYPE_TAG = "FileType";
|
|
protected override void HandleElement(XmlReader reader)
|
|
{
|
|
base.HandleElement(reader);
|
|
if (reader.NodeType == XmlNodeType.Element)
|
|
{
|
|
switch (reader.Name)
|
|
{
|
|
case SERIALNUMBER_TAG:
|
|
SerialNumber = XMLHelper.GetString(reader);
|
|
break;
|
|
case HARDWARECHANNELNAME_TAG:
|
|
HardwareChannelName = XMLHelper.GetString(reader);
|
|
break;
|
|
case ISFD_TAG:
|
|
IsFD = Convert.ToBoolean(XMLHelper.GetString(reader));
|
|
break;
|
|
case ARBBASEBITRATE_TAG:
|
|
ArbBaseBitrate = Convert.ToInt32(XMLHelper.GetString(reader));
|
|
break;
|
|
case ARBBASESJW_TAG:
|
|
ArbBaseSJW = Convert.ToInt32(XMLHelper.GetString(reader));
|
|
break;
|
|
case DATABITRATE_TAG:
|
|
DataBitrate = Convert.ToInt32(XMLHelper.GetString(reader));
|
|
break;
|
|
case DATASJW_TAG:
|
|
DataSJW = Convert.ToInt32(XMLHelper.GetString(reader));
|
|
break;
|
|
case FILETYPE_TAG:
|
|
FileType = XMLHelper.GetString(reader);
|
|
break;
|
|
default:
|
|
// let child handle it
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|