Files
DP44/Common/DTS.Common.DataModel/.svn/pristine/d7/d7886d354fa39f90a820cce9b179fbc91a20a508.svn-base

107 lines
4.3 KiB
Plaintext
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
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;
}
}
}