init
This commit is contained in:
@@ -0,0 +1,344 @@
|
||||
|
||||
/*
|
||||
* SliceRaw.File.cs
|
||||
*
|
||||
* Copyright © 2009
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using DTS.Common.Utilities.DotNetProgrammingConstructs;
|
||||
using DTS.Common.Utilities.Logging;
|
||||
using System.Linq;
|
||||
|
||||
namespace DTS.Serialization.SliceRaw
|
||||
{ ///
|
||||
/// <summary>
|
||||
/// Representation of a SliceRaw-type serialization.
|
||||
/// </summary>
|
||||
///
|
||||
public partial class File
|
||||
: Serialization.File, IReadable<Test>, IWritable<Test>
|
||||
{ ///
|
||||
/// <summary>
|
||||
/// Initialize an instance of the SliceRaw.File class.
|
||||
/// </summary>
|
||||
///
|
||||
public File()
|
||||
: base("Slice Raw")
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the file writer for this file type.
|
||||
/// </summary>
|
||||
public IWriter<Test> Exporter
|
||||
{
|
||||
get
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_Exporter == null)
|
||||
_Exporter = new Writer(this, DefaultEncoding);
|
||||
return _Exporter;
|
||||
}
|
||||
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception("encountered problem getting exporter", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
private IWriter<Test> _Exporter = null;
|
||||
|
||||
/// <summary>
|
||||
/// Get the file reader for this file type.
|
||||
/// </summary>
|
||||
public IReader<Test> Importer
|
||||
{
|
||||
get
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_Importer == null)
|
||||
_Importer = new Reader(this);
|
||||
return _Importer;
|
||||
}
|
||||
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception("encountered problem getting importer", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
private IReader<Test> _Importer = null;
|
||||
|
||||
/// <summary>
|
||||
/// File extension for the disk entity that contains the serialized test information.
|
||||
/// </summary>
|
||||
public static string TestFileExtension
|
||||
{
|
||||
get => _TestFileExtension.Value;
|
||||
private set => _TestFileExtension.Value = value;
|
||||
}
|
||||
private static readonly Property<string> _TestFileExtension = new Property<string>("TestFileExtension", ".dts", true);
|
||||
|
||||
/// <summary>
|
||||
/// File extension for the disk entity that contains serialized channel information.
|
||||
/// </summary>
|
||||
public static string ChannelFileExtension
|
||||
{
|
||||
get => _ChannelFileExtension.Value;
|
||||
private set => _ChannelFileExtension.Value = value;
|
||||
}
|
||||
private static readonly Property<string> _ChannelFileExtension = new Property<string>("ChannelFileExtension", ".chn", true);
|
||||
|
||||
/// <summary>
|
||||
/// File extension for the disk entity that contains serialized channel information.
|
||||
/// </summary>
|
||||
public static string CalculatedChannelFileExtension
|
||||
{
|
||||
get => _CalculatedChannelFileExtension.Value;
|
||||
private set => _CalculatedChannelFileExtension.Value = value;
|
||||
}
|
||||
private static readonly Property<string> _CalculatedChannelFileExtension = new Property<string>("CalculatedChannelFileExtension", ".cchn", true);
|
||||
|
||||
/// <summary>
|
||||
/// File extension for the disk entity that contains binary information.
|
||||
/// </summary>
|
||||
public static string BinaryFileExtension
|
||||
{
|
||||
get => _BinaryFileExtension.Value;
|
||||
private set => _BinaryFileExtension.Value = value;
|
||||
}
|
||||
private static readonly Property<string> _BinaryFileExtension = new Property<string>("BinaryFileExtension", ".bin", true);
|
||||
|
||||
/// <summary>
|
||||
/// File extension for the disk entity that contains NMEA information.
|
||||
/// </summary>
|
||||
public static string NMEAFileExtension
|
||||
{
|
||||
get => _NMEAFileExtension.Value;
|
||||
private set => _NMEAFileExtension.Value = value;
|
||||
}
|
||||
private static readonly Property<string> _NMEAFileExtension = new Property<string>("NMEAFileExtension", ".nmea", true);
|
||||
|
||||
/// <summary>
|
||||
/// File extension for the disk entity that contains plaintext information.
|
||||
/// </summary>
|
||||
public static string PlainTextFileExtension
|
||||
{
|
||||
get => _PlainTextFileExtension.Value;
|
||||
private set => _PlainTextFileExtension.Value = value;
|
||||
}
|
||||
private static readonly Property<string> _PlainTextFileExtension = new Property<string>("PlainTextFileExtension", ".txt", true);
|
||||
|
||||
/// <summary>
|
||||
/// File extension for the disk entity that contains module timestamp information.
|
||||
/// </summary>
|
||||
public static string DasTimestampFileExtension
|
||||
{
|
||||
get => _DasTimestampFileExtension.Value;
|
||||
private set => _DasTimestampFileExtension.Value = value;
|
||||
}
|
||||
private static readonly Property<string> _DasTimestampFileExtension = new Property<string>("DasTimestampFileExtension", ".bin", true);
|
||||
|
||||
/// <summary>
|
||||
/// The string that separates the channel numbers from the riffraff.
|
||||
/// </summary>
|
||||
public const string ChannelNumberDelimiter = ".";
|
||||
|
||||
public const string AbsoluteDisplayOrderDelimiter = "Ch";
|
||||
/// <summary>
|
||||
/// Extract the channel file number from the specified channel name string.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="testName">
|
||||
/// The test name <see cref="string"/> to be incorporated into the channel filename.
|
||||
/// </param>
|
||||
///
|
||||
/// <param name="channelNumber">
|
||||
/// The <see cref="int"/> channel number to be incorporated into the channel filename.
|
||||
/// </param>
|
||||
///
|
||||
/// <returns>
|
||||
/// A channel filename <see cref="string"/> that uniquely identifies test and channel
|
||||
/// that this channel informtion belongs to.
|
||||
/// </returns>
|
||||
///
|
||||
public string GetChannelFileNameFromTestNameAndChannelNumber(string testName, int channelNumber, int absoluteDisplayOrder)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(testName))
|
||||
throw new ArgumentException("cannot construct channel file name from null/empty test name string");
|
||||
else
|
||||
return string.Format("{0}{5}{1:000}{2}{3:000}{4}",
|
||||
testName, 1 + absoluteDisplayOrder, ChannelNumberDelimiter, channelNumber, ChannelFileExtension, AbsoluteDisplayOrderDelimiter);
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception("encountered problem getting channel file name from channel number \"" + channelNumber.ToString() + "\"", ex);
|
||||
}
|
||||
}
|
||||
|
||||
///
|
||||
public string GetCalculatedChannelFileNameFromTestNameAndChannelNumber(string testName, int channelNumber)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(testName))
|
||||
throw new ArgumentException("cannot construct channel file name from null/empty test name string");
|
||||
return testName + ChannelNumberDelimiter + channelNumber.ToString() + CalculatedChannelFileExtension;
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception("encountered problem getting channel file name from channel number \"" + channelNumber.ToString() + "\"", ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Extract the channel number from the specified channel filename.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="channelFileName">
|
||||
/// The channel filename <see cref="string"/> to be converted into a channel number.
|
||||
/// </param>
|
||||
///
|
||||
/// <returns>
|
||||
/// The <see cref="int"/> channel number represented by the specified file.
|
||||
/// </returns>
|
||||
///
|
||||
public override int GetChannelNumberFromChannelFileName(string channelFileName)
|
||||
{
|
||||
try
|
||||
{
|
||||
var indexOfExtension = channelFileName.LastIndexOf(ChannelFileExtension);
|
||||
if (!char.IsDigit(channelFileName[indexOfExtension - 1]))
|
||||
{
|
||||
//extension prefix detected, back up some more
|
||||
indexOfExtension = channelFileName.LastIndexOf(ChannelNumberDelimiter, indexOfExtension - 1);
|
||||
}
|
||||
var indexOfFirstChannelNumberCharacter = channelFileName.LastIndexOf(ChannelNumberDelimiter, indexOfExtension - 1) + 1;
|
||||
return int.Parse(channelFileName.Substring(indexOfFirstChannelNumberCharacter, indexOfExtension - indexOfFirstChannelNumberCharacter));
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception("encountered problem getting channel number from channel file name", ex);
|
||||
}
|
||||
}
|
||||
|
||||
///
|
||||
public string GetTimestampFileNameFromTestNameAndDASSerialNumber(string testName, string dasSerialNumber)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(testName))
|
||||
throw new ArgumentException("cannot construct das file name from null/empty test name string");
|
||||
else
|
||||
return string.Format("TS-{0}{2}{1}{3}",
|
||||
testName, dasSerialNumber, ChannelNumberDelimiter, DasTimestampFileExtension);
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception("encountered problem getting das file name from das serial number \"" + dasSerialNumber.ToString() + "\"", ex);
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadTestSetup(string testFileName, ref Test _test, ref TestSetup _testSetup)
|
||||
{
|
||||
ReadTestSetup(testFileName, out _test, out _testSetup, false);
|
||||
}
|
||||
public static void ReadTestSetup(string testFileName, out Test test, out TestSetup testSetup,
|
||||
bool justDTSFile)
|
||||
{
|
||||
var fi = new FileInfo(testFileName);
|
||||
var directory = fi.Directory.FullName;
|
||||
test = null;
|
||||
testSetup = null;
|
||||
|
||||
var f = new Serialization.SliceRaw.File();
|
||||
try
|
||||
{
|
||||
using (var reader = new StreamReader(testFileName))
|
||||
{
|
||||
var allText = reader.ReadToEnd();
|
||||
const string delimiter = "<?xml version=";
|
||||
var delimiterArray = new[] { delimiter };
|
||||
var allTextArray = allText.Split(delimiterArray, StringSplitOptions.RemoveEmptyEntries);
|
||||
var xmlCounter = 0;
|
||||
foreach (var fullstring in allTextArray)
|
||||
{
|
||||
var fullString = allTextArray[xmlCounter];
|
||||
xmlCounter++;
|
||||
if (!fullString.Contains("Test")) continue;
|
||||
fullString = delimiter + fullString;
|
||||
var sr = new StringReader(fullString);
|
||||
var tr = new System.Xml.XmlTextReader(sr);
|
||||
var xmlType = fullString.Substring(fullString.IndexOf('>') + 4, 5).TrimEnd();
|
||||
switch (xmlType)
|
||||
{
|
||||
case "Test":
|
||||
try
|
||||
{
|
||||
if (justDTSFile)
|
||||
{
|
||||
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
|
||||
doc.LoadXml(fullString);
|
||||
|
||||
var id = (doc.ChildNodes[1] as System.Xml.XmlElement).GetAttribute("Id");
|
||||
var desc =
|
||||
(doc.ChildNodes[1] as System.Xml.XmlElement).GetAttribute("Description");
|
||||
//FB 18312 Get the event number from xml if it's not in xaml calculate it from file name
|
||||
var eventNum = (doc.ChildNodes[1] as System.Xml.XmlElement).GetAttribute("EventNumber");
|
||||
if (!string.IsNullOrWhiteSpace(eventNum))
|
||||
{
|
||||
var eventNumber = Convert.ToInt32(eventNum);
|
||||
test = new Test(id, desc, eventNumber);
|
||||
}
|
||||
else
|
||||
{
|
||||
var fileName = fi.Name;
|
||||
var segments = fileName.Split('_');
|
||||
if (Array.Exists(segments, p => p.Contains(DTS.Common.Constants.EventNumber)))
|
||||
{
|
||||
var foundEvent = Array.Find(segments, p => p.Contains(DTS.Common.Constants.EventNumber));
|
||||
var eventNumber = Convert.ToInt32(foundEvent.Replace(DTS.Common.Constants.EventNumber, ""));
|
||||
test = new Test(id, desc, eventNumber);
|
||||
}
|
||||
else
|
||||
{
|
||||
test = new Test(id, desc, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
f.Importer.Read(directory, out test);
|
||||
}
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
APILogger.Log(ex);
|
||||
}
|
||||
break;
|
||||
case "TestS":
|
||||
testSetup = new TestSetup();
|
||||
var xs = new System.Xml.Serialization.XmlSerializer(testSetup.GetType());
|
||||
testSetup = (TestSetup)xs.Deserialize(tr);
|
||||
tr.Close();
|
||||
sr.Close();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
APILogger.Log("exception in read test setup", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
using DTS.Common.Utilities;
|
||||
using DTS.Common.Utilities.DotNetProgrammingConstructs;
|
||||
|
||||
namespace DTS.Serialization
|
||||
{
|
||||
//[Serializable]
|
||||
public partial class TestSetup : Exceptional
|
||||
{
|
||||
public partial class Graph : Exceptional
|
||||
{
|
||||
public partial class Channel : Exceptional
|
||||
{
|
||||
private Channel()
|
||||
{
|
||||
ChannelId = "Not Set";
|
||||
}
|
||||
|
||||
public Channel(Test.Module.Channel channel)
|
||||
{
|
||||
ParentTestModule = channel.ParentModule;
|
||||
TestChannel = channel;
|
||||
ChannelId = channel.ChannelId;
|
||||
ChannelGroupName = channel.ChannelGroupName;
|
||||
//TODO use unique key
|
||||
//Identifier = channel.HardwareChannelName;
|
||||
}
|
||||
|
||||
public Channel(string channelId)
|
||||
{
|
||||
ParentTestModule = null;
|
||||
TestChannel = null;
|
||||
|
||||
ChannelId = channelId;
|
||||
}
|
||||
|
||||
public Channel(long groupChannelId)
|
||||
{
|
||||
ParentTestModule = null;
|
||||
TestChannel = null;
|
||||
ChannelId = groupChannelId.ToString();
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
if (null != TestChannel)
|
||||
{
|
||||
return TestChannel.ToString();
|
||||
}
|
||||
return "Not Set";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// refers to a unique id for a logical channel in the test
|
||||
/// for now this is using TestObjectChannel.GetId()
|
||||
/// which is in the form of TestObjectSerial_ChannelType_ChannelId
|
||||
/// </summary>
|
||||
private readonly Property<string> _channelId
|
||||
= new Property<string>(typeof(Channel).Namespace + ".Channel.ChannelId", "", true);
|
||||
public string ChannelId
|
||||
{
|
||||
get => _channelId.Value;
|
||||
set => _channelId.Value = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// refers to the Group name for a logical channel in the test
|
||||
/// </summary>
|
||||
private readonly Property<string> _channelGroupName
|
||||
= new Property<string>(typeof(Channel).Namespace + ".Channel.ChannelGroupName", "", true);
|
||||
public string ChannelGroupName
|
||||
{
|
||||
get => _channelGroupName.Value;
|
||||
set => _channelGroupName.Value = value;
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
if (null != TestChannel)
|
||||
{
|
||||
return TestChannel.ChannelDescriptionString;
|
||||
}
|
||||
return "Not Set";
|
||||
}
|
||||
}
|
||||
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute]
|
||||
public string SensorName
|
||||
{
|
||||
get
|
||||
{
|
||||
if (null != TestChannel)
|
||||
{
|
||||
return TestChannel.ChannelDescriptionString.ToString();
|
||||
}
|
||||
return "Not Set";
|
||||
}
|
||||
}
|
||||
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute]
|
||||
public string AxisUnit
|
||||
{
|
||||
get
|
||||
{
|
||||
if (null != TestChannel)
|
||||
{
|
||||
if (TestChannel is Test.Module.AnalogInputChannel)
|
||||
{
|
||||
return (TestChannel as Test.Module.AnalogInputChannel).EngineeringUnits;
|
||||
}
|
||||
return "EU";
|
||||
}
|
||||
return "EU";
|
||||
}
|
||||
}
|
||||
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute]
|
||||
public string SerialNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
if (null != TestChannel)
|
||||
{
|
||||
return ParentTestModule.SerialNumber;
|
||||
}
|
||||
return "Not Set";
|
||||
}
|
||||
}
|
||||
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute]
|
||||
public Test.Module ParentTestModule;
|
||||
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute]
|
||||
public Test.Module.Channel TestChannel;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,181 @@
|
||||
/*
|
||||
DTS.Slice.Control.IntervalSec.cs
|
||||
|
||||
Copyright © 2008
|
||||
Diversified Technical Systems, Inc.
|
||||
All Rights Reserved
|
||||
*/
|
||||
|
||||
using DTS.Common.Utilities;
|
||||
using DTS.Common.Utilities.DotNetProgrammingConstructs;
|
||||
|
||||
namespace DTS.Slice.Control
|
||||
{
|
||||
/// <summary>
|
||||
/// Get/set the begin value.
|
||||
/// </summary>
|
||||
public class IntervalSec : Exceptional
|
||||
{
|
||||
/// <summary>
|
||||
/// Create an instance of the IntervalSec class.
|
||||
/// </summary>
|
||||
public IntervalSec()
|
||||
{ //
|
||||
// Note that calling the parameterless constructor will leave the begin and
|
||||
// end properties "uninitialized".
|
||||
} //
|
||||
|
||||
/// <summary>
|
||||
/// Create an instance of the IntervalSec class.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="begin">
|
||||
/// The <see cref="double"/> begin time of this interval.
|
||||
/// </param>
|
||||
///
|
||||
/// <param name="end">
|
||||
/// The <see cref="double"/> end time of this interval.
|
||||
/// </param>
|
||||
///
|
||||
public IntervalSec(double begin, double end)
|
||||
{
|
||||
try
|
||||
{
|
||||
Begin = begin;
|
||||
End = end;
|
||||
}
|
||||
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception(
|
||||
"encountered problem constructing " + GetType().FullName, ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get/set the <see cref="double"/> begin time of the interval.
|
||||
/// </summary>
|
||||
public double Begin
|
||||
{
|
||||
get => _Begin.Value;
|
||||
set => _Begin.Value = value;
|
||||
}
|
||||
private readonly Property<double> _Begin
|
||||
= new Property<double>(
|
||||
typeof(IntervalSec).Namespace + ".IntervalSec.Begin", 0, false);
|
||||
|
||||
/// <summary>
|
||||
/// Get/set the <see cref="double"/> end time of the interval.
|
||||
/// </summary>
|
||||
public double End
|
||||
{
|
||||
get => _End.Value;
|
||||
set => _End.Value = value;
|
||||
}
|
||||
private readonly Property<double> _End
|
||||
= new Property<double>(
|
||||
typeof(IntervalSec).Namespace + ".IntervalSec.End", 0, false);
|
||||
|
||||
/// <summary>
|
||||
/// Method to implicitly convert this type into a DTS.Serialization.Test.IntervalSec.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="thisInterval">
|
||||
/// The <see cref="DTS.Slice.Control.IntervalSec"/> to be converted.
|
||||
/// </param>
|
||||
///
|
||||
/// <returns>
|
||||
/// A <see cref="DTS.Serialization.Test.IntervalSec"/> equivalent to the speceified interval
|
||||
/// object.
|
||||
/// </returns>
|
||||
///
|
||||
public static implicit operator Serialization.Test.IntervalSec(IntervalSec thisInterval)
|
||||
{
|
||||
try
|
||||
{
|
||||
return new Serialization.Test.IntervalSec(thisInterval.Begin, thisInterval.End);
|
||||
}
|
||||
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception("encountered problem implicitly converting " + typeof(IntervalSec).FullName + " to " + typeof(Serialization.Test.IntervalSec).FullName, ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method to implicitly convert a DTS.Serialization.Test.IntervalSec object into this type.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="thatInterval">
|
||||
/// The <see cref="DTS.Serialization.Test.IntervalSec"/> to be converted.
|
||||
/// </param>
|
||||
///
|
||||
/// <returns>
|
||||
/// A <see cref="DTS.Slice.Control.IntervalSec"/> equivalent to the specified interval
|
||||
/// object.
|
||||
/// </returns>
|
||||
///
|
||||
public static implicit operator IntervalSec(Serialization.Test.IntervalSec thatInterval)
|
||||
{
|
||||
try
|
||||
{
|
||||
return new IntervalSec(thatInterval.Begin, thatInterval.End);
|
||||
}
|
||||
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception("encountered problem implicitly converting " + typeof(Serialization.Test.IntervalSec).FullName + " to " + typeof(IntervalSec).FullName, ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test the specified object for equality with this object.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="obj">
|
||||
/// The <see cref="object"/> to be tested for equality.
|
||||
/// </param>
|
||||
///
|
||||
/// <returns>
|
||||
/// <see cref="bool"/> true if the specified object has memeberwise equality with
|
||||
/// this object; false otherwise.
|
||||
/// </returns>
|
||||
///
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
try
|
||||
{
|
||||
var that = obj as IntervalSec;
|
||||
return null != obj
|
||||
&& Begin.Equals(that.Begin)
|
||||
&& End.Equals(that.End);
|
||||
}
|
||||
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception("encountered problem equality-testing the object " + (null != obj ? "\"" + obj.ToString() + "\"" : "<<NULL>>"), ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get has code for this object.
|
||||
/// </summary>
|
||||
///
|
||||
/// <returns>
|
||||
/// The <see cref="int"/> hash code for this object.
|
||||
/// </returns>
|
||||
///
|
||||
public override int GetHashCode()
|
||||
{
|
||||
try
|
||||
{
|
||||
return base.GetHashCode();
|
||||
}
|
||||
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception("encountered problem generating hash code for " + GetType().FullName, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,282 @@
|
||||
using System.Collections.Generic;
|
||||
using DTS.Common.Utilities;
|
||||
using DTS.Common.Utilities.DotNetProgrammingConstructs;
|
||||
|
||||
namespace DTS.Serialization
|
||||
{
|
||||
public partial class TestSetup : Exceptional
|
||||
{
|
||||
public partial class TestObject : Exceptional
|
||||
{
|
||||
public TestObject()
|
||||
{
|
||||
_BarrierHeight.Value = null;
|
||||
_BarrierWidth.Value = null;
|
||||
_ClassOfTestObject.Value = null;
|
||||
_CodeOfTestObject.Value = null;
|
||||
_Comment1.Value = null;
|
||||
_Comment2.Value = null;
|
||||
_Comment3.Value = null;
|
||||
_DriverPositionObject.Value = null;
|
||||
_ExcitationWarmupMS.Value = null;
|
||||
_ImpactSideTestObject.Value = null;
|
||||
_Location.Value = null;
|
||||
_MassOfTestObject.Value = null;
|
||||
_NameOfTestObject.Value = null;
|
||||
_NumberOfLoadCells.Value = null;
|
||||
_Offset.Value = null;
|
||||
_OriginX.Value = null;
|
||||
_OriginY.Value = null;
|
||||
_OriginZ.Value = null;
|
||||
_ReferenceSystem.Value = null;
|
||||
_RefNumberOfTestObject.Value = null;
|
||||
_SerialNumber.Value = null;
|
||||
_TargetSampleRate.Value = null;
|
||||
//_TypeOfTestObject.Value = null;
|
||||
_Velocity.Value = null;
|
||||
_VelocityMeasurementUnit.Value = null;
|
||||
_Version.Value = "1.0.0.0";
|
||||
_YawAngle.Value = null;
|
||||
}
|
||||
|
||||
public string BarrierHeight
|
||||
{
|
||||
get => _BarrierHeight.Value;
|
||||
set => _BarrierHeight.Value = value;
|
||||
}
|
||||
private readonly Property<string> _BarrierHeight
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.BarrierHeight", "", false);
|
||||
|
||||
public string BarrierWidth
|
||||
{
|
||||
get => _BarrierWidth.Value;
|
||||
set => _BarrierWidth.Value = value;
|
||||
}
|
||||
private readonly Property<string> _BarrierWidth
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.BarrierWidth", "", false);
|
||||
|
||||
public List<TOChannel> Channels
|
||||
{
|
||||
get => _Channels.Value;
|
||||
set => _Channels.Value = value;
|
||||
}
|
||||
private readonly Property<List<TOChannel>> _Channels
|
||||
= new Property<List<TOChannel>>(typeof(TestObject).Namespace + "TestObject.Channels", new List<TOChannel>(), true);
|
||||
|
||||
public string ClassOfTestObject
|
||||
{
|
||||
get => _ClassOfTestObject.Value;
|
||||
set => _ClassOfTestObject.Value = value;
|
||||
}
|
||||
private readonly Property<string> _ClassOfTestObject
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.ClassOfTestObject", "", false);
|
||||
|
||||
public string CodeOfTestObject
|
||||
{
|
||||
get => _CodeOfTestObject.Value;
|
||||
set => _CodeOfTestObject.Value = value;
|
||||
}
|
||||
private readonly Property<string> _CodeOfTestObject
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.CodeOfTestObject", "", false);
|
||||
|
||||
public string Comment1
|
||||
{
|
||||
get => _Comment1.Value;
|
||||
set => _Comment1.Value = value;
|
||||
}
|
||||
private readonly Property<string> _Comment1
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.Comment1", "", false);
|
||||
|
||||
public string Comment2
|
||||
{
|
||||
get => _Comment2.Value;
|
||||
set => _Comment2.Value = value;
|
||||
}
|
||||
private readonly Property<string> _Comment2
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.Comment2", "", false);
|
||||
|
||||
public string Comment3
|
||||
{
|
||||
get => _Comment3.Value;
|
||||
set => _Comment3.Value = value;
|
||||
}
|
||||
private readonly Property<string> _Comment3
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.Comment3", "", false);
|
||||
|
||||
public List<DASHardware> DASHardwares
|
||||
{
|
||||
get => _DASHardwares.Value;
|
||||
set => _DASHardwares.Value = value;
|
||||
}
|
||||
private readonly Property<List<DASHardware>> _DASHardwares
|
||||
= new Property<List<DASHardware>>(typeof(TestObject).Namespace + "TestObject.DASHardwares", new List<DASHardware>(), true);
|
||||
|
||||
public string DriverPositionObject
|
||||
{
|
||||
get => _DriverPositionObject.Value;
|
||||
set => _DriverPositionObject.Value = value;
|
||||
}
|
||||
private readonly Property<string> _DriverPositionObject
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.DriverPositionObject", "", false);
|
||||
|
||||
public string ExcitationWarmupMS
|
||||
{
|
||||
get => _ExcitationWarmupMS.Value;
|
||||
set => _ExcitationWarmupMS.Value = value;
|
||||
}
|
||||
private readonly Property<string> _ExcitationWarmupMS
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.ExcitationWarmupMS", "", false);
|
||||
|
||||
public List<ExtraProperty> ExtraProperties
|
||||
{
|
||||
get => _extraProperties.Value;
|
||||
set => _extraProperties.Value = value;
|
||||
}
|
||||
private readonly Property<List<ExtraProperty>> _extraProperties
|
||||
= new Property<List<ExtraProperty>>(typeof(TestObject).Namespace + ".TestObject.ExtraProperties", new List<ExtraProperty>(), true);
|
||||
|
||||
public string ImpactSideTestObject
|
||||
{
|
||||
get => _ImpactSideTestObject.Value;
|
||||
set => _ImpactSideTestObject.Value = value;
|
||||
}
|
||||
private readonly Property<string> _ImpactSideTestObject
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.ImpactSideTestObject", "", false);
|
||||
|
||||
public string Location
|
||||
{
|
||||
get => _Location.Value;
|
||||
set => _Location.Value = value;
|
||||
}
|
||||
private readonly Property<string> _Location
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.Location", "", false);
|
||||
|
||||
public string MassOfTestObject
|
||||
{
|
||||
get => _MassOfTestObject.Value;
|
||||
set => _MassOfTestObject.Value = value;
|
||||
}
|
||||
private readonly Property<string> _MassOfTestObject
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.MassOfTestObject", "", false);
|
||||
|
||||
public string NameOfTestObject
|
||||
{
|
||||
get => _NameOfTestObject.Value;
|
||||
set => _NameOfTestObject.Value = value;
|
||||
}
|
||||
private readonly Property<string> _NameOfTestObject
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.NameOfTestObject", "", false);
|
||||
|
||||
public string NumberOfLoadCells
|
||||
{
|
||||
get => _NumberOfLoadCells.Value;
|
||||
set => _NumberOfLoadCells.Value = value;
|
||||
}
|
||||
private readonly Property<string> _NumberOfLoadCells
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.NumberOfLoadCells", "", false);
|
||||
|
||||
public string Offset
|
||||
{
|
||||
get => _Offset.Value;
|
||||
set => _Offset.Value = value;
|
||||
}
|
||||
private readonly Property<string> _Offset
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.Offset", "", false);
|
||||
|
||||
public string OriginX
|
||||
{
|
||||
get => _OriginX.Value;
|
||||
set => _OriginX.Value = value;
|
||||
}
|
||||
private readonly Property<string> _OriginX
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.OriginX", "", false);
|
||||
|
||||
public string OriginY
|
||||
{
|
||||
get => _OriginY.Value;
|
||||
set => _OriginY.Value = value;
|
||||
}
|
||||
private readonly Property<string> _OriginY
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.OriginY", "", false);
|
||||
|
||||
public string OriginZ
|
||||
{
|
||||
get => _OriginZ.Value;
|
||||
set => _OriginZ.Value = value;
|
||||
}
|
||||
private readonly Property<string> _OriginZ
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.OriginZ", "", false);
|
||||
|
||||
public string ReferenceSystem
|
||||
{
|
||||
get => _ReferenceSystem.Value;
|
||||
set => _ReferenceSystem.Value = value;
|
||||
}
|
||||
private readonly Property<string> _ReferenceSystem
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.ReferenceSystem", "", false);
|
||||
|
||||
public string RefNumberOfTestObject
|
||||
{
|
||||
get => _RefNumberOfTestObject.Value;
|
||||
set => _RefNumberOfTestObject.Value = value;
|
||||
}
|
||||
private readonly Property<string> _RefNumberOfTestObject
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.RefNumberOfTestObject", "", false);
|
||||
|
||||
public string SerialNumber
|
||||
{
|
||||
get => _SerialNumber.Value;
|
||||
set => _SerialNumber.Value = value;
|
||||
}
|
||||
private readonly Property<string> _SerialNumber
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.SerialNumber", "", false);
|
||||
|
||||
public string TargetSampleRate
|
||||
{
|
||||
get => _TargetSampleRate.Value;
|
||||
set => _TargetSampleRate.Value = value;
|
||||
}
|
||||
private readonly Property<string> _TargetSampleRate
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.TargetSampleRate", "", false);
|
||||
|
||||
//public string TypeOfTestObject
|
||||
//{
|
||||
// get { return _TypeOfTestObject.Value; }
|
||||
// set { _TypeOfTestObject.Value = value; }
|
||||
//}
|
||||
//private Property<string> _TypeOfTestObject
|
||||
// = new Property<string>(typeof(TestObject).Namespace + ".TestObject.TypeOfTestObject", "", false);
|
||||
public string Velocity
|
||||
{
|
||||
get => _Velocity.Value;
|
||||
set => _Velocity.Value = value;
|
||||
}
|
||||
private readonly Property<string> _Velocity
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.Velocity", "", false);
|
||||
|
||||
public string VelocityMeasurementUnit
|
||||
{
|
||||
get => _VelocityMeasurementUnit.Value;
|
||||
set => _VelocityMeasurementUnit.Value = value;
|
||||
}
|
||||
private readonly Property<string> _VelocityMeasurementUnit
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.VelocityMeasurementUnit", "", false);
|
||||
|
||||
public string Version
|
||||
{
|
||||
get => _Version.Value;
|
||||
set => _Version.Value = value;
|
||||
}
|
||||
private readonly Property<string> _Version
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.Version", "", false);
|
||||
|
||||
public string YawAngle
|
||||
{
|
||||
get => _YawAngle.Value;
|
||||
set => _YawAngle.Value = value;
|
||||
}
|
||||
private readonly Property<string> _YawAngle
|
||||
= new Property<string>(typeof(TestObject).Namespace + ".TestObject.YawAngle", "", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user