168 lines
7.0 KiB
C#
168 lines
7.0 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
|
|||
|
|
namespace DatabaseExport
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// this is a test object that belongs to a test, it's different in that it can have test specific settings ...
|
|||
|
|
/// </summary>
|
|||
|
|
public class TestTestObject : TestObject
|
|||
|
|
{
|
|||
|
|
public TestTestObject(TestObject obj)
|
|||
|
|
: base(obj)
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
private string _position = ChannelDefaultsKey;
|
|||
|
|
public MMEPositions Position
|
|||
|
|
{
|
|||
|
|
get => GetGroupPosition(_position);
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
SetProperty(ref _position, value.Position, "Position");
|
|||
|
|
if (_position == UserSetKey)
|
|||
|
|
{
|
|||
|
|
GroupPositionComboBoxVisible = System.Windows.Visibility.Hidden;
|
|||
|
|
GroupPositionButtonVisible = System.Windows.Visibility.Visible;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
GroupPositionComboBoxVisible = System.Windows.Visibility.Visible;
|
|||
|
|
GroupPositionButtonVisible = System.Windows.Visibility.Hidden;
|
|||
|
|
//set the position for every sensor in the test object using this position
|
|||
|
|
var isoTO = GetISOTestObject();
|
|||
|
|
foreach (var ch in isoTO.AllChannels)
|
|||
|
|
{
|
|||
|
|
if (!ch.Required) { continue; }
|
|||
|
|
if (string.IsNullOrWhiteSpace(ch.SensorSerialNumber)) { continue; }
|
|||
|
|
var sd = GetSensor(ch.Name, ch.SensorSerialNumber); // now using ch.Name instead of ch.GetID(); FB 7391 - Group sensor settings not in test when you set the test obj. and position.
|
|||
|
|
if (null == sd) { continue; }
|
|||
|
|
sd.Position = value.Position;
|
|||
|
|
SetSensor(ch.GetID(), sd);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public const string ChannelDefaultsKey = "#";
|
|||
|
|
public const string UserSetKey = "@";
|
|||
|
|
|
|||
|
|
private MMEPositions GetGroupPosition(string groupPositionKey)
|
|||
|
|
{
|
|||
|
|
foreach (var position in AvailableGroupPositions)
|
|||
|
|
{
|
|||
|
|
if (position.Position == groupPositionKey)
|
|||
|
|
{
|
|||
|
|
return position;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return _userSetGUID;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private System.Windows.Visibility _groupPositionComboBoxVisible = System.Windows.Visibility.Visible;
|
|||
|
|
public System.Windows.Visibility GroupPositionComboBoxVisible
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
if (_groupPositionComboBoxVisible == System.Windows.Visibility.Visible)
|
|||
|
|
{
|
|||
|
|
if (SerializedSettings.ISOSupportLevel == SerializedSettings.ISOSupportLevels.NO_ISO) { return System.Windows.Visibility.Collapsed; }
|
|||
|
|
return _groupPositionComboBoxVisible;
|
|||
|
|
}
|
|||
|
|
return _groupPositionComboBoxVisible;
|
|||
|
|
}
|
|||
|
|
set => _groupPositionComboBoxVisible = value;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private System.Windows.Visibility _groupPositionButtonVisible = System.Windows.Visibility.Hidden;
|
|||
|
|
public System.Windows.Visibility GroupPositionButtonVisible
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
if (_groupPositionButtonVisible == System.Windows.Visibility.Visible)
|
|||
|
|
{
|
|||
|
|
if (SerializedSettings.ISOSupportLevel == SerializedSettings.ISOSupportLevels.NO_ISO) { return System.Windows.Visibility.Collapsed; }
|
|||
|
|
return _groupPositionButtonVisible;
|
|||
|
|
}
|
|||
|
|
return _groupPositionButtonVisible;
|
|||
|
|
}
|
|||
|
|
set => _groupPositionButtonVisible = value;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private string _testObject = "?";
|
|||
|
|
public MMETestObjects TestObject
|
|||
|
|
{
|
|||
|
|
get => ISO13499FileDb.IsoDb.GetTestObjectByIso(_testObject);
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
if (value == null) return;
|
|||
|
|
SetProperty(ref _testObject, value.Test_Object, "TestObject");
|
|||
|
|
//also set the test object for all sensors!
|
|||
|
|
|
|||
|
|
var isoTO = GetISOTestObject();
|
|||
|
|
foreach (var ch in isoTO.AllChannels)
|
|||
|
|
{
|
|||
|
|
if (!ch.Required) { continue; }
|
|||
|
|
if (string.IsNullOrWhiteSpace(ch.SensorSerialNumber)) { continue; }
|
|||
|
|
var sd = GetSensor(ch.GetID(), ch.SensorSerialNumber);
|
|||
|
|
if (null == sd) { continue; }
|
|||
|
|
sd.TestObject = value.Test_Object;
|
|||
|
|
SetSensor(ch.GetID(), sd);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
public void SetTestObject(string s)
|
|||
|
|
{
|
|||
|
|
_testObject = s;
|
|||
|
|
OnPropertyChanged("TestObject");
|
|||
|
|
}
|
|||
|
|
public void SetPosition(string s)
|
|||
|
|
{
|
|||
|
|
_position = s;
|
|||
|
|
OnPropertyChanged("Position");
|
|||
|
|
if (s == UserSetKey)
|
|||
|
|
{
|
|||
|
|
GroupPositionComboBoxVisible = System.Windows.Visibility.Hidden;
|
|||
|
|
GroupPositionButtonVisible = System.Windows.Visibility.Visible;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
GroupPositionComboBoxVisible = System.Windows.Visibility.Visible;
|
|||
|
|
GroupPositionButtonVisible = System.Windows.Visibility.Hidden;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
public MMEPositions[] AvailablePositions => ISO13499FileDb.IsoDb.GetPositions();
|
|||
|
|
|
|||
|
|
private const string DATAPRO_DEFINED = "DataPRO-defined";
|
|||
|
|
public static MMEPositions _channelDefaultsGUID = new MMEPositions(Guid.NewGuid().ToString(), ChannelDefaultsKey, "(channel defaults)", "(channel defaults)", 1, DateTime.Now, DATAPRO_DEFINED, false, "", DateTime.Now,
|
|||
|
|
DATAPRO_DEFINED, "", MMEPossibleChannels.MMEChannelTypes.ISO13499_106);
|
|||
|
|
private MMEPositions _userSetGUID = new MMEPositions(Guid.NewGuid().ToString(), UserSetKey, "(multiple)", "(multiple)", 1, DateTime.Now, DATAPRO_DEFINED, false, "", DateTime.Now,
|
|||
|
|
DATAPRO_DEFINED, "", MMEPossibleChannels.MMEChannelTypes.ISO13499_106);
|
|||
|
|
public MMEPositions[] AvailableGroupPositions
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
var availableGroupPositions = new List<MMEPositions>();
|
|||
|
|
availableGroupPositions.Add(_channelDefaultsGUID);
|
|||
|
|
foreach (var position in AvailablePositions)
|
|||
|
|
{
|
|||
|
|
availableGroupPositions.Add(position);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return availableGroupPositions.ToArray();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
private int _excitationWarmupTime = Properties.Settings.Default.DefaultTestExcitationWarmupMS;
|
|||
|
|
public int ExcitationWarmupTimeMS
|
|||
|
|
{
|
|||
|
|
get => _excitationWarmupTime;
|
|||
|
|
set => SetProperty(ref _excitationWarmupTime, value, "ExcitationWarmupTimeMS");
|
|||
|
|
}
|
|||
|
|
private double _targetSampleRate;
|
|||
|
|
public double TargetSampleRate
|
|||
|
|
{
|
|||
|
|
get => _targetSampleRate;
|
|||
|
|
set => SetProperty(ref _targetSampleRate, value, "TargetSampleRate");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|