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,195 @@
using System;
using System.ComponentModel;
using System.Windows.Media;
using DTS.Common.Base;
// ReSharper disable CheckNamespace
namespace DTS.Common.Interface
{
public interface ITestChannel : INotifyPropertyChanged
{
string Group { get; set; }
string SubGroup { get; set; }
bool IsGraphChannel { get; set; }
string GraphName { get; set; }
string TestId { get; set; }
string TestSetupName { get; set; }
string ModuleSerialNumber { get; set; }
string SerialNumber { get; set; }
string ChannelId { get; set; }
string ChannelDisplayName { get; set; }
string Description { get; set; }
string IsoCode { get; set; }
string IsoChannelName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
string ChannelGroupName { get; set; }
string ChannelType { get; set; }
bool IsCalculatedChannel { get; set; }
int Number { get; set; }
string DigitalMultiplier { get; set; }
string DigitalMode { get; set; }
DateTime Start { get; set; }
string Bridge { get; set; }
double BridgeResistanceOhms { get; set; }
double ZeroPoint { get; set; }
string ChannelDescriptionString { get; set; }
void SetChannelDescriptionAndDisplayName(string channelDescriptionString);
string ChannelName2 { get; set; }
string HardwareChannelName { get; set; }
double DesiredRange { get; set; }
double ActualMaxRangeEu { get; set; }
double ActualMinRangeEu { get; set; }
double ActualMaxRangeAdc { get; }
double ActualMinRangeAdc { get; }
double ActualMaxRangeMv { get; set; }
double ActualMinRangeMv { get; set; }
double Sensitivity { get; set; }
string SoftwareFilter { get; set; }
bool ProportionalToExcitation { get; set; }
bool IsInverted { get; set; }
string LinearizationFormula { get; set; }
bool IsSubsampled { get; set; }
int AbsoluteDisplayOrder { get; set; }
DateTime LastCalibrationDate { get; set; }
string SensorId { get; set; }
int OffsetToleranceLowMv { get; set; }
int OffsetToleranceHighMv { get; set; }
int DataFlag { get; set; }
string ExcitationVoltage { get; set; }
string Eu { get; set; }
bool CalSignalEnabled { get; set; }
bool ShuntEnabled { get; set; }
bool VoltageInsertionCheckEnabled { get; set; }
bool RemoveOffset { get; set; }
string ZeroMethod { get; set; }
double ZeroAverageWindowBegin { get; set; }
double ZeroAverageWindowEnd { get; set; }
int InitialEu { get; set; }
string InitialOffset { get; set; }
int UnsubsampledSampleRateHz { get; set; }
double MeasuredShuntDeflectionMv { get; set; }
double TargetShuntDeflectionMv { get; set; }
double MeasuredExcitationVoltage { get; set; }
double FactoryExcitationVoltage { get; set; }
double TimeOfFirstSample { get; set; }
double Multiplier { get; set; }
double UserOffsetEu { get; set; }
int UnitConversion { get; set; }
bool AtCapacity { get; set; }
int CapacityOutputIsBasedOn { get; set; }
string SourceChannelNumber { get; set; }
string SourceModuleNumber { get; set; }
string SourceModuleSerialNumber { get; set; }
string Calculation { get; set; }
int SampleRateHz { get; set; }
string SensitivityUnits { get; set; }
int SensorCapacity { get; set; }
string SensorPolarity { get; set; }
int ChannelNumber { get; set; }
string BinaryFileName { get; set; }
string BinaryFilePath { get; set; }
double Xmax { get; set; }
double Xmin { get; set; }
int SequentialNumbers { get; set; }
ITestSetupMetadata ParentTestSetup { get; set; }
ITestModule ParentModule { get; set; }
IBaseViewModel Parent { get; set; }
Color ChannelColor { get; set; }
string ErrorMessage { get; set; }
bool IsError { get; set; }
Color? ErrorColor { get; set; }
bool IsSelected { get; set; }
bool CanSelectChannel { get; set; }
bool IsLocked { get; set; }
bool CanLock { get; set; }
ITestChannel Copy();
ulong T1Sample { get; set; }
ulong T2Sample { get; set; }
double HIC { get; set; }
bool UseEUScaler { get; set; }
double ScaleFactorEU { get; set; }
/// <summary>
/// Min value of ADC for entire dataset
/// </summary>
double MinADC { get; set; }
/// <summary>
/// Max value in ADC for entire dataset
/// </summary>
double MaxADC { get; set; }
/// <summary>
/// Average value in ADC for entire dataset
/// </summary>
double AveADC { get; set; }
/// <summary>
/// STD DEV in ADC for entire dataset
/// </summary>
double StdDevADC { get; set; }
/// <summary>
/// Value @ T0 in ADC
/// </summary>
double T0ADC { get; set; }
/// <summary>
/// Minimum value in mV for entire dataset
/// </summary>
double MinMV { get; set; }
/// <summary>
/// Maximum value in mV for entire dataset
/// </summary>
double MaxMV { get; set; }
/// <summary>
/// average value in mV for entire dataset
/// </summary>
double AveMV { get; set; }
/// <summary>
/// std dev in mV for entire dataset
/// </summary>
double StdDevMV { get; set; }
/// <summary>
/// value in mV at T0
/// </summary>
double T0MV { get; set; }
/// <summary>
/// minimum value in EU for entire dataset
/// </summary>
double MinEU { get; set; }
/// <summary>
/// maximum value in EU for entire dataset
/// </summary>
double MaxEU { get; set; }
/// <summary>
/// average value in EU for entire dataset
/// </summary>
double AveEU { get; set; }
/// <summary>
/// std dev in EU
/// </summary>
double StdDevEU { get; set; }
/// <summary>
/// value at T0 in EU
/// </summary>
double T0EU { get; set; }
/// <summary>
/// minimum value for whatever current units are for entire dataset
/// </summary>
double MinY { get; set; }
/// <summary>
/// maximum value for whatever current units are for entire dataset
/// </summary>
double MaxY { get; set; }
/// <summary>
/// average value for whatever current units are for entire dataset
/// </summary>
double AveY { get; set; }
/// <summary>
/// std deviation for whatever current units are
/// </summary>
double StdDevY { get; set; }
/// <summary>
/// Value at T0 in whatever current units are
/// </summary>
double T0Value { get; set; }
}
}

View File

@@ -0,0 +1,102 @@
using System.Collections.Generic;
using System.Linq;
namespace DTS.Common.Classes.TMAT
{
/// <summary>
/// this class handles a TMATS template split into two files
/// </summary>
public class TmtSplitFile : TmtBase
{
private readonly List<string> _lines = new List<string>();
private readonly Dictionary<int, List<string>> _allChannels = new Dictionary<int, List<string>>();
private readonly List<string> _channelTemplate = new List<string>();
public override string[] GetAllLines()
{
if (!_allChannels.Any()) { return _lines.ToArray(); }
var lines = new List<string>(_lines.ToArray());
var min = _allChannels.Keys.Min();
var max = _allChannels.Keys.Max();
for( var i = min; i<= max; i++)
{
if (_allChannels.ContainsKey(i))
{
lines.AddRange(_allChannels[i].ToArray());
}
}
return lines.ToArray();
}
private void AddChannelIfNeeded(int channelNumber)
{
if (!_allChannels.ContainsKey(channelNumber))
{
_allChannels.Add(channelNumber, _channelTemplate.ToList());
}
}
/// <summary>
/// updates the files in the file with a given value
/// </summary>
public override void UpdateValue(TMTChannelKeysEx key, string value, int channelNumber)
{
AddChannelIfNeeded(channelNumber);
var lines = _allChannels[channelNumber];
var pattern = TMTKey.GetKey(key);
for (int i = 0; i < lines.Count; i++)
{
if (lines[i].Contains(pattern))
{
lines[i] = lines[i].Replace(pattern, value);
}
}
}
/// <summary>
/// updates the fields in the file with a given value
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public override void UpdateValue(TMTGlobalKeys key, string value)
{
var pattern = TMTKey.GetKey(key);
for (int i = 0; i < _lines.Count; i++)
{
if (_lines[i].Contains(pattern))
{
_lines[i] = _lines[i].Replace(pattern, value);
}
}
}
/// <summary>
/// updates the files in the file with the given value
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <param name="channelNumber"></param>
public override void UpdateValue(TMTChannelKeys key, string value, int channelNumber)
{
var pattern = TMTKey.GetKey(key, channelNumber);
for (int i = 0; i < _lines.Count; i++)
{
if (_lines[i].Contains(pattern))
{
_lines[i] = _lines[i].Replace(pattern, value);
}
}
}
public TmtSplitFile(string dasTemplate, string channelTemplate)
{
if (System.IO.File.Exists(dasTemplate))
{
_lines.AddRange(System.IO.File.ReadAllLines(dasTemplate));
}
if (System.IO.File.Exists(channelTemplate))
{
_channelTemplate.AddRange(System.IO.File.ReadAllLines(channelTemplate));
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

View File

@@ -0,0 +1,19 @@
using DTS.Common.Base;
using Prism.Commands;
using System.Collections.ObjectModel;
namespace DTS.Common.Interface
{
public interface IPSDReportResultsViewModel : IBaseViewModel
{
/// <summary>
/// Gets the Results View.
/// </summary>
IBaseView View { get; set; }
IBaseViewModel Parent { get; set; }
DelegateCommand ExportToPDFCommand { get; }
DelegateCommand ExportToCSVCommand { get; }
ObservableCollection<IChannelGRMSSummary> Results { get; set; }
}
}