107 lines
4.3 KiB
Plaintext
107 lines
4.3 KiB
Plaintext
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using DTS.Common.Interface.DataRecorders;
|
|
using DTS.Common.Storage;
|
|
using DTS.Common.Enums.Hardware;
|
|
using DTS.Common.Classes.Hardware;
|
|
using DTS.Common.Classes.TestSetups;
|
|
using DTS.Common.Interface.TestSetups;
|
|
using DataPROWin7.Common;
|
|
|
|
namespace DTS.Common.DataModel.Common.DbWrappers
|
|
{
|
|
public class TestSetupHardwareGet : TestSetupHardwareRecord
|
|
{
|
|
public TestSetupHardwareGet() { }
|
|
public TestSetupHardwareGet(ITestSetupHardwareRecord copy) : base(copy) { }
|
|
public bool AddOrRemove
|
|
{
|
|
get => AddDAS;
|
|
set
|
|
{
|
|
AddDAS = value;
|
|
OnPropertyChanged("AddOrRemove");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// This ensures that any bad data in the database can be repaired in one place.
|
|
/// FB 17777
|
|
/// </summary>
|
|
/// <param name="testSetupId"></param>
|
|
/// <param name="hardwareLookup"></param>
|
|
/// <returns></returns>
|
|
public List<TestSetupHardwareGet> TestSetupHardwareGet_Wrapper(int? testSetupId, Dictionary<int, IDASHardware> hardwareLookup)
|
|
{
|
|
var testSetupHardwareGetList = new List<TestSetupHardwareGet>();
|
|
|
|
var hr = DbOperations.TestSetupHardwareGet(testSetupId, out var records);
|
|
if (0 == hr && null != records && records.Any())
|
|
{
|
|
foreach (var record in records)
|
|
{
|
|
var testSetupHardwareGet = new TestSetupHardwareGet(record);
|
|
if (record.AntiAliasFilterRate == 0 && null != hardwareLookup)
|
|
{
|
|
var dasTypeEnum = hardwareLookup[record.DASId].DASTypeEnum;
|
|
testSetupHardwareGet.AntiAliasFilterRate = RepairAntiAliasFilterRate(dasTypeEnum, record.SamplesPerSecond);
|
|
}
|
|
testSetupHardwareGetList.Add(testSetupHardwareGet);
|
|
}
|
|
}
|
|
|
|
//Now make sure we don't return any 0s in AntiAliasFilterRate (hardwareLookup may have been passed in as null)
|
|
foreach (var testSetupHardwareGet in testSetupHardwareGetList)
|
|
{
|
|
if (testSetupHardwareGet.AntiAliasFilterRate == 0)
|
|
{
|
|
var dasTypeEnum = GetDASTypeEnumFromId(testSetupHardwareGet.DASId);
|
|
testSetupHardwareGet.AntiAliasFilterRate = RepairAntiAliasFilterRate(dasTypeEnum, testSetupHardwareGet.SamplesPerSecond);
|
|
}
|
|
}
|
|
|
|
return testSetupHardwareGetList;
|
|
}
|
|
private HardwareTypes GetDASTypeEnumFromId(int dasId)
|
|
{
|
|
var dasGet = new DASGet();
|
|
var dasGetList = dasGet.DASGet_Wrapper();
|
|
foreach (var das in dasGetList)
|
|
{
|
|
if (das.DASId == dasId)
|
|
{
|
|
var dasTemp = new DTS.Common.ISO.Hardware();
|
|
//Get of DASTypeEnum returns the enum: (HardwareTypes)DASType
|
|
dasTemp.DASType = das.Type;
|
|
return dasTemp.DASTypeEnum;
|
|
}
|
|
}
|
|
return HardwareTypes.UNDEFINED;
|
|
}
|
|
private int RepairAntiAliasFilterRate(HardwareTypes dasTypeEnum, int samplesPerSecond)
|
|
{
|
|
int antiAliasFilterRate = 0;
|
|
|
|
switch (dasTypeEnum)
|
|
{
|
|
case HardwareTypes.DIM:
|
|
case HardwareTypes.G5INDUMMY:
|
|
case HardwareTypes.G5VDS:
|
|
case HardwareTypes.SIM:
|
|
case HardwareTypes.TDAS_Pro_Rack:
|
|
case HardwareTypes.TDAS_LabRack:
|
|
case HardwareTypes.TOM:
|
|
//TDAS allows 0, so don't do the repair
|
|
//antiAliasFilterRate = Convert.ToInt32(SerializedSettings.GetAAFException(SerializableAAF.DAS_TYPE.TDAS, samplesPerSecond));
|
|
break;
|
|
default:
|
|
antiAliasFilterRate = Convert.ToInt32(SerializedSettings.GetAAFException(SerializableAAF.DAS_TYPE.SLICE, samplesPerSecond));
|
|
break;
|
|
}
|
|
|
|
return antiAliasFilterRate;
|
|
}
|
|
}
|
|
}
|