init
This commit is contained in:
@@ -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 1minor/major PCM stream with 6 ADC channels and subframeID
|
||||
R-1\COM: 144bit per frame.
|
||||
R-1\COM:=========================================================================;
|
||||
R-1\RML:E;
|
||||
R-1\ERBS:AUTO;
|
||||
R-1\NSB:1;
|
||||
R-1\RI1:SLICE6 AIR;
|
||||
R-1\RI2:S6A_2;
|
||||
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:8;
|
||||
P-1\MF2:144;
|
||||
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};
|
||||
@@ -0,0 +1,8 @@
|
||||
using DTS.Common.Base;
|
||||
|
||||
namespace DTS.Common.Interface
|
||||
{
|
||||
public interface IStatusAndProgressBarView : IBaseView
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// ReSharper disable CheckNamespace
|
||||
namespace DTS.Common.Base
|
||||
{
|
||||
public interface IBaseView
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the data context.
|
||||
/// </summary>
|
||||
object DataContext { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
// ReSharper disable CheckNamespace
|
||||
|
||||
namespace DTS.Common.Interface
|
||||
{
|
||||
public interface ITestCalculatedChannel : INotifyPropertyChanged
|
||||
{
|
||||
string SerialNumber { get; set; }
|
||||
string ChannelId { get; set; }
|
||||
string Description { get; set; }
|
||||
string ChannelGroupName { get; set; }
|
||||
string ChannelType { get; set; }
|
||||
int Number { get; set; }
|
||||
string DigitalMultiplier { get; set; }
|
||||
string DigitalMode { get; set; }
|
||||
DateTime Start { get; set; }
|
||||
string Bridge { get; set; }
|
||||
int BridgeResistanceOhms { get; set; }
|
||||
double ZeroPoint { get; set; }
|
||||
string ChannelDescriptionString { get; set; }
|
||||
string ChannelName2 { get; set; }
|
||||
string HardwareChannelName { get; set; }
|
||||
double DesiredRange { 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; }
|
||||
int 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; }
|
||||
int Multiplier { get; set; }
|
||||
int 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; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
using DTS.Common.Enums;
|
||||
using DTS.Common.Utilities.Logging;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Interactivity;
|
||||
namespace DTS.Common.Behaviors
|
||||
{
|
||||
public class MultiSelectionBehavior : Behavior<ListBox>
|
||||
{
|
||||
protected override void OnAttached()
|
||||
{
|
||||
base.OnAttached();
|
||||
if (SelectedItems != null)
|
||||
{
|
||||
AssociatedObject.SelectedItems.Clear();
|
||||
foreach (var item in SelectedItems)
|
||||
{
|
||||
AssociatedObject.SelectedItems.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IList SelectedItems
|
||||
{
|
||||
get => (IList)GetValue(SelectedItemsProperty);
|
||||
set => SetValue(SelectedItemsProperty, value);
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty SelectedItemsProperty =
|
||||
DependencyProperty.Register("SelectedItems", typeof(IList), typeof(MultiSelectionBehavior), new UIPropertyMetadata(null, SelectedItemsChanged));
|
||||
|
||||
private static void SelectedItemsChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
var behavior = o as MultiSelectionBehavior;
|
||||
if (behavior == null)
|
||||
return;
|
||||
|
||||
|
||||
if (e.OldValue is INotifyCollectionChanged oldValue)
|
||||
{
|
||||
oldValue.CollectionChanged -= behavior.SourceCollectionChanged;
|
||||
behavior.AssociatedObject.SelectionChanged -= behavior.ListBoxSelectionChanged;
|
||||
}
|
||||
if (e.NewValue is INotifyCollectionChanged newValue)
|
||||
{
|
||||
behavior.AssociatedObject.SelectedItems.Clear();
|
||||
foreach (var item in (IEnumerable)newValue)
|
||||
{
|
||||
behavior.AssociatedObject.SelectedItems.Add(item);
|
||||
}
|
||||
|
||||
behavior.AssociatedObject.SelectionChanged += behavior.ListBoxSelectionChanged;
|
||||
newValue.CollectionChanged += behavior.SourceCollectionChanged;
|
||||
}
|
||||
}
|
||||
|
||||
private bool _isUpdatingTarget;
|
||||
private bool _isUpdatingSource;
|
||||
|
||||
private void SourceCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
|
||||
{
|
||||
if (_isUpdatingSource)
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
_isUpdatingTarget = true;
|
||||
|
||||
if (e.OldItems != null)
|
||||
{
|
||||
foreach (var item in e.OldItems)
|
||||
{
|
||||
AssociatedObject.SelectedItems.Remove(item);
|
||||
}
|
||||
}
|
||||
|
||||
if (e.NewItems != null)
|
||||
{
|
||||
foreach (var item in e.NewItems)
|
||||
{
|
||||
AssociatedObject.SelectedItems.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
if (e.Action == NotifyCollectionChangedAction.Reset)
|
||||
{
|
||||
AssociatedObject.SelectedItems.Clear();
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
_isUpdatingTarget = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void ListBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
if (_isUpdatingTarget)
|
||||
return;
|
||||
|
||||
var selectedItems = SelectedItems;
|
||||
if (selectedItems == null)
|
||||
return;
|
||||
//this could be a bulk operation, turn off notifications if consumer is paying attention
|
||||
SelectedItemsStatus.SetUpdating(SelectedItems, true);
|
||||
try
|
||||
{
|
||||
_isUpdatingSource = true;
|
||||
foreach (var item in e.RemovedItems)
|
||||
{
|
||||
selectedItems.Remove(item);
|
||||
}
|
||||
|
||||
var itemsToAdd = new List<object>();
|
||||
|
||||
foreach (var item in e.AddedItems)
|
||||
{
|
||||
if (!selectedItems.Contains(item))
|
||||
{
|
||||
itemsToAdd.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
var type = selectedItems.GetType().GenericTypeArguments[0];
|
||||
|
||||
foreach (var item in itemsToAdd)
|
||||
{
|
||||
if (item == itemsToAdd.Last())
|
||||
{
|
||||
//if this is the last item, turn notifications back on
|
||||
SelectedItemsStatus.SetUpdating(SelectedItems, false);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (type.IsAssignableFrom(item.GetType()))
|
||||
{
|
||||
selectedItems.Add(item);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
APILogger.Log(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
_isUpdatingSource = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 488 B |
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
Reference in New Issue
Block a user