75 lines
2.9 KiB
Plaintext
75 lines
2.9 KiB
Plaintext
|
|
using DTS.Common.Classes;
|
||
|
|
using DTS.Common.Enums.Sensors;
|
||
|
|
using DTS.Common.Import.Interfaces;
|
||
|
|
using Microsoft.VisualBasic.FileIO;
|
||
|
|
|
||
|
|
namespace DTS.Common.Import.Parsers.CSV
|
||
|
|
{
|
||
|
|
public class Version6CSVTestParser : IParseCSVTest
|
||
|
|
{
|
||
|
|
public int Version => 6;
|
||
|
|
public void ParseVersion(TextFieldParser parser, TestSetupImportData tsid)
|
||
|
|
{
|
||
|
|
var foundHeader = false;
|
||
|
|
string[] tokens = null;
|
||
|
|
while (!foundHeader && !parser.EndOfData)
|
||
|
|
{
|
||
|
|
tokens = parser.ReadFields();
|
||
|
|
if (null == tokens) { return; }
|
||
|
|
if (0 == tokens.Length || string.IsNullOrEmpty(tokens[0])) { continue; }
|
||
|
|
var field = CSVImportTags.GetTagForString(tokens[0]);
|
||
|
|
var version = CSVImportTags.GetVersionForTag(field);
|
||
|
|
if (version != 6) { return; } //no version 5 tokens in here ...
|
||
|
|
foundHeader = true;
|
||
|
|
}
|
||
|
|
|
||
|
|
while (!parser.EndOfData)
|
||
|
|
{
|
||
|
|
var tokens2 = parser.ReadFields();
|
||
|
|
if (null == tokens2 || 0 == tokens2.Length || string.IsNullOrWhiteSpace(tokens2[1]))
|
||
|
|
{
|
||
|
|
//we found a new line, we are done with this table
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
var dasSerial = string.Empty;
|
||
|
|
for (var i = 0; i < tokens.Length && i < tokens2.Length; i++)
|
||
|
|
{
|
||
|
|
var field = CSVImportTags.GetTagForString(tokens[i]);
|
||
|
|
var val = tokens2[i];
|
||
|
|
|
||
|
|
switch (field)
|
||
|
|
{
|
||
|
|
case CSVImportTags.Tags.DASSerial:
|
||
|
|
dasSerial = val;
|
||
|
|
break;
|
||
|
|
case CSVImportTags.Tags.DASSampleRate:
|
||
|
|
{
|
||
|
|
if (int.TryParse(val, out var iTemp))
|
||
|
|
{
|
||
|
|
tsid.SampleRateForDAS[dasSerial] = iTemp;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
case CSVImportTags.Tags.PTPDomainId:
|
||
|
|
{
|
||
|
|
if (uint.TryParse(val, out var iTemp))
|
||
|
|
{
|
||
|
|
tsid.DomainIdForDAS[dasSerial] = iTemp;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
case CSVImportTags.Tags.ClockMaster:
|
||
|
|
{
|
||
|
|
if (bool.TryParse(val, out var bTemp))
|
||
|
|
{
|
||
|
|
tsid.IsClockMaster[dasSerial] = bTemp;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|