Files
DP44/Common/DTS.Common.Serialization/TSV/TSVTest.cs
2026-04-17 14:55:32 -04:00

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