Big changes
This commit is contained in:
@@ -20,6 +20,7 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using NLog;
|
||||
using Raytheon.Instruments.PowerSupply;
|
||||
|
||||
namespace ProgramLib
|
||||
{
|
||||
@@ -44,7 +45,8 @@ namespace ProgramLib
|
||||
private string _powerSupplySystemName;
|
||||
|
||||
private List<string> _powerModuleNameList;
|
||||
Dictionary<string, Raytheon.Instruments.PowerSupplies.PowerSupplyModuleInfo> _powerSupplyModuleInfoDict;
|
||||
|
||||
Dictionary<string, PowerSupplyModuleInfo> _powerSupplyModuleInfoDict;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
@@ -80,8 +82,8 @@ namespace ProgramLib
|
||||
|
||||
EventGroup<Events, EventWaitHandle> eventGroup = new EventGroup<Events, EventWaitHandle>(eventDict);
|
||||
|
||||
_powerModuleNameList = Program.Instance().GetPowerSupplyMeasurementManager()[_powerSupplySystemName].GetModuleNames();
|
||||
_powerSupplyModuleInfoDict = Program.Instance().GetPowerSupplyMeasurementManager()[_powerSupplySystemName].GetPowerSupplyModuleInfoDict();
|
||||
_powerModuleNameList = Program.Instance().MalMeasurementLibManager.PowerSupplyMeasurementManager.GetPowerSupplyList(_powerSupplySystemName);
|
||||
_powerSupplyModuleInfoDict = Program.Instance().MalMeasurementLibManager.PowerSupplyMeasurementManager.GetPowerSupplyModuleInfoDict(_powerSupplySystemName);
|
||||
|
||||
while (true)
|
||||
{
|
||||
@@ -123,12 +125,6 @@ namespace ProgramLib
|
||||
|
||||
EventGroup<Events, EventWaitHandle> eventGroup = new EventGroup<Events, EventWaitHandle>(eventDict);
|
||||
|
||||
double voltage;
|
||||
double current;
|
||||
double voltageSetPoint;
|
||||
bool isOn;
|
||||
int faultStatus;
|
||||
|
||||
while (true)
|
||||
{
|
||||
Events id = eventGroup.WaitAny(pollRateMs);
|
||||
@@ -137,22 +133,16 @@ namespace ProgramLib
|
||||
{
|
||||
foreach (string moduleName in _powerModuleNameList)
|
||||
{
|
||||
Program.Instance().GetPowerSupplyMeasurementManager()[_powerSupplySystemName].ReadPowerSupplyData(moduleName, out voltage, out current, out voltageSetPoint, out isOn, out faultStatus);
|
||||
PowerData data = Program.Instance().MalMeasurementLibManager.PowerSupplyMeasurementManager.ReadPowerData(moduleName);
|
||||
|
||||
BitArray statusReg = new BitArray(new int[] { faultStatus });
|
||||
BitArray statusReg = new BitArray(new int[] { data.FaultStatus });
|
||||
|
||||
bool ovpTriggeredInPowerSupply = statusReg[0];
|
||||
bool ocpTriggeredInPowerSupply = statusReg[1];
|
||||
|
||||
if (!ovpTriggeredInPowerSupply && !ocpTriggeredInPowerSupply)
|
||||
{
|
||||
if (IsCurrentWithinLimits(moduleName, current))
|
||||
break;
|
||||
|
||||
if (IsVoltageWithinLimits(moduleName, voltage))
|
||||
break;
|
||||
|
||||
Program.Instance()._powerSupplySharedData.SetData(moduleName, voltage, current, _powerSupplyModuleInfoDict[moduleName]);
|
||||
Program.Instance()._powerSupplySharedData.SetData(moduleName, data.Voltage, data.Current, _powerSupplyModuleInfoDict[moduleName]);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -193,14 +183,16 @@ namespace ProgramLib
|
||||
private bool IsCurrentWithinLimits(string moduleName, double current)
|
||||
{
|
||||
bool outOfLimits = false;
|
||||
Raytheon.Instruments.PowerSupplies.PowerSupplyModuleInfo powerSupplyModuleInfo = _powerSupplyModuleInfoDict[moduleName];
|
||||
|
||||
if ((current < powerSupplyModuleInfo.currentLowerLimit_ || current > powerSupplyModuleInfo.currentUpperLimit_) && powerSupplyModuleInfo.isOn_)
|
||||
{
|
||||
outOfLimits = true;
|
||||
string errorMsg = moduleName + "'s current is out of limits (" + powerSupplyModuleInfo.currentLowerLimit_.ToString("0.00") + "," + powerSupplyModuleInfo.currentUpperLimit_.ToString("0.00") + "). Current reading: " + current.ToString("0.00");
|
||||
HandleOutOfToleranceCondition(errorMsg);
|
||||
}
|
||||
// Duc - is this function needed?
|
||||
//Raytheon.Instruments.PowerSupplies.PowerSupplyModuleInfo powerSupplyModuleInfo = _powerSupplyModuleInfoDict[moduleName];
|
||||
|
||||
//if ((current < powerSupplyModuleInfo.currentLowerLimit_ || current > powerSupplyModuleInfo.currentUpperLimit_) && powerSupplyModuleInfo.isOn_)
|
||||
//{
|
||||
// outOfLimits = true;
|
||||
// string errorMsg = moduleName + "'s current is out of limits (" + powerSupplyModuleInfo.currentLowerLimit_.ToString("0.00") + "," + powerSupplyModuleInfo.currentUpperLimit_.ToString("0.00") + "). Current reading: " + current.ToString("0.00");
|
||||
// HandleOutOfToleranceCondition(errorMsg);
|
||||
//}
|
||||
|
||||
return outOfLimits;
|
||||
}
|
||||
@@ -213,14 +205,15 @@ namespace ProgramLib
|
||||
private bool IsVoltageWithinLimits(string moduleName, double voltage)
|
||||
{
|
||||
bool outOfLimits = false;
|
||||
Raytheon.Instruments.PowerSupplies.PowerSupplyModuleInfo powerSupplyModuleInfo = _powerSupplyModuleInfoDict[moduleName];
|
||||
// Duc - is this function needed?
|
||||
//Raytheon.Instruments.PowerSupplies.PowerSupplyModuleInfo powerSupplyModuleInfo = _powerSupplyModuleInfoDict[moduleName];
|
||||
|
||||
if ((voltage < powerSupplyModuleInfo.voltageLowerLimit_ || voltage > powerSupplyModuleInfo.voltageUpperLimit_) && powerSupplyModuleInfo.isOn_)
|
||||
{
|
||||
outOfLimits = true;
|
||||
string errorMsg = moduleName + "'s voltage is out of limits (" + powerSupplyModuleInfo.voltageLowerLimit_.ToString("0.00") + "," + powerSupplyModuleInfo.voltageUpperLimit_.ToString("0.00") + "). Voltage reading: " + voltage.ToString("0.00");
|
||||
HandleOutOfToleranceCondition(errorMsg);
|
||||
}
|
||||
//if ((voltage < powerSupplyModuleInfo.voltageLowerLimit_ || voltage > powerSupplyModuleInfo.voltageUpperLimit_) && powerSupplyModuleInfo.isOn_)
|
||||
//{
|
||||
// outOfLimits = true;
|
||||
// string errorMsg = moduleName + "'s voltage is out of limits (" + powerSupplyModuleInfo.voltageLowerLimit_.ToString("0.00") + "," + powerSupplyModuleInfo.voltageUpperLimit_.ToString("0.00") + "). Voltage reading: " + voltage.ToString("0.00");
|
||||
// HandleOutOfToleranceCondition(errorMsg);
|
||||
//}
|
||||
|
||||
return outOfLimits;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user