162 lines
10 KiB
Plaintext
162 lines
10 KiB
Plaintext
|
|
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);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|