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,31 @@
using System;
using System.Collections;
using System.Windows;
using System.Windows.Data;
namespace DTS.Common.Converters
{
/// <summary>
/// simple converter that converts array or lists so visible or hidden
/// </summary>
public class ArrayVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if( null == value ){ return Visibility.Hidden; }
if( value is IList list ){ return list.Count > 0 ? Visibility.Visible : Visibility.Collapsed; }
if (value is Array array)
{
return array.Length > 0 ? Visibility.Visible : Visibility.Collapsed;
}
return Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
}

View File

@@ -0,0 +1,35 @@
namespace DTS.Common.Enums.Sensors.SensorsList
{
public enum AnalogSensorFields
{
Included,
SerialNumber,
Description,
Manufacturer,
Model,
Capacity,
CalInterval,
Sensitivity,
LinearSensitivity,
Resistance,
Excitation,
Units,
Id,
CalDate,
CalDueDate,
ModifiedBy,
LastModified,
IEPE,
OutOfDate,
InWarningPeriod,
NonLinearCalucationType,
ZeroMethod,
ZeroMethodStart,
ZeroMethodEnd,
//13065 Sensor "First Use" Date
FirstUseDate,
UserValue1,
UserValue2,
UserValue3
}
}

View File

@@ -0,0 +1,233 @@
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:STO;
R-1\ID:{TEST ID};
R-1\RID:S6A_1;
R-1\R1:generated from XML CH10 mapping;
R-1\TC1:OTHR;
R-1\COM:======;
R-1\COM: TMATS for superCom 4xADC PCM stream with 4x6 ADC channels and subframeID
R-1\COM: 400bit per frame.
R-1\COM:======;
R-1\RML:E;
R-1\ERBS:AUTO;
R-1\NSB:0;
R-1\RI1:Data Bus Tools GmbH;
R-1\RI2:S6A_1;
R-1\RI3:N;
R-1\RI6:N;
R-1\CRE:F;
R-1\RSS:R;
R-1\N:2;
R-1\TK1-1:1;
R-1\TK4-1:1;
R-1\COM: == Time Channel ==;
R-1\COM: == Format 2 with PTP timestamp ==;
R-1\TK1-1:1;
R-1\TK2-1:OTHER;
R-1\DSI-1:1;
R-1\TK3-1:FWD;
R-1\TK4-1:1;
R-1\CHE-1:T;
R-1\CDT-1:TIMEIN;
R-1\CDLN-1:1;
R-1\TTF-1:{STREAM TIME FORMAT};
R-1\SHTF-1:1;
R-1\COM: == PCM Channel Description ==;
R-1\DSI-2:PCMIN;
R-1\TK1-2:3;
R-1\TK4-2:3;
R-1\CHE-2:T;
R-1\CDT-2:PCMIN;
R-1\CDLN-2:{DAS SERIAL NUMBER};
R-1\PDTF-2:1;
R-1\PDP-2:TM;
R-1\ICE-2:180;
R-1\IST-2:SE;
R-1\ITH-2:1;
R-1\ITM-2:Low-Z;
R-1\PTF-2:NONE;
P-1\DLN:{DAS SERIAL NUMBER};
P-1\D1:NRZ-L;
P-1\D2:{DAS BIT RATE};
P-1\D3:U;
P-1\D4:N;
P-1\D7:N;
P-1\D8:NA;
P-1\TF:ONE;
P-1\F1:16;
P-1\F2:M;
P-1\F3:NO;
P-1\F4:T;
P-1\ISF\N:0;
P-1\MF\N:1;
P-1\COM: === Number of channels (including time sync) ===;
P-1\MF1:26;
P-1\MF2:432;
P-1\MF3:FPT;
P-1\MF4:32;
P-1\MF5:11111110011010110010100001000000;
D-1\DLN:{DAS SERIAL NUMBER};
D-1\ML\N:1;
D-1\MLN-1:Measurement List;
D-1\COM: === Number of channels in the measurement list ===;
D-1\MN\N-1:6;
D-1\MN-1-1:{CHANNEL 1 NAME};
D-1\MN1-1-1:DE;
D-1\MN2-1-1:D;
D-1\MN3-1-1:M;
D-1\LT-1-1:WDFR;
D-1\MML\N-1-1:1;
D-1\MNF\N-1-1-1:1;
D-1\WP-1-1-1-1:1;
D-1\WI-1-1-1-1:0;
D-1\FP-1-1-1-1:1;
D-1\FI-1-1-1-1:0;
D-1\WFM-1-1-1-1:FW;
D-1\MN-1-2:{CHANNEL 2 NAME};
D-1\MN1-1-2:DE;
D-1\MN2-1-2:D;
D-1\MN3-1-2:M;
D-1\LT-1-2:WDFR;
D-1\MML\N-1-2:1;
D-1\MNF\N-1-2-1:1;
D-1\WP-1-2-1-1:2;
D-1\WI-1-2-1-1:0;
D-1\FP-1-2-1-1:1;
D-1\FI-1-2-1-1:0;
D-1\WFM-1-2-1-1:FW;
D-1\MN-1-3:{CHANNEL 3 NAME};
D-1\MN1-1-3:DE;
D-1\MN2-1-3:D;
D-1\MN3-1-3:M;
D-1\LT-1-3:WDFR;
D-1\MML\N-1-3:1;
D-1\MNF\N-1-3-1:1;
D-1\WP-1-3-1-1:3;
D-1\WI-1-3-1-1:0;
D-1\FP-1-3-1-1:1;
D-1\FI-1-3-1-1:0;
D-1\WFM-1-3-1-1:FW;
D-1\MN-1-4:{CHANNEL 4 NAME};
D-1\MN1-1-4:DE;
D-1\MN2-1-4:D;
D-1\MN3-1-4:M;
D-1\LT-1-4:WDFR;
D-1\MML\N-1-4:1;
D-1\MNF\N-1-4-1:1;
D-1\WP-1-4-1-1:4;
D-1\WI-1-4-1-1:0;
D-1\FP-1-4-1-1:1;
D-1\FI-1-4-1-1:0;
D-1\WFM-1-4-1-1:FW;
D-1\MN-1-5:{CHANNEL 5 NAME};
D-1\MN1-1-5:DE;
D-1\MN2-1-5:D;
D-1\MN3-1-5:M;
D-1\LT-1-5:WDFR;
D-1\MML\N-1-5:1;
D-1\MNF\N-1-5-1:1;
D-1\WP-1-5-1-1:5;
D-1\WI-1-5-1-1:0;
D-1\FP-1-5-1-1:1;
D-1\FI-1-5-1-1:0;
D-1\WFM-1-5-1-1:FW;
D-1\MN-1-6:{CHANNEL 6 NAME};
D-1\MN1-1-6:DE;
D-1\MN2-1-6:D;
D-1\MN3-1-6:M;
D-1\LT-1-6:WDFR;
D-1\MML\N-1-6:1;
D-1\MNF\N-1-6-1:1;
D-1\WP-1-6-1-1:6;
D-1\WI-1-6-1-1:0;
D-1\FP-1-6-1-1:1;
D-1\FI-1-6-1-1:0;
D-1\WFM-1-6-1-1:FW;
C-1\DCN:{CHANNEL 1 NAME};
C-1\MN1:{CHANNEL 1 NAME};
C-1\BFM:UNS;
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:UNS;
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:UNS;
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:UNS;
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:UNS;
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:UNS;
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};

View File

@@ -0,0 +1,8 @@
using DTS.Common.Base;
namespace DTS.Common.Interface
{
public interface ICPUEngine : IBaseClass
{
}
}

View File

@@ -0,0 +1,75 @@
using DTS.Common.Interface.Channels;
using DTS.Common.Interface.DataRecorders;
using DTS.Common.Interface.Sensors;
using System;
using System.Collections.Generic;
using DTS.Common.Interface.TestSetups.TestSetupsList;
namespace DTS.Common.Interface.Groups.GroupList
{
public interface IGroup: IComparable<IGroup>
{
IGroupDbRecord GetIGroupDbRecord();
int ChannelCount { get; set; }
int Id { get; set; }
string Name { get; set; }
string DisplayName { get; set; }
int? StaticGroupId { get; set; }
string Description { get; set; }
bool Embedded { get; set; }
DateTime LastModified { get; set; }
string LastModifiedBy { get; set; }
/// <summary>
/// returns true if group matches search term
/// false otherwise
/// </summary>
/// <param name="term"></param>
/// <returns></returns>
bool Filter(string term);
int [] IncludedHardware { get; set; }
//holds a list of hardware identified using the old SerialNumber_type id scheme
//I believe this is primarily for import purposes.
string [] IncludedHardwareStringList { get; set; }
bool Save(Channels.IGroupChannel [] groupChannels, bool canUserCommitChannelCodes);
void ClearGroupChannelSettingCache(long groupId);
Channels.IGroupChannel[] GetAllChannels(bool bEditable, IDictionary<int, ISensorData> sensorLookup,
IDictionary<int, IDASHardware> hardwareLookup, IChannelSetting [] channelDefaults, bool allowSensorPushAndPull = false);
void LoadHardware();
void ConvertToEmbedded(Channels.IGroupChannel [] groupChannels);
void DeterminePositionAndTestObject(Channels.IGroupChannel[] channels);
bool PositionIsMixed { get; set; }
bool PositionIsTextbox { get; set; }
bool PositionIsCombobox { get; set; }
string Position { get; set; }
bool TestObjectIsMixed { get; set; }
string TestObject { get; set; }
int DisplayOrder { get; set; }
ISensorData GetSensor(Channels.IGroupChannel channel, ISensorData sensorData, bool bUseIsoFilter);
void SetSensor(Channels.IGroupChannel channel, ISensorData sensorData);
void WriteXML(ref System.Xml.XmlWriter writer);
IGroup ReadXML(System.Xml.XmlElement node, Dictionary<long, DTS.Common.Interface.Channels.IGroupChannel> channelLookup, List<ISensorData> sensors);
List<Channels.IGroupChannel> GroupChannelList { get; set; }
/// <summary>
/// sets the included hardware property and the _bloaded property
/// </summary>
/// <param name="hardware"></param>
void SetIncludedHardware(int[] hardware);
List<TestSetupParentHelper> AssociatedTestSetups { get; set; }
void SetTestSetupLists();
bool StaticGroupIsEqual();
bool IsDifferentThanStaticGroup { get; set; }
bool TagCompatible(int[] tags);
int[] TagIDs { get; set; }
string GetTagsAsCommaSeparatedString(Classes.Tags.TagsInstance.TagsGetDelegate tagsGet);
string Tags { get; set; }
List<string> AvailableTestObjects { get; set; }
string SelectedTestObjectItem { get; set; }
List<string> AvailablePositions { get; set; }
string SelectedPositionItem { get; set; }
}
}

View File

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

View File

@@ -0,0 +1,48 @@
using System.ComponentModel;
namespace DTS.Common.RibbonControl
{
public class SplitButtonData : MenuButtonData
{
public SplitButtonData()
: this(false)
{
}
public SplitButtonData(bool isApplicationMenu)
: base(isApplicationMenu)
{
}
public bool IsChecked
{
get => _isChecked;
set
{
if (_isChecked != value)
{
_isChecked = value;
OnPropertyChanged(new PropertyChangedEventArgs("IsChecked"));
}
}
}
private bool _isChecked;
public bool IsCheckable
{
get => _isCheckable;
set
{
if (_isCheckable == value) return;
_isCheckable = value;
OnPropertyChanged(new PropertyChangedEventArgs("IsCheckable"));
}
}
private bool _isCheckable;
public ButtonData DropDownButtonData => _dropDownButtonData ?? (_dropDownButtonData = new ButtonData());
private ButtonData _dropDownButtonData;
}
}