105 lines
4.5 KiB
C#
105 lines
4.5 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace DTS.Serialization.TSV
|
|
{
|
|
public class TSVTest
|
|
{
|
|
public enum Fields
|
|
{
|
|
LabName,
|
|
POCName,
|
|
POCPhoneAndEmail,
|
|
TestDate,
|
|
TestTime,
|
|
TestNumber,
|
|
TestType,
|
|
TestObject,
|
|
DataType,
|
|
SensorMakeModelSerial,
|
|
SensorLocation,
|
|
SensorAxis,
|
|
SensorMountType,
|
|
EngineeringUnits,
|
|
ChannelErrors,
|
|
SamplingRate,
|
|
AAFilterCutoffDescription,
|
|
BitResolution,
|
|
DigitalFilterType,
|
|
Notes
|
|
}
|
|
|
|
private readonly Dictionary<Fields, string> _values = new Dictionary<Fields, string>();
|
|
public string GetValue(Fields field)
|
|
{
|
|
if (!_values.ContainsKey(field)) { _values.Add(field, "#NOVALUE"); }
|
|
return _values[field];
|
|
}
|
|
|
|
public void SetValue(Fields field, string value)
|
|
{
|
|
_values[field] = value;
|
|
foreach (var channel in _channels) { channel.SetValue(field, value); }
|
|
switch (field)
|
|
{
|
|
case Fields.POCName: Properties.Settings1.Default.TSVPOCNameLastUsed = value; Properties.Settings1.Default.Save(); break;
|
|
case Fields.POCPhoneAndEmail: Properties.Settings1.Default.TSVPOCPhoneAndEmailLastUsed = value; Properties.Settings1.Default.Save(); break;
|
|
case Fields.DataType: Properties.Settings1.Default.TSVDataTypeLastUsed = value; Properties.Settings1.Default.Save(); break;
|
|
case Fields.LabName: Properties.Settings1.Default.TSVLabNameLastUsed = value; Properties.Settings1.Default.Save(); break;
|
|
case Fields.TestObject: Properties.Settings1.Default.TSVTestObjectLastUsed = value; Properties.Settings1.Default.Save(); break;
|
|
case Fields.TestType: Properties.Settings1.Default.TSVTestTypeLastUsed = value; Properties.Settings1.Default.Save(); break;
|
|
}
|
|
}
|
|
private readonly List<TSVChannel> _channels = new List<TSVChannel>();
|
|
public TSVChannel[] Channels
|
|
{
|
|
get => _channels.ToArray();
|
|
set { _channels.Clear(); _channels.AddRange(value); }
|
|
}
|
|
public Test Test { get; }
|
|
public FilteredData[] DataFilteredEU { get; }
|
|
public FilteredData[] DataUnfilteredEU { get; }
|
|
public FilteredData[] DataADC { get; }
|
|
public double[] ActualRangesEUFiltered { get; }
|
|
public double[] ActualRangesEUUnfiltered { get; }
|
|
public double[] ActualRangesADC { get; }
|
|
|
|
public TSVTest(Test test,
|
|
FilteredData[] euFiltered,
|
|
FilteredData[] adc,
|
|
FilteredData[] euUnfiltered,
|
|
string path,
|
|
double[] actualRangesEUFiltered,
|
|
double[] actualRangesEUUnfiltered,
|
|
double[] actualRAngesADC)
|
|
{
|
|
Test = test;
|
|
|
|
DataUnfilteredEU = euUnfiltered;
|
|
DataFilteredEU = euFiltered;
|
|
DataADC = adc;
|
|
|
|
ActualRangesADC = actualRAngesADC;
|
|
ActualRangesEUUnfiltered = actualRangesEUUnfiltered;
|
|
ActualRangesEUFiltered = actualRangesEUFiltered;
|
|
|
|
for (var i = 0; i < test.Channels.Count && i < euUnfiltered.Length; i++)
|
|
{
|
|
_channels.Add(new TSVChannel(this, i, path));
|
|
}
|
|
SetValue(Fields.TestNumber, test.Id);
|
|
SetValue(Fields.TestDate, test.InceptionDate.ToShortDateString());
|
|
SetValue(Fields.TestTime, test.InceptionDate.ToShortTimeString());
|
|
|
|
SetValue(Fields.POCName, Properties.Settings1.Default.TSVPOCNameLastUsed);
|
|
SetValue(Fields.POCPhoneAndEmail, Properties.Settings1.Default.TSVPOCPhoneAndEmailLastUsed);
|
|
SetValue(Fields.DataType, Properties.Settings1.Default.TSVDataTypeLastUsed);
|
|
SetValue(Fields.LabName, Properties.Settings1.Default.TSVLabNameLastUsed);
|
|
SetValue(Fields.TestObject, Properties.Settings1.Default.TSVTestObjectLastUsed);
|
|
SetValue(Fields.TestType, Properties.Settings1.Default.TSVTestTypeLastUsed);
|
|
SetValue(Fields.SamplingRate, test.Modules.First().SampleRateHz.ToString());
|
|
SetValue(Fields.AAFilterCutoffDescription, string.Format("{0}hz multipole low pass butterworth", test.Modules.First().AaFilterRateHz.ToString()));
|
|
}
|
|
}
|
|
}
|