This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,428 @@
using System;
using System.Linq;
using System.Windows.Media;
using DTS.Common.Base;
using DTS.Common.Enums.Sensors;
using DTS.Common.Interface;
// ReSharper disable CheckNamespace
// ReSharper disable RedundantDefaultMemberInitializer
// ReSharper disable RedundantCast
namespace DTS.Common.Classes.Viewer.TestMetadata
{
[Serializable]
public class TestChannel : BasePropertyChanged, ITestChannel
{
public string Group { get; set; }
public string SubGroup { get; set; }
private bool _isGraphChannel = false;
public bool IsGraphChannel { get => _isGraphChannel; set { _isGraphChannel = value; OnPropertyChanged("IsGraphChannel"); } }
public string GraphName { get; set; }
public string TestId { get; set; }
public string TestSetupName { get; set; }
public string ModuleSerialNumber { get; set; }
public string SerialNumber { get; set; }
public string ChannelId { get; set; }
private string _channelDisplayName = string.Empty;
public string ChannelDisplayName
{
get => _channelDisplayName;
set => SetProperty(ref _channelDisplayName, value, "ChannelDisplayName");
}
public string Description { get; set; }
public string IsoCode { get; set; }
public string IsoChannelName { get; set; }
public string UserCode { get; set; }
public string UserChannelName { get; set; }
public string ChannelGroupName { get; set; }
public string ChannelType { get; set; }
private bool _isCalculatedChannel = false;
public bool IsCalculatedChannel
{
get => _isCalculatedChannel;
set => SetProperty(ref _isCalculatedChannel, value, "IsCalculatedChannel");
}
public int Number { get; set; }
public string DigitalMultiplier { get; set; }
public string DigitalMode { get; set; }
public DateTime Start { get; set; }
public string Bridge { get; set; }
public double BridgeResistanceOhms { get; set; }
public double ZeroPoint { get; set; }
private string _channelDescriptionString;
public ulong T1Sample { get; set; } = 0;
public ulong T2Sample { get; set; } = 0;
public double HIC { get; set; } = 0D;
public bool UseEUScaler { get; set; }
public double ScaleFactorEU { get; set; } = 0D;
public string ChannelDescriptionString
{
get => _channelDescriptionString;
set => SetProperty(ref _channelDescriptionString, value, "ChannelDescriptionString");
}
public void SetChannelDescriptionAndDisplayName(string channelDescription)
{
ChannelDescriptionString = channelDescription;
ChannelDisplayName = $"{ChannelName2} {ChannelDescriptionString}";
}
public string ChannelName2 { get; set; }
public string HardwareChannelName { get; set; }
public double DesiredRange { get; set; }
public double ActualMaxRangeEu { get; set; }
public double ActualMinRangeEu { get; set; }
public double ActualMaxRangeAdc => short.MaxValue;
public double ActualMinRangeAdc => short.MinValue;
public double ActualMaxRangeMv { get; set; }
public double ActualMinRangeMv { get; set; }
public double Sensitivity { get; set; }
public string SoftwareFilter { get; set; }
public bool ProportionalToExcitation { get; set; }
public bool IsInverted { get; set; }
public string LinearizationFormula { get; set; }
public bool IsSubsampled { get; set; }
public int AbsoluteDisplayOrder { get; set; }
public DateTime LastCalibrationDate { get; set; }
public string SensorId { get; set; }
public int OffsetToleranceLowMv { get; set; }
public int OffsetToleranceHighMv { get; set; }
public int DataFlag { get; set; }
public string ExcitationVoltage { get; set; }
public string Eu { get; set; }
public bool CalSignalEnabled { get; set; }
public bool ShuntEnabled { get; set; }
public bool VoltageInsertionCheckEnabled { get; set; }
public bool RemoveOffset { get; set; }
public string ZeroMethod { get; set; }
public double ZeroAverageWindowBegin { get; set; }
public double ZeroAverageWindowEnd { get; set; }
public int InitialEu { get; set; }
public string InitialOffset { get; set; }
public int UnsubsampledSampleRateHz { get; set; }
public double MeasuredShuntDeflectionMv { get; set; }
public double TargetShuntDeflectionMv { get; set; }
public double MeasuredExcitationVoltage { get; set; }
public double FactoryExcitationVoltage { get; set; }
public double TimeOfFirstSample { get; set; }
public double Multiplier { get; set; }
public double UserOffsetEu { get; set; }
public int UnitConversion { get; set; }
public bool AtCapacity { get; set; }
public int CapacityOutputIsBasedOn { get; set; }
public string SourceChannelNumber { get; set; }
public string SourceModuleNumber { get; set; }
public string SourceModuleSerialNumber { get; set; }
public string Calculation { get; set; }
public int SampleRateHz { get; set; }
public string SensitivityUnits { get; set; }
public int SensorCapacity { get; set; }
public string SensorPolarity { get; set; }
public int ChannelNumber { get; set; }
public string BinaryFileName { get; set; }
public string BinaryFilePath { get; set; }
public double Xmax { get; set; }
public double Xmin { get; set; }
public int SequentialNumbers { get; set; }
public ITestSetupMetadata ParentTestSetup { get; set; }
public ITestModule ParentModule { get; set; }
public IBaseViewModel Parent { get; set; }
private Color _channelColor = Colors.Transparent;
public Color ChannelColor
{
get => _channelColor;
set => SetProperty(ref _channelColor, value, "ChannelColor");
}
private string _errorMessage = string.Empty;
public string ErrorMessage
{
get => _errorMessage;
set
{
_errorMessage = value;
_isError = !string.IsNullOrEmpty(_errorMessage);
OnPropertyChanged("ErrorMessage");
}
}
private bool _isError = false;
public bool IsError
{
get => _isError;
set => SetProperty(ref _isError, value, "IsError");
}
private Color? _errorColor = Colors.Black;
public Color? ErrorColor
{
get { _errorColor = _isError ? Colors.Red : Colors.Black; return _errorColor; }
set => SetProperty(ref _errorColor, value, "ErrorColor");
}
private bool _isLocked = false;
public bool IsLocked
{
get => _isLocked;
set
{
_isLocked = value;
if (!_isLocked && !_isSelected && !_isGraphChannel) { ChannelColor = Colors.Transparent; }
if (CanSelectChannel)
{
var parent = Parent;
if (parent.GetType().GetInterfaces().Contains(typeof(IGraphMainViewModel))) { ((IGraphMainViewModel)parent).AddLockedChannel(this, _isLocked); }
}
OnPropertyChanged("IsLocked");
}
}
private bool _bCanLock = true;
public bool CanLock
{
get => _bCanLock;
set => SetProperty(ref _bCanLock, !IsError && value, "CanLock");
}
private bool _canSelectChannel = true;
public bool CanSelectChannel
{
get => _canSelectChannel;
set => SetProperty(ref _canSelectChannel, !IsError && value, "CanSelectChannel");
}
private bool _isExpanded = true;
public bool IsExpanded
{
get => _isExpanded;
set => SetProperty(ref _isExpanded, value, "IsExpanded");
}
private bool _isSelected = false;
public bool IsSelected
{
get => _isSelected;
set
{
var parent = Parent;
_isSelected = value;
if (!_isLocked && !_isSelected && !_isGraphChannel) { ChannelColor = Colors.Transparent; }
if (_isSelected && CanSelectChannel)
{
if (parent.GetType().GetInterfaces().Contains(typeof(IGraphMainViewModel))) { ((IGraphMainViewModel)parent).AddSelectedChannel(this); }
OnPropertyChanged("IsSelected");
}
}
}
public ITestChannel Copy() { return (TestChannel)MemberwiseClone(); }
public override string ToString()
{
if (SensorConstants.IsTestSpecificEmbedded(ChannelDescriptionString))
{
if (!string.IsNullOrWhiteSpace(ChannelName2)) { return ChannelName2; }
}
return ChannelDescriptionString;
}
private double _minADC = double.NaN;
/// <summary>
/// Min value of ADC for entire dataset
/// </summary>
public double MinADC
{
get => _minADC;
set => SetProperty(ref _minADC, value, "MinADC");
}
private double _maxADC = double.NaN;
/// <summary>
/// Max value in ADC for entire dataset
/// </summary>
public double MaxADC
{
get => _maxADC;
set => SetProperty(ref _maxADC, value, "MaxADC");
}
private double _aveADC = double.NaN;
/// <summary>
/// Average value in ADC for entire dataset
/// </summary>
public double AveADC
{
get => _aveADC;
set => SetProperty(ref _aveADC, value, "AveADC");
}
private double _stdDevADC = double.NaN;
/// <summary>
/// STD DEV in ADC for entire dataset
/// </summary>
public double StdDevADC
{
get => _stdDevADC;
set => SetProperty(ref _stdDevADC, value, "StdDevADC");
}
private double _t0ADC = double.NaN;
/// <summary>
/// Value @ T0 in ADC
/// </summary>
public double T0ADC
{
get => _t0ADC;
set => SetProperty(ref _t0ADC, value, "T0ADC");
}
private double _minMV = double.NaN;
/// <summary>
/// Minimum value in mV for entire dataset
/// </summary>
public double MinMV
{
get => _minMV;
set => SetProperty(ref _minMV, value, "MinMV");
}
private double _maxMV = double.NaN;
/// <summary>
/// Maximum value in mV for entire dataset
/// </summary>
public double MaxMV
{
get => _maxMV;
set => SetProperty(ref _maxMV, value, "MaxMV");
}
private double _aveMV = double.NaN;
/// <summary>
/// average value in mV for entire dataset
/// </summary>
public double AveMV
{
get => _aveMV;
set => SetProperty(ref _aveMV, value, "AveMV");
}
private double _stdDevMV = double.NaN;
/// <summary>
/// std dev in mV for entire dataset
/// </summary>
public double StdDevMV
{
get => _stdDevMV;
set => SetProperty(ref _stdDevMV, value, "StdDevMV");
}
private double _t0MV = double.NaN;
/// <summary>
/// value in mV at T0
/// </summary>
public double T0MV
{
get => _t0MV;
set => SetProperty(ref _t0MV, value, "T0MV");
}
private double _minEU = double.NaN;
/// <summary>
/// minimum value in EU for entire dataset
/// </summary>
public double MinEU
{
get => _minEU;
set => SetProperty(ref _minEU, value, "MinEU");
}
private double _maxEU = double.NaN;
/// <summary>
/// maximum value in EU for entire dataset
/// </summary>
public double MaxEU
{
get => _maxEU;
set => SetProperty(ref _maxEU, value, "MaxEU");
}
private double _aveEU = double.NaN;
/// <summary>
/// average value in EU for entire dataset
/// </summary>
public double AveEU
{
get => _aveEU;
set => SetProperty(ref _aveEU, value, "AveEU");
}
private double _stdDevEU = double.NaN;
/// <summary>
/// std dev in EU
/// </summary>
public double StdDevEU
{
get => _stdDevEU;
set => SetProperty(ref _stdDevEU, value, "StdDevEU");
}
private double _t0EU = double.NaN;
/// <summary>
/// value at T0 in EU
/// </summary>
public double T0EU
{
get => _t0EU;
set => SetProperty(ref _t0EU, value, "T0EU");
}
private double _minY = double.NaN;
/// <summary>
/// minimum value for whatever current units are for entire dataset
/// </summary>
public double MinY
{
get => _minY;
set => SetProperty(ref _minY, value, "MinY");
}
private double _maxY = double.NaN;
/// <summary>
/// maximum value for whatever current units are for entire dataset
/// </summary>
public double MaxY
{
get => _maxY;
set => SetProperty(ref _maxY, value, "MaxY");
}
private double _aveY = double.NaN;
/// <summary>
/// average value for whatever current units are for entire dataset
/// </summary>
public double AveY
{
get => _aveY;
set => SetProperty(ref _aveY, value, "AveY");
}
private double _stdDevY = double.NaN;
/// <summary>
/// std deviation for whatever current units are
/// </summary>
public double StdDevY
{
get => _stdDevY;
set => SetProperty(ref _stdDevY, value, "StdDevY");
}
private double _T0Value = double.NaN;
/// <summary>
/// Value at T0 in whatever current units are
/// </summary>
public double T0Value
{
get => _T0Value;
set => SetProperty(ref _T0Value, value, "T0Value");
}
}
}

View File

@@ -0,0 +1,23 @@
using DTS.Common.Base.Classes;
using DTS.Common.Converters;
using System.ComponentModel;
namespace DTS.Common.Enums
{
[TypeConverter(typeof(EnumDescriptionTypeConverter))]
public enum UICultures
{
[DescriptionResource("UICultures_de-DE")]
de_DE,
[DescriptionResource("UICultures_en-US")]
en_US,
[DescriptionResource("UICultures_es-ES")]
es_ES,
[DescriptionResource("UICultures_fr-FR")]
fr_FR,
[DescriptionResource("UICultures_it-IT")]
it_IT,
[DescriptionResource("UICultures_ja-JP")]
ja_JP,
}
}

View File

@@ -0,0 +1,6 @@
using DTS.Common.Base;
namespace DTS.Common.Interface
{
public interface ITablesSettingsViewModel : IBaseViewModel { }
}

View File

@@ -0,0 +1,25 @@
using DTS.Common.Enums;
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DTS.Common.Interface.Sensors
{
public interface ICanSettingDefaults
{
bool IsFD { get; set; }
int ArbBaseBitrate { get; set; }
int ArbBaseSJW { get; set; }
int DataBitrate { get; set; }
int DataSJW { get; set; }
string FileType { get; set; }
/// <summary>
///
/// </summary>
/// <returns></returns>
bool Validate();
}
}

View File

@@ -0,0 +1,680 @@
G\PN:{NAME OF PROGRAM};
G\TA:{TEST ID}_{DAS SERIAL NUMBER};
G\106:17;
G\DSI\N:1;
G\DSI-1:{TEST ID};
G\DST-1:DRS;
G\DSC-1\U;
G\SC\U;
G\COM:--- file irig106_SampleTmats.tmt. All DST-1 are saved as RF by NetView 2.1.1.3392 -----;
R-1\ID:{TEST ID};
R-1\RID:TSRAIR;
R-1\N:2;
R-1\NSB:3;
R-1\RI1:DTS;
R-1\RI2:S6A;
R-1\RI3:Y;
R-1\RI4:{CREATE DATE};
R-1\COM:Ver-17;
V-1\ID:{TEST ID};
V-1\VN:DTS;
V-1\DTS\STREAMCH10;
R-1\EV\E:F;
R-1\IDX\E:F;
R-1\IDX\IT:F;
R-1\COM:--- Channel '1', ID: 0x0001, TIME Data Packet Format ---------------;
R-1\DSI-1:{UDP STREAM TIME CHANNEL ID};
R-1\TK1-1:{UDP STREAM TIME CHANNEL ID};
R-1\TK2-1:OTHER;
R-1\TK3-1:FWD;
R-1\TK4-1:{UDP STREAM TIME CHANNEL ID};
R-1\CHE-1:T;
R-1\CDT-1:TIMEIN;
R-1\TTF-1:{STREAM TIME FORMAT};
R-1\TFMT-1:B;
R-1\TSRC-1:E;
R-1\SHTF-1:1;
R-1\COM:--------------------- Main Analog Channel Description --------------;
R-1\DSI-2:{UDP STREAM DATA CHANNEL ID};
R-1\TK1-2:{UDP STREAM DATA CHANNEL ID};
R-1\TK3-2:FWD;
R-1\TK4-2:{UDP STREAM DATA CHANNEL ID};
R-1\CHE-2:T;
R-1\CDLN-2:{DAS SERIAL NUMBER};
R-1\CDT-2:ANAIN;
R-1\ATF-2:1;
R-1\ACH\N-2:18;
R-1\ADP-2:NO;
R-1\ASR-2:{DAS SAMPLE RATE};
R-1\SHTF-2:1;
R-1\COM:--------------------- Subchannel_1 Description ---------------------;
R-1\AMCE-2-1:T;
R-1\AMCN-2-1:1;
R-1\AMN-2-1:{CHANNEL 1 NAME};
R-1\ADL-2-1:16;
R-1\AMSK-2-1:FW;
R-1\AMTO-2-1:L;
R-1\ASF-2-1:0;
R-1\ASBW-2-1:200;
R-1\ACP-2-1:D;
R-1\AII-2-1:50;
R-1\AGI-2-1:100;
R-1\AFSI-2-1:5000;
R-1\AOVI-2-1:2500;
R-1\ALSV-2-1:19;
R-1\AECS-2-1:{CHANNEL 1 SCALEFACTOR EU};
R-1\AECO-2-1:0;
R-1\AECU-2-1:{CHANNEL 1 EU};
R-1\AF-2-1:2;
R-1\AIT-2-1:S;
R-1\AV-2-1:N;
R-1\COM:--------------------- Subchannel_2 Description ---------------------;
R-1\AMCE-2-2:T;
R-1\AMCN-2-2:2;
R-1\AMN-2-2:{CHANNEL 2 NAME};
R-1\ADL-2-2:16;
R-1\AMSK-2-2:FW;
R-1\AMTO-2-2:L;
R-1\ASF-2-2:0;
R-1\ASBW-2-2:200;
R-1\ACP-2-2:D;
R-1\AII-2-2:50;
R-1\AGI-2-2:100;
R-1\AFSI-2-2:5000;
R-1\AOVI-2-2:2500;
R-1\ALSV-2-2:19;
R-1\AECS-2-2:{CHANNEL 2 SCALEFACTOR EU};
R-1\AECO-2-2:0;
R-1\AECU-2-2:{CHANNEL 2 EU};
R-1\AF-2-2:2;
R-1\AIT-2-2:S;
R-1\AV-2-2:N;
R-1\COM:--------------------- Subchannel_3 Description ---------------------;
R-1\AMCE-2-3:T;
R-1\AMCN-2-3:3;
R-1\AMN-2-3:{CHANNEL 3 NAME};
R-1\ADL-2-3:16;
R-1\AMSK-2-3:FW;
R-1\AMTO-2-3:L;
R-1\ASF-2-3:0;
R-1\ASBW-2-3:200;
R-1\ACP-2-3:D;
R-1\AII-2-3:50;
R-1\AGI-2-3:100;
R-1\AFSI-2-3:5000;
R-1\AOVI-2-3:2500;
R-1\ALSV-2-3:19;
R-1\AECS-2-3:{CHANNEL 3 SCALEFACTOR EU};
R-1\AECO-2-3:0;
R-1\AECU-2-3:{CHANNEL 3 EU};
R-1\AF-2-3:2;
R-1\AIT-2-3:S;
R-1\AV-2-3:N;
R-1\COM:--------------------- Subchannel_4 Description ---------------------;
R-1\AMCE-2-4:T;
R-1\AMCN-2-4:4;
R-1\AMN-2-4:{CHANNEL 4 NAME};
R-1\ADL-2-4:16;
R-1\AMSK-2-4:FW;
R-1\AMTO-2-4:L;
R-1\ASF-2-4:0;
R-1\ASBW-2-4:200;
R-1\ACP-2-4:D;
R-1\AII-2-4:50;
R-1\AGI-2-4:100;
R-1\AFSI-2-4:5000;
R-1\AOVI-2-4:2500;
R-1\ALSV-2-4:19;
R-1\AECS-2-4:{CHANNEL 4 SCALEFACTOR EU};
R-1\AECO-2-4:0;
R-1\AECU-2-4:{CHANNEL 4 EU};
R-1\AF-2-4:2;
R-1\AIT-2-4:S;
R-1\AV-2-4:N;
R-1\COM:--------------------- Subchannel_5 Description ---------------------;
R-1\AMCE-2-5:T;
R-1\AMCN-2-5:5;
R-1\AMN-2-5:{CHANNEL 5 NAME};
R-1\ADL-2-5:16;
R-1\AMSK-2-5:FW;
R-1\AMTO-2-5:L;
R-1\ASF-2-5:0;
R-1\ASBW-2-5:200;
R-1\ACP-2-5:D;
R-1\AII-2-5:50;
R-1\AGI-2-5:100;
R-1\AFSI-2-5:5000;
R-1\AOVI-2-5:2500;
R-1\ALSV-2-5:19;
R-1\AECS-2-5:{CHANNEL 5 SCALEFACTOR EU};
R-1\AECO-2-5:0;
R-1\AECU-2-5:{CHANNEL 5 EU};
R-1\AF-2-5:2;
R-1\AIT-2-5:S;
R-1\AV-2-5:N;
R-1\COM:--------------------- Subchannel_6 Description ---------------------;
R-1\AMCE-2-6:T;
R-1\AMCN-2-6:6;
R-1\AMN-2-6:{CHANNEL 6 NAME};
R-1\ADL-2-6:16;
R-1\AMSK-2-6:FW;
R-1\AMTO-2-6:L;
R-1\ASF-2-6:0;
R-1\ASBW-2-6:200;
R-1\ACP-2-6:D;
R-1\AII-2-6:50;
R-1\AGI-2-6:100;
R-1\AFSI-2-6:5000;
R-1\AOVI-2-6:0;
R-1\ALSV-2-6:19;
R-1\AECS-2-6:{CHANNEL 5 SCALEFACTOR EU};
R-1\AECO-2-6:0;
R-1\AECU-2-6:{CHANNEL 6 EU};
R-1\AF-2-6:2;
R-1\AIT-2-6:S;
R-1\AV-2-6:N;
R-1\COM:--------------------- Subchannel_7 Description ---------------------;
R-1\AMCE-2-7:T;
R-1\AMCN-2-7:7;
R-1\AMN-2-7:{CHANNEL 7 NAME};
R-1\ADL-2-7:16;
R-1\AMSK-2-7:FW;
R-1\AMTO-2-7:L;
R-1\ASF-2-7:0;
R-1\ASBW-2-7:200;
R-1\ACP-2-7:D;
R-1\AII-2-7:50;
R-1\AGI-2-7:100;
R-1\AFSI-2-7:5000;
R-1\AOVI-2-7:0;
R-1\ALSV-2-7:19;
R-1\AECS-2-7:{CHANNEL 7 SCALEFACTOR EU};;
R-1\AECO-2-7:0;
R-1\AECU-2-7:{CHANNEL 7 EU};
R-1\AF-2-7:2;
R-1\AIT-2-7:S;
R-1\AV-2-7:N;
R-1\COM:--------------------- Subchannel_8 Description ---------------------;
R-1\AMCE-2-8:T;
R-1\AMCN-2-8:8;
R-1\AMN-2-8:{CHANNEL 8 NAME};
R-1\ADL-2-8:16;
R-1\AMSK-2-8:FW;
R-1\AMTO-2-8:L;
R-1\ASF-2-8:0;
R-1\ASBW-2-8:200;
R-1\ACP-2-8:D;
R-1\AII-2-8:50;
R-1\AGI-2-8:100;
R-1\AFSI-2-8:5000;
R-1\AOVI-2-8:2500;
R-1\ALSV-2-8:19;
R-1\AECS-2-8:{CHANNEL 8 SCALEFACTOR EU};
R-1\AECO-2-8:0;
R-1\AECU-2-8:{CHANNEL 8 EU};
R-1\AF-2-8:2;
R-1\AIT-2-8:S;
R-1\AV-2-8:N;
R-1\COM:--------------------- Subchannel_9 Description ---------------------;
R-1\AMCE-2-9:T;
R-1\AMCN-2-9:9;
R-1\AMN-2-9:{CHANNEL 9 NAME};
R-1\ADL-2-9:16;
R-1\AMSK-2-9:FW;
R-1\AMTO-2-9:L;
R-1\ASF-2-9:0;
R-1\ASBW-2-9:200;
R-1\ACP-2-9:D;
R-1\AII-2-9:50;
R-1\AGI-2-9:100;
R-1\AFSI-2-9:5000;
R-1\AOVI-2-9:2500;
R-1\ALSV-2-9:19;
R-1\AECS-2-9:{CHANNEL 9 SCALEFACTOR EU};
R-1\AECO-2-9:0;
R-1\AECU-2-9:{CHANNEL 9 EU};
R-1\AF-2-9:2;
R-1\AIT-2-9:S;
R-1\AV-2-9:N;
R-1\COM:--------------------- Subchannel_10 Description ---------------------;
R-1\AMCE-2-10:T;
R-1\AMCN-2-10:10;
R-1\AMN-2-10:{CHANNEL 10 NAME};
R-1\ADL-2-10:16;
R-1\AMSK-2-10:FW;
R-1\AMTO-2-10:L;
R-1\ASF-2-10:0;
R-1\ASBW-2-10:200;
R-1\ACP-2-10:D;
R-1\AII-2-10:50;
R-1\AGI-2-10:100;
R-1\AFSI-2-10:5000;
R-1\AOVI-2-10:2500;
R-1\ALSV-2-10:19;
R-1\AECS-2-10:{CHANNEL 10 SCALEFACTOR EU};
R-1\AECO-2-10:0;
R-1\AECU-2-10:{CHANNEL 10 EU};
R-1\AF-2-10:2;
R-1\AIT-2-10:S;
R-1\AV-2-10:N;
R-1\COM:--------------------- Subchannel_11 Description ---------------------;
R-1\AMCE-2-11:T;
R-1\AMCN-2-11:11;
R-1\AMN-2-11:{CHANNEL 11 NAME};
R-1\ADL-2-11:16;
R-1\AMSK-2-11:FW;
R-1\AMTO-2-11:L;
R-1\ASF-2-11:0;
R-1\ASBW-2-11:200;
R-1\ACP-2-11:D;
R-1\AII-2-11:50;
R-1\AGI-2-11:100;
R-1\AFSI-2-11:5000;
R-1\AOVI-2-11:2500;
R-1\ALSV-2-11:19;
R-1\AECS-2-11:{CHANNEL 11 SCALEFACTOR EU};
R-1\AECO-2-11:0;
R-1\AECU-2-11:{CHANNEL 11 EU};
R-1\AF-2-11:2;
R-1\AIT-2-11:S;
R-1\AV-2-11:N;
R-1\COM:--------------------- Subchannel_12 Description ---------------------;
R-1\AMCE-2-12:T;
R-1\AMCN-2-12:12;
R-1\AMN-2-12:{CHANNEL 12 NAME};
R-1\ADL-2-12:16;
R-1\AMSK-2-12:FW;
R-1\AMTO-2-12:L;
R-1\ASF-2-12:0;
R-1\ASBW-2-12:200;
R-1\ACP-2-12:D;
R-1\AII-2-12:50;
R-1\AGI-2-12:100;
R-1\AFSI-2-12:5000;
R-1\AOVI-2-12:2500;
R-1\ALSV-2-12:19;
R-1\AECS-2-12:{CHANNEL 12 SCALEFACTOR EU};
R-1\AECO-2-12:0;
R-1\AECU-2-12:{CHANNEL 12 EU};
R-1\AF-2-12:2;
R-1\AIT-2-12:S;
R-1\AV-2-12:N;
R-1\COM:--------------------- Subchannel_13 Description ---------------------;
R-1\AMCE-2-13:T;
R-1\AMCN-2-13:13;
R-1\AMN-2-13:SEC_L;
R-1\ADL-2-13:16;
R-1\AMSK-2-13:FW;
R-1\AMTO-2-13:L;
R-1\ASF-2-13:0;
R-1\ASBW-2-13:200;
R-1\ACP-2-13:D;
R-1\AII-2-13:50;
R-1\AGI-2-13:100;
R-1\AFSI-2-13:5000;
R-1\AOVI-2-13:2500;
R-1\ALSV-2-13:19;
R-1\AECS-2-13:1;
R-1\AECO-2-13:0;
R-1\AECU-2-13:s;
R-1\AF-2-13:2;
R-1\AIT-2-13:S;
R-1\AV-2-13:N;
R-1\COM:--------------------- Subchannel_14 Description ---------------------;
R-1\AMCE-2-14:T;
R-1\AMCN-2-14:14;
R-1\AMN-2-14:SEC_H;
R-1\ADL-2-14:16;
R-1\AMSK-2-14:FW;
R-1\AMTO-2-14:L;
R-1\ASF-2-14:0;
R-1\ASBW-2-14:200;
R-1\ACP-2-14:D;
R-1\AII-2-14:50;
R-1\AGI-2-14:100;
R-1\AFSI-2-14:5000;
R-1\AOVI-2-14:2500;
R-1\ALSV-2-14:19;
R-1\AECS-2-14:1;
R-1\AECO-2-14:0;
R-1\AECU-2-14:s;
R-1\AF-2-14:2;
R-1\AIT-2-14:S;
R-1\AV-2-14:N;
R-1\COM:--------------------- Subchannel_15 Description ---------------------;
R-1\AMCE-2-15:T;
R-1\AMCN-2-15:15;
R-1\AMN-2-15:MARKER;
R-1\ADL-2-15:16;
R-1\AMSK-2-15:FW;
R-1\AMTO-2-15:L;
R-1\ASF-2-15:0;
R-1\ASBW-2-15:200;
R-1\ACP-2-15:D;
R-1\AII-2-15:50;
R-1\AGI-2-15:100;
R-1\AFSI-2-15:5000;
R-1\AOVI-2-15:2500;
R-1\ALSV-2-15:19;
R-1\AECS-2-15:1;
R-1\AECO-2-15:0;
R-1\AECU-2-15:marker;
R-1\AF-2-15:2;
R-1\AIT-2-15:S;
R-1\AV-2-15:N;
R-1\COM:--------------------- Subchannel_16 Description ---------------------;
R-1\AMCE-2-16:T;
R-1\AMCN-2-16:16;
R-1\AMN-2-16:NSEC_L;
R-1\ADL-2-16:16;
R-1\AMSK-2-16:FW;
R-1\AMTO-2-16:L;
R-1\ASF-2-16:0;
R-1\ASBW-2-16:200;
R-1\ACP-2-16:D;
R-1\AII-2-16:50;
R-1\AGI-2-16:100;
R-1\AFSI-2-16:5000;
R-1\AOVI-2-16:2500;
R-1\ALSV-2-16:19;
R-1\AECS-2-16:1;
R-1\AECO-2-16:0;
R-1\AECU-2-16:ns;
R-1\AF-2-16:2;
R-1\AIT-2-16:S;
R-1\AV-2-16:N;
R-1\COM:--------------------- Subchannel_17 Description ---------------------;
R-1\AMCE-2-17:T;
R-1\AMCN-2-17:17;
R-1\AMN-2-17:NSEC_H;
R-1\ADL-2-17:16;
R-1\AMSK-2-17:FW;
R-1\AMTO-2-17:L;
R-1\ASF-2-17:0;
R-1\ASBW-2-17:200;
R-1\ACP-2-17:D;
R-1\AII-2-17:50;
R-1\AGI-2-17:100;
R-1\AFSI-2-17:5000;
R-1\AOVI-2-17:2500;
R-1\ALSV-2-17:19;
R-1\AECS-2-17:1;
R-1\AECO-2-17:0;
R-1\AECU-2-17:ns;
R-1\AF-2-17:2;
R-1\AIT-2-17:S;
R-1\AV-2-17:N;
R-1\COM:--------------------- Subchannel_18 Description ---------------------;
R-1\AMCE-2-18:T;
R-1\AMCN-2-18:18;
R-1\AMN-2-18:TRIGGER;
R-1\ADL-2-18:16;
R-1\AMSK-2-18:FW;
R-1\AMTO-2-18:L;
R-1\ASF-2-18:0;
R-1\ASBW-2-18:200;
R-1\ACP-2-18:D;
R-1\AII-2-18:50;
R-1\AGI-2-18:100;
R-1\AFSI-2-18:5000;
R-1\AOVI-2-18:2500;
R-1\ALSV-2-18:19;
R-1\AECS-2-18:1;
R-1\AECO-2-18:0;
R-1\AECU-2-18:trigger;
R-1\AF-2-18:2;
R-1\AIT-2-18:S;
R-1\AV-2-18:N;
R-1\RT\N:0;
C-1\DCN:{CHANNEL 1 NAME};
C-1\MN1:{CHANNEL 1 NAME};
C-1\BFM:TWO;
C-1\DCT:COE;
C-1\CO\N:1;
C-1\CO:{CHANNEL 1 OFFSET EU};
C-1\CO-1:{CHANNEL 1 SCALEFACTOR EU};
C-1\MN3:{CHANNEL 1 EU};
C-1\MOT1:{CHANNEL 1 MAX RANGE EU};
C-1\MOT3:{CHANNEL 1 MAX RANGE EU};
C-1\MOT5:{CHANNEL 1 MAX RANGE EU};
C-1\MOT2:{CHANNEL 1 MIN RANGE EU};
C-1\MOT4:{CHANNEL 1 MIN RANGE EU};
C-1\MOT6:{CHANNEL 1 MIN RANGE EU};
C-2\DCN:{CHANNEL 2 NAME};
C-2\MN1:{CHANNEL 2 NAME};
C-2\BFM:TWO;
C-2\DCT:COE;
C-2\CO\N:1;
C-2\CO:{CHANNEL 2 OFFSET EU};
C-2\CO-1:{CHANNEL 2 SCALEFACTOR EU};
C-2\MN3:{CHANNEL 2 EU};
C-2\MOT1:{CHANNEL 2 MAX RANGE EU};
C-2\MOT3:{CHANNEL 2 MAX RANGE EU};
C-2\MOT5:{CHANNEL 2 MAX RANGE EU};
C-2\MOT2:{CHANNEL 2 MIN RANGE EU};
C-2\MOT4:{CHANNEL 2 MIN RANGE EU};
C-2\MOT6:{CHANNEL 2 MIN RANGE EU};
C-3\DCN:{CHANNEL 3 NAME};
C-3\MN1:{CHANNEL 3 NAME};
C-3\BFM:TWO;
C-3\DCT:COE;
C-3\CO\N:1;
C-3\CO:{CHANNEL 3 OFFSET EU};
C-3\CO-1:{CHANNEL 3 SCALEFACTOR EU};
C-3\MN3:{CHANNEL 3 EU};
C-3\MOT1:{CHANNEL 3 MAX RANGE EU};
C-3\MOT3:{CHANNEL 3 MAX RANGE EU};
C-3\MOT5:{CHANNEL 3 MAX RANGE EU};
C-3\MOT2:{CHANNEL 3 MIN RANGE EU};
C-3\MOT4:{CHANNEL 3 MIN RANGE EU};
C-3\MOT6:{CHANNEL 3 MIN RANGE EU};
C-4\DCN:{CHANNEL 4 NAME};
C-4\MN1:{CHANNEL 4 NAME};
C-4\BFM:TWO;
C-4\DCT:COE;
C-4\CO\N:1;
C-4\CO:{CHANNEL 4 OFFSET EU};
C-4\CO-1:{CHANNEL 4 SCALEFACTOR EU};
C-4\MN3:{CHANNEL 4 EU};
C-4\MOT1:{CHANNEL 4 MAX RANGE EU};
C-4\MOT3:{CHANNEL 4 MAX RANGE EU};
C-4\MOT5:{CHANNEL 4 MAX RANGE EU};
C-4\MOT2:{CHANNEL 4 MIN RANGE EU};
C-4\MOT4:{CHANNEL 4 MIN RANGE EU};
C-4\MOT6:{CHANNEL 4 MIN RANGE EU};
C-5\DCN:{CHANNEL 5 NAME};
C-5\MN1:{CHANNEL 5 NAME};
C-5\BFM:TWO;
C-5\DCT:COE;
C-5\CO\N:1;
C-5\CO:{CHANNEL 5 OFFSET EU};
C-5\CO-1:{CHANNEL 5 SCALEFACTOR EU};
C-5\MN3:{CHANNEL 5 EU};
C-5\MOT1:{CHANNEL 5 MAX RANGE EU};
C-5\MOT3:{CHANNEL 5 MAX RANGE EU};
C-5\MOT5:{CHANNEL 5 MAX RANGE EU};
C-5\MOT2:{CHANNEL 5 MIN RANGE EU};
C-5\MOT4:{CHANNEL 5 MIN RANGE EU};
C-5\MOT6:{CHANNEL 5 MIN RANGE EU};
C-6\DCN:{CHANNEL 6 NAME};
C-6\MN1:{CHANNEL 6 NAME};
C-6\BFM:TWO;
C-6\DCT:COE;
C-6\CO\N:1;
C-6\CO:{CHANNEL 6 OFFSET EU};
C-6\CO-1:{CHANNEL 6 SCALEFACTOR EU};
C-6\MN3:{CHANNEL 6 EU};
C-6\MOT1:{CHANNEL 6 MAX RANGE EU};
C-6\MOT3:{CHANNEL 6 MAX RANGE EU};
C-6\MOT5:{CHANNEL 6 MAX RANGE EU};
C-6\MOT2:{CHANNEL 6 MIN RANGE EU};
C-6\MOT4:{CHANNEL 6 MIN RANGE EU};
C-6\MOT6:{CHANNEL 6 MIN RANGE EU};
C-7\DCN:{CHANNEL 7 NAME};
C-7\MN1:{CHANNEL 7 NAME};
C-7\BFM:TWO;
C-7\DCT:COE;
C-7\CO\N:1;
C-7\CO:{CHANNEL 7 OFFSET EU};
C-7\CO-1:{CHANNEL 7 SCALEFACTOR EU};
C-7\MN3:{CHANNEL 7 EU};
C-7\MOT1:{CHANNEL 7 MAX RANGE EU};
C-7\MOT3:{CHANNEL 7 MAX RANGE EU};
C-7\MOT5:{CHANNEL 7 MAX RANGE EU};
C-7\MOT2:{CHANNEL 7 MIN RANGE EU};
C-7\MOT4:{CHANNEL 7 MIN RANGE EU};
C-7\MOT6:{CHANNEL 7 MIN RANGE EU};
C-8\DCN:{CHANNEL 8 NAME};
C-8\MN1:{CHANNEL 8 NAME};
C-8\BFM:TWO;
C-8\DCT:COE;
C-8\CO\N:1;
C-8\CO:{CHANNEL 8 OFFSET EU};
C-8\CO-1:{CHANNEL 8 SCALEFACTOR EU};
C-8\MN3:{CHANNEL 8 EU};
C-8\MOT1:{CHANNEL 8 MAX RANGE EU};
C-8\MOT3:{CHANNEL 8 MAX RANGE EU};
C-8\MOT5:{CHANNEL 8 MAX RANGE EU};
C-8\MOT2:{CHANNEL 8 MIN RANGE EU};
C-8\MOT4:{CHANNEL 8 MIN RANGE EU};
C-8\MOT6:{CHANNEL 8 MIN RANGE EU};
C-9\DCN:{CHANNEL 9 NAME};
C-9\MN1:{CHANNEL 9 NAME};
C-9\BFM:TWO;
C-9\DCT:COE;
C-9\CO\N:1;
C-9\CO:{CHANNEL 9 OFFSET EU};
C-9\CO-1:{CHANNEL 9 SCALEFACTOR EU};
C-9\MN3:{CHANNEL 9 EU};
C-9\MOT1:{CHANNEL 9 MAX RANGE EU};
C-9\MOT3:{CHANNEL 9 MAX RANGE EU};
C-9\MOT5:{CHANNEL 9 MAX RANGE EU};
C-9\MOT2:{CHANNEL 9 MIN RANGE EU};
C-9\MOT4:{CHANNEL 9 MIN RANGE EU};
C-9\MOT6:{CHANNEL 9 MIN RANGE EU};
C-10\DCN:{CHANNEL 10 NAME};
C-10\MN1:{CHANNEL 10 NAME};
C-10\BFM:TWO;
C-10\DCT:COE;
C-10\CO\N:1;
C-10\CO:{CHANNEL 10 OFFSET EU};
C-10\CO-1:{CHANNEL 10 SCALEFACTOR EU};
C-10\MN3:{CHANNEL 10 EU};
C-10\MOT1:{CHANNEL 10 MAX RANGE EU};
C-10\MOT3:{CHANNEL 10 MAX RANGE EU};
C-10\MOT5:{CHANNEL 10 MAX RANGE EU};
C-10\MOT2:{CHANNEL 10 MIN RANGE EU};
C-10\MOT4:{CHANNEL 10 MIN RANGE EU};
C-10\MOT6:{CHANNEL 10 MIN RANGE EU};
C-11\DCN:{CHANNEL 11 NAME};
C-11\MN1:{CHANNEL 11 NAME};
C-11\BFM:TWO;
C-11\DCT:COE;
C-11\CO\N:1;
C-11\CO:{CHANNEL 11 OFFSET EU};
C-11\CO-1:{CHANNEL 11 SCALEFACTOR EU};
C-11\MN3:{CHANNEL 11 EU};
C-11\MOT1:{CHANNEL 11 MAX RANGE EU};
C-11\MOT3:{CHANNEL 11 MAX RANGE EU};
C-11\MOT5:{CHANNEL 11 MAX RANGE EU};
C-11\MOT2:{CHANNEL 11 MIN RANGE EU};
C-11\MOT4:{CHANNEL 11 MIN RANGE EU};
C-11\MOT6:{CHANNEL 11 MIN RANGE EU};
C-12\DCN:{CHANNEL 12 NAME};
C-12\MN1:{CHANNEL 12 NAME};
C-12\BFM:TWO;
C-12\DCT:COE;
C-12\CO\N:1;
C-12\CO:{CHANNEL 12 OFFSET EU};
C-12\CO-1:{CHANNEL 12 SCALEFACTOR EU};
C-12\MN3:{CHANNEL 12 EU};
C-12\MOT1:{CHANNEL 12 MAX RANGE EU};
C-12\MOT3:{CHANNEL 12 MAX RANGE EU};
C-12\MOT5:{CHANNEL 12 MAX RANGE EU};
C-12\MOT2:{CHANNEL 12 MIN RANGE EU};
C-12\MOT4:{CHANNEL 12 MIN RANGE EU};
C-12\MOT6:{CHANNEL 12 MIN RANGE EU};
C-13\DCN:SEC_L;
C-13\MN1:SEC_L;
C-13\BFM:TWO;
C-13\DCT:COE;
C-13\CO\N:1;
C-13\CO:0;
C-13\CO-1:0.1;
C-13\MN3:SEC_L;
C-13\MOT1:1100;
C-13\MOT3:1100;
C-13\MOT5:1100;
C-13\MOT2:300;
C-13\MOT4:300;
C-13\MOT6:300;
C-14\DCN:SEC_H;
C-14\MN1:SEC_H;
C-14\BFM:TWO;
C-14\DCT:COE;
C-14\CO\N:1;
C-14\CO:0;
C-14\CO-1:0.1;
C-14\MN3:SEC_H;
C-14\MOT1:1100;
C-14\MOT3:1100;
C-14\MOT5:1100;
C-14\MOT2:300;
C-14\MOT4:300;
C-14\MOT6:300;
C-15\DCN:MARKER;
C-15\MN1:MARKER;
C-15\BFM:TWO;
C-15\DCT:COE;
C-15\CO\N:1;
C-15\CO:0;
C-15\CO-1:0.1;
C-15\MN3:MARKER;
C-15\MOT1:1100;
C-15\MOT3:1100;
C-15\MOT5:1100;
C-15\MOT2:300;
C-15\MOT4:300;
C-15\MOT6:300;
C-16\DCN:NSEC_L;
C-16\MN1:NSEC_L;
C-16\BFM:TWO;
C-16\DCT:COE;
C-16\CO\N:1;
C-16\CO:0;
C-16\CO-1:0.1;
C-16\MN3:NSEC_L;
C-16\MOT1:1100;
C-16\MOT3:1100;
C-16\MOT5:1100;
C-16\MOT2:300;
C-16\MOT4:300;
C-16\MOT6:300;
C-17\DCN:NSEC_H;
C-17\MN1:NSEC_H;
C-17\BFM:TWO;
C-17\DCT:COE;
C-17\CO\N:1;
C-17\CO:0;
C-17\CO-1:0.1;
C-17\MN3:NSEC_H;
C-17\MOT1:1100;
C-17\MOT3:1100;
C-17\MOT5:1100;
C-17\MOT2:300;
C-17\MOT4:300;
C-17\MOT6:300;
C-18\DCN:TRIGGER;
C-18\MN1:TRIGGER;
C-18\BFM:TWO;
C-18\DCT:COE;
C-18\CO\N:1;
C-18\CO:0;
C-18\CO-1:0.1;
C-18\MN3:TRIGGER;
C-18\MOT1:1100;
C-18\MOT3:1100;
C-18\MOT5:1100;
C-18\MOT2:300;
C-18\MOT4:300;
C-18\MOT6:300;