init
This commit is contained in:
1
DataPRO/Modules/Hardware/HardwareList/.svn/entries
Normal file
1
DataPRO/Modules/Hardware/HardwareList/.svn/entries
Normal file
@@ -0,0 +1 @@
|
||||
12
|
||||
1
DataPRO/Modules/Hardware/HardwareList/.svn/format
Normal file
1
DataPRO/Modules/Hardware/HardwareList/.svn/format
Normal file
@@ -0,0 +1 @@
|
||||
12
|
||||
@@ -0,0 +1,16 @@
|
||||
namespace HardwareList.Model
|
||||
{
|
||||
public class HardwareChannelAssignment
|
||||
{
|
||||
public string ChannelNumber { get; }
|
||||
public string Sensor { get; }
|
||||
public string Name { get; }
|
||||
|
||||
public HardwareChannelAssignment(string channelNumber, string sensor, string name)
|
||||
{
|
||||
ChannelNumber = channelNumber;
|
||||
Sensor = sensor;
|
||||
Name = name;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
<base:BaseView x:Class="HardwareList.HardwareListReplaceView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:base="clr-namespace:DTS.Common.Base;assembly=DTS.Common"
|
||||
xmlns:behaviors="clr-namespace:DTS.Common.Behaviors;assembly=DTS.Common"
|
||||
xmlns:controls="clr-namespace:DTS.Common.Controls;assembly=DTS.Common"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:strings="clr-namespace:HardwareList"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:converters="clr-namespace:DTS.Common.Converters;assembly=DTS.Common"
|
||||
xmlns:converters2="clr-namespace:HardwareList.Converters"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="768" d:DesignWidth="1366"
|
||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||
xmlns:controls2="clr-namespace:DTS.Common.Controls;assembly=DTS.Common">
|
||||
<base:BaseView.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Themes/CommonStyles.xaml"/>
|
||||
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Controls/combobox.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<Style TargetType="ListView">
|
||||
<Setter Property="ItemContainerStyle" Value="{StaticResource TTS_ListViewItemStyle}"/>
|
||||
</Style>
|
||||
<Style TargetType="TextBox" BasedOn="{StaticResource TTS_TextBoxStyle}"/>
|
||||
<Style TargetType="TextBlock" BasedOn="{StaticResource TTS_TextBlockStyle}"/>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource PageContentCheckBoxStyle}" />
|
||||
<Style TargetType="ComboBox" BasedOn="{StaticResource TTS_ComboBoxStyle}"/>
|
||||
<Style TargetType="Button" BasedOn="{StaticResource TTS_ButtonStyle}"/>
|
||||
<Style TargetType="GridViewColumnHeader" BasedOn="{StaticResource Gray_GridViewColumnHeaderStyle}"/>
|
||||
<converters:BooleanToVisibilityConverter x:Key="BoolToVis" />
|
||||
<converters2:FirstUseDateConverter x:Key="FirstUseConverter" />
|
||||
</ResourceDictionary>
|
||||
</base:BaseView.Resources>
|
||||
<Grid Background="{DynamicResource Brush_ApplicationContentBackground}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Grid.Column="0" Grid.Row="0" Margin="5">
|
||||
<TextBlock Text="{strings:TranslateExtension HardwareToReplace}" Margin="5,0,5,0" />
|
||||
<ComboBox MinWidth="200" ItemsSource="{Binding HardwareInTest}" SelectedItem="{Binding HardwareToReplace}" />
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Grid.Column="1" Grid.Row="0" Margin="5">
|
||||
<TextBlock Text="{strings:TranslateExtension HardwareToReplaceWith}" Margin="5,0,5,0"/>
|
||||
<ComboBox MinWidth="200" ItemsSource="{Binding AvailableHardware}" SelectedItem="{Binding ReplacementHardware}"/>
|
||||
<Button Content="{strings:TranslateExtension Replace}" Click="Replace_Click" MinHeight="25"/>
|
||||
</StackPanel>
|
||||
<ListView ItemsSource="{Binding AssignedChannels}" Grid.Row="2">
|
||||
<ListView.View>
|
||||
<controls:AutoSizedGridView>
|
||||
<GridViewColumn>
|
||||
<GridViewColumnHeader Content="{strings:TranslateExtension ChannelNumber}" />
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding ChannelNumber}" />
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn>
|
||||
<GridViewColumnHeader Content="{strings:TranslateExtension Sensor}" />
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding Sensor}" />
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn>
|
||||
<GridViewColumnHeader Content="{strings:TranslateExtension Name}" />
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding Name}" />
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</controls:AutoSizedGridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
</Grid>
|
||||
</base:BaseView>
|
||||
@@ -0,0 +1,135 @@
|
||||
<base:BaseView x:Class="HardwareList.HardwareListView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:base="clr-namespace:DTS.Common.Base;assembly=DTS.Common"
|
||||
xmlns:behaviors="clr-namespace:DTS.Common.Behaviors;assembly=DTS.Common"
|
||||
xmlns:controls="clr-namespace:DTS.Common.Controls;assembly=DTS.Common"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:strings="clr-namespace:HardwareList"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:converters="clr-namespace:DTS.Common.Converters;assembly=DTS.Common"
|
||||
xmlns:converters2="clr-namespace:HardwareList.Converters"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="768" d:DesignWidth="1366"
|
||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||
xmlns:controls2="clr-namespace:DTS.Common.Controls;assembly=DTS.Common">
|
||||
<base:BaseView.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Themes/CommonStyles.xaml"/>
|
||||
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Controls/combobox.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<Style TargetType="ListView">
|
||||
<Setter Property="ItemContainerStyle" Value="{StaticResource TTS_ListViewItemStyle}"/>
|
||||
</Style>
|
||||
<Style TargetType="TextBox" BasedOn="{StaticResource TTS_TextBoxStyle}"/>
|
||||
<Style TargetType="TextBlock" BasedOn="{StaticResource TTS_TextBlockStyle}"/>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource PageContentCheckBoxStyle}" />
|
||||
<Style TargetType="ComboBox" BasedOn="{StaticResource TTS_ComboBoxStyle}"/>
|
||||
<Style TargetType="Button" BasedOn="{StaticResource TTS_ButtonStyle}"/>
|
||||
<Style TargetType="GridViewColumnHeader" BasedOn="{StaticResource Gray_GridViewColumnHeaderStyle}"/>
|
||||
<converters:BooleanToVisibilityConverter x:Key="BoolToVis" />
|
||||
<converters2:FirstUseDateConverter x:Key="FirstUseConverter" />
|
||||
</ResourceDictionary>
|
||||
</base:BaseView.Resources>
|
||||
<Grid Background="{DynamicResource Brush_ApplicationContentBackground}">
|
||||
<ListView ItemsSource="{Binding Hardware, UpdateSourceTrigger=PropertyChanged}" AutomationProperties.AutomationId="HardwareListView" SelectedIndex="{Binding SelectedHardwareIndex, Mode=TwoWay}" MouseDoubleClick="MouseDoubleClick" GridViewColumnHeader.Click="GridViewColumnHeader_OnClick">
|
||||
<i:Interaction.Behaviors>
|
||||
<behaviors:MultiSelectionBehavior SelectedItems="{Binding SelectedHardwareItems}" />
|
||||
</i:Interaction.Behaviors>
|
||||
<ListView.View>
|
||||
<controls:AutoSizedGridView AutomationProperties.AutomationId="HardwareListGridView">
|
||||
<GridViewColumn AutomationProperties.AutomationId="SerialNumber">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="SerialNumber" HeaderTitle="{strings:TranslateExtension SerialNumber}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding SerialNumber,FallbackValue='SerialNumber'}" AutomationProperties.AutomationId="SerialNumLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="HardwareType">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="HardwareType" HeaderTitle="{strings:TranslateExtension HardwareType}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding HardwareType,FallbackValue='HardwareType'}" AutomationProperties.AutomationId="TypeLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
|
||||
<GridViewColumn AutomationProperties.AutomationId="IPAddress">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="IPAddress" HeaderTitle="{strings:TranslateExtension Connection}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding IPAddress,FallbackValue='IPAddress'}" AutomationProperties.AutomationId="IPAddressLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
|
||||
<GridViewColumn AutomationProperties.AutomationId="ChannelCount">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="ChannelCount" HeaderTitle="{strings:TranslateExtension ChannelCount}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding ChannelCount,FallbackValue='ChannelCount'}" AutomationProperties.AutomationId="ChanCountLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
|
||||
<GridViewColumn AutomationProperties.AutomationId="Firmware">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="Firmware" HeaderTitle="{strings:TranslateExtension Firmware}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding Firmware,FallbackValue='Firmware'}" AutomationProperties.AutomationId="FirmwareLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="MaxSampleRate">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="MaxSampleRate" HeaderTitle="{strings:TranslateExtension MaxSampleRate}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding MaxSampleRate,FallbackValue='MaxSampleRate',StringFormat='N0', TargetNullValue='---'}" AutomationProperties.AutomationId="MaxSampleRateLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="CalDate">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="CalDate" HeaderTitle="{strings:TranslateExtension CalDate}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding CalDate,FallbackValue='CalDate', StringFormat='d', TargetNullValue='N/A'}" AutomationProperties.AutomationId="CalDateLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="FirstUseDate">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="FirstUseDate" HeaderTitle="{strings:TranslateExtension FirstUseDate}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext,RelativeSource={RelativeSource Self}, StringFormat='d',Converter={StaticResource FirstUseConverter}}"
|
||||
AutomationProperties.AutomationId="FirstUseDateLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="CalDueDate">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="CalDueDate" HeaderTitle="{strings:TranslateExtension CalDueDate}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding CalDueDate,FallbackValue='CalDueDate',StringFormat='d', TargetNullValue='N/A'}" AutomationProperties.AutomationId="CalDueDateLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="TreeViewButton">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<Button Visibility="{Binding HasTreeView, Converter={StaticResource BoolToVis}}"
|
||||
Content="{strings:TranslateExtension TreeView}"
|
||||
Click="TreeviewButton_Click" AutomationProperties.AutomationId="btnTreeViewDataRecordersS6DB"
|
||||
/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</controls:AutoSizedGridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<Popup x:Name="SLICE6TreeViewPopup" Visibility="Collapsed" StaysOpen="False"/>
|
||||
</Grid>
|
||||
</base:BaseView>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,656 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using DTS.Common.Base;
|
||||
using DTS.Common.Classes.Hardware;
|
||||
using DTS.Common.Converters;
|
||||
using DTS.Common.Enums;
|
||||
using DTS.Common.Enums.Hardware;
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics;
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics.HardwareList;
|
||||
|
||||
namespace HardareList.Model
|
||||
{
|
||||
public class HardwareModel : BasePropertyChanged, IHardware
|
||||
{
|
||||
/// <summary>
|
||||
/// first date of use after calibration
|
||||
/// only valid if IsFirstUseValid is true
|
||||
/// null value indicates hardware has not been used since calibration
|
||||
/// (once again, only if IsFirstUseValid is true)
|
||||
/// 15524 DAS "First Use Date"
|
||||
/// </summary>
|
||||
public DateTime? FirstUseDate { get; set; } = null;
|
||||
/// <summary>
|
||||
/// whether hardware supports and is using first use date
|
||||
/// 15524 DAS "First Use Date"
|
||||
/// </summary>
|
||||
public bool IsFirstUseValid { get; set; } = false;
|
||||
public int DASId { get; set; }
|
||||
public bool Disabled { get; set; }
|
||||
public string SerialNumber { get; set; }
|
||||
public string HardwareType { get; set; }
|
||||
public string ChannelCount { get; set; }
|
||||
public bool HasIncludedChildren { get; set; } = false;
|
||||
public string Firmware { get; set; }
|
||||
public double? MaxSampleRate { get; set; }
|
||||
private double _testSampleRate = 0;
|
||||
public double TestSampleRate
|
||||
{
|
||||
get => _testSampleRate;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _testSampleRate, value, "TestSampleRate");
|
||||
OnPropertyChanged("SelectedSampleRateIndex");
|
||||
}
|
||||
}
|
||||
private double _testAafilterRateHz = 0;
|
||||
public double TestAAFilterRateHz
|
||||
{
|
||||
get => _testAafilterRateHz;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _testAafilterRateHz, value, "TestAAFilterRateHz");
|
||||
_vm.FireAAFilterRate(this, value.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime? CalDate { get; set; }
|
||||
public DateTime? CalDueDate { get; set; }
|
||||
public List<double> _availableSampleRates { get; set; }
|
||||
public string[] AvailableSampleRates { get; set; }
|
||||
public string SelectedSampleRateItem { get; set; } = string.Empty;
|
||||
public int SelectedSampleRateIndex
|
||||
{
|
||||
get
|
||||
{
|
||||
if (null == _availableSampleRates) { return -1; }
|
||||
if (_availableSampleRates.IndexOf(TestSampleRate) == -1)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
SelectedSampleRateItem = AvailableSampleRates[_availableSampleRates.IndexOf(TestSampleRate)]; //They're all the same
|
||||
return _availableSampleRates.IndexOf(TestSampleRate);
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SelectedSampleRateIndex == value) return;
|
||||
TestSampleRate = _availableSampleRates[value];
|
||||
_vm.FireSampleRate(this, _availableSampleRates[value].ToString());
|
||||
TestAAFilterRateHz = _vm.GetAAFForHardware((IISOHardware)Hardware, (int)TestSampleRate);
|
||||
OnPropertyChanged("SelectedSampleRateIndex");
|
||||
}
|
||||
}
|
||||
public object Hardware { get; set; }
|
||||
public int AnalogChannels { get; set; }
|
||||
public int SquibChannels { get; set; }
|
||||
public int DigitalInChannels { get; set; }
|
||||
public int DigitalOutChannels { get; set; }
|
||||
public int UartChannels { get; set; }
|
||||
public int StreamOutChannels { get; set; }
|
||||
public int StreamInChannels { get; set; }
|
||||
public int CanChannels { get; set; }
|
||||
public string IPAddress { get; set; }
|
||||
|
||||
private bool _bIncluded = false;
|
||||
public bool Included
|
||||
{
|
||||
get => _bIncluded;
|
||||
set
|
||||
{
|
||||
_bIncluded = value;
|
||||
OnPropertyChanged("Included");
|
||||
_vm.FireIncluded(this);
|
||||
OnPropertyChanged("MixedRates");
|
||||
OnPropertyChanged("IncludedAndNotMixedRatesAndCompactOrNotDistributor");
|
||||
OnPropertyChanged("IncludedAndMixedRatesAndCompact");
|
||||
}
|
||||
}
|
||||
|
||||
private double _dspStreamingFilter = double.NaN;
|
||||
public double DSPStreamingFilter
|
||||
{
|
||||
get => _dspStreamingFilter;
|
||||
set => SetProperty(ref _dspStreamingFilter, value, "DSPStreamingFilter");
|
||||
}
|
||||
public DTS.Common.ClockSyncProfile MasterProfile { get; set; } = DTS.Common.ClockSyncProfile.None;
|
||||
public DTS.Common.ClockSyncProfile SlaveProfile { get; set; } = DTS.Common.ClockSyncProfile.None;
|
||||
private bool _bIsClockMaster = false;
|
||||
public bool IsClockMaster
|
||||
{
|
||||
get => IsClockedDAS && _bIsClockMaster;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _bIsClockMaster, value, "IsClockMaster");
|
||||
_vm.FireClockMaster(this, IsClockMaster);
|
||||
OnPropertyChanged("IsPTPSync");
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsClockedDAS
|
||||
{
|
||||
get
|
||||
{
|
||||
switch(((IISOHardware)Hardware)?.DASTypeEnum)
|
||||
{
|
||||
case HardwareTypes.SLICE6_AIR:
|
||||
case HardwareTypes.S6A_EthernetRecorder:
|
||||
case HardwareTypes.SLICE6_Base:
|
||||
case HardwareTypes.SLICE6_AIR_BR:
|
||||
case HardwareTypes.SLICE6DB:
|
||||
case HardwareTypes.SLICE6DB3:
|
||||
case HardwareTypes.SLICE6DB_InDummy:
|
||||
case HardwareTypes.TSR_AIR:
|
||||
case HardwareTypes.TSR_AIR_RevB:
|
||||
case HardwareTypes.SLICE6_AIR_TC:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private byte _ptpDomainId = 0;
|
||||
public byte PTPDomainID
|
||||
{
|
||||
get => _ptpDomainId;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _ptpDomainId, value, "PTPDomainID");
|
||||
_vm.FirePTPDomainID(this, PTPDomainID);
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsPTPSync => (IsClockMaster && MasterProfile.GetDescription().Contains("E2E")) || (!IsClockMaster && SlaveProfile.GetDescription().Contains("E2E"));
|
||||
|
||||
private bool _mixedRates = false;
|
||||
public bool MixedRates
|
||||
{
|
||||
get => _mixedRates;
|
||||
set
|
||||
{
|
||||
_mixedRates = value;
|
||||
OnPropertyChanged("MixedRates");
|
||||
OnPropertyChanged("IncludedAndNotMixedRatesAndCompactOrNotDistributor");
|
||||
OnPropertyChanged("IncludedAndMixedRatesAndCompact");
|
||||
}
|
||||
}
|
||||
public bool IsDistributor => (Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE_EthernetController ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE_Distributor ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE_Mini_Distributor ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE6DB ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE_LabEthernet ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE6DB3 ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE6DB_InDummy ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE_Pro_Distributor;
|
||||
|
||||
public bool IsBattery => (Hardware as IISOHardware).DASTypeEnum == HardwareTypes.PowerPro;
|
||||
public bool IsTSRAIR => (Hardware as IISOHardware).DASTypeEnum == HardwareTypes.TSR_AIR ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.TSR_AIR_RevB ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.DKR ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.DIR;
|
||||
public bool IncludedAndNotMixedRatesAndCompactOrNotDistributor => Included && !MixedRates && ((_vm.ShowCompact && HasIncludedChildren) || !IsDistributor) && !IsBattery;
|
||||
public bool IncludedAndMixedRatesAndCompact => Included && MixedRates && _vm.ShowCompact && !IsBattery;
|
||||
private HardwareList.HardwareListViewModel _vm;
|
||||
public HardwareModel(IISOHardware d, int tdasCalPeriod, int g5CalPeriod, int slice1CalPeriod, int slice2CalPeriod, int slice15CalPeriod, int slice6CalPeriod,
|
||||
int powerProCalPeriod, int slice6AirCalPeriod, int slice6AirBridgeCalPeriod, int slice6DBCalPeriod, int tsrAirCalPeriod, int sliceTcCalPeriod,
|
||||
int sliceProCanFdPeriod, HardwareList.HardwareListViewModel vm)
|
||||
{
|
||||
FirstUseDate = d.FirstUseDate;
|
||||
IsFirstUseValid = d.IsFirstUseValid;
|
||||
_vm = vm;
|
||||
Hardware = d;
|
||||
DASId = d.DASId;
|
||||
SerialNumber = d.SerialNumber;
|
||||
Port = d.Port;
|
||||
ParentDAS = d.ParentDAS;
|
||||
PositionOnChain = d.PositionOnChain;
|
||||
PositionOnDistributor = d.PositionOnDistributor;
|
||||
HardwareType = HardwareList.Resources.StringResources.ResourceManager.GetString(d.DASTypeEnum.ToString());
|
||||
if (string.IsNullOrEmpty(HardwareType))
|
||||
{
|
||||
HardwareType = EnumDescriptionTypeConverter.GetEnumDescription(d.DASTypeEnum);
|
||||
}
|
||||
Firmware = d.FirmwareVersion;
|
||||
if ((d.MaxSampleRate > 0.0D) && !Equals(d.MaxSampleRate, (double)uint.MaxValue))
|
||||
{
|
||||
MaxSampleRate = d.MaxSampleRate;
|
||||
}
|
||||
else
|
||||
{
|
||||
MaxSampleRate = null;
|
||||
}
|
||||
|
||||
if (d.CalDate > DASDBRecord.INVALID_DATE)
|
||||
{
|
||||
CalDate = d.CalDate;
|
||||
}
|
||||
else
|
||||
{
|
||||
CalDate = null;
|
||||
}
|
||||
|
||||
d.GetChannelsString(out var analog, out var digitalIn, out var digitalOut, out var squib, out var uart, out var streamOut, out var streamIn, out var can);
|
||||
|
||||
AnalogChannels = analog;
|
||||
DigitalInChannels = digitalIn;
|
||||
DigitalOutChannels = digitalOut;
|
||||
SquibChannels = squib;
|
||||
UartChannels = uart;
|
||||
StreamOutChannels = streamOut;
|
||||
StreamInChannels = streamIn;
|
||||
CanChannels = can;
|
||||
|
||||
var dateOfFirstUse = CalDate;
|
||||
if (IsFirstUseValid)
|
||||
{
|
||||
if (null == FirstUseDate)
|
||||
{
|
||||
dateOfFirstUse = DateTime.Today;
|
||||
}
|
||||
else { dateOfFirstUse = FirstUseDate; }
|
||||
}
|
||||
|
||||
switch (d.DASTypeEnum)
|
||||
{
|
||||
case HardwareTypes.SLICE_Base:
|
||||
case HardwareTypes.SLICE_Bridge:
|
||||
case HardwareTypes.SLICE_Distributor:
|
||||
//FB 16148 similar to slice db
|
||||
case HardwareTypes.SLICE_Mini_Distributor:
|
||||
case HardwareTypes.SLICE_IEPE:
|
||||
case HardwareTypes.Ribeye:
|
||||
case HardwareTypes.RibeyeLED:
|
||||
case HardwareTypes.SLICE_Micro_Base:
|
||||
case HardwareTypes.SLICE_NANO_Base:
|
||||
case HardwareTypes.SLICE1_G5Stack:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice1CalPeriod);
|
||||
break;
|
||||
case HardwareTypes.TDAS_Pro_Rack:
|
||||
case HardwareTypes.TDAS_LabRack:
|
||||
case HardwareTypes.TOM:
|
||||
case HardwareTypes.SIM:
|
||||
case HardwareTypes.DIM:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(tdasCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE2_IEPE_Hi:
|
||||
case HardwareTypes.SLICE2_IEPE_Lo:
|
||||
case HardwareTypes.SLICE2_Bridge_Hi:
|
||||
case HardwareTypes.SLICE2_Bridge_Lo:
|
||||
case HardwareTypes.SLICE2_Base:
|
||||
case HardwareTypes.SLICE2_SIM:
|
||||
case HardwareTypes.SLICE2_DIM:
|
||||
case HardwareTypes.SLICE2_TOM:
|
||||
case HardwareTypes.SLICE_EthernetController:
|
||||
case HardwareTypes.SLICE_LabEthernet:
|
||||
case HardwareTypes.SLICE2_SLS:
|
||||
case HardwareTypes.SLICE2_SLT:
|
||||
case HardwareTypes.SLICE2_SLD:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice2CalPeriod);
|
||||
break;
|
||||
case HardwareTypes.TSR_AIR:
|
||||
case HardwareTypes.TSR_AIR_RevB:
|
||||
case HardwareTypes.DKR:
|
||||
case HardwareTypes.DIR:
|
||||
case HardwareTypes.EMB_ANG_ACC:
|
||||
case HardwareTypes.EMB_ANG_ARS:
|
||||
case HardwareTypes.EMB_ATM:
|
||||
case HardwareTypes.EMB_LIN_ACC_LO:
|
||||
case HardwareTypes.EMB_LIN_ACC_HI:
|
||||
case HardwareTypes.EMB_MAG:
|
||||
case HardwareTypes.EMB_MAG_SWITCH:
|
||||
case HardwareTypes.EMB_MIC:
|
||||
case HardwareTypes.EMB_OPT:
|
||||
case HardwareTypes.EMB_RTC_S_MARK:
|
||||
case HardwareTypes.EMB_RTC_NS_PAD:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(tsrAirCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.G5VDS:
|
||||
case HardwareTypes.G5INDUMMY:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(g5CalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE1_5_Nano_Base:
|
||||
case HardwareTypes.SLICE1_5_Micro_Base:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice15CalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE6_Base:
|
||||
//put some fall-through logic here
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice6CalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE6_AIR:
|
||||
case HardwareTypes.S6A_EthernetRecorder:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice6AirCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE6_AIR_BR:
|
||||
//put some fall-through logic here
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice6AirBridgeCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE_Pro_Distributor:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice6DBCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE6DB:
|
||||
case HardwareTypes.SLICE6DB3:
|
||||
case HardwareTypes.SLICE6DB_InDummy:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice6DBCalPeriod);
|
||||
HasTreeView = true;
|
||||
break;
|
||||
case HardwareTypes.PowerPro:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(powerProCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE6_AIR_TC:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(sliceTcCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE_PRO_CAN_FD:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(sliceProCanFdPeriod);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
if (d.IPAddress.ToLower().Contains("usb"))
|
||||
{
|
||||
IPAddress = HardwareList.Resources.StringResources.USB;
|
||||
}
|
||||
else
|
||||
{
|
||||
IPAddress = d.IPAddress;
|
||||
}
|
||||
}
|
||||
|
||||
public void DetermineChannelCount(bool showCompact, IHardware[] allHardware)
|
||||
{
|
||||
var channelsText = new List<string>();
|
||||
if (AnalogChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{AnalogChannels} {HardwareList.Resources.StringResources.Analog}");
|
||||
}
|
||||
if (DigitalInChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{DigitalInChannels} {HardwareList.Resources.StringResources.DigitalIn}");
|
||||
}
|
||||
if (SquibChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{SquibChannels / 2} {HardwareList.Resources.StringResources.Squib}");
|
||||
}
|
||||
if (DigitalOutChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{DigitalOutChannels} {HardwareList.Resources.StringResources.DigitalOut}");
|
||||
}
|
||||
if (UartChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{UartChannels} {HardwareList.Resources.StringResources.UART}");
|
||||
}
|
||||
if (StreamOutChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{StreamOutChannels} {HardwareList.Resources.StringResources.StreamOut}");
|
||||
}
|
||||
if (StreamInChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{StreamInChannels} {HardwareList.Resources.StringResources.StreamIn}");
|
||||
}
|
||||
if (CanChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{CanChannels} {HardwareList.Resources.StringResources.CAN}");
|
||||
}
|
||||
|
||||
ChannelCount = string.Join(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator,
|
||||
channelsText.ToArray()) + " " + HardwareList.Resources.StringResources.DAS_Channels;
|
||||
|
||||
if (Hardware is IISOHardware hardware)
|
||||
{
|
||||
if (hardware.DASTypeEnum == HardwareTypes.SLICE_EthernetController ||
|
||||
hardware.DASTypeEnum == HardwareTypes.SLICE_Distributor ||
|
||||
hardware.DASTypeEnum == HardwareTypes.PowerPro ||
|
||||
hardware.DASTypeEnum == HardwareTypes.SLICE_Mini_Distributor ||
|
||||
hardware.DASTypeEnum == HardwareTypes.SLICE6DB ||
|
||||
hardware.DASTypeEnum == HardwareTypes.SLICE6DB3 ||
|
||||
hardware.DASTypeEnum == HardwareTypes.SLICE_Pro_Distributor
|
||||
|
||||
) //add SLICE6DB and others here?
|
||||
{
|
||||
if (!showCompact || hardware.DASTypeEnum == HardwareTypes.PowerPro || string.IsNullOrWhiteSpace(ChannelCount))
|
||||
{
|
||||
ChannelCount = HardwareList.Resources.StringResources.Table_NA;
|
||||
MaxSampleRate = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
var minRate = hardware.MaxSampleRate;
|
||||
var matches = from h in allHardware where h.ParentDAS == SerialNumber && null != h.MaxSampleRate select (double)h.MaxSampleRate;
|
||||
if (matches.Any())
|
||||
{
|
||||
minRate = Math.Min(minRate, matches.Min());
|
||||
MaxSampleRate = minRate;
|
||||
}
|
||||
else
|
||||
{
|
||||
//no DAS associated, so rate is unknown
|
||||
ChannelCount = HardwareList.Resources.StringResources.Table_NA;
|
||||
MaxSampleRate = null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else if (hardware.IsTSRAIR())
|
||||
{
|
||||
ChannelCount = HardwareList.Resources.StringResources.EmbeddedSensors
|
||||
+ (UartChannels > 0 ? $", {UartChannels} {HardwareList.Resources.StringResources.UART}" : String.Empty)
|
||||
+ (StreamOutChannels > 0 ? $", {StreamOutChannels} {HardwareList.Resources.StringResources.StreamOut} {HardwareList.Resources.StringResources.DAS_Channels}" : String.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
public void SetIncluded(bool bIncluded)
|
||||
{
|
||||
_bIncluded = bIncluded;
|
||||
OnPropertyChanged("Included");
|
||||
OnPropertyChanged("MixedRates");
|
||||
OnPropertyChanged("IncludedAndNotMixedRatesAndCompactOrNotDistributor");
|
||||
OnPropertyChanged("IncludedAndMixedRatesAndCompact");
|
||||
}
|
||||
public void SetMixedRates(bool mixedRates)
|
||||
{
|
||||
_mixedRates = mixedRates;
|
||||
OnPropertyChanged("MixedRates");
|
||||
OnPropertyChanged("IncludedAndNotMixedRatesAndCompactOrNotDistributor");
|
||||
OnPropertyChanged("IncludedAndMixedRatesAndCompact");
|
||||
}
|
||||
|
||||
public bool Filter(string term)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(term)) { return true; }
|
||||
term = term.ToLower();
|
||||
if (SerialNumber.ToLower().Contains(term)) { return true; }
|
||||
if (Firmware.ToLower().Contains(term)) { return true; }
|
||||
if (HardwareType.ToLower().Contains(term)) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
public string ParentDAS { get; set; }
|
||||
public int PositionOnChain { get; set; }
|
||||
public int PositionOnDistributor { get; set; }
|
||||
public int Port { get; set; }
|
||||
|
||||
private bool _bHasTreeView = false;
|
||||
public bool HasTreeView
|
||||
{
|
||||
get => _bHasTreeView;
|
||||
set
|
||||
{
|
||||
_bHasTreeView = value;
|
||||
OnPropertyChanged("HasTreeView");
|
||||
}
|
||||
}
|
||||
public override string ToString()
|
||||
{
|
||||
return SerialNumberDisplay;
|
||||
}
|
||||
protected HardwareModel() { }
|
||||
/// <summary>
|
||||
/// returns all SLICE6DB available (except any matching the serial number indicated)
|
||||
/// </summary>
|
||||
/// <param name="serialNumber"></param>
|
||||
/// <returns></returns>
|
||||
public static IHardware[] GetAvailableSLICE6DB(string serialNumber)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(serialNumber))
|
||||
{
|
||||
return new IHardware[0];
|
||||
}
|
||||
serialNumber = serialNumber.ToUpper();
|
||||
var list = new List<IHardware>();
|
||||
|
||||
using (var sql = DTS.Common.Storage.DbOperations.GetSQLCommand(true))
|
||||
{
|
||||
try
|
||||
{
|
||||
sql.CommandType = System.Data.CommandType.Text;
|
||||
sql.CommandText = $"SELECT [DASId], [SerialNumber] FROM [DAS] where [Type] in ({(int)HardwareTypes.SLICE6DB},{(int)HardwareTypes.SLICE6DB_InDummy}) AND [Position]=''";
|
||||
var reader = sql.ExecuteReader();
|
||||
while (reader.Read())
|
||||
{
|
||||
var h = new HardwareModel();
|
||||
h.DASId = Convert.ToInt32(reader["DASId"]);
|
||||
h.SerialNumber = Convert.ToString(reader["SerialNumber"]);
|
||||
if (h.SerialNumber.ToUpper() == serialNumber) { continue; }
|
||||
list.Add(h);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
sql.Connection.Dispose();
|
||||
}
|
||||
}
|
||||
return list.ToArray();
|
||||
}
|
||||
|
||||
public string SerialNumberDisplay
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!(Hardware is IISOHardware isoHW)) { return SerialNumber; }
|
||||
return isoHW.StandIn ? EnumDescriptionTypeConverter.GetEnumDescription(isoHW.DASTypeEnum) : SerialNumber;
|
||||
}
|
||||
}
|
||||
}
|
||||
public class HardwareComparer : IComparer<IHardware>
|
||||
{
|
||||
public HardwareListTags SortField { get; set; }
|
||||
private bool _bSortAscending = true;
|
||||
|
||||
public bool SortAscending
|
||||
{
|
||||
get => _bSortAscending;
|
||||
set => _bSortAscending = value;
|
||||
}
|
||||
|
||||
public int Compare(IHardware left, IHardware right)
|
||||
{
|
||||
if (left == right)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
var a = left; var b = right;
|
||||
if (!SortAscending) { a = right; b = left; }
|
||||
if (null == a)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
if (null == b)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
switch (SortField)
|
||||
{
|
||||
case HardwareListTags.Included:
|
||||
return a.Included.CompareTo(b.Included);
|
||||
case HardwareListTags.DSPStreamingFilter:
|
||||
return a.DSPStreamingFilter.CompareTo(b.DSPStreamingFilter);
|
||||
case HardwareListTags.SerialNumber:
|
||||
if (a is HardwareModel hmA && b is HardwareModel hmB)
|
||||
{
|
||||
return string.Compare(hmA.SerialNumberDisplay, hmB.SerialNumberDisplay,
|
||||
StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
else { return string.Compare(a.SerialNumber, b.SerialNumber, StringComparison.OrdinalIgnoreCase); }
|
||||
case HardwareListTags.HardwareType:
|
||||
return string.Compare(a.HardwareType, b.HardwareType, StringComparison.OrdinalIgnoreCase);
|
||||
case HardwareListTags.ChannelCount:
|
||||
return string.Compare(a.ChannelCount, b.ChannelCount, StringComparison.OrdinalIgnoreCase);
|
||||
case HardwareListTags.Firmware:
|
||||
return string.Compare(a.Firmware, b.Firmware, StringComparison.OrdinalIgnoreCase);
|
||||
case HardwareListTags.MaxSampleRate:
|
||||
{
|
||||
return NumericCompare(a.MaxSampleRate, b.MaxSampleRate);
|
||||
}
|
||||
case HardwareListTags.CalDate:
|
||||
{
|
||||
return NumericCompare(a.CalDate, b.CalDate);
|
||||
}
|
||||
case HardwareListTags.CalDueDate:
|
||||
{
|
||||
return NumericCompare(a.CalDueDate, b.CalDueDate);
|
||||
}
|
||||
case HardwareListTags.IPAddress:
|
||||
{
|
||||
return string.Compare(a.IPAddress, b.IPAddress, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
case HardwareListTags.FirstUseDate:
|
||||
{
|
||||
if (!a.IsFirstUseValid)
|
||||
{
|
||||
if (!b.IsFirstUseValid)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!b.IsFirstUseValid)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (null == a.FirstUseDate)
|
||||
{
|
||||
if (null == b.FirstUseDate)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (null == b.FirstUseDate)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
return ((DateTime)a.FirstUseDate).CompareTo((DateTime)b.FirstUseDate);
|
||||
}
|
||||
}
|
||||
}
|
||||
return a.GetHashCode().CompareTo(b.GetHashCode());
|
||||
}
|
||||
private static int NumericCompare(object a, object b)
|
||||
{
|
||||
if (a == null && b == null) return 0;
|
||||
if (a == null) return 1;
|
||||
if (b == null) return -1;
|
||||
if (Equals(a, b)) return 0;
|
||||
switch (a)
|
||||
{
|
||||
case double d:
|
||||
if (d > (double)b) return -1;
|
||||
break;
|
||||
case DateTime dt:
|
||||
if (dt > (DateTime)b) return -1;
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,855 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace HardwareList.Resources {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class StringResources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal StringResources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HardwareList.Resources.StringResources", typeof(StringResources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Add.
|
||||
/// </summary>
|
||||
internal static string Add {
|
||||
get {
|
||||
return ResourceManager.GetString("Add", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Analog.
|
||||
/// </summary>
|
||||
internal static string Analog {
|
||||
get {
|
||||
return ResourceManager.GetString("Analog", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Cal Date.
|
||||
/// </summary>
|
||||
internal static string CalDate {
|
||||
get {
|
||||
return ResourceManager.GetString("CalDate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Cal Due Date.
|
||||
/// </summary>
|
||||
internal static string CalDueDate {
|
||||
get {
|
||||
return ResourceManager.GetString("CalDueDate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to CAN.
|
||||
/// </summary>
|
||||
internal static string CAN {
|
||||
get {
|
||||
return ResourceManager.GetString("CAN", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Multiple.
|
||||
/// </summary>
|
||||
internal static string ChainMultipleTestSampleRates {
|
||||
get {
|
||||
return ResourceManager.GetString("ChainMultipleTestSampleRates", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Channels.
|
||||
/// </summary>
|
||||
internal static string ChannelCount {
|
||||
get {
|
||||
return ResourceManager.GetString("ChannelCount", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to CH #.
|
||||
/// </summary>
|
||||
internal static string ChannelNumber {
|
||||
get {
|
||||
return ResourceManager.GetString("ChannelNumber", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Compact.
|
||||
/// </summary>
|
||||
internal static string Compact {
|
||||
get {
|
||||
return ResourceManager.GetString("Compact", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Connection.
|
||||
/// </summary>
|
||||
internal static string Connection {
|
||||
get {
|
||||
return ResourceManager.GetString("Connection", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to channel(s).
|
||||
/// </summary>
|
||||
internal static string DAS_Channels {
|
||||
get {
|
||||
return ResourceManager.GetString("DAS_Channels", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Digital input.
|
||||
/// </summary>
|
||||
internal static string DigitalIn {
|
||||
get {
|
||||
return ResourceManager.GetString("DigitalIn", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Digital out.
|
||||
/// </summary>
|
||||
internal static string DigitalOut {
|
||||
get {
|
||||
return ResourceManager.GetString("DigitalOut", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to DIM.
|
||||
/// </summary>
|
||||
internal static string DIM {
|
||||
get {
|
||||
return ResourceManager.GetString("DIM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to DIR.
|
||||
/// </summary>
|
||||
internal static string DIR {
|
||||
get {
|
||||
return ResourceManager.GetString("DIR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to DKR.
|
||||
/// </summary>
|
||||
internal static string DKR {
|
||||
get {
|
||||
return ResourceManager.GetString("DKR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to DSP filter -3dB (Hz).
|
||||
/// </summary>
|
||||
internal static string DSPStreamingFilterColumnHeader {
|
||||
get {
|
||||
return ResourceManager.GetString("DSPStreamingFilterColumnHeader", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Embedded Sensors.
|
||||
/// </summary>
|
||||
internal static string EmbeddedSensors {
|
||||
get {
|
||||
return ResourceManager.GetString("EmbeddedSensors", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Firmware.
|
||||
/// </summary>
|
||||
internal static string Firmware {
|
||||
get {
|
||||
return ResourceManager.GetString("Firmware", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to First Use Date.
|
||||
/// </summary>
|
||||
internal static string FirstUseDate {
|
||||
get {
|
||||
return ResourceManager.GetString("FirstUseDate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to G5.
|
||||
/// </summary>
|
||||
internal static string G5INDUMMY {
|
||||
get {
|
||||
return ResourceManager.GetString("G5INDUMMY", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to G5 (VDS).
|
||||
/// </summary>
|
||||
internal static string G5VDS {
|
||||
get {
|
||||
return ResourceManager.GetString("G5VDS", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Hardware to replace.
|
||||
/// </summary>
|
||||
internal static string HardwareToReplace {
|
||||
get {
|
||||
return ResourceManager.GetString("HardwareToReplace", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Hardware to replace with.
|
||||
/// </summary>
|
||||
internal static string HardwareToReplaceWith {
|
||||
get {
|
||||
return ResourceManager.GetString("HardwareToReplaceWith", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Type.
|
||||
/// </summary>
|
||||
internal static string HardwareType {
|
||||
get {
|
||||
return ResourceManager.GetString("HardwareType", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to IP Address.
|
||||
/// </summary>
|
||||
internal static string IPAddress {
|
||||
get {
|
||||
return ResourceManager.GetString("IPAddress", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Clock Master?.
|
||||
/// </summary>
|
||||
internal static string IsHWClockMaster {
|
||||
get {
|
||||
return ResourceManager.GetString("IsHWClockMaster", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Max Sample Rate.
|
||||
/// </summary>
|
||||
internal static string MaxSampleRate {
|
||||
get {
|
||||
return ResourceManager.GetString("MaxSampleRate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Name.
|
||||
/// </summary>
|
||||
internal static string Name {
|
||||
get {
|
||||
return ResourceManager.GetString("Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Number.
|
||||
/// </summary>
|
||||
internal static string Number {
|
||||
get {
|
||||
return ResourceManager.GetString("Number", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Port.
|
||||
/// </summary>
|
||||
internal static string Port {
|
||||
get {
|
||||
return ResourceManager.GetString("Port", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Position on chain.
|
||||
/// </summary>
|
||||
internal static string PositionOnChain {
|
||||
get {
|
||||
return ResourceManager.GetString("PositionOnChain", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to PowerPRO Battery.
|
||||
/// </summary>
|
||||
internal static string PowerPro {
|
||||
get {
|
||||
return ResourceManager.GetString("PowerPro", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to PTP Domain.
|
||||
/// </summary>
|
||||
internal static string PTPDomain {
|
||||
get {
|
||||
return ResourceManager.GetString("PTPDomain", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Remove.
|
||||
/// </summary>
|
||||
internal static string Remove {
|
||||
get {
|
||||
return ResourceManager.GetString("Remove", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Replace.
|
||||
/// </summary>
|
||||
internal static string Replace {
|
||||
get {
|
||||
return ResourceManager.GetString("Replace", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Ribeye.
|
||||
/// </summary>
|
||||
internal static string Ribeye {
|
||||
get {
|
||||
return ResourceManager.GetString("Ribeye", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Ribeye (LED).
|
||||
/// </summary>
|
||||
internal static string RibeyeLED {
|
||||
get {
|
||||
return ResourceManager.GetString("RibeyeLED", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 AIR Ethernet Recorder.
|
||||
/// </summary>
|
||||
internal static string S6A_EthernetRecorder {
|
||||
get {
|
||||
return ResourceManager.GetString("S6A_EthernetRecorder", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Sensor.
|
||||
/// </summary>
|
||||
internal static string Sensor {
|
||||
get {
|
||||
return ResourceManager.GetString("Sensor", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Serial Number.
|
||||
/// </summary>
|
||||
internal static string SerialNumber {
|
||||
get {
|
||||
return ResourceManager.GetString("SerialNumber", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to DataPRO encountered problem setting some of the AA Filter rates and used the default rates. Please review the AA Filter rates in the test setup and edit them as needed..
|
||||
/// </summary>
|
||||
internal static string SetTestAAFRatesWarning {
|
||||
get {
|
||||
return ResourceManager.GetString("SetTestAAFRatesWarning", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Expanded.
|
||||
/// </summary>
|
||||
internal static string ShowModules {
|
||||
get {
|
||||
return ResourceManager.GetString("ShowModules", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SIM.
|
||||
/// </summary>
|
||||
internal static string SIM {
|
||||
get {
|
||||
return ResourceManager.GetString("SIM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE.
|
||||
/// </summary>
|
||||
internal static string SLICE_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to (SLICE bridge).
|
||||
/// </summary>
|
||||
internal static string SLICE_Bridge {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_Bridge", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE Distributor.
|
||||
/// </summary>
|
||||
internal static string SLICE_Distributor {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_Distributor", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE Ethernet Controller.
|
||||
/// </summary>
|
||||
internal static string SLICE_EthernetController {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_EthernetController", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE (IEPE).
|
||||
/// </summary>
|
||||
internal static string SLICE_IEPE {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_IEPE", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 2 Lab Ethernet Controller.
|
||||
/// </summary>
|
||||
internal static string SLICE_LabEthernet {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_LabEthernet", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE (Micro).
|
||||
/// </summary>
|
||||
internal static string SLICE_Micro_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_Micro_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE Mini Distributor.
|
||||
/// </summary>
|
||||
internal static string SLICE_Mini_Distributor {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_Mini_Distributor", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE (Nano).
|
||||
/// </summary>
|
||||
internal static string SLICE_NANO_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_NANO_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE+.
|
||||
/// </summary>
|
||||
internal static string SLICE1_5_Micro_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE1_5_Micro_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE+.
|
||||
/// </summary>
|
||||
internal static string SLICE1_5_Nano_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE1_5_Nano_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE G5.
|
||||
/// </summary>
|
||||
internal static string SLICE1_G5Stack {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE1_G5Stack", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_Bridge_Hi {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_Bridge_Hi", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_Bridge_Lo {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_Bridge_Lo", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO DIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_DIM {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_DIM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_IEPE_Hi {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_IEPE_Hi", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_IEPE_Lo {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_IEPE_Lo", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_SIM {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_SIM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO Lab DIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_SLD {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_SLD", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO Lab SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_SLS {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_SLS", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO Lab TOM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_SLT {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_SLT", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO TOM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_TOM {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_TOM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 AIR.
|
||||
/// </summary>
|
||||
internal static string SLICE6_AIR {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6_AIR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6.
|
||||
/// </summary>
|
||||
internal static string SLICE6_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 Distributor.
|
||||
/// </summary>
|
||||
internal static string SLICE6DB {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6DB", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 Distributor (AIR).
|
||||
/// </summary>
|
||||
internal static string SLICE6DB_AIR {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6DB_AIR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 Distributor (In-dummy).
|
||||
/// </summary>
|
||||
internal static string SLICE6DB_InDummy {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6DB_InDummy", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 Distributor 3.
|
||||
/// </summary>
|
||||
internal static string SLICE6DB3 {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6DB3", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Squib.
|
||||
/// </summary>
|
||||
internal static string Squib {
|
||||
get {
|
||||
return ResourceManager.GetString("Squib", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Streaming In.
|
||||
/// </summary>
|
||||
internal static string StreamIn {
|
||||
get {
|
||||
return ResourceManager.GetString("StreamIn", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Streaming Out.
|
||||
/// </summary>
|
||||
internal static string StreamOut {
|
||||
get {
|
||||
return ResourceManager.GetString("StreamOut", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Swap.
|
||||
/// </summary>
|
||||
internal static string Swap {
|
||||
get {
|
||||
return ResourceManager.GetString("Swap", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to ---.
|
||||
/// </summary>
|
||||
internal static string Table_NA {
|
||||
get {
|
||||
return ResourceManager.GetString("Table_NA", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to TDAS PRO Lab Rack.
|
||||
/// </summary>
|
||||
internal static string TDAS_LabRack {
|
||||
get {
|
||||
return ResourceManager.GetString("TDAS_LabRack", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to TDAS PRO Rack.
|
||||
/// </summary>
|
||||
internal static string TDAS_Pro_Rack {
|
||||
get {
|
||||
return ResourceManager.GetString("TDAS_Pro_Rack", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to AA Filter (Hz).
|
||||
/// </summary>
|
||||
internal static string TestAAFRateHz {
|
||||
get {
|
||||
return ResourceManager.GetString("TestAAFRateHz", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Test Sample Rate.
|
||||
/// </summary>
|
||||
internal static string TestSampleRate {
|
||||
get {
|
||||
return ResourceManager.GetString("TestSampleRate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to TOM.
|
||||
/// </summary>
|
||||
internal static string TOM {
|
||||
get {
|
||||
return ResourceManager.GetString("TOM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Tree view.
|
||||
/// </summary>
|
||||
internal static string TreeView {
|
||||
get {
|
||||
return ResourceManager.GetString("TreeView", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to TSR AIR.
|
||||
/// </summary>
|
||||
internal static string TSR_AIR {
|
||||
get {
|
||||
return ResourceManager.GetString("TSR_AIR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to TSR AIR.
|
||||
/// </summary>
|
||||
internal static string TSR_AIR_RevB {
|
||||
get {
|
||||
return ResourceManager.GetString("TSR_AIR_RevB", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to UART.
|
||||
/// </summary>
|
||||
internal static string UART {
|
||||
get {
|
||||
return ResourceManager.GetString("UART", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to USB.
|
||||
/// </summary>
|
||||
internal static string USB {
|
||||
get {
|
||||
return ResourceManager.GetString("USB", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="HardwareList.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,47 @@
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics;
|
||||
using DTS.Common.Strings;
|
||||
using System;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace HardwareList.Converters
|
||||
{
|
||||
/// <summary>
|
||||
/// provides --- when the hardware is standin, otherwise the field requested
|
||||
/// </summary>
|
||||
public class StandInFieldConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
|
||||
{
|
||||
if (!(value is HardareList.Model.HardwareModel model))
|
||||
{
|
||||
return Strings.Table_NA;
|
||||
}
|
||||
if (!(model.Hardware is IISOHardware isoHW)) { return string.Empty; }
|
||||
|
||||
if (isoHW.StandIn)
|
||||
{
|
||||
return Strings.Table_NA;
|
||||
}
|
||||
|
||||
if (parameter is string s)
|
||||
{
|
||||
switch (s)
|
||||
{
|
||||
case "CalDueDate":
|
||||
return model.CalDueDate;
|
||||
case "CalDate":
|
||||
return model.CalDate;
|
||||
case "Firmware":
|
||||
return model.Firmware;
|
||||
}
|
||||
}
|
||||
return Strings.Table_NA;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
|
||||
{
|
||||
if (value is DateTime dt) { return dt; }
|
||||
return Strings.Table_NA;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("HardwareList")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("DTS")]
|
||||
[assembly: AssemblyProduct("HardwareList")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2017")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("cf53898e-8d83-49bb-9588-02348feb6e17")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -0,0 +1,32 @@
|
||||
using DTS.Common.Strings;
|
||||
using System;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace HardwareList.Converters
|
||||
{
|
||||
/// <summary>
|
||||
/// provides first use date if available, N/A if not applicable, or --- if not defined
|
||||
/// </summary>
|
||||
public class FirstUseDateConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
|
||||
{
|
||||
if (!(value is HardareList.Model.HardwareModel model))
|
||||
{
|
||||
return Strings.Table_NA;
|
||||
}
|
||||
if (!model.IsFirstUseValid)
|
||||
{
|
||||
return Strings.NotApplicable;
|
||||
}
|
||||
if (null != model.FirstUseDate) { return model.FirstUseDate; }
|
||||
return Strings.Table_NA;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
|
||||
{
|
||||
if (value is DateTime dt) { return dt; }
|
||||
return Strings.Table_NA;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,255 @@
|
||||
<base:BaseView x:Class="HardwareList.HardwareListSelectView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:base="clr-namespace:DTS.Common.Base;assembly=DTS.Common"
|
||||
xmlns:converters="clr-namespace:DTS.Common.Converters;assembly=DTS.Common"
|
||||
xmlns:converters2="clr-namespace:HardwareList.Converters"
|
||||
xmlns:controls="clr-namespace:DTS.Common.Controls;assembly=DTS.Common"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:strings="clr-namespace:HardwareList"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:common="clr-namespace:DTS.Common.Behaviors;assembly=DTS.Common"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="768" d:DesignWidth="1366"
|
||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||
xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml"
|
||||
xmlns:controls2="clr-namespace:DTS.Common.Controls;assembly=DTS.Common">
|
||||
<base:BaseView.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Themes/CommonStyles.xaml"/>
|
||||
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Controls/combobox.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
<Style TargetType="ListView">
|
||||
<Setter Property="ItemContainerStyle" Value="{StaticResource TTS_ListViewItemStyle}"/>
|
||||
</Style>
|
||||
<Style TargetType="TextBox" BasedOn="{StaticResource TTS_TextBoxStyle}"/>
|
||||
<Style TargetType="TextBlock" BasedOn="{StaticResource TTS_TextBlockStyle}"/>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource PageContentCheckBoxStyle}" />
|
||||
<Style TargetType="ComboBox" BasedOn="{StaticResource TTS_ComboBoxStyle}"/>
|
||||
<Style TargetType="Button" BasedOn="{StaticResource TTS_ButtonStyle}"/>
|
||||
<Style TargetType="GridViewColumnHeader" BasedOn="{StaticResource Gray_GridViewColumnHeaderStyle}"/>
|
||||
<Style TargetType="RadioButton" BasedOn="{StaticResource FlatRadioButtonStyle}" >
|
||||
<Setter Property="Height" Value="24" />
|
||||
<Setter Property="Margin" Value="5" />
|
||||
</Style>
|
||||
<Style TargetType="{x:Type c1:C1NumericBox}"> <!-- Based on DataPRO CommonStyles -->
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Background" Value="{StaticResource Brush_FlatControlWindowBackground}" />
|
||||
<Setter Property="CornerRadius" Value="0"/>
|
||||
<Setter Property="MinWidth" Value="50"/>
|
||||
<Setter Property="Height" Value="24" />
|
||||
<Setter Property="ButtonBackground" Value="Transparent"/>
|
||||
<Setter Property="Value" Value="{Binding Value, FallbackValue=1234}"/>
|
||||
<Setter Property="TextAlignment" Value="Left"/>
|
||||
<Setter Property="Margin" Value="5"/>
|
||||
<!--<Setter Property="MouseOverBrush" Value="{StaticResource Brush_FlatControlMouseOverBackground}"/>-->
|
||||
<Setter Property="ToolTipService.ToolTip" Value="" />
|
||||
<Setter Property="ToolTipService.ShowOnDisabled" Value="True" />
|
||||
<!--<EventSetter Event="ToolTipOpening" Handler="ToolTipEventHandler" />-->
|
||||
<!--<Setter Property="Width" Value="30"/>-->
|
||||
<Setter Property="HorizontalAlignment" Value="Left"/>
|
||||
<!--<Setter Property="Margin" Value="5,2,5,2"/>-->
|
||||
</Style>
|
||||
<converters:BooleanToVisibilityConverter x:Key="BoolToVisibility" />
|
||||
<converters:BooleanAndToVisibilityMultiConverter x:Key="BoolAndToVisibilityMulti" />
|
||||
<converters:IsLessThanConverter x:Key="IsLessThanConverter" />
|
||||
<converters:InverseBooleanConverter x:Key="BoolToInverse" />
|
||||
<converters2:FirstUseDateConverter x:Key="FirstUseConverter" />
|
||||
<converters2:StandInFieldConverter x:Key="StandInConverter" />
|
||||
<converters:DSPStreamingFilterFrequencyConverter x:Key="dspConverter" />
|
||||
</ResourceDictionary>
|
||||
</base:BaseView.Resources>
|
||||
<Grid Background="{DynamicResource Brush_ApplicationContentBackground}" x:Name="maingrid">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Orientation="Horizontal" Grid.Row="0">
|
||||
<RadioButton Content="{strings:TranslateExtension Compact}" GroupName="Buttons" IsChecked="{Binding ShowCompact}" AutomationProperties.AutomationId="HardwareListCompactRadioButton"/>
|
||||
<RadioButton Content="{strings:TranslateExtension ShowModules}" GroupName="Buttons" IsChecked="{Binding ShowCompact, Converter={StaticResource BoolToInverse}}" AutomationProperties.AutomationId="HardwareListExpandedRadioButton"/>
|
||||
</StackPanel>
|
||||
<ListView Grid.Row="1" ItemsSource="{Binding Hardware, UpdateSourceTrigger=PropertyChanged}" AutomationProperties.AutomationId="HardwareListView" SelectedIndex="{Binding SelectedHardwareIndex, Mode=TwoWay}" GridViewColumnHeader.Click="GridViewColumnHeader_OnClick"
|
||||
x:Name="LvHardware">
|
||||
<i:Interaction.Behaviors>
|
||||
<common:MultiSelectionBehavior SelectedItems="{Binding SelectedHardwareItems}" />
|
||||
</i:Interaction.Behaviors>
|
||||
<ListView.View>
|
||||
<controls:AutoSizedGridView AutomationProperties.AutomationId="HardwareListGridView">
|
||||
<!-- column 0 -->
|
||||
<GridViewColumn AutomationProperties.AutomationId="Included">
|
||||
<GridViewColumn.Header>
|
||||
<GridViewColumnHeader Tag="Included" />
|
||||
</GridViewColumn.Header>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<CheckBox IsChecked="{Binding Included}" AutomationProperties.AutomationId="IncludeChkBx" Click="Included_Click"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
|
||||
<!-- column 1-->
|
||||
<GridViewColumn AutomationProperties.AutomationId="SerialNumber">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="SerialNumber" HeaderTitle="{strings:TranslateExtension SerialNumber}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding SerialNumberDisplay,FallbackValue='SerialNumber'}" AutomationProperties.AutomationId="SerailNumLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="IPAddress">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="IPAddress" HeaderTitle="{strings:TranslateExtension IPAddress}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding IPAddress,FallbackValue='IPAddress'}" AutomationProperties.AutomationId="IPAddressLbl">
|
||||
</TextBlock>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="HardwareType">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="HardwareType" HeaderTitle="{strings:TranslateExtension HardwareType}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding HardwareType,FallbackValue='HardwareType'}" AutomationProperties.AutomationId="HardwareTypeLbl">
|
||||
</TextBlock>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="ChannelCount">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="ChannelCount" HeaderTitle="{strings:TranslateExtension ChannelCount}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding ChannelCount,FallbackValue='ChannelCount'}" AutomationProperties.AutomationId="ChannelCountLbl">
|
||||
</TextBlock>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="Firmware">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="Firmware" HeaderTitle="{strings:TranslateExtension Firmware}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext,RelativeSource={RelativeSource Self}, StringFormat='d',Converter={StaticResource StandInConverter}, ConverterParameter='Firmware'}"
|
||||
AutomationProperties.AutomationId="FirmwareLbl"/>
|
||||
<!--<TextBlock Text="{Binding Firmware,FallbackValue='Firmware'}" AutomationProperties.AutomationId="FirmwareLbl">
|
||||
</TextBlock>-->
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="MaxSampleRate">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="MaxSampleRate" HeaderTitle="{strings:TranslateExtension MaxSampleRate}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding MaxSampleRate,FallbackValue='MaxSampleRate',StringFormat='N0', TargetNullValue='---'}" AutomationProperties.AutomationId="SampleRateLbl">
|
||||
</TextBlock>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="TestSampleRate" Width="{Binding TestSampleRateColumnWidth}">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="TestSampleRate" HeaderTitle="{strings:TranslateExtension TestSampleRate}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<StackPanel>
|
||||
<StackPanel.Visibility>
|
||||
<MultiBinding Converter="{StaticResource BoolAndToVisibilityMulti}" ConverterParameter="HIDE">
|
||||
<Binding Path="Included" />
|
||||
<Binding Path="StreamInChannels" Converter="{StaticResource IsLessThanConverter}" ConverterParameter="1" />
|
||||
</MultiBinding>
|
||||
</StackPanel.Visibility>
|
||||
<ComboBox ItemsSource="{Binding AvailableSampleRates}" SelectedIndex="{Binding SelectedSampleRateIndex}" SelectedItem ="{Binding SelectedSampleRateItem}" AutomationProperties.AutomationId="TestSampleRateLbl"
|
||||
Visibility="{Binding IncludedAndNotMixedRatesAndCompactOrNotDistributor, Converter={StaticResource BoolToVisibility}}"/>
|
||||
<Button Content="{strings:TranslateExtension ChainMultipleTestSampleRates}" AutomationProperties.AutomationId="ChainSampleRateMixedButton" Click="ChainSampleRateMixed_Clicked"
|
||||
Visibility="{Binding IncludedAndMixedRatesAndCompact, Converter={StaticResource BoolToVisibility}}"/>
|
||||
</StackPanel>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="TestAAFRateHz" Width="{Binding TestAAFRateHzColumnWidth}">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="TestAAFRateHz" HeaderTitle="{strings:TranslateExtension TestAAFRateHz}" ClickHandler="GridViewColumnHeaderSearchable_OnSearch" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBox Text="{Binding TestAAFilterRateHz, FallbackValue='AAFilterRateHz',StringFormat='N0'}" MinWidth="100"
|
||||
Visibility="{Binding Included, Converter={StaticResource BoolToVisibility}}"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="TestClockMaster" Width="{Binding TestClockMasterColumnWidth}">
|
||||
<controls2:GridViewColumnHeaderSelectable Tag="TestClockMaster" HeaderTitle="{strings:TranslateExtension IsHWClockMaster}" ClickHandler="GridViewColumnHeaderCheckBox_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<CheckBox IsChecked="{Binding IsClockMaster}">
|
||||
<CheckBox.Visibility>
|
||||
<MultiBinding Converter="{StaticResource BoolAndToVisibilityMulti}" ConverterParameter="HIDE">
|
||||
<Binding Path="Included" />
|
||||
<Binding Path="IsClockedDAS" />
|
||||
</MultiBinding>
|
||||
</CheckBox.Visibility>
|
||||
</CheckBox>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="PTPDomain" Width="{Binding PTPDomainColumnWidth}">
|
||||
<controls2:GridViewColumnHeaderSelectable Tag="PTPDomain" HeaderTitle="{strings:TranslateExtension PTPDomain}" ListviewId="{Binding ListViewId}" />
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<c1:C1NumericBox Value="{Binding PTPDomainID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" x:Name="nbPTPDomainID" Increment="1" Minimum="0" Maximum="255" >
|
||||
<c1:C1NumericBox.Visibility>
|
||||
<MultiBinding Converter="{StaticResource BoolAndToVisibilityMulti}" ConverterParameter="HIDE">
|
||||
<Binding Path="Included" />
|
||||
<Binding Path="IsClockedDAS" />
|
||||
<Binding Path="IsPTPSync" />
|
||||
</MultiBinding>
|
||||
</c1:C1NumericBox.Visibility>
|
||||
</c1:C1NumericBox>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
|
||||
<!-- DSP streaming filter -->
|
||||
<GridViewColumn AutomationProperties.AutomationId="DSPStreamingFilterColumn" x:Name="DSPStreamingColumn">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="DSPStreamingFilter" HeaderTitle="{strings:TranslateExtension DSPStreamingFilterColumnHeader}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding DSPStreamingFilter,Converter={StaticResource dspConverter}}" />
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
|
||||
<GridViewColumn AutomationProperties.AutomationId="CalDate" x:Name="CalDateColumn">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="CalDate" HeaderTitle="{strings:TranslateExtension CalDate}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext,RelativeSource={RelativeSource Self}, StringFormat='d',Converter={StaticResource StandInConverter}, ConverterParameter='CalDate'}"
|
||||
AutomationProperties.AutomationId="CalDateLbl"/>
|
||||
<!--<TextBlock Text="{Binding CalDate,FallbackValue='CalDate', StringFormat='d'}" AutomationProperties.AutomationId="CalDateLbl">
|
||||
</TextBlock>-->
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="FirstUseDate">
|
||||
<GridViewColumn.Header>
|
||||
<GridViewColumnHeader Tag="FirstUseDate" Content="{strings:TranslateExtension FirstUseDate}" Click="ListViewHeader_Click" />
|
||||
</GridViewColumn.Header>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext,RelativeSource={RelativeSource Self}, StringFormat='d',Converter={StaticResource FirstUseConverter}}"
|
||||
AutomationProperties.AutomationId="FirstUseDateLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="CalDueDate">
|
||||
<controls2:GridViewColumnHeaderSearchable Tag="CalDueDate" HeaderTitle="{strings:TranslateExtension CalDueDate}" Search="GridViewColumnHeaderSearchable_OnSearch" ClickHandler="GridViewColumnHeader_OnClick" ListviewId="{Binding ListViewId}"/>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext,RelativeSource={RelativeSource Self}, StringFormat='d',Converter={StaticResource StandInConverter}, ConverterParameter='CalDueDate'}"
|
||||
AutomationProperties.AutomationId="CalDueDateLbl">
|
||||
<!--<TextBlock Text="{Binding CalDueDate,FallbackValue='CalDueDate',StringFormat='d'}" AutomationProperties.AutomationId="CalDueDateLbl">-->
|
||||
</TextBlock>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</controls:AutoSizedGridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
</Grid>
|
||||
</base:BaseView>
|
||||
@@ -0,0 +1,26 @@
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics.HardwareList;
|
||||
|
||||
// ReSharper disable CheckNamespace
|
||||
|
||||
namespace HardwareList
|
||||
{
|
||||
/// <inheritdoc cref="IHardwareListOverdueView" />
|
||||
/// <summary>
|
||||
/// Interaction logic for HardwareListView.xaml
|
||||
/// </summary>
|
||||
public partial class HardwareListOverdueView : IHardwareListOverdueView
|
||||
{
|
||||
public HardwareListOverdueView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
private void ListViewHeader_Click(object sender, System.Windows.RoutedEventArgs e)
|
||||
{
|
||||
var colHeader = (GridViewColumnHeader)e.OriginalSource;
|
||||
var viewModel = (IHardwareListViewModel)colHeader.DataContext;
|
||||
viewModel.SortOverdue(colHeader.Tag, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
<base:BaseView x:Class="HardwareList.SLICE6TreeView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:base="clr-namespace:DTS.Common.Base;assembly=DTS.Common"
|
||||
xmlns:behaviors="clr-namespace:DTS.Common.Behaviors;assembly=DTS.Common"
|
||||
xmlns:controls="clr-namespace:DTS.Common.Controls;assembly=DTS.Common"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:strings="clr-namespace:HardwareList"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:converters="clr-namespace:DTS.Common.Converters;assembly=DTS.Common"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="768" d:DesignWidth="1366"
|
||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||
xmlns:controls2="clr-namespace:DTS.Common.Controls;assembly=DTS.Common"
|
||||
x:Name="treeView">
|
||||
<base:BaseView.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Themes/CommonStyles.xaml"/>
|
||||
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Controls/combobox.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<Style TargetType="ListView">
|
||||
<Setter Property="ItemContainerStyle" Value="{StaticResource TTS_ListViewItemStyle}"/>
|
||||
</Style>
|
||||
<Style TargetType="TextBox" BasedOn="{StaticResource TTS_TextBoxStyle}"/>
|
||||
<Style TargetType="TextBlock" BasedOn="{StaticResource TTS_TextBlockStyle}"/>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource PageContentCheckBoxStyle}" />
|
||||
<Style TargetType="ComboBox" BasedOn="{StaticResource TTS_ComboBoxStyle}"/>
|
||||
<Style TargetType="Button" BasedOn="{StaticResource TTS_ButtonStyle}"/>
|
||||
<Style TargetType="GridViewColumnHeader" BasedOn="{StaticResource Gray_GridViewColumnHeaderStyle}"/>
|
||||
<converters:BooleanToVisibilityConverter x:Key="BoolToVis" />
|
||||
</ResourceDictionary>
|
||||
</base:BaseView.Resources>
|
||||
<Grid Background="{DynamicResource Brush_ApplicationContentBackground}">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<ListView ItemsSource="{Binding SLICE6TreeNodes, UpdateSourceTrigger=PropertyChanged}"
|
||||
AutomationProperties.AutomationId="SLICE6TreeView" Grid.Row="0">
|
||||
<ListView.View>
|
||||
<controls:AutoSizedGridView AutomationProperties.AutomationId="SLICE6TreeViewGridView">
|
||||
<GridViewColumn AutomationProperties.AutomationId="Number">
|
||||
<!--<controls2:GridViewColumnHeaderSearchable HeaderTitle="{strings:TranslateExtension Number}" ListviewId="{Binding ListViewId}"/>-->
|
||||
<GridViewColumnHeader Content="{strings:TranslateExtension Number}" />
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding Number,FallbackValue='001', StringFormat='{}{0:000}'}" AutomationProperties.AutomationId="NumberTextBlock"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="SerialNumber">
|
||||
<!--<controls2:GridViewColumnHeaderSearchable HeaderTitle="{strings:TranslateExtension SerialNumber}" ListviewId="{Binding ListViewId}"/>-->
|
||||
<GridViewColumnHeader Content="{strings:TranslateExtension SerialNumber}" />
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding SerialNumber,FallbackValue='S600NA'}" AutomationProperties.AutomationId="SerialNumberTextBlock"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="Port">
|
||||
<!--<controls2:GridViewColumnHeaderSearchable HeaderTitle="{strings:TranslateExtension Port}" ListviewId="{Binding ListViewId}"/>-->
|
||||
<GridViewColumnHeader Content="{strings:TranslateExtension Port}" />
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding PortString}" AutomationProperties.AutomationId="PortTextBlock"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="PositionOnChain">
|
||||
<!--<controls2:GridViewColumnHeaderSearchable HeaderTitle="{strings:TranslateExtension PositionOnChain}" ListviewId="{Binding ListViewId}"/>-->
|
||||
<GridViewColumnHeader Content="{strings:TranslateExtension PositionOnChain}" />
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding PositionOnChainString}" AutomationProperties.AutomationId="PositionOnChainTextBlock"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="RemoveColumn">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<Button Content="{strings:TranslateExtension Remove}" Visibility="{Binding Path=DataContext.IsEdit, ElementName=treeView, Converter={StaticResource BoolToVis}}"
|
||||
Click="Remove_Click" AutomationProperties.AutomationId="btnRemove"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</controls:AutoSizedGridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<StackPanel Grid.Row="1" Orientation="Horizontal" Visibility="{Binding IsEdit, Converter={StaticResource BoolToVis}}">
|
||||
<ComboBox ItemsSource="{Binding AvailableSLICE6}" SelectedItem="{Binding SelectedSLICE6}"
|
||||
DisplayMemberPath="SerialNumber" AutomationProperties.AutomationId="comboBoxAdd"/>
|
||||
<Button Content="{strings:TranslateExtension Add}" Click="Add_Click" AutomationProperties.AutomationId="btnAdd"/>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal" Visibility="{Binding IsEdit, Converter={StaticResource BoolToVis}}">
|
||||
<ComboBox ItemsSource="{Binding AvailableSLICE6DB}" SelectedItem="{Binding SelectedSLICE6DB}"
|
||||
DisplayMemberPath="SerialNumber" AutomationProperties.AutomationId="comboBoxSwap"/>
|
||||
<Button Content="{strings:TranslateExtension Swap}" Click="Swap_Click" AutomationProperties.AutomationId="btnSwap"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</base:BaseView>
|
||||
@@ -0,0 +1,59 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics.HardwareList;
|
||||
using Prism.Ioc;
|
||||
using Prism.Events;
|
||||
|
||||
// ReSharper disable CheckNamespace
|
||||
|
||||
namespace HardwareList
|
||||
{
|
||||
/// <inheritdoc cref="ISLICE6TreeView" />
|
||||
/// <summary>
|
||||
/// Interaction logic for SLICE6TreeView.xaml
|
||||
/// </summary>
|
||||
public partial class SLICE6TreeView : ISLICE6TreeView
|
||||
{
|
||||
public SLICE6TreeView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Remove_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!(sender is Control control)) { return; }
|
||||
if (!(control.DataContext is ISLICE6TreeNode treeNode)) { return; }
|
||||
if (!(DataContext is IHardwareListViewModel vm)) { return; }
|
||||
|
||||
vm.UnAssociate(treeNode);
|
||||
var eventAggregator = ContainerLocator.Container.Resolve<IEventAggregator>();
|
||||
eventAggregator.GetEvent<DTS.Common.Events.PageModifiedEvent>().Publish(
|
||||
new DTS.Common.Events.PageModifiedArg(DTS.Common.Events.PageModifiedArg.Status.Modified, null));
|
||||
}
|
||||
|
||||
private void Add_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!(sender is Control control)) { return; }
|
||||
if (!(DataContext is IHardwareListViewModel vm)) { return; }
|
||||
if (null == vm.SelectedSLICE6) { return; }
|
||||
var treeNode = vm.SelectedSLICE6;
|
||||
vm.Associate(treeNode);
|
||||
var eventAggregator = ContainerLocator.Container.Resolve<IEventAggregator>();
|
||||
eventAggregator.GetEvent<DTS.Common.Events.PageModifiedEvent>().Publish(
|
||||
new DTS.Common.Events.PageModifiedArg(DTS.Common.Events.PageModifiedArg.Status.Modified, null));
|
||||
}
|
||||
/// <summary>
|
||||
/// handles the click of the swap button in the view
|
||||
/// </summary>
|
||||
private void Swap_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!(sender is Control control)) { return; }
|
||||
if (!(DataContext is IHardwareListViewModel vm)) { return; }
|
||||
if (null == vm.SelectedSLICE6DB) { return; }
|
||||
vm.Associate(vm.SelectedSLICE6DB);
|
||||
var eventAggregator = ContainerLocator.Container.Resolve<IEventAggregator>();
|
||||
eventAggregator.GetEvent<DTS.Common.Events.PageModifiedEvent>().Publish(
|
||||
new DTS.Common.Events.PageModifiedArg(DTS.Common.Events.PageModifiedArg.Status.Modified, null));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,384 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Analog" xml:space="preserve">
|
||||
<value>Analog</value>
|
||||
</data>
|
||||
<data name="CalDate" xml:space="preserve">
|
||||
<value>Cal Date</value>
|
||||
</data>
|
||||
<data name="CalDueDate" xml:space="preserve">
|
||||
<value>Cal Due Date</value>
|
||||
</data>
|
||||
<data name="ChannelCount" xml:space="preserve">
|
||||
<value>Channels</value>
|
||||
</data>
|
||||
<data name="DigitalIn" xml:space="preserve">
|
||||
<value>Digital input</value>
|
||||
</data>
|
||||
<data name="DigitalOut" xml:space="preserve">
|
||||
<value>Digital out</value>
|
||||
</data>
|
||||
<data name="DIM" xml:space="preserve">
|
||||
<value>DIM</value>
|
||||
</data>
|
||||
<data name="Firmware" xml:space="preserve">
|
||||
<value>Firmware</value>
|
||||
</data>
|
||||
<data name="G5INDUMMY" xml:space="preserve">
|
||||
<value>G5</value>
|
||||
</data>
|
||||
<data name="G5VDS" xml:space="preserve">
|
||||
<value>G5 (VDS)</value>
|
||||
</data>
|
||||
<data name="HardwareType" xml:space="preserve">
|
||||
<value>Type</value>
|
||||
</data>
|
||||
<data name="MaxSampleRate" xml:space="preserve">
|
||||
<value>Max Sample Rate</value>
|
||||
</data>
|
||||
<data name="Ribeye" xml:space="preserve">
|
||||
<value>Ribeye</value>
|
||||
</data>
|
||||
<data name="RibeyeLED" xml:space="preserve">
|
||||
<value>Ribeye (LED)</value>
|
||||
</data>
|
||||
<data name="SerialNumber" xml:space="preserve">
|
||||
<value>Serial Number</value>
|
||||
</data>
|
||||
<data name="SIM" xml:space="preserve">
|
||||
<value>SIM</value>
|
||||
</data>
|
||||
<data name="SLICE1_5_Micro_Base" xml:space="preserve">
|
||||
<value>SLICE+</value>
|
||||
</data>
|
||||
<data name="SLICE1_5_Nano_Base" xml:space="preserve">
|
||||
<value>SLICE+</value>
|
||||
</data>
|
||||
<data name="SLICE1_G5Stack" xml:space="preserve">
|
||||
<value>SLICE G5</value>
|
||||
</data>
|
||||
<data name="SLICE2_Base" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_Bridge_Hi" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_Bridge_Lo" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_DIM" xml:space="preserve">
|
||||
<value>SLICE PRO DIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_IEPE_Hi" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_IEPE_Lo" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_SIM" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_SLD" xml:space="preserve">
|
||||
<value>SLICE PRO Lab DIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_SLS" xml:space="preserve">
|
||||
<value>SLICE PRO Lab SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_SLT" xml:space="preserve">
|
||||
<value>SLICE PRO Lab TOM</value>
|
||||
</data>
|
||||
<data name="SLICE2_TOM" xml:space="preserve">
|
||||
<value>SLICE PRO TOM</value>
|
||||
</data>
|
||||
<data name="SLICE6DB" xml:space="preserve">
|
||||
<value>SLICE 6 Distributor</value>
|
||||
</data>
|
||||
<data name="SLICE6_Base" xml:space="preserve">
|
||||
<value>SLICE 6</value>
|
||||
</data>
|
||||
<data name="SLICE_Base" xml:space="preserve">
|
||||
<value>SLICE</value>
|
||||
</data>
|
||||
<data name="SLICE_Bridge" xml:space="preserve">
|
||||
<value>(SLICE bridge)</value>
|
||||
</data>
|
||||
<data name="SLICE_Distributor" xml:space="preserve">
|
||||
<value>SLICE Distributor</value>
|
||||
</data>
|
||||
<data name="SLICE_EthernetController" xml:space="preserve">
|
||||
<value>SLICE Ethernet Controller</value>
|
||||
</data>
|
||||
<data name="SLICE_Mini_Distributor" xml:space="preserve">
|
||||
<value>SLICE Mini Distributor</value>
|
||||
</data>
|
||||
<data name="SLICE_IEPE" xml:space="preserve">
|
||||
<value>SLICE (IEPE)</value>
|
||||
</data>
|
||||
<data name="SLICE_LabEthernet" xml:space="preserve">
|
||||
<value>SLICE 2 Lab Ethernet Controller</value>
|
||||
</data>
|
||||
<data name="SLICE_Micro_Base" xml:space="preserve">
|
||||
<value>SLICE (Micro)</value>
|
||||
</data>
|
||||
<data name="SLICE_NANO_Base" xml:space="preserve">
|
||||
<value>SLICE (Nano)</value>
|
||||
</data>
|
||||
<data name="Squib" xml:space="preserve">
|
||||
<value>Squib</value>
|
||||
</data>
|
||||
<data name="TDAS_LabRack" xml:space="preserve">
|
||||
<value>TDAS PRO Lab Rack</value>
|
||||
</data>
|
||||
<data name="TDAS_Pro_Rack" xml:space="preserve">
|
||||
<value>TDAS PRO Rack</value>
|
||||
</data>
|
||||
<data name="TOM" xml:space="preserve">
|
||||
<value>TOM</value>
|
||||
</data>
|
||||
<data name="SLICE6DB_InDummy" xml:space="preserve">
|
||||
<value>SLICE 6 Distributor (In-dummy)</value>
|
||||
</data>
|
||||
<data name="SLICE6DB_AIR" xml:space="preserve">
|
||||
<value>SLICE 6 Distributor (AIR)</value>
|
||||
</data>
|
||||
<data name="IPAddress" xml:space="preserve">
|
||||
<value>IP Address</value>
|
||||
</data>
|
||||
<data name="TestSampleRate" xml:space="preserve">
|
||||
<value>Test Sample Rate</value>
|
||||
</data>
|
||||
<data name="Compact" xml:space="preserve">
|
||||
<value>Compact</value>
|
||||
</data>
|
||||
<data name="ShowModules" xml:space="preserve">
|
||||
<value>Expanded</value>
|
||||
</data>
|
||||
<data name="Table_NA" xml:space="preserve">
|
||||
<value>---</value>
|
||||
</data>
|
||||
<data name="ChainMultipleTestSampleRates" xml:space="preserve">
|
||||
<value>Multiple</value>
|
||||
</data>
|
||||
<data name="SLICE6_AIR" xml:space="preserve">
|
||||
<value>SLICE 6 AIR</value>
|
||||
</data>
|
||||
<data name="IsHWClockMaster" xml:space="preserve">
|
||||
<value>Clock Master?</value>
|
||||
</data>
|
||||
<data name="Number" xml:space="preserve">
|
||||
<value>Number</value>
|
||||
</data>
|
||||
<data name="Port" xml:space="preserve">
|
||||
<value>Port</value>
|
||||
</data>
|
||||
<data name="PositionOnChain" xml:space="preserve">
|
||||
<value>Position on chain</value>
|
||||
</data>
|
||||
<data name="TreeView" xml:space="preserve">
|
||||
<value>Tree view</value>
|
||||
</data>
|
||||
<data name="Add" xml:space="preserve">
|
||||
<value>Add</value>
|
||||
</data>
|
||||
<data name="Remove" xml:space="preserve">
|
||||
<value>Remove</value>
|
||||
</data>
|
||||
<data name="PowerPro" xml:space="preserve">
|
||||
<value>PowerPRO Battery</value>
|
||||
</data>
|
||||
<data name="Swap" xml:space="preserve">
|
||||
<value>Swap</value>
|
||||
</data>
|
||||
<data name="FirstUseDate" xml:space="preserve">
|
||||
<value>First Use Date</value>
|
||||
</data>
|
||||
<data name="HardwareToReplace" xml:space="preserve">
|
||||
<value>Hardware to replace</value>
|
||||
</data>
|
||||
<data name="HardwareToReplaceWith" xml:space="preserve">
|
||||
<value>Hardware to replace with</value>
|
||||
</data>
|
||||
<data name="Replace" xml:space="preserve">
|
||||
<value>Replace</value>
|
||||
</data>
|
||||
<data name="ChannelNumber" xml:space="preserve">
|
||||
<value>CH #</value>
|
||||
</data>
|
||||
<data name="Name" xml:space="preserve">
|
||||
<value>Name</value>
|
||||
</data>
|
||||
<data name="Sensor" xml:space="preserve">
|
||||
<value>Sensor</value>
|
||||
</data>
|
||||
<data name="TestAAFRateHz" xml:space="preserve">
|
||||
<value>AA Filter (Hz)</value>
|
||||
</data>
|
||||
<data name="Connection" xml:space="preserve">
|
||||
<value>Connection</value>
|
||||
</data>
|
||||
<data name="DAS_Channels" xml:space="preserve">
|
||||
<value>channel(s)</value>
|
||||
</data>
|
||||
<data name="USB" xml:space="preserve">
|
||||
<value>USB</value>
|
||||
</data>
|
||||
<data name="EmbeddedSensors" xml:space="preserve">
|
||||
<value>Embedded Sensors</value>
|
||||
</data>
|
||||
<data name="TSR_AIR" xml:space="preserve">
|
||||
<value>TSR AIR</value>
|
||||
</data>
|
||||
<data name="DIR" xml:space="preserve">
|
||||
<value>DIR</value>
|
||||
</data>
|
||||
<data name="DKR" xml:space="preserve">
|
||||
<value>DKR</value>
|
||||
</data>
|
||||
<data name="TSR_AIR_RevB" xml:space="preserve">
|
||||
<value>TSR AIR</value>
|
||||
</data>
|
||||
<data name="SLICE6DB3" xml:space="preserve">
|
||||
<value>SLICE 6 Distributor 3</value>
|
||||
</data>
|
||||
<data name="SetTestAAFRatesWarning" xml:space="preserve">
|
||||
<value>DataPRO encountered problem setting some of the AA Filter rates and used the default rates. Please review the AA Filter rates in the test setup and edit them as needed.</value>
|
||||
</data>
|
||||
<data name="S6A_EthernetRecorder" xml:space="preserve">
|
||||
<value>SLICE 6 AIR Ethernet Recorder</value>
|
||||
</data>
|
||||
<data name="UART" xml:space="preserve">
|
||||
<value>UART</value>
|
||||
</data>
|
||||
<data name="StreamOut" xml:space="preserve">
|
||||
<value>Streaming Out</value>
|
||||
</data>
|
||||
<data name="StreamIn" xml:space="preserve">
|
||||
<value>Streaming In</value>
|
||||
</data>
|
||||
<data name="PTPDomain" xml:space="preserve">
|
||||
<value>PTP Domain</value>
|
||||
</data>
|
||||
<data name="DSPStreamingFilterColumnHeader" xml:space="preserve">
|
||||
<value>DSP filter -3dB (Hz)</value>
|
||||
</data>
|
||||
<data name="CAN" xml:space="preserve">
|
||||
<value>CAN</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,101 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media;
|
||||
using DTS.Common.Controls;
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics.HardwareList;
|
||||
using DTS.Common.Utils;
|
||||
|
||||
// ReSharper disable CheckNamespace
|
||||
|
||||
namespace HardwareList
|
||||
{
|
||||
/// <inheritdoc cref="IHardwareListView" />
|
||||
/// <summary>
|
||||
/// Interaction logic for HardwareListView.xaml
|
||||
/// </summary>
|
||||
public partial class HardwareListView : IHardwareListView
|
||||
{
|
||||
public HardwareListView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void GridViewColumnHeaderSearchable_OnSearch(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var searchTerm = (string)e.OriginalSource;
|
||||
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag;
|
||||
var viewModel = (IHardwareListViewModel)DataContext;
|
||||
viewModel.Filter(columnTag, searchTerm);
|
||||
}
|
||||
private void GridViewColumnHeader_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var vm = (IHardwareListViewModel)DataContext;
|
||||
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag ??
|
||||
Utils.FindChild<GridViewColumnHeaderSearchable>((DependencyObject)e.OriginalSource, null)?.Tag ??
|
||||
(e.OriginalSource as GridViewColumnHeader)?.Tag;
|
||||
vm?.Sort(columnTag, true);
|
||||
}
|
||||
|
||||
private void MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
|
||||
{
|
||||
if (!(sender is ListView lv))
|
||||
{
|
||||
return;
|
||||
}
|
||||
var index = GetCurrentIndex(e.GetPosition, lv);
|
||||
if (index >= 0 && index < lv.Items.Count)
|
||||
{
|
||||
var vm = (IHardwareListViewModel)lv.DataContext;
|
||||
vm.MouseDoubleClick(index);
|
||||
}
|
||||
}
|
||||
|
||||
private delegate Point GetPositionDelegate(IInputElement element);
|
||||
private int GetCurrentIndex(GetPositionDelegate getPosition, ListView lv)
|
||||
{
|
||||
var index = -1;
|
||||
for (var i = 0; i < lv.Items.Count; i++)
|
||||
{
|
||||
var item = GetListViewItem(i, lv);
|
||||
if (item == null)
|
||||
continue;
|
||||
if (IsMouseOverTarget(item, getPosition))
|
||||
{
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return index;
|
||||
}
|
||||
private static ListViewItem GetListViewItem(int index, ListView lv)
|
||||
{
|
||||
return lv.ItemContainerGenerator.ContainerFromIndex(index) as ListViewItem;
|
||||
}
|
||||
private static bool IsMouseOverTarget(Visual target, GetPositionDelegate getPosition)
|
||||
{
|
||||
var bounds = VisualTreeHelper.GetDescendantBounds(target);
|
||||
var mousePos = getPosition((IInputElement)target);
|
||||
return bounds.Contains(mousePos);
|
||||
}
|
||||
|
||||
private void TreeviewButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!(sender is Control control)) { return; }
|
||||
|
||||
if (!(control.DataContext is IHardware hardware)) { return; }
|
||||
|
||||
if (!(DataContext is IHardwareListViewModel hardwareListViewModel)) { return; }
|
||||
|
||||
SLICE6TreeViewPopup.IsOpen = false;
|
||||
hardwareListViewModel.SLICE6TreeView.DataContext = hardwareListViewModel;
|
||||
|
||||
SLICE6TreeViewPopup.PlacementTarget = control;
|
||||
SLICE6TreeViewPopup.Child = null;
|
||||
hardwareListViewModel.LoadTreeView(hardware.SerialNumber);
|
||||
|
||||
SLICE6TreeViewPopup.Child = (UIElement)hardwareListViewModel.SLICE6TreeView;
|
||||
SLICE6TreeViewPopup.IsOpen = true;
|
||||
SLICE6TreeViewPopup.PlacementTarget = control;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace HardwareList.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.10.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,629 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using DTS.Common.Base;
|
||||
using DTS.Common.Classes.Hardware;
|
||||
using DTS.Common.Converters;
|
||||
using DTS.Common.Enums;
|
||||
using DTS.Common.Enums.Hardware;
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics;
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics.HardwareList;
|
||||
|
||||
namespace HardareList.Model
|
||||
{
|
||||
public class HardwareModel : BasePropertyChanged, IHardware
|
||||
{
|
||||
/// <summary>
|
||||
/// first date of use after calibration
|
||||
/// only valid if IsFirstUseValid is true
|
||||
/// null value indicates hardware has not been used since calibration
|
||||
/// (once again, only if IsFirstUseValid is true)
|
||||
/// 15524 DAS "First Use Date"
|
||||
/// </summary>
|
||||
public DateTime? FirstUseDate { get; set; } = null;
|
||||
/// <summary>
|
||||
/// whether hardware supports and is using first use date
|
||||
/// 15524 DAS "First Use Date"
|
||||
/// </summary>
|
||||
public bool IsFirstUseValid { get; set; } = false;
|
||||
public int DASId { get; set; }
|
||||
public bool Disabled { get; set; }
|
||||
public string SerialNumber { get; set; }
|
||||
public string HardwareType { get; set; }
|
||||
public string ChannelCount { get; set; }
|
||||
public bool HasIncludedChildren { get; set; } = false;
|
||||
public string Firmware { get; set; }
|
||||
public double? MaxSampleRate { get; set; }
|
||||
private double _testSampleRate = 0;
|
||||
public double TestSampleRate
|
||||
{
|
||||
get => _testSampleRate;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _testSampleRate, value, "TestSampleRate");
|
||||
OnPropertyChanged("SelectedSampleRateIndex");
|
||||
}
|
||||
}
|
||||
private double _testAafilterRateHz = 0;
|
||||
public double TestAAFilterRateHz
|
||||
{
|
||||
get => _testAafilterRateHz;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _testAafilterRateHz, value, "TestAAFilterRateHz");
|
||||
_vm.FireAAFilterRate(this, value.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime? CalDate { get; set; }
|
||||
public DateTime? CalDueDate { get; set; }
|
||||
public List<double> _availableSampleRates { get; set; }
|
||||
public string[] AvailableSampleRates { get; set; }
|
||||
public string SelectedSampleRateItem { get; set; } = string.Empty;
|
||||
public int SelectedSampleRateIndex
|
||||
{
|
||||
get
|
||||
{
|
||||
if (null == _availableSampleRates) { return -1; }
|
||||
if (_availableSampleRates.IndexOf(TestSampleRate) == -1)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
SelectedSampleRateItem = AvailableSampleRates[_availableSampleRates.IndexOf(TestSampleRate)]; //They're all the same
|
||||
return _availableSampleRates.IndexOf(TestSampleRate);
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SelectedSampleRateIndex == value) return;
|
||||
TestSampleRate = _availableSampleRates[value];
|
||||
_vm.FireSampleRate(this, _availableSampleRates[value].ToString());
|
||||
TestAAFilterRateHz = _vm.GetAAFForHardware((IISOHardware)Hardware, (int)TestSampleRate);
|
||||
OnPropertyChanged("SelectedSampleRateIndex");
|
||||
}
|
||||
}
|
||||
public object Hardware { get; set; }
|
||||
public int AnalogChannels { get; set; }
|
||||
public int SquibChannels { get; set; }
|
||||
public int DigitalInChannels { get; set; }
|
||||
public int DigitalOutChannels { get; set; }
|
||||
public int UartChannels { get; set; }
|
||||
public int StreamOutChannels { get; set; }
|
||||
public int StreamInChannels { get; set; }
|
||||
public string IPAddress { get; set; }
|
||||
|
||||
private bool _bIncluded = false;
|
||||
public bool Included
|
||||
{
|
||||
get => _bIncluded;
|
||||
set
|
||||
{
|
||||
_bIncluded = value;
|
||||
OnPropertyChanged("Included");
|
||||
_vm.FireIncluded(this);
|
||||
OnPropertyChanged("MixedRates");
|
||||
OnPropertyChanged("IncludedAndNotMixedRatesAndCompactOrNotDistributor");
|
||||
OnPropertyChanged("IncludedAndMixedRatesAndCompact");
|
||||
}
|
||||
}
|
||||
|
||||
private double _dspStreamingFilter = double.NaN;
|
||||
public double DSPStreamingFilter
|
||||
{
|
||||
get => _dspStreamingFilter;
|
||||
set => SetProperty(ref _dspStreamingFilter, value, "DSPStreamingFilter");
|
||||
}
|
||||
public DTS.Common.ClockSyncProfile MasterProfile { get; set; } = DTS.Common.ClockSyncProfile.None;
|
||||
public DTS.Common.ClockSyncProfile SlaveProfile { get; set; } = DTS.Common.ClockSyncProfile.None;
|
||||
private bool _bIsClockMaster = false;
|
||||
public bool IsClockMaster
|
||||
{
|
||||
get => IsClockedDAS && _bIsClockMaster;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _bIsClockMaster, value, "IsClockMaster");
|
||||
_vm.FireClockMaster(this, IsClockMaster);
|
||||
OnPropertyChanged("IsPTPSync");
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsClockedDAS => ((IISOHardware)Hardware)?.DASTypeEnum == HardwareTypes.SLICE6_AIR || ((IISOHardware)Hardware)?.DASTypeEnum == HardwareTypes.S6A_EthernetRecorder
|
||||
|| ((IISOHardware)Hardware)?.DASTypeEnum == HardwareTypes.SLICE6_Base || ((IISOHardware)Hardware)?.DASTypeEnum == HardwareTypes.SLICE6_AIR_BR
|
||||
|| ((IISOHardware)Hardware)?.DASTypeEnum == HardwareTypes.SLICE6DB || ((IISOHardware)Hardware)?.DASTypeEnum == HardwareTypes.SLICE6DB_InDummy
|
||||
|| ((IISOHardware)Hardware)?.DASTypeEnum == HardwareTypes.TSR_AIR || ((IISOHardware)Hardware)?.DASTypeEnum == HardwareTypes.TSR_AIR_RevB;
|
||||
|
||||
private byte _ptpDomainId = 0;
|
||||
public byte PTPDomainID
|
||||
{
|
||||
get => _ptpDomainId;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _ptpDomainId, value, "PTPDomainID");
|
||||
_vm.FirePTPDomainID(this, PTPDomainID);
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsPTPSync => (IsClockMaster && MasterProfile.GetDescription().Contains("E2E")) || (!IsClockMaster && SlaveProfile.GetDescription().Contains("E2E"));
|
||||
|
||||
private bool _mixedRates = false;
|
||||
public bool MixedRates
|
||||
{
|
||||
get => _mixedRates;
|
||||
set
|
||||
{
|
||||
_mixedRates = value;
|
||||
OnPropertyChanged("MixedRates");
|
||||
OnPropertyChanged("IncludedAndNotMixedRatesAndCompactOrNotDistributor");
|
||||
OnPropertyChanged("IncludedAndMixedRatesAndCompact");
|
||||
}
|
||||
}
|
||||
public bool IsDistributor => (Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE_EthernetController ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE_Distributor ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE_Mini_Distributor ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE6DB ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE_LabEthernet ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE6DB3 ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE6DB_InDummy ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.SLICE_Pro_Distributor;
|
||||
|
||||
public bool IsBattery => (Hardware as IISOHardware).DASTypeEnum == HardwareTypes.PowerPro;
|
||||
public bool IsTSRAIR => (Hardware as IISOHardware).DASTypeEnum == HardwareTypes.TSR_AIR ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.TSR_AIR_RevB ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.DKR ||
|
||||
(Hardware as IISOHardware).DASTypeEnum == HardwareTypes.DIR;
|
||||
public bool IncludedAndNotMixedRatesAndCompactOrNotDistributor => Included && !MixedRates && ((_vm.ShowCompact && HasIncludedChildren) || !IsDistributor) && !IsBattery;
|
||||
public bool IncludedAndMixedRatesAndCompact => Included && MixedRates && _vm.ShowCompact && !IsBattery;
|
||||
private HardwareList.HardwareListViewModel _vm;
|
||||
public HardwareModel(IISOHardware d, int tdasCalPeriod, int g5CalPeriod, int slice1CalPeriod, int slice2CalPeriod, int slice15CalPeriod, int slice6CalPeriod,
|
||||
int powerProCalPeriod, int slice6AirCalPeriod, int slice6AirBridgeCalPeriod, int slice6DBCalPeriod, int tsrAirCalPeriod, int sliceTcCalPeriod, HardwareList.HardwareListViewModel vm)
|
||||
{
|
||||
FirstUseDate = d.FirstUseDate;
|
||||
IsFirstUseValid = d.IsFirstUseValid;
|
||||
_vm = vm;
|
||||
Hardware = d;
|
||||
DASId = d.DASId;
|
||||
SerialNumber = d.SerialNumber;
|
||||
Port = d.Port;
|
||||
ParentDAS = d.ParentDAS;
|
||||
PositionOnChain = d.PositionOnChain;
|
||||
PositionOnDistributor = d.PositionOnDistributor;
|
||||
HardwareType = HardwareList.Resources.StringResources.ResourceManager.GetString(d.DASTypeEnum.ToString());
|
||||
if (string.IsNullOrEmpty(HardwareType))
|
||||
{
|
||||
HardwareType = EnumDescriptionTypeConverter.GetEnumDescription(d.DASTypeEnum);
|
||||
}
|
||||
Firmware = d.FirmwareVersion;
|
||||
if ((d.MaxSampleRate > 0.0D) && !Equals(d.MaxSampleRate, (double)uint.MaxValue))
|
||||
{
|
||||
MaxSampleRate = d.MaxSampleRate;
|
||||
}
|
||||
else
|
||||
{
|
||||
MaxSampleRate = null;
|
||||
}
|
||||
|
||||
if (d.CalDate > DASDBRecord.INVALID_DATE)
|
||||
{
|
||||
CalDate = d.CalDate;
|
||||
}
|
||||
else
|
||||
{
|
||||
CalDate = null;
|
||||
}
|
||||
|
||||
d.GetChannelsString(out var analog, out var digitalIn, out var digitalOut, out var squib, out var uart, out var streamOut, out var streamIn);
|
||||
|
||||
AnalogChannels = analog;
|
||||
DigitalInChannels = digitalIn;
|
||||
DigitalOutChannels = digitalOut;
|
||||
SquibChannels = squib;
|
||||
UartChannels = uart;
|
||||
StreamOutChannels = streamOut;
|
||||
StreamInChannels = streamIn;
|
||||
|
||||
var dateOfFirstUse = CalDate;
|
||||
if (IsFirstUseValid)
|
||||
{
|
||||
if (null == FirstUseDate)
|
||||
{
|
||||
dateOfFirstUse = DateTime.Today;
|
||||
}
|
||||
else { dateOfFirstUse = FirstUseDate; }
|
||||
}
|
||||
|
||||
switch (d.DASTypeEnum)
|
||||
{
|
||||
case HardwareTypes.SLICE_Base:
|
||||
case HardwareTypes.SLICE_Bridge:
|
||||
case HardwareTypes.SLICE_Distributor:
|
||||
//FB 16148 similar to slice db
|
||||
case HardwareTypes.SLICE_Mini_Distributor:
|
||||
case HardwareTypes.SLICE_IEPE:
|
||||
case HardwareTypes.Ribeye:
|
||||
case HardwareTypes.RibeyeLED:
|
||||
case HardwareTypes.SLICE_Micro_Base:
|
||||
case HardwareTypes.SLICE_NANO_Base:
|
||||
case HardwareTypes.SLICE1_G5Stack:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice1CalPeriod);
|
||||
break;
|
||||
case HardwareTypes.TDAS_Pro_Rack:
|
||||
case HardwareTypes.TDAS_LabRack:
|
||||
case HardwareTypes.TOM:
|
||||
case HardwareTypes.SIM:
|
||||
case HardwareTypes.DIM:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(tdasCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE2_IEPE_Hi:
|
||||
case HardwareTypes.SLICE2_IEPE_Lo:
|
||||
case HardwareTypes.SLICE2_Bridge_Hi:
|
||||
case HardwareTypes.SLICE2_Bridge_Lo:
|
||||
case HardwareTypes.SLICE2_Base:
|
||||
case HardwareTypes.SLICE2_SIM:
|
||||
case HardwareTypes.SLICE2_DIM:
|
||||
case HardwareTypes.SLICE2_TOM:
|
||||
case HardwareTypes.SLICE_EthernetController:
|
||||
case HardwareTypes.SLICE_LabEthernet:
|
||||
case HardwareTypes.SLICE2_SLS:
|
||||
case HardwareTypes.SLICE2_SLT:
|
||||
case HardwareTypes.SLICE2_SLD:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice2CalPeriod);
|
||||
break;
|
||||
case HardwareTypes.TSR_AIR:
|
||||
case HardwareTypes.TSR_AIR_RevB:
|
||||
case HardwareTypes.DKR:
|
||||
case HardwareTypes.DIR:
|
||||
case HardwareTypes.EMB_ANG_ACC:
|
||||
case HardwareTypes.EMB_ANG_ARS:
|
||||
case HardwareTypes.EMB_ATM:
|
||||
case HardwareTypes.EMB_LIN_ACC_LO:
|
||||
case HardwareTypes.EMB_LIN_ACC_HI:
|
||||
case HardwareTypes.EMB_MAG:
|
||||
case HardwareTypes.EMB_MAG_SWITCH:
|
||||
case HardwareTypes.EMB_MIC:
|
||||
case HardwareTypes.EMB_OPT:
|
||||
case HardwareTypes.EMB_RTC_S_MARK:
|
||||
case HardwareTypes.EMB_RTC_NS_PAD:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(tsrAirCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.G5VDS:
|
||||
case HardwareTypes.G5INDUMMY:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(g5CalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE1_5_Nano_Base:
|
||||
case HardwareTypes.SLICE1_5_Micro_Base:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice15CalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE6_Base:
|
||||
//put some fall-through logic here
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice6CalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE6_AIR:
|
||||
case HardwareTypes.S6A_EthernetRecorder:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice6AirCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE6_AIR_BR:
|
||||
//put some fall-through logic here
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice6AirBridgeCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE_Pro_Distributor:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice6DBCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE6DB:
|
||||
case HardwareTypes.SLICE6DB3:
|
||||
case HardwareTypes.SLICE6DB_InDummy:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(slice6DBCalPeriod);
|
||||
HasTreeView = true;
|
||||
break;
|
||||
case HardwareTypes.PowerPro:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(powerProCalPeriod);
|
||||
break;
|
||||
case HardwareTypes.SLICE6_AIR_TC:
|
||||
CalDueDate = dateOfFirstUse?.AddDays(sliceTcCalPeriod);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
if (d.IPAddress.ToLower().Contains("usb"))
|
||||
{
|
||||
IPAddress = HardwareList.Resources.StringResources.USB;
|
||||
}
|
||||
else
|
||||
{
|
||||
IPAddress = d.IPAddress;
|
||||
}
|
||||
}
|
||||
|
||||
public void DetermineChannelCount(bool showCompact, IHardware[] allHardware)
|
||||
{
|
||||
var channelsText = new List<string>();
|
||||
if (AnalogChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{AnalogChannels} {HardwareList.Resources.StringResources.Analog}");
|
||||
}
|
||||
if (DigitalInChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{DigitalInChannels} {HardwareList.Resources.StringResources.DigitalIn}");
|
||||
}
|
||||
if (SquibChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{SquibChannels / 2} {HardwareList.Resources.StringResources.Squib}");
|
||||
}
|
||||
if (DigitalOutChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{DigitalOutChannels} {HardwareList.Resources.StringResources.DigitalOut}");
|
||||
}
|
||||
if (UartChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{UartChannels} {HardwareList.Resources.StringResources.UART}");
|
||||
}
|
||||
if (StreamOutChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{StreamOutChannels} {HardwareList.Resources.StringResources.StreamOut}");
|
||||
}
|
||||
if (StreamInChannels > 0)
|
||||
{
|
||||
channelsText.Add($"{StreamInChannels} {HardwareList.Resources.StringResources.StreamIn}");
|
||||
}
|
||||
|
||||
ChannelCount = string.Join(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator,
|
||||
channelsText.ToArray()) + " " + HardwareList.Resources.StringResources.DAS_Channels;
|
||||
|
||||
if (Hardware is IISOHardware hardware)
|
||||
{
|
||||
if (hardware.DASTypeEnum == HardwareTypes.SLICE_EthernetController ||
|
||||
hardware.DASTypeEnum == HardwareTypes.SLICE_Distributor ||
|
||||
hardware.DASTypeEnum == HardwareTypes.PowerPro ||
|
||||
hardware.DASTypeEnum == HardwareTypes.SLICE_Mini_Distributor ||
|
||||
hardware.DASTypeEnum == HardwareTypes.SLICE6DB ||
|
||||
hardware.DASTypeEnum == HardwareTypes.SLICE6DB3 ||
|
||||
hardware.DASTypeEnum == HardwareTypes.SLICE_Pro_Distributor
|
||||
|
||||
) //add SLICE6DB and others here?
|
||||
{
|
||||
if (!showCompact || hardware.DASTypeEnum == HardwareTypes.PowerPro || string.IsNullOrWhiteSpace(ChannelCount))
|
||||
{
|
||||
ChannelCount = HardwareList.Resources.StringResources.Table_NA;
|
||||
MaxSampleRate = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
var minRate = hardware.MaxSampleRate;
|
||||
var matches = from h in allHardware where h.ParentDAS == SerialNumber && null != h.MaxSampleRate select (double)h.MaxSampleRate;
|
||||
if (matches.Any())
|
||||
{
|
||||
minRate = Math.Min(minRate, matches.Min());
|
||||
MaxSampleRate = minRate;
|
||||
}
|
||||
else
|
||||
{
|
||||
//no DAS associated, so rate is unknown
|
||||
ChannelCount = HardwareList.Resources.StringResources.Table_NA;
|
||||
MaxSampleRate = null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else if (hardware.IsTSRAIR())
|
||||
{
|
||||
ChannelCount = HardwareList.Resources.StringResources.EmbeddedSensors
|
||||
+ (UartChannels > 0 ? $", {UartChannels} {HardwareList.Resources.StringResources.UART}" : String.Empty)
|
||||
+ (StreamOutChannels > 0 ? $", {StreamOutChannels} {HardwareList.Resources.StringResources.StreamOut} {HardwareList.Resources.StringResources.DAS_Channels}" : String.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
public void SetIncluded(bool bIncluded)
|
||||
{
|
||||
_bIncluded = bIncluded;
|
||||
OnPropertyChanged("Included");
|
||||
OnPropertyChanged("MixedRates");
|
||||
OnPropertyChanged("IncludedAndNotMixedRatesAndCompactOrNotDistributor");
|
||||
OnPropertyChanged("IncludedAndMixedRatesAndCompact");
|
||||
}
|
||||
public void SetMixedRates(bool mixedRates)
|
||||
{
|
||||
_mixedRates = mixedRates;
|
||||
OnPropertyChanged("MixedRates");
|
||||
OnPropertyChanged("IncludedAndNotMixedRatesAndCompactOrNotDistributor");
|
||||
OnPropertyChanged("IncludedAndMixedRatesAndCompact");
|
||||
}
|
||||
|
||||
public bool Filter(string term)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(term)) { return true; }
|
||||
term = term.ToLower();
|
||||
if (SerialNumber.ToLower().Contains(term)) { return true; }
|
||||
if (Firmware.ToLower().Contains(term)) { return true; }
|
||||
if (HardwareType.ToLower().Contains(term)) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
public string ParentDAS { get; set; }
|
||||
public int PositionOnChain { get; set; }
|
||||
public int PositionOnDistributor { get; set; }
|
||||
public int Port { get; set; }
|
||||
|
||||
private bool _bHasTreeView = false;
|
||||
public bool HasTreeView
|
||||
{
|
||||
get => _bHasTreeView;
|
||||
set
|
||||
{
|
||||
_bHasTreeView = value;
|
||||
OnPropertyChanged("HasTreeView");
|
||||
}
|
||||
}
|
||||
public override string ToString()
|
||||
{
|
||||
return SerialNumberDisplay;
|
||||
}
|
||||
protected HardwareModel() { }
|
||||
/// <summary>
|
||||
/// returns all SLICE6DB available (except any matching the serial number indicated)
|
||||
/// </summary>
|
||||
/// <param name="serialNumber"></param>
|
||||
/// <returns></returns>
|
||||
public static IHardware[] GetAvailableSLICE6DB(string serialNumber)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(serialNumber))
|
||||
{
|
||||
return new IHardware[0];
|
||||
}
|
||||
serialNumber = serialNumber.ToUpper();
|
||||
var list = new List<IHardware>();
|
||||
|
||||
using (var sql = DTS.Common.Storage.DbOperations.GetSQLCommand(true))
|
||||
{
|
||||
try
|
||||
{
|
||||
sql.CommandType = System.Data.CommandType.Text;
|
||||
sql.CommandText = $"SELECT [DASId], [SerialNumber] FROM [DAS] where [Type] in ({(int)HardwareTypes.SLICE6DB},{(int)HardwareTypes.SLICE6DB_InDummy}) AND [Position]=''";
|
||||
var reader = sql.ExecuteReader();
|
||||
while (reader.Read())
|
||||
{
|
||||
var h = new HardwareModel();
|
||||
h.DASId = Convert.ToInt32(reader["DASId"]);
|
||||
h.SerialNumber = Convert.ToString(reader["SerialNumber"]);
|
||||
if (h.SerialNumber.ToUpper() == serialNumber) { continue; }
|
||||
list.Add(h);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
sql.Connection.Dispose();
|
||||
}
|
||||
}
|
||||
return list.ToArray();
|
||||
}
|
||||
|
||||
public string SerialNumberDisplay
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!(Hardware is IISOHardware isoHW)) { return SerialNumber; }
|
||||
return isoHW.StandIn ? EnumDescriptionTypeConverter.GetEnumDescription(isoHW.DASTypeEnum) : SerialNumber;
|
||||
}
|
||||
}
|
||||
}
|
||||
public class HardwareComparer : IComparer<IHardware>
|
||||
{
|
||||
public HardwareListTags SortField { get; set; }
|
||||
private bool _bSortAscending = true;
|
||||
|
||||
public bool SortAscending
|
||||
{
|
||||
get => _bSortAscending;
|
||||
set => _bSortAscending = value;
|
||||
}
|
||||
|
||||
public int Compare(IHardware left, IHardware right)
|
||||
{
|
||||
if (left == right)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
var a = left; var b = right;
|
||||
if (!SortAscending) { a = right; b = left; }
|
||||
if (null == a)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
if (null == b)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
switch (SortField)
|
||||
{
|
||||
case HardwareListTags.Included:
|
||||
return a.Included.CompareTo(b.Included);
|
||||
case HardwareListTags.DSPStreamingFilter:
|
||||
return a.DSPStreamingFilter.CompareTo(b.DSPStreamingFilter);
|
||||
case HardwareListTags.SerialNumber:
|
||||
if (a is HardwareModel hmA && b is HardwareModel hmB)
|
||||
{
|
||||
return string.Compare(hmA.SerialNumberDisplay, hmB.SerialNumberDisplay,
|
||||
StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
else { return string.Compare(a.SerialNumber, b.SerialNumber, StringComparison.OrdinalIgnoreCase); }
|
||||
case HardwareListTags.HardwareType:
|
||||
return string.Compare(a.HardwareType, b.HardwareType, StringComparison.OrdinalIgnoreCase);
|
||||
case HardwareListTags.ChannelCount:
|
||||
return string.Compare(a.ChannelCount, b.ChannelCount, StringComparison.OrdinalIgnoreCase);
|
||||
case HardwareListTags.Firmware:
|
||||
return string.Compare(a.Firmware, b.Firmware, StringComparison.OrdinalIgnoreCase);
|
||||
case HardwareListTags.MaxSampleRate:
|
||||
{
|
||||
return NumericCompare(a.MaxSampleRate, b.MaxSampleRate);
|
||||
}
|
||||
case HardwareListTags.CalDate:
|
||||
{
|
||||
return NumericCompare(a.CalDate, b.CalDate);
|
||||
}
|
||||
case HardwareListTags.CalDueDate:
|
||||
{
|
||||
return NumericCompare(a.CalDueDate, b.CalDueDate);
|
||||
}
|
||||
case HardwareListTags.IPAddress:
|
||||
{
|
||||
return string.Compare(a.IPAddress, b.IPAddress, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
case HardwareListTags.FirstUseDate:
|
||||
{
|
||||
if (!a.IsFirstUseValid)
|
||||
{
|
||||
if (!b.IsFirstUseValid)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!b.IsFirstUseValid)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (null == a.FirstUseDate)
|
||||
{
|
||||
if (null == b.FirstUseDate)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (null == b.FirstUseDate)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
return ((DateTime)a.FirstUseDate).CompareTo((DateTime)b.FirstUseDate);
|
||||
}
|
||||
}
|
||||
}
|
||||
return a.GetHashCode().CompareTo(b.GetHashCode());
|
||||
}
|
||||
private static int NumericCompare(object a, object b)
|
||||
{
|
||||
if (a == null && b == null) return 0;
|
||||
if (a == null) return 1;
|
||||
if (b == null) return -1;
|
||||
if (Equals(a, b)) return 0;
|
||||
switch (a)
|
||||
{
|
||||
case double d:
|
||||
if (d > (double)b) return -1;
|
||||
break;
|
||||
case DateTime dt:
|
||||
if (dt > (DateTime)b) return -1;
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
using System;
|
||||
using System.ComponentModel.Composition;
|
||||
using System.Windows.Media.Imaging;
|
||||
using DTS.Common;
|
||||
using DTS.Common.Interface;
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics.HardwareList;
|
||||
|
||||
using HardwareList;
|
||||
using Prism.Ioc;
|
||||
using Prism.Modularity;
|
||||
using Unity;
|
||||
|
||||
// ReSharper disable CheckNamespace
|
||||
// ReSharper disable RedundantAttributeUsageProperty
|
||||
// ReSharper disable UnusedParameter.Local
|
||||
|
||||
[assembly: HardwareListModuleName]
|
||||
[assembly: HardwareListModuleImageAttribute]
|
||||
namespace HardwareList
|
||||
{
|
||||
[Export(typeof(IModule))]
|
||||
[Module(ModuleName = "HardwareListModule")]
|
||||
public class HardwareListModule : IModule
|
||||
{
|
||||
/// <summary>
|
||||
/// Injected unity container
|
||||
/// </summary>
|
||||
private readonly IUnityContainer _unityContainer;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="HardwareListModule"/> class.
|
||||
/// </summary>
|
||||
/// <param name="unityContainer">Obtained reference of the unity container by using dependency injection.</param>
|
||||
public HardwareListModule(IUnityContainer unityContainer)
|
||||
{
|
||||
|
||||
_unityContainer = unityContainer;
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
// Register View & View-Model with Unity dependency injection container as a singleton.
|
||||
_unityContainer.RegisterType<IHardwareListView, HardwareListView>();
|
||||
_unityContainer.RegisterType<ISLICE6TreeView, SLICE6TreeView>();
|
||||
_unityContainer.RegisterType<IHardwareListOverdueView, HardwareListOverdueView>();
|
||||
_unityContainer.RegisterType<IHardwareListSelectView, HardwareListSelectView>();
|
||||
_unityContainer.RegisterType<IHardwareListViewModel, HardwareListViewModel>();
|
||||
_unityContainer.RegisterType<IHardwareListReplaceView, HardwareListReplaceView>();
|
||||
}
|
||||
|
||||
public void OnInitialized(IContainerProvider containerProvider)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void RegisterTypes(IContainerRegistry containerRegistry)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attribute class contains assembly name
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]
|
||||
public class HardwareListModuleNameAttribute : TextAttribute
|
||||
{
|
||||
public HardwareListModuleNameAttribute() : this(null) { }
|
||||
|
||||
public HardwareListModuleNameAttribute(string s)
|
||||
{
|
||||
AssemblyName = AssemblyNames.HardwareList.ToString();
|
||||
}
|
||||
|
||||
public override string AssemblyName { get; }
|
||||
|
||||
public override Type GetAttributeType()
|
||||
{
|
||||
return typeof(TextAttribute);
|
||||
}
|
||||
|
||||
public override string GetAssemblyName()
|
||||
{
|
||||
return AssemblyName;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attribute class contains assembly image and name - used on the Main screen to SummaryModule available components
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]
|
||||
public class HardwareListModuleImageAttribute : ImageAttribute
|
||||
{
|
||||
private BitmapImage _img;
|
||||
|
||||
public HardwareListModuleImageAttribute() : this(null) { }
|
||||
public override BitmapImage AssemblyImage
|
||||
{
|
||||
get { _img = AssemblyInfo.GetImage(AssemblyNames.HardwareList.ToString()); return _img; }
|
||||
}
|
||||
public HardwareListModuleImageAttribute(string s)
|
||||
{
|
||||
_img = AssemblyInfo.GetImage(AssemblyNames.HardwareList.ToString());
|
||||
}
|
||||
|
||||
public override Type GetAttributeType()
|
||||
{
|
||||
return typeof(ImageAttribute);
|
||||
}
|
||||
public override BitmapImage GetAssemblyImage()
|
||||
{
|
||||
return AssemblyImage;
|
||||
}
|
||||
private string _name;
|
||||
public override string AssemblyName
|
||||
{
|
||||
get { _name = AssemblyNames.HardwareList.ToString(); return _name; }
|
||||
}
|
||||
|
||||
public override string GetAssemblyName()
|
||||
{
|
||||
return AssemblyName;
|
||||
}
|
||||
private string _group;
|
||||
public override string AssemblyGroup
|
||||
{
|
||||
get { _group = eAssemblyGroups.Prepare.ToString(); return _group; }
|
||||
}
|
||||
|
||||
public override string GetAssemblyGroup()
|
||||
{
|
||||
return AssemblyGroup;
|
||||
}
|
||||
|
||||
private eAssemblyRegion _region;
|
||||
public override eAssemblyRegion AssemblyRegion
|
||||
{
|
||||
get { _region = eAssemblyRegion.HardwareListRegion; return _region; }
|
||||
}
|
||||
public override eAssemblyRegion GetAssemblyRegion()
|
||||
{
|
||||
return AssemblyRegion;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,213 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{255108AA-24A9-4D0A-9AC0-A0323B8A519E}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>HardwareList</RootNamespace>
|
||||
<AssemblyName>HardwareList</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>CODE_ANALYSIS;DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<RunCodeAnalysis>false</RunCodeAnalysis>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>CODE_ANALYSIS;DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="C1.WPF.4, Version=4.0.20212.747, Culture=neutral, PublicKeyToken=2aa4ec5576d6c3ce, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\ComponentOne\WPF Edition\bin\v4\C1.WPF.4.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualBasic" />
|
||||
<Reference Include="Microsoft.Xaml.Behaviors">
|
||||
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Xaml.Behaviors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="Prism">
|
||||
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Prism.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Prism.Unity.Wpf">
|
||||
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Prism.Unity.Wpf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Prism.Wpf">
|
||||
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Prism.Wpf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.Composition" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Security" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Unity.Abstractions">
|
||||
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Unity.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Unity.Container">
|
||||
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Unity.Container.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="Xceed.Wpf.Toolkit">
|
||||
<HintPath>..\..\..\..\Common\DTS.Common\lib\Xceed.Wpf.Toolkit\Xceed.Wpf.Toolkit.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Converters\StandInFieldConverter.cs" />
|
||||
<Compile Include="Converters\FirstUseDateConverter.cs" />
|
||||
<Compile Include="Model\HardwareChannelAssignment.cs" />
|
||||
<Compile Include="Model\SLICE6TreeNode.cs" />
|
||||
<Compile Include="Model\Hardware.cs" />
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HardwareListModule.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Resources\StringResources.Designer.cs">
|
||||
<DependentUpon>StringResources.resx</DependentUpon>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<Compile Include="Resources\TranslateExtension.cs" />
|
||||
<Compile Include="ViewModel\HardwareListViewModel.cs" />
|
||||
<Compile Include="View\HardwareListOverdueView.xaml.cs">
|
||||
<DependentUpon>HardwareListOverdueView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\HardwareListSelectView.xaml.cs">
|
||||
<DependentUpon>HardwareListSelectView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\HardwareListReplaceView.xaml.cs">
|
||||
<DependentUpon>HardwareListReplaceView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\SLICE6TreeView.xaml.cs">
|
||||
<DependentUpon>SLICE6TreeView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\HardwareListView.xaml.cs">
|
||||
<DependentUpon>HardwareListView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Resources\StringResources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>StringResources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\..\Common\DTS.Common.Core\DTS.Common.Core.csproj">
|
||||
<Project>{fab1f470-1574-4301-b56e-d3364aa93679}</Project>
|
||||
<Name>DTS.Common.Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\Common\DTS.Common.DAS.Concepts\DTS.Common.DAS.Concepts.csproj">
|
||||
<Project>{03D8C736-36EB-4CD1-A6D9-130452B23239}</Project>
|
||||
<Name>DTS.Common.DAS.Concepts</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\Common\DTS.Common.ISO\DTS.Common.ISO.csproj">
|
||||
<Project>{4dccddd1-032f-430c-9a6f-231daca4fbd0}</Project>
|
||||
<Name>DTS.Common.ISO</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\Common\DTS.Common.Storage\DTS.Common.Storage.csproj">
|
||||
<Project>{e0d1a7d0-dce8-403d-ba85-5a5d66ba1313}</Project>
|
||||
<Name>DTS.Common.Storage</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\Common\DTS.Common.Utilities\DTS.Common.Utilities.csproj">
|
||||
<Project>{03eace47-ea59-44ac-b49d-956e4dc4d618}</Project>
|
||||
<Name>DTS.Common.Utilities</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\Common\DTS.Common\DTS.Common.csproj">
|
||||
<Project>{114edc77-f3b5-4576-a91b-40818d503b55}</Project>
|
||||
<Name>DTS.Common</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\IService\IService.csproj">
|
||||
<Project>{c9c45b72-05a3-4962-bc13-a78b1f4b1925}</Project>
|
||||
<Name>IService</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\SensorDB\SensorDB.csproj">
|
||||
<Project>{444ef10c-046e-47ad-a9a5-17318d488723}</Project>
|
||||
<Name>SensorDB</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\Users\Users.csproj">
|
||||
<Project>{BE8D217D-6DA9-4BCA-B62A-A82325B33979}</Project>
|
||||
<Name>Users</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Include="View\HardwareListOverdueView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\HardwareListSelectView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\HardwareListReplaceView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\SLICE6TreeView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\HardwareListView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,282 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using DTS.Common.Enums.Hardware;
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics.HardwareList;
|
||||
|
||||
namespace HardareList.Model
|
||||
{
|
||||
public class SLICE6TreeNode : DTS.Common.Base.BasePropertyChanged, ISLICE6TreeNode
|
||||
{
|
||||
/// <summary>
|
||||
/// Id in DAS table in db
|
||||
/// </summary>
|
||||
public int DASId { get; set; }
|
||||
/// <summary>
|
||||
/// serial number for given das
|
||||
/// </summary>
|
||||
public string SerialNumber { get; set; }
|
||||
/// <summary>
|
||||
/// port on the S6DB
|
||||
/// </summary>
|
||||
public int Port { get; set; }
|
||||
/// <summary>
|
||||
/// string version of the port, this is just here for easier converting of invalid values
|
||||
/// </summary>
|
||||
public string PortString => Port < 0 ? "---" : Port.ToString();
|
||||
/// <summary>
|
||||
/// the order of the das on the S6DB
|
||||
/// </summary>
|
||||
public int Number { get; set; }
|
||||
/// <summary>
|
||||
/// the order on the chain on a given port
|
||||
/// </summary>
|
||||
public int PositionOnChain { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// string version of PositionOnChain, just for easier converting of invalid values
|
||||
/// </summary>
|
||||
public string PositionOnChainString => PositionOnChain < 0 ? "---" : PositionOnChain.ToString();
|
||||
|
||||
public SLICE6TreeNode(int dasId, string serialNumber, int port, int number, int positionOnChain)
|
||||
{
|
||||
DASId = dasId;
|
||||
SerialNumber = serialNumber;
|
||||
Port = port;
|
||||
Number = number;
|
||||
PositionOnChain = positionOnChain;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// returns all S6 that are not associated with a given S6DB
|
||||
/// </summary>
|
||||
/// <param name="serialNumberParent"></param>
|
||||
/// <returns></returns>
|
||||
public static ISLICE6TreeNode[] GetAvailableTreeNodes(string serialNumberParent)
|
||||
{
|
||||
var nodes = new List<ISLICE6TreeNode>();
|
||||
if (string.IsNullOrWhiteSpace(serialNumberParent))
|
||||
{
|
||||
return nodes.ToArray();
|
||||
}
|
||||
using (var cmd = DTS.Common.Storage.DbOperations.GetSQLCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
cmd.CommandType = System.Data.CommandType.Text;
|
||||
cmd.CommandText = $"SELECT [DASId], [SerialNumber], [PositionOnDistributor], [PositionOnChain], [Port] FROM [DAS] WHERE [ParentDAS]<>@ParentDAS AND [Type]={(int)HardwareTypes.SLICE6_Base} AND [Position] <> 'Prototype'";
|
||||
cmd.Parameters.Add(
|
||||
new System.Data.SqlClient.SqlParameter("@ParentDAS", System.Data.SqlDbType.NVarChar, 50)
|
||||
{ Value = serialNumberParent });
|
||||
|
||||
var reader = cmd.ExecuteReader();
|
||||
while (reader.Read())
|
||||
{
|
||||
var dasId = Convert.ToInt32(reader["DASId"]);
|
||||
var serialNumber = Convert.ToString(reader["SerialNumber"]);
|
||||
var positionOnDistributor = Convert.ToInt32(reader["PositionOnDistributor"]);
|
||||
var positionOnChain = Convert.ToInt32(reader["PositionOnChain"]);
|
||||
var port = Convert.ToInt32(reader["Port"]);
|
||||
nodes.Add(new SLICE6TreeNode(dasId, serialNumber, port, positionOnDistributor, positionOnChain));
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
cmd.Connection.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
nodes.Sort((a, b) => a.SerialNumber.CompareTo(b.SerialNumber));
|
||||
return nodes.ToArray();
|
||||
}
|
||||
/// <summary>
|
||||
/// returns all SL6 associated with a given S6DB
|
||||
/// </summary>
|
||||
/// <param name="serialNumberParent"></param>
|
||||
/// <returns></returns>
|
||||
public static ISLICE6TreeNode[] GetTreeNodes(string serialNumberParent)
|
||||
{
|
||||
var nodes = new List<ISLICE6TreeNode>();
|
||||
if (!string.IsNullOrWhiteSpace(serialNumberParent))
|
||||
{
|
||||
using (var cmd = DTS.Common.Storage.DbOperations.GetSQLCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
cmd.CommandType = System.Data.CommandType.Text;
|
||||
cmd.CommandText = "SELECT [DASId], [SerialNumber], [PositionOnDistributor], [PositionOnChain], [Port] FROM [DAS] WHERE [ParentDAS]=@ParentDAS";
|
||||
cmd.Parameters.Add(
|
||||
new System.Data.SqlClient.SqlParameter("@ParentDAS", System.Data.SqlDbType.NVarChar, 50)
|
||||
{ Value = serialNumberParent });
|
||||
|
||||
var reader = cmd.ExecuteReader();
|
||||
while (reader.Read())
|
||||
{
|
||||
var dasId = Convert.ToInt32(reader["DASId"]);
|
||||
var serialNumber = Convert.ToString(reader["SerialNumber"]);
|
||||
var positionOnDistributor = Convert.ToInt32(reader["PositionOnDistributor"]);
|
||||
var positionOnChain = Convert.ToInt32(reader["PositionOnChain"]);
|
||||
var port = Convert.ToInt32(reader["Port"]);
|
||||
nodes.Add(new SLICE6TreeNode(dasId, serialNumber, port, positionOnDistributor,
|
||||
positionOnChain));
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
cmd.Connection.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
nodes.Sort((a, b) => a.Number.CompareTo(b.Number));
|
||||
}
|
||||
|
||||
return nodes.ToArray();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// swaps the children das from one distributor to another in the db
|
||||
/// </summary>
|
||||
public static void SwapNodes(string serialNumberA, string serialNumberB)
|
||||
{
|
||||
var listA = new List<int>();
|
||||
var listB = new List<int>();
|
||||
using (var sql = DTS.Common.Storage.DbOperations.GetSQLCommand(true))
|
||||
{
|
||||
try
|
||||
{
|
||||
sql.CommandType = System.Data.CommandType.Text;
|
||||
sql.CommandText = $"SELECT [DASId], [ParentDAS] FROM [DAS] WHERE [ParentDAS] in (@serialNumberA, @serialNumberB)";
|
||||
sql.Parameters.Add(new System.Data.SqlClient.SqlParameter("@serialNumberA", System.Data.SqlDbType.NVarChar)
|
||||
{ Value = serialNumberA });
|
||||
sql.Parameters.Add(new System.Data.SqlClient.SqlParameter("@serialNumberB", System.Data.SqlDbType.NVarChar)
|
||||
{ Value = serialNumberB });
|
||||
var reader = sql.ExecuteReader();
|
||||
while (reader.Read())
|
||||
{
|
||||
var dasId = Convert.ToInt32(reader["DASId"]);
|
||||
var parentDAS = Convert.ToString(reader["ParentDAS"]).ToUpper();
|
||||
if (parentDAS == serialNumberA)
|
||||
{
|
||||
listA.Add(dasId);
|
||||
}
|
||||
else
|
||||
{
|
||||
listB.Add(dasId);
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
sql.Connection.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
if (listA.Any())
|
||||
{
|
||||
Associate(serialNumberB, listA.ToArray());
|
||||
}
|
||||
|
||||
if (listB.Any())
|
||||
{
|
||||
Associate(serialNumberB, listB.ToArray());
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// associates given das ids with a specific das
|
||||
/// </summary>
|
||||
private static void Associate(string parentDAS, int[] dasId)
|
||||
{
|
||||
using (var sql = DTS.Common.Storage.DbOperations.GetSQLCommand(true))
|
||||
{
|
||||
try
|
||||
{
|
||||
sql.CommandType = System.Data.CommandType.Text;
|
||||
sql.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ParentDAS", System.Data.SqlDbType.NVarChar)
|
||||
{ Value = parentDAS });
|
||||
|
||||
var sb = new StringBuilder();
|
||||
sb.Append("UPDATE [DAS] SET [ParentDAS]=@ParentDAS WHERE DASId in (");
|
||||
|
||||
for (var i = 0; i < dasId.Length; i++)
|
||||
{
|
||||
if (i > 0)
|
||||
{
|
||||
sb.Append(", ");
|
||||
}
|
||||
sb.Append($"@{i + 1}");
|
||||
sql.Parameters.Add(
|
||||
new System.Data.SqlClient.SqlParameter($"@{i + 1}", System.Data.SqlDbType.NVarChar, 50)
|
||||
{ Value = dasId[i] });
|
||||
}
|
||||
sb.Append(")");
|
||||
sql.CommandText = sb.ToString();
|
||||
|
||||
sql.ExecuteNonQuery();
|
||||
}
|
||||
finally
|
||||
{
|
||||
sql.Connection.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// commits any changes for associations for a S6DB to the Db
|
||||
/// </summary>
|
||||
/// <param name="serialNumber">serial number of S6DB</param>
|
||||
/// <param name="attachedSLICE6">all SL6 that should be associated with S6DB</param>
|
||||
public static void SaveAssociations(string serialNumber, ISLICE6TreeNode[] attachedSLICE6)
|
||||
{
|
||||
//step1, remove all associations, step 2, add any associations needed
|
||||
using (var sql = DTS.Common.Storage.DbOperations.GetSQLCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
sql.CommandType = System.Data.CommandType.Text;
|
||||
sql.CommandText =
|
||||
"UPDATE [DAS] SET [IsModule]=0, [PositionOnDistributor]=-1, [PositionOnChain]=-1, [Port]=-1, [ParentDAS]='' WHERE [ParentDAS]=@serialNumber";
|
||||
sql.Parameters.Add(
|
||||
new System.Data.SqlClient.SqlParameter("@serialNumber", System.Data.SqlDbType.NVarChar, 50)
|
||||
{ Value = serialNumber });
|
||||
sql.ExecuteNonQuery();
|
||||
}
|
||||
finally
|
||||
{
|
||||
sql.Connection.Dispose();
|
||||
}
|
||||
}
|
||||
//step 2 create new associations
|
||||
foreach (var slice6 in attachedSLICE6)
|
||||
{
|
||||
using (var sql = DTS.Common.Storage.DbOperations.GetSQLCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
sql.CommandType = System.Data.CommandType.Text;
|
||||
sql.CommandText =
|
||||
"UPDATE [DAS] SET [IsModule]=1, [PositionOnDistributor]=@positionOnDistributor, [PositionOnChain]=@positionOnChain, [Port]=@Port, [ParentDAS]=@serialNumber WHERE [DASId]=@DASId";
|
||||
sql.Parameters.Add(
|
||||
new System.Data.SqlClient.SqlParameter("@serialNumber", System.Data.SqlDbType.NVarChar, 50)
|
||||
{ Value = serialNumber });
|
||||
sql.Parameters.Add(
|
||||
new System.Data.SqlClient.SqlParameter("@positionOnDistributor", System.Data.SqlDbType.Int)
|
||||
{ Value = slice6.Number });
|
||||
sql.Parameters.Add(
|
||||
new System.Data.SqlClient.SqlParameter("@positionOnChain", System.Data.SqlDbType.Int)
|
||||
{ Value = slice6.PositionOnChain });
|
||||
sql.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Port", System.Data.SqlDbType.Int)
|
||||
{ Value = slice6.Port });
|
||||
sql.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DASId", System.Data.SqlDbType.Int)
|
||||
{ Value = slice6.DASId });
|
||||
sql.ExecuteNonQuery();
|
||||
}
|
||||
finally
|
||||
{
|
||||
sql.Connection.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Media;
|
||||
using DTS.Common.Controls;
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics.HardwareList;
|
||||
using DTS.Common.Utils;
|
||||
|
||||
// ReSharper disable CheckNamespace
|
||||
|
||||
namespace HardwareList
|
||||
{
|
||||
/// <inheritdoc cref="IHardwareListSelectView" />
|
||||
/// <summary>
|
||||
/// Interaction logic for HardwareListSelectView.xaml
|
||||
/// </summary>
|
||||
public partial class HardwareListSelectView : IHardwareListSelectView
|
||||
{
|
||||
public HardwareListSelectView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void InitializeColumns(bool bSteamingTest)
|
||||
{
|
||||
var view = (GridView)LvHardware.View;
|
||||
var calDateIndex = view.Columns.IndexOf(CalDateColumn);
|
||||
if (calDateIndex < 0) { calDateIndex = 0; }
|
||||
if (bSteamingTest)
|
||||
{
|
||||
AddColumn(view, DSPStreamingColumn, calDateIndex - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
RemoveColumn(view, DSPStreamingColumn);
|
||||
}
|
||||
}
|
||||
private void AddColumn(GridView view, GridViewColumn column, int index)
|
||||
{
|
||||
if (!view.Columns.Contains(column)) { view.Columns.Insert(index, column); }
|
||||
}
|
||||
private void RemoveColumn(GridView view, GridViewColumn column)
|
||||
{
|
||||
if (view.Columns.Contains(column)) { view.Columns.Remove(column); }
|
||||
}
|
||||
private void ListViewHeader_Click(object sender, System.Windows.RoutedEventArgs e)
|
||||
{
|
||||
var colHeader = (GridViewColumnHeader)e.OriginalSource;
|
||||
var viewModel = (IHardwareListViewModel)colHeader.DataContext;
|
||||
viewModel.Sort(colHeader.Tag, true);
|
||||
}
|
||||
private void GridViewColumnHeaderSearchable_OnSearch(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var searchTerm = (string)e.OriginalSource;
|
||||
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag;
|
||||
var viewModel = (IHardwareListViewModel)DataContext;
|
||||
viewModel.Filter(columnTag, searchTerm);
|
||||
}
|
||||
private void GridViewColumnHeader_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var vm = (IHardwareListViewModel)DataContext;
|
||||
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag ??
|
||||
Utils.FindChild<GridViewColumnHeaderSearchable>((DependencyObject)e.OriginalSource, null)?.Tag ??
|
||||
(e.OriginalSource as GridViewColumnHeader)?.Tag;
|
||||
vm?.Sort(columnTag, true);
|
||||
}
|
||||
private void GridViewColumnHeaderCheckBox_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var viewModel = (IHardwareListViewModel)DataContext;
|
||||
var columnTag = (sender as GridViewColumnHeaderSelectable)?.Tag ?? Utils.FindChild<GridViewColumnHeaderSelectable>((DependencyObject)e.OriginalSource, null)?.Tag;
|
||||
viewModel?.Sort(columnTag, true);
|
||||
}
|
||||
private void Included_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!(DataContext is HardwareListViewModel vm)) { return; }
|
||||
if (!(sender is Control control)) { return; }
|
||||
if (!(control.DataContext is IHardware hardware)) { return; }
|
||||
if (vm.ShowCompact)
|
||||
{
|
||||
vm.IncludeChildren(hardware);
|
||||
}
|
||||
|
||||
}
|
||||
private void ChainSampleRateMixed_Clicked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!(DataContext is HardwareListViewModel vm)) { return; }
|
||||
if (!(sender is Control control)) { return; }
|
||||
if (!(control.DataContext is IHardware hardware)) { return; }
|
||||
vm.RemoveMultipleButton(hardware);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<section name="HardwareList.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<userSettings>
|
||||
<HardwareList.Properties.Settings>
|
||||
</HardwareList.Properties.Settings>
|
||||
</userSettings>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
|
||||
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Windows.Markup;
|
||||
using HardwareList.Resources;
|
||||
|
||||
namespace HardwareList
|
||||
{
|
||||
[MarkupExtensionReturnType(typeof(string))]
|
||||
public class TranslateExtension : MarkupExtension
|
||||
{
|
||||
private readonly string _key;
|
||||
public TranslateExtension(string key) { _key = key; }
|
||||
|
||||
private const string NotFound = "#stringnotfound#";
|
||||
|
||||
public override object ProvideValue(IServiceProvider serviceProvider)
|
||||
{
|
||||
if (string.IsNullOrEmpty(_key)) { return NotFound; }
|
||||
return StringResources.ResourceManager.GetString(_key) ?? NotFound + " " + _key;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media;
|
||||
using DTS.Common.Controls;
|
||||
using DTS.Common.Interface.DASFactory.Diagnostics.HardwareList;
|
||||
using DTS.Common.Utils;
|
||||
|
||||
// ReSharper disable CheckNamespace
|
||||
|
||||
namespace HardwareList
|
||||
{
|
||||
/// <inheritdoc cref="IHardwareListReplaceView" />
|
||||
/// <summary>
|
||||
/// Interaction logic for HardwareListReplaceView.xaml
|
||||
/// </summary>
|
||||
public partial class HardwareListReplaceView : IHardwareListReplaceView
|
||||
{
|
||||
public HardwareListReplaceView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Replace_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!(sender is Control control)) { return; }
|
||||
if (!(control.DataContext is IHardwareListViewModel vm)) { return; }
|
||||
vm.Replace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,846 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace HardwareList.Resources {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class StringResources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal StringResources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HardwareList.Resources.StringResources", typeof(StringResources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Add.
|
||||
/// </summary>
|
||||
internal static string Add {
|
||||
get {
|
||||
return ResourceManager.GetString("Add", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Analog.
|
||||
/// </summary>
|
||||
internal static string Analog {
|
||||
get {
|
||||
return ResourceManager.GetString("Analog", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Cal Date.
|
||||
/// </summary>
|
||||
internal static string CalDate {
|
||||
get {
|
||||
return ResourceManager.GetString("CalDate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Cal Due Date.
|
||||
/// </summary>
|
||||
internal static string CalDueDate {
|
||||
get {
|
||||
return ResourceManager.GetString("CalDueDate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Multiple.
|
||||
/// </summary>
|
||||
internal static string ChainMultipleTestSampleRates {
|
||||
get {
|
||||
return ResourceManager.GetString("ChainMultipleTestSampleRates", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Channels.
|
||||
/// </summary>
|
||||
internal static string ChannelCount {
|
||||
get {
|
||||
return ResourceManager.GetString("ChannelCount", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to CH #.
|
||||
/// </summary>
|
||||
internal static string ChannelNumber {
|
||||
get {
|
||||
return ResourceManager.GetString("ChannelNumber", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Compact.
|
||||
/// </summary>
|
||||
internal static string Compact {
|
||||
get {
|
||||
return ResourceManager.GetString("Compact", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Connection.
|
||||
/// </summary>
|
||||
internal static string Connection {
|
||||
get {
|
||||
return ResourceManager.GetString("Connection", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to channel(s).
|
||||
/// </summary>
|
||||
internal static string DAS_Channels {
|
||||
get {
|
||||
return ResourceManager.GetString("DAS_Channels", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Digital input.
|
||||
/// </summary>
|
||||
internal static string DigitalIn {
|
||||
get {
|
||||
return ResourceManager.GetString("DigitalIn", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Digital out.
|
||||
/// </summary>
|
||||
internal static string DigitalOut {
|
||||
get {
|
||||
return ResourceManager.GetString("DigitalOut", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to DIM.
|
||||
/// </summary>
|
||||
internal static string DIM {
|
||||
get {
|
||||
return ResourceManager.GetString("DIM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to DIR.
|
||||
/// </summary>
|
||||
internal static string DIR {
|
||||
get {
|
||||
return ResourceManager.GetString("DIR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to DKR.
|
||||
/// </summary>
|
||||
internal static string DKR {
|
||||
get {
|
||||
return ResourceManager.GetString("DKR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to DSP filter -3dB (Hz).
|
||||
/// </summary>
|
||||
internal static string DSPStreamingFilterColumnHeader {
|
||||
get {
|
||||
return ResourceManager.GetString("DSPStreamingFilterColumnHeader", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Embedded Sensors.
|
||||
/// </summary>
|
||||
internal static string EmbeddedSensors {
|
||||
get {
|
||||
return ResourceManager.GetString("EmbeddedSensors", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Firmware.
|
||||
/// </summary>
|
||||
internal static string Firmware {
|
||||
get {
|
||||
return ResourceManager.GetString("Firmware", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to First Use Date.
|
||||
/// </summary>
|
||||
internal static string FirstUseDate {
|
||||
get {
|
||||
return ResourceManager.GetString("FirstUseDate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to G5.
|
||||
/// </summary>
|
||||
internal static string G5INDUMMY {
|
||||
get {
|
||||
return ResourceManager.GetString("G5INDUMMY", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to G5 (VDS).
|
||||
/// </summary>
|
||||
internal static string G5VDS {
|
||||
get {
|
||||
return ResourceManager.GetString("G5VDS", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Hardware to replace.
|
||||
/// </summary>
|
||||
internal static string HardwareToReplace {
|
||||
get {
|
||||
return ResourceManager.GetString("HardwareToReplace", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Hardware to replace with.
|
||||
/// </summary>
|
||||
internal static string HardwareToReplaceWith {
|
||||
get {
|
||||
return ResourceManager.GetString("HardwareToReplaceWith", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Type.
|
||||
/// </summary>
|
||||
internal static string HardwareType {
|
||||
get {
|
||||
return ResourceManager.GetString("HardwareType", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to IP Address.
|
||||
/// </summary>
|
||||
internal static string IPAddress {
|
||||
get {
|
||||
return ResourceManager.GetString("IPAddress", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Clock Master?.
|
||||
/// </summary>
|
||||
internal static string IsHWClockMaster {
|
||||
get {
|
||||
return ResourceManager.GetString("IsHWClockMaster", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Max Sample Rate.
|
||||
/// </summary>
|
||||
internal static string MaxSampleRate {
|
||||
get {
|
||||
return ResourceManager.GetString("MaxSampleRate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Name.
|
||||
/// </summary>
|
||||
internal static string Name {
|
||||
get {
|
||||
return ResourceManager.GetString("Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Number.
|
||||
/// </summary>
|
||||
internal static string Number {
|
||||
get {
|
||||
return ResourceManager.GetString("Number", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Port.
|
||||
/// </summary>
|
||||
internal static string Port {
|
||||
get {
|
||||
return ResourceManager.GetString("Port", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Position on chain.
|
||||
/// </summary>
|
||||
internal static string PositionOnChain {
|
||||
get {
|
||||
return ResourceManager.GetString("PositionOnChain", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to PowerPRO Battery.
|
||||
/// </summary>
|
||||
internal static string PowerPro {
|
||||
get {
|
||||
return ResourceManager.GetString("PowerPro", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to PTP Domain.
|
||||
/// </summary>
|
||||
internal static string PTPDomain {
|
||||
get {
|
||||
return ResourceManager.GetString("PTPDomain", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Remove.
|
||||
/// </summary>
|
||||
internal static string Remove {
|
||||
get {
|
||||
return ResourceManager.GetString("Remove", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Replace.
|
||||
/// </summary>
|
||||
internal static string Replace {
|
||||
get {
|
||||
return ResourceManager.GetString("Replace", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Ribeye.
|
||||
/// </summary>
|
||||
internal static string Ribeye {
|
||||
get {
|
||||
return ResourceManager.GetString("Ribeye", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Ribeye (LED).
|
||||
/// </summary>
|
||||
internal static string RibeyeLED {
|
||||
get {
|
||||
return ResourceManager.GetString("RibeyeLED", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 AIR Ethernet Recorder.
|
||||
/// </summary>
|
||||
internal static string S6A_EthernetRecorder {
|
||||
get {
|
||||
return ResourceManager.GetString("S6A_EthernetRecorder", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Sensor.
|
||||
/// </summary>
|
||||
internal static string Sensor {
|
||||
get {
|
||||
return ResourceManager.GetString("Sensor", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Serial Number.
|
||||
/// </summary>
|
||||
internal static string SerialNumber {
|
||||
get {
|
||||
return ResourceManager.GetString("SerialNumber", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to DataPRO encountered problem setting some of the AA Filter rates and used the default rates. Please review the AA Filter rates in the test setup and edit them as needed..
|
||||
/// </summary>
|
||||
internal static string SetTestAAFRatesWarning {
|
||||
get {
|
||||
return ResourceManager.GetString("SetTestAAFRatesWarning", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Expanded.
|
||||
/// </summary>
|
||||
internal static string ShowModules {
|
||||
get {
|
||||
return ResourceManager.GetString("ShowModules", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SIM.
|
||||
/// </summary>
|
||||
internal static string SIM {
|
||||
get {
|
||||
return ResourceManager.GetString("SIM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE.
|
||||
/// </summary>
|
||||
internal static string SLICE_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to (SLICE bridge).
|
||||
/// </summary>
|
||||
internal static string SLICE_Bridge {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_Bridge", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE Distributor.
|
||||
/// </summary>
|
||||
internal static string SLICE_Distributor {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_Distributor", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE Ethernet Controller.
|
||||
/// </summary>
|
||||
internal static string SLICE_EthernetController {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_EthernetController", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE (IEPE).
|
||||
/// </summary>
|
||||
internal static string SLICE_IEPE {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_IEPE", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 2 Lab Ethernet Controller.
|
||||
/// </summary>
|
||||
internal static string SLICE_LabEthernet {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_LabEthernet", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE (Micro).
|
||||
/// </summary>
|
||||
internal static string SLICE_Micro_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_Micro_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE Mini Distributor.
|
||||
/// </summary>
|
||||
internal static string SLICE_Mini_Distributor {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_Mini_Distributor", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE (Nano).
|
||||
/// </summary>
|
||||
internal static string SLICE_NANO_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE_NANO_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE+.
|
||||
/// </summary>
|
||||
internal static string SLICE1_5_Micro_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE1_5_Micro_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE+.
|
||||
/// </summary>
|
||||
internal static string SLICE1_5_Nano_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE1_5_Nano_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE G5.
|
||||
/// </summary>
|
||||
internal static string SLICE1_G5Stack {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE1_G5Stack", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_Bridge_Hi {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_Bridge_Hi", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_Bridge_Lo {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_Bridge_Lo", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO DIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_DIM {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_DIM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_IEPE_Hi {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_IEPE_Hi", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_IEPE_Lo {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_IEPE_Lo", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_SIM {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_SIM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO Lab DIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_SLD {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_SLD", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO Lab SIM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_SLS {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_SLS", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO Lab TOM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_SLT {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_SLT", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE PRO TOM.
|
||||
/// </summary>
|
||||
internal static string SLICE2_TOM {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE2_TOM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 AIR.
|
||||
/// </summary>
|
||||
internal static string SLICE6_AIR {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6_AIR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6.
|
||||
/// </summary>
|
||||
internal static string SLICE6_Base {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6_Base", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 Distributor.
|
||||
/// </summary>
|
||||
internal static string SLICE6DB {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6DB", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 Distributor (AIR).
|
||||
/// </summary>
|
||||
internal static string SLICE6DB_AIR {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6DB_AIR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 Distributor (In-dummy).
|
||||
/// </summary>
|
||||
internal static string SLICE6DB_InDummy {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6DB_InDummy", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SLICE 6 Distributor 3.
|
||||
/// </summary>
|
||||
internal static string SLICE6DB3 {
|
||||
get {
|
||||
return ResourceManager.GetString("SLICE6DB3", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Squib.
|
||||
/// </summary>
|
||||
internal static string Squib {
|
||||
get {
|
||||
return ResourceManager.GetString("Squib", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Streaming In.
|
||||
/// </summary>
|
||||
internal static string StreamIn {
|
||||
get {
|
||||
return ResourceManager.GetString("StreamIn", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Streaming Out.
|
||||
/// </summary>
|
||||
internal static string StreamOut {
|
||||
get {
|
||||
return ResourceManager.GetString("StreamOut", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Swap.
|
||||
/// </summary>
|
||||
internal static string Swap {
|
||||
get {
|
||||
return ResourceManager.GetString("Swap", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to ---.
|
||||
/// </summary>
|
||||
internal static string Table_NA {
|
||||
get {
|
||||
return ResourceManager.GetString("Table_NA", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to TDAS PRO Lab Rack.
|
||||
/// </summary>
|
||||
internal static string TDAS_LabRack {
|
||||
get {
|
||||
return ResourceManager.GetString("TDAS_LabRack", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to TDAS PRO Rack.
|
||||
/// </summary>
|
||||
internal static string TDAS_Pro_Rack {
|
||||
get {
|
||||
return ResourceManager.GetString("TDAS_Pro_Rack", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to AA Filter (Hz).
|
||||
/// </summary>
|
||||
internal static string TestAAFRateHz {
|
||||
get {
|
||||
return ResourceManager.GetString("TestAAFRateHz", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Test Sample Rate.
|
||||
/// </summary>
|
||||
internal static string TestSampleRate {
|
||||
get {
|
||||
return ResourceManager.GetString("TestSampleRate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to TOM.
|
||||
/// </summary>
|
||||
internal static string TOM {
|
||||
get {
|
||||
return ResourceManager.GetString("TOM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Tree view.
|
||||
/// </summary>
|
||||
internal static string TreeView {
|
||||
get {
|
||||
return ResourceManager.GetString("TreeView", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to TSR AIR.
|
||||
/// </summary>
|
||||
internal static string TSR_AIR {
|
||||
get {
|
||||
return ResourceManager.GetString("TSR_AIR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to TSR AIR.
|
||||
/// </summary>
|
||||
internal static string TSR_AIR_RevB {
|
||||
get {
|
||||
return ResourceManager.GetString("TSR_AIR_RevB", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to UART.
|
||||
/// </summary>
|
||||
internal static string UART {
|
||||
get {
|
||||
return ResourceManager.GetString("UART", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to USB.
|
||||
/// </summary>
|
||||
internal static string USB {
|
||||
get {
|
||||
return ResourceManager.GetString("USB", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
<base:BaseView x:Class="HardwareList.HardwareListOverdueView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:base="clr-namespace:DTS.Common.Base;assembly=DTS.Common"
|
||||
xmlns:controls="clr-namespace:DTS.Common.Controls;assembly=DTS.Common"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:strings="clr-namespace:HardwareList"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:converters2="clr-namespace:HardwareList.Converters"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="768" d:DesignWidth="1366"
|
||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit">
|
||||
<base:BaseView.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Themes/CommonStyles.xaml"/>
|
||||
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Controls/combobox.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<Style TargetType="ListView">
|
||||
<Setter Property="ItemContainerStyle" Value="{StaticResource TTS_ListViewItemStyleNoSelection}"/>
|
||||
</Style>
|
||||
<Style TargetType="TextBox" BasedOn="{StaticResource TTS_TextBoxStyle}"/>
|
||||
<Style TargetType="TextBlock" BasedOn="{StaticResource TTS_TextBlockStyle}"/>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource PageContentCheckBoxStyle}" />
|
||||
<Style TargetType="ComboBox" BasedOn="{StaticResource TTS_ComboBoxStyle}"/>
|
||||
<Style TargetType="Button" BasedOn="{StaticResource TTS_ButtonStyle}"/>
|
||||
<Style TargetType="GridViewColumnHeader" BasedOn="{StaticResource Gray_GridViewColumnHeaderStyle}"/>
|
||||
<BooleanToVisibilityConverter x:Key="BoolToVisibility" />
|
||||
<converters2:FirstUseDateConverter x:Key="FirstUseConverter" />
|
||||
</ResourceDictionary>
|
||||
</base:BaseView.Resources>
|
||||
|
||||
<Grid Background="{DynamicResource Brush_ApplicationContentBackground}">
|
||||
<ListView ItemsSource="{Binding OverdueHardware, UpdateSourceTrigger=PropertyChanged}" AutomationProperties.AutomationId="HardwareListView" SelectedIndex="{Binding SelectedOverdueIndex, Mode=TwoWay}">
|
||||
<ListView.View>
|
||||
<controls:AutoSizedGridView AutomationProperties.AutomationId="HardwareListGridView">
|
||||
<GridViewColumn AutomationProperties.AutomationId="SerialNumber">
|
||||
<GridViewColumn.Header>
|
||||
<GridViewColumnHeader Tag="SerialNumber" Content="{strings:TranslateExtension SerialNumber}" Click="ListViewHeader_Click" />
|
||||
</GridViewColumn.Header>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding SerialNumber,FallbackValue='SerialNumber'}" AutomationProperties.AutomationId="dueSerialNumLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="HardwareType">
|
||||
<GridViewColumn.Header>
|
||||
<GridViewColumnHeader Tag="HardwareType" Content="{strings:TranslateExtension HardwareType}" Click="ListViewHeader_Click" />
|
||||
</GridViewColumn.Header>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding HardwareType,FallbackValue='HardwareType'}" AutomationProperties.AutomationId="dueTypeLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="ChannelCount">
|
||||
<GridViewColumn.Header>
|
||||
<GridViewColumnHeader Tag="ChannelCount" Content="{strings:TranslateExtension ChannelCount}" Click="ListViewHeader_Click" />
|
||||
</GridViewColumn.Header>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding ChannelCount,FallbackValue='ChannelCount'}" AutomationProperties.AutomationId="dueChanCountLbl" />
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="Firmware">
|
||||
<GridViewColumn.Header>
|
||||
<GridViewColumnHeader Tag="Firmware" Content="{strings:TranslateExtension Firmware}" Click="ListViewHeader_Click" />
|
||||
</GridViewColumn.Header>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding Firmware,FallbackValue='Firmware'}" AutomationProperties.AutomationId="dueFirmwareLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="MaxSampleRate">
|
||||
<GridViewColumn.Header>
|
||||
<GridViewColumnHeader Tag="MaxSampleRate" Content="{strings:TranslateExtension MaxSampleRate}" Click="ListViewHeader_Click" />
|
||||
</GridViewColumn.Header>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding MaxSampleRate,FallbackValue='MaxSampleRate',StringFormat='N0', TargetNullValue='---'}" AutomationProperties.AutomationId="dueMaxSampleRateLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="CalDate">
|
||||
<GridViewColumn.Header>
|
||||
<GridViewColumnHeader Tag="CalDate" Content="{strings:TranslateExtension CalDate}" Click="ListViewHeader_Click" />
|
||||
</GridViewColumn.Header>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding CalDate,FallbackValue='CalDate', StringFormat='d'}" AutomationProperties.AutomationId="dueCalDateLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="FirstUseDate">
|
||||
<GridViewColumn.Header>
|
||||
<GridViewColumnHeader Tag="FirstUseDate" Content="{strings:TranslateExtension FirstUseDate}" Click="ListViewHeader_Click" />
|
||||
</GridViewColumn.Header>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext,RelativeSource={RelativeSource Self}, StringFormat='d',Converter={StaticResource FirstUseConverter}}"
|
||||
AutomationProperties.AutomationId="FirstUseDateLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn AutomationProperties.AutomationId="CalDueDate">
|
||||
<GridViewColumn.Header>
|
||||
<GridViewColumnHeader Tag="CalDueDate" Content="{strings:TranslateExtension CalDueDate}" Click="ListViewHeader_Click" />
|
||||
</GridViewColumn.Header>
|
||||
<GridViewColumn.CellTemplate>
|
||||
<ItemContainerTemplate>
|
||||
<TextBlock Text="{Binding CalDueDate,FallbackValue='CalDueDate', StringFormat='d'}" AutomationProperties.AutomationId="dueCalDueDateLbl"/>
|
||||
</ItemContainerTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</controls:AutoSizedGridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
</Grid>
|
||||
</base:BaseView>
|
||||
@@ -0,0 +1,381 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Analog" xml:space="preserve">
|
||||
<value>Analog</value>
|
||||
</data>
|
||||
<data name="CalDate" xml:space="preserve">
|
||||
<value>Cal Date</value>
|
||||
</data>
|
||||
<data name="CalDueDate" xml:space="preserve">
|
||||
<value>Cal Due Date</value>
|
||||
</data>
|
||||
<data name="ChannelCount" xml:space="preserve">
|
||||
<value>Channels</value>
|
||||
</data>
|
||||
<data name="DigitalIn" xml:space="preserve">
|
||||
<value>Digital input</value>
|
||||
</data>
|
||||
<data name="DigitalOut" xml:space="preserve">
|
||||
<value>Digital out</value>
|
||||
</data>
|
||||
<data name="DIM" xml:space="preserve">
|
||||
<value>DIM</value>
|
||||
</data>
|
||||
<data name="Firmware" xml:space="preserve">
|
||||
<value>Firmware</value>
|
||||
</data>
|
||||
<data name="G5INDUMMY" xml:space="preserve">
|
||||
<value>G5</value>
|
||||
</data>
|
||||
<data name="G5VDS" xml:space="preserve">
|
||||
<value>G5 (VDS)</value>
|
||||
</data>
|
||||
<data name="HardwareType" xml:space="preserve">
|
||||
<value>Type</value>
|
||||
</data>
|
||||
<data name="MaxSampleRate" xml:space="preserve">
|
||||
<value>Max Sample Rate</value>
|
||||
</data>
|
||||
<data name="Ribeye" xml:space="preserve">
|
||||
<value>Ribeye</value>
|
||||
</data>
|
||||
<data name="RibeyeLED" xml:space="preserve">
|
||||
<value>Ribeye (LED)</value>
|
||||
</data>
|
||||
<data name="SerialNumber" xml:space="preserve">
|
||||
<value>Serial Number</value>
|
||||
</data>
|
||||
<data name="SIM" xml:space="preserve">
|
||||
<value>SIM</value>
|
||||
</data>
|
||||
<data name="SLICE1_5_Micro_Base" xml:space="preserve">
|
||||
<value>SLICE+</value>
|
||||
</data>
|
||||
<data name="SLICE1_5_Nano_Base" xml:space="preserve">
|
||||
<value>SLICE+</value>
|
||||
</data>
|
||||
<data name="SLICE1_G5Stack" xml:space="preserve">
|
||||
<value>SLICE G5</value>
|
||||
</data>
|
||||
<data name="SLICE2_Base" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_Bridge_Hi" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_Bridge_Lo" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_DIM" xml:space="preserve">
|
||||
<value>SLICE PRO DIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_IEPE_Hi" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_IEPE_Lo" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_SIM" xml:space="preserve">
|
||||
<value>SLICE PRO SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_SLD" xml:space="preserve">
|
||||
<value>SLICE PRO Lab DIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_SLS" xml:space="preserve">
|
||||
<value>SLICE PRO Lab SIM</value>
|
||||
</data>
|
||||
<data name="SLICE2_SLT" xml:space="preserve">
|
||||
<value>SLICE PRO Lab TOM</value>
|
||||
</data>
|
||||
<data name="SLICE2_TOM" xml:space="preserve">
|
||||
<value>SLICE PRO TOM</value>
|
||||
</data>
|
||||
<data name="SLICE6DB" xml:space="preserve">
|
||||
<value>SLICE 6 Distributor</value>
|
||||
</data>
|
||||
<data name="SLICE6_Base" xml:space="preserve">
|
||||
<value>SLICE 6</value>
|
||||
</data>
|
||||
<data name="SLICE_Base" xml:space="preserve">
|
||||
<value>SLICE</value>
|
||||
</data>
|
||||
<data name="SLICE_Bridge" xml:space="preserve">
|
||||
<value>(SLICE bridge)</value>
|
||||
</data>
|
||||
<data name="SLICE_Distributor" xml:space="preserve">
|
||||
<value>SLICE Distributor</value>
|
||||
</data>
|
||||
<data name="SLICE_EthernetController" xml:space="preserve">
|
||||
<value>SLICE Ethernet Controller</value>
|
||||
</data>
|
||||
<data name="SLICE_Mini_Distributor" xml:space="preserve">
|
||||
<value>SLICE Mini Distributor</value>
|
||||
</data>
|
||||
<data name="SLICE_IEPE" xml:space="preserve">
|
||||
<value>SLICE (IEPE)</value>
|
||||
</data>
|
||||
<data name="SLICE_LabEthernet" xml:space="preserve">
|
||||
<value>SLICE 2 Lab Ethernet Controller</value>
|
||||
</data>
|
||||
<data name="SLICE_Micro_Base" xml:space="preserve">
|
||||
<value>SLICE (Micro)</value>
|
||||
</data>
|
||||
<data name="SLICE_NANO_Base" xml:space="preserve">
|
||||
<value>SLICE (Nano)</value>
|
||||
</data>
|
||||
<data name="Squib" xml:space="preserve">
|
||||
<value>Squib</value>
|
||||
</data>
|
||||
<data name="TDAS_LabRack" xml:space="preserve">
|
||||
<value>TDAS PRO Lab Rack</value>
|
||||
</data>
|
||||
<data name="TDAS_Pro_Rack" xml:space="preserve">
|
||||
<value>TDAS PRO Rack</value>
|
||||
</data>
|
||||
<data name="TOM" xml:space="preserve">
|
||||
<value>TOM</value>
|
||||
</data>
|
||||
<data name="SLICE6DB_InDummy" xml:space="preserve">
|
||||
<value>SLICE 6 Distributor (In-dummy)</value>
|
||||
</data>
|
||||
<data name="SLICE6DB_AIR" xml:space="preserve">
|
||||
<value>SLICE 6 Distributor (AIR)</value>
|
||||
</data>
|
||||
<data name="IPAddress" xml:space="preserve">
|
||||
<value>IP Address</value>
|
||||
</data>
|
||||
<data name="TestSampleRate" xml:space="preserve">
|
||||
<value>Test Sample Rate</value>
|
||||
</data>
|
||||
<data name="Compact" xml:space="preserve">
|
||||
<value>Compact</value>
|
||||
</data>
|
||||
<data name="ShowModules" xml:space="preserve">
|
||||
<value>Expanded</value>
|
||||
</data>
|
||||
<data name="Table_NA" xml:space="preserve">
|
||||
<value>---</value>
|
||||
</data>
|
||||
<data name="ChainMultipleTestSampleRates" xml:space="preserve">
|
||||
<value>Multiple</value>
|
||||
</data>
|
||||
<data name="SLICE6_AIR" xml:space="preserve">
|
||||
<value>SLICE 6 AIR</value>
|
||||
</data>
|
||||
<data name="IsHWClockMaster" xml:space="preserve">
|
||||
<value>Clock Master?</value>
|
||||
</data>
|
||||
<data name="Number" xml:space="preserve">
|
||||
<value>Number</value>
|
||||
</data>
|
||||
<data name="Port" xml:space="preserve">
|
||||
<value>Port</value>
|
||||
</data>
|
||||
<data name="PositionOnChain" xml:space="preserve">
|
||||
<value>Position on chain</value>
|
||||
</data>
|
||||
<data name="TreeView" xml:space="preserve">
|
||||
<value>Tree view</value>
|
||||
</data>
|
||||
<data name="Add" xml:space="preserve">
|
||||
<value>Add</value>
|
||||
</data>
|
||||
<data name="Remove" xml:space="preserve">
|
||||
<value>Remove</value>
|
||||
</data>
|
||||
<data name="PowerPro" xml:space="preserve">
|
||||
<value>PowerPRO Battery</value>
|
||||
</data>
|
||||
<data name="Swap" xml:space="preserve">
|
||||
<value>Swap</value>
|
||||
</data>
|
||||
<data name="FirstUseDate" xml:space="preserve">
|
||||
<value>First Use Date</value>
|
||||
</data>
|
||||
<data name="HardwareToReplace" xml:space="preserve">
|
||||
<value>Hardware to replace</value>
|
||||
</data>
|
||||
<data name="HardwareToReplaceWith" xml:space="preserve">
|
||||
<value>Hardware to replace with</value>
|
||||
</data>
|
||||
<data name="Replace" xml:space="preserve">
|
||||
<value>Replace</value>
|
||||
</data>
|
||||
<data name="ChannelNumber" xml:space="preserve">
|
||||
<value>CH #</value>
|
||||
</data>
|
||||
<data name="Name" xml:space="preserve">
|
||||
<value>Name</value>
|
||||
</data>
|
||||
<data name="Sensor" xml:space="preserve">
|
||||
<value>Sensor</value>
|
||||
</data>
|
||||
<data name="TestAAFRateHz" xml:space="preserve">
|
||||
<value>AA Filter (Hz)</value>
|
||||
</data>
|
||||
<data name="Connection" xml:space="preserve">
|
||||
<value>Connection</value>
|
||||
</data>
|
||||
<data name="DAS_Channels" xml:space="preserve">
|
||||
<value>channel(s)</value>
|
||||
</data>
|
||||
<data name="USB" xml:space="preserve">
|
||||
<value>USB</value>
|
||||
</data>
|
||||
<data name="EmbeddedSensors" xml:space="preserve">
|
||||
<value>Embedded Sensors</value>
|
||||
</data>
|
||||
<data name="TSR_AIR" xml:space="preserve">
|
||||
<value>TSR AIR</value>
|
||||
</data>
|
||||
<data name="DIR" xml:space="preserve">
|
||||
<value>DIR</value>
|
||||
</data>
|
||||
<data name="DKR" xml:space="preserve">
|
||||
<value>DKR</value>
|
||||
</data>
|
||||
<data name="TSR_AIR_RevB" xml:space="preserve">
|
||||
<value>TSR AIR</value>
|
||||
</data>
|
||||
<data name="SLICE6DB3" xml:space="preserve">
|
||||
<value>SLICE 6 Distributor 3</value>
|
||||
</data>
|
||||
<data name="SetTestAAFRatesWarning" xml:space="preserve">
|
||||
<value>DataPRO encountered problem setting some of the AA Filter rates and used the default rates. Please review the AA Filter rates in the test setup and edit them as needed.</value>
|
||||
</data>
|
||||
<data name="S6A_EthernetRecorder" xml:space="preserve">
|
||||
<value>SLICE 6 AIR Ethernet Recorder</value>
|
||||
</data>
|
||||
<data name="UART" xml:space="preserve">
|
||||
<value>UART</value>
|
||||
</data>
|
||||
<data name="StreamOut" xml:space="preserve">
|
||||
<value>Streaming Out</value>
|
||||
</data>
|
||||
<data name="StreamIn" xml:space="preserve">
|
||||
<value>Streaming In</value>
|
||||
</data>
|
||||
<data name="PTPDomain" xml:space="preserve">
|
||||
<value>PTP Domain</value>
|
||||
</data>
|
||||
<data name="DSPStreamingFilterColumnHeader" xml:space="preserve">
|
||||
<value>DSP filter -3dB (Hz)</value>
|
||||
</data>
|
||||
</root>
|
||||
BIN
DataPRO/Modules/Hardware/HardwareList/.svn/wc.db
Normal file
BIN
DataPRO/Modules/Hardware/HardwareList/.svn/wc.db
Normal file
Binary file not shown.
Reference in New Issue
Block a user