using DTS.Common.Classes.Sensors; using DTS.Common.Enums; using DTS.Common.Enums.Sensors; using System; using System.IO.Ports; namespace DTS.Common.Import.Parsers.CSV { public class Version4CSVSensorParser : AbstractCSVParser { public override int Version => 4; public override void ParseVersion(CSVImportTags.Tags field, string sVal, ParseParameters pp) { switch (field) { case CSVImportTags.Tags.DASSerialNumber: pp.SensorDASSerialNumber[pp.SensorData.SerialNumber] = sVal; break; case CSVImportTags.Tags.DASChannelIndex: { if (int.TryParse(sVal, out var iTemp)) { pp.SensorDASChannelIndex[pp.SensorData.SerialNumber] = iTemp; } } break; case CSVImportTags.Tags.StreamProfile: if (Enum.TryParse(sVal, out UDPStreamProfile profile)) { pp.SensorData.StreamOutUDPProfile = profile; } break; case CSVImportTags.Tags.UDPAddress: pp.SensorData.StreamInUDPAddress = sVal; pp.SensorData.StreamOutUDPAddress = sVal; break; case CSVImportTags.Tags.TimeChannelId: { if (ushort.TryParse(sVal, out var uTemp)) { pp.SensorData.StreamOutUDPTimeChannelId = uTemp; } } break; case CSVImportTags.Tags.DataChannelId: { if (ushort.TryParse(sVal, out var uTemp)) { pp.SensorData.StreamOutUDPDataChannelId = uTemp; } } break; case CSVImportTags.Tags.TmNSConfig: pp.SensorData.StreamOutUDPTmNSConfig = sVal; break; case CSVImportTags.Tags.IRIGTimeDataPacketIntervalMS: { if (ushort.TryParse(sVal, out var uTemp)) { pp.SensorData.StreamOutIRIGTimeDataPacketIntervalMs = uTemp; } } break; case CSVImportTags.Tags.TMATSIntervalMS: { if (ushort.TryParse(sVal, out var uTemp)) { pp.SensorData.StreamOutTMATSIntervalMs = uTemp; } } break; case CSVImportTags.Tags.BaudRate: { if (uint.TryParse(sVal, out var iTemp)) { pp.SensorData.UartBaudRate = iTemp; } } break; case CSVImportTags.Tags.DataBits: { if (uint.TryParse(sVal, out var iTemp)) { pp.SensorData.UartDataBits = iTemp; } } break; case CSVImportTags.Tags.StopBits: { if (Enum.TryParse(sVal, out StopBits stopBits)) { pp.SensorData.UartStopBits = stopBits; } } break; case CSVImportTags.Tags.Parity: { if (Enum.TryParse(sVal, out Parity parity)) { pp.SensorData.UartParity = parity; } } break; case CSVImportTags.Tags.DataFormat: { if (Enum.TryParse(sVal, out UartDataFormat dataFormat)) { pp.SensorData.UartDataFormat = dataFormat; } } break; case CSVImportTags.Tags.TestUserCode: pp.SensorUserCode[pp.SensorData.SerialNumber] = sVal; break; case CSVImportTags.Tags.TestUserChannelName: pp.SensorUserChannelName[pp.SensorData.SerialNumber] = sVal; break; case CSVImportTags.Tags.TestIsoCode: pp.SensorISOCode[pp.SensorData.SerialNumber] = sVal; break; case CSVImportTags.Tags.TestIsoChannelName: pp.SensorISOChannelName[pp.SensorData.SerialNumber] = sVal; break; } } } }