This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,161 @@
using System;
using System.Collections.Generic;
using DTS.Common.Interface.DASFactory;
using DTS.Common.Utilities.Logging;
using DTS.DASLib.Service;
using System.Threading;
using DTS.Common.DataModel.Common;
using DTS.Common;
using DTS.Common.Enums.TSRAIRGo;
using System.Windows.Forms;
using DTS.Common.DataModel.Classes.TSRAIRGo;
namespace DataPROWin7.DataModel.Classes
{
public class Configuration
{
public Configuration()
{
}
public void SetConfig(DataModel.TestTemplate currentTest,
List<IDASCommunication> dasList,
bool calledDuringDiagnostics,
StatusHelpers.SetProgressValueDelegate setProgressFunction)
{
lock (DASHardware.GetArmStatusLock)
{
foreach (var das in dasList)
{
var type = das.GetHardwareType();
das.MinimumValidInputVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.MinimumValidInputThreshold));
das.MaximumValidInputVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.MaximumValidInputThreshold));
das.MinimumValidBatteryVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.MinimumValidBatteryThreshold));
das.MaximumValidBatteryVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.MaximumValidBatteryThreshold));
StatusHelpers.SetStatus2(das, 0, TSRAIRGoStatus.StatusTypes.UPDATING_DAS_CONFIG, setProgressFunction);
if (calledDuringDiagnostics)
{
das.BatteryHighVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.BatteryHighDiagnosticsThreshold));
das.BatteryMediumVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.BatteryMediumDiagnosticsThreshold));
das.BatteryLowVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.BatteryLowDiagnosticsThreshold));
das.InputHighVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.InputHighDiagnosticsThreshold));
das.InputMediumVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.InputMediumDiagnosticsThreshold));
das.InputLowVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.InputLowDiagnosticsThreshold));
}
else
{
das.BatteryHighVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.BatteryHighArmedThreshold));
das.BatteryMediumVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.BatteryMediumArmedThreshold));
das.BatteryLowVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.BatteryLowArmedThreshold));
das.InputHighVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.InputHighArmedThreshold));
das.InputMediumVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.InputMediumArmedThreshold));
das.InputLowVoltage = Convert.ToSingle(DataModel.BatteryAndInputVoltageDefaults.InputAndBatterySettings.GetValue(type.ToString(), DataModel.BatteryAndInputVoltageDefaults.DasBatteryInputSettings.Settings.InputLowArmedThreshold));
}
}
//setting the configuration checks the hardware lines
//so make sure we reset them prior to setting configuration
using (var configService = new ConfigurationService())
{
var mreLocal = new ManualResetEvent(false);
configService.ResetHardwareLines(dasList, delegate (ServiceBase.CallbackData cbd)
{
switch (cbd.Status)
{
case ServiceBase.CallbackData.CallbackStatus.AllFinished: mreLocal.Set(); break;
}
}, dasList);
mreLocal.WaitOne();
}
using (var config = new ConfigurationService())
{
config.AggregateProgress = false;
var done = new ManualResetEvent(false);
var elapsed = 0;
try
{
config.SetConfiguration(dasList, true, true,
delegate (ServiceBase.CallbackData cbd)
{
switch (cbd.Status)
{
case ServiceBase.CallbackData.CallbackStatus.Progress:
StatusHelpers.SetStatus2(cbd.Target, cbd.ProgressValue, TSRAIRGoStatus.StatusTypes.UPDATING_DAS_CONFIG, setProgressFunction);
break;
case ServiceBase.CallbackData.CallbackStatus.Success:
case ServiceBase.CallbackData.CallbackStatus.Failure:
break;
case ServiceBase.CallbackData.CallbackStatus.AllFinished:
done.Set();
break;
}
},
dasList,
ErrorCallback,
calledDuringDiagnostics,
new double[] { Common.SerializedSettings.MaxAAFRate_TDAS, Common.SerializedSettings.MaxAAFRate_G5 },
true,
true,
Common.SerializedSettings.GetDefaultDSP(),
true
);
while (!done.WaitOne(50, false))
{
elapsed += 50;
}
CopyGlobalConfigsToLocalFolder(currentTest, dasList);
}
catch (Exception ex)
{
APILogger.Log(ex);
throw;
}
}
}
}
public static DialogResult ErrorCallback(string errorString, string units)
{
APILogger.Log("error setting configuration", errorString);
return DialogResult.OK; //Fix this
}
private void CopyGlobalConfigsToLocalFolder(DataModel.TestTemplate currentTest, List<IDASCommunication> dasList)
{
var sourcePath = System.IO.Path.Combine(Environment.CurrentDirectory, Constants.DAS_CONFIGS);
var destPath = System.IO.Path.Combine(currentTest.TestDirectory.Trim(), Constants.DAS_CONFIGS);
try
{
if (!System.IO.Directory.Exists(destPath))
{
System.IO.Directory.CreateDirectory(destPath);
}
foreach (var das in dasList)
{
//Copy the entire das config
var sourceFileName = System.IO.Path.Combine(sourcePath, $"{((InfoResult)das.DASInfo).OwningDAS}.xml");
var destFileName = System.IO.Path.Combine(destPath, $"{((InfoResult)das.DASInfo).OwningDAS}.xml");
if (System.IO.File.Exists(sourceFileName))
{
System.IO.File.Copy(sourceFileName, destFileName, true);
}
foreach (var module in das.DASInfo.Modules)
{
//Copy each module config
sourceFileName = System.IO.Path.Combine(sourcePath, $"{module.SerialNumber}.xml");
if (!System.IO.File.Exists(sourceFileName)) continue;
destFileName = System.IO.Path.Combine(destPath, $"{module.SerialNumber}.xml");
System.IO.File.Copy(sourceFileName, destFileName, true);
}
}
}
catch (Exception ex)
{
APILogger.Log(ex);
}
}
}
}