139 lines
6.4 KiB
C#
139 lines
6.4 KiB
C#
using System;
|
|
using DTS.Common.Interface.Channels;
|
|
using DTS.Common.Storage;
|
|
using DTS.Common.Utilities.Logging;
|
|
|
|
namespace DTS.Common.ISO
|
|
{
|
|
/// <summary>
|
|
/// this is a class for storing directly in and out of the db
|
|
/// it's simplified and doesn't know about sensors and is just a wrapper for a row in the db
|
|
/// </summary>
|
|
public class LevelTriggerChannel
|
|
{
|
|
public IGroupChannel GroupChannel { get; set; } = null;
|
|
|
|
public string GroupChannelId { get; set; } = "-1";
|
|
|
|
public string HardwareChannelId { get; set; } = "";
|
|
|
|
public string SensorSerialNumber { get; set; } = "";
|
|
|
|
public bool GreaterThanEnabled { get; set; } = true;
|
|
|
|
public double GreaterThanThresholdEU { get; set; }
|
|
|
|
public bool LessThanEnabled { get; set; }
|
|
|
|
public bool TriggerBetweenBounds { get; set; }
|
|
|
|
public bool TriggerOutsideBounds { get; set; }
|
|
|
|
public double InsideUpperLevelEU { get; set; }
|
|
|
|
public double InsideLowerLevelEU { get; set; }
|
|
|
|
public double OutsideUpperLevelEU { get; set; }
|
|
|
|
public double OutsideLowerLevelEU { get; set; }
|
|
|
|
public double LessThanThresholdEU { get; set; }
|
|
|
|
public LevelTriggerChannel(LevelTriggerChannel copy)
|
|
{
|
|
GroupChannel = copy.GroupChannel;
|
|
GroupChannelId = copy.GroupChannelId;
|
|
HardwareChannelId = copy.HardwareChannelId;
|
|
SensorSerialNumber = copy.SensorSerialNumber;
|
|
GreaterThanEnabled = copy.GreaterThanEnabled;
|
|
GreaterThanThresholdEU = copy.GreaterThanThresholdEU;
|
|
LessThanEnabled = copy.LessThanEnabled;
|
|
LessThanThresholdEU = copy.LessThanThresholdEU;
|
|
InsideUpperLevelEU = copy.InsideUpperLevelEU;
|
|
InsideLowerLevelEU = copy.InsideLowerLevelEU;
|
|
OutsideUpperLevelEU = copy.OutsideUpperLevelEU;
|
|
OutsideLowerLevelEU = copy.OutsideLowerLevelEU;
|
|
TriggerBetweenBounds = copy.TriggerBetweenBounds;
|
|
TriggerOutsideBounds = copy.TriggerOutsideBounds;
|
|
}
|
|
public LevelTriggerChannel(
|
|
string groupChannelId,
|
|
string hardwareChannelId,
|
|
string sensorSerialNumber,
|
|
bool greaterThanEnabled,
|
|
double greaterThanEU,
|
|
bool lessThanEnabled,
|
|
double lessThanEU,
|
|
double insideLowerLevelEU,
|
|
double insideUpperLevelEU,
|
|
double outsideLowerLevelEU,
|
|
double outsideUpperLevelEU,
|
|
bool triggerOutsideBounds,
|
|
bool triggerInsideBounds)
|
|
{
|
|
GroupChannelId = groupChannelId;
|
|
HardwareChannelId = hardwareChannelId;
|
|
SensorSerialNumber = sensorSerialNumber;
|
|
GreaterThanEnabled = greaterThanEnabled;
|
|
GreaterThanThresholdEU = greaterThanEU;
|
|
LessThanEnabled = lessThanEnabled;
|
|
LessThanThresholdEU = lessThanEU;
|
|
InsideLowerLevelEU = insideLowerLevelEU;
|
|
InsideUpperLevelEU = insideUpperLevelEU;
|
|
OutsideLowerLevelEU = outsideLowerLevelEU;
|
|
OutsideUpperLevelEU = outsideUpperLevelEU;
|
|
TriggerOutsideBounds = triggerOutsideBounds;
|
|
TriggerBetweenBounds = triggerInsideBounds;
|
|
}
|
|
public LevelTriggerChannel(System.Data.DataRow dr)
|
|
{
|
|
try
|
|
{
|
|
GreaterThanEnabled = Convert.ToBoolean(dr[DbOperations.LevelTriggers.Fields.GreaterThanEnabled.ToString()]);
|
|
GreaterThanThresholdEU = Convert.ToDouble(dr[DbOperations.LevelTriggers.Fields.GreaterThanEU.ToString()]);
|
|
HardwareChannelId = Convert.ToString(dr[DbOperations.LevelTriggers.Fields.HardwareChannelId.ToString()]);
|
|
LessThanEnabled = Convert.ToBoolean(dr[DbOperations.LevelTriggers.Fields.LessThanEnabled.ToString()]);
|
|
LessThanThresholdEU = Convert.ToDouble(dr[DbOperations.LevelTriggers.Fields.LessThanEU.ToString()]);
|
|
SensorSerialNumber = Convert.ToString(dr[DbOperations.LevelTriggers.Fields.SensorSerialNumber.ToString()]);
|
|
GroupChannelId = Convert.ToInt64(dr[DbOperations.LevelTriggers.Fields.ChannelId.ToString()]).ToString();
|
|
TriggerBetweenBounds = Convert.ToBoolean(dr[DbOperations.LevelTriggers.Fields.InsideEnabled.ToString()]);
|
|
TriggerOutsideBounds = Convert.ToBoolean(dr[DbOperations.LevelTriggers.Fields.OutsideEnabled.ToString()]);
|
|
OutsideUpperLevelEU = Convert.ToDouble(dr[DbOperations.LevelTriggers.Fields.OutsideUpperEU.ToString()]);
|
|
OutsideLowerLevelEU = Convert.ToDouble(dr[DbOperations.LevelTriggers.Fields.OutsideLowerEU.ToString()]);
|
|
InsideUpperLevelEU = Convert.ToDouble(dr[DbOperations.LevelTriggers.Fields.InsideUpperEU.ToString()]);
|
|
InsideLowerLevelEU = Convert.ToDouble(dr[DbOperations.LevelTriggers.Fields.InsideLowerEU.ToString()]);
|
|
}
|
|
catch (Exception ex) { APILogger.Log(ex); }
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"{GroupChannel.HardwareChannel} - {LevelTriggerText}";
|
|
}
|
|
|
|
public string LevelTriggerText
|
|
{
|
|
get
|
|
{
|
|
if (LessThanEnabled && GreaterThanEnabled)
|
|
{
|
|
return $"{Strings.Strings.LevelTrigger_LessThan} {LessThanThresholdEU:N2} or {Strings.Strings.LevelTrigger_GreaterThan} {GreaterThanThresholdEU:N2} ({GroupChannel.Units})";
|
|
}
|
|
if (LessThanEnabled)
|
|
{
|
|
return $"{Strings.Strings.LevelTrigger_LessThan} {LessThanThresholdEU:N2}({GroupChannel.Units})";
|
|
}
|
|
if (GreaterThanEnabled)
|
|
{
|
|
return $"{Strings.Strings.LevelTrigger_GreaterThan} {GreaterThanThresholdEU:N2}({GroupChannel.Units})";
|
|
}
|
|
if (TriggerBetweenBounds)
|
|
{
|
|
return string.Format(Strings.Strings.LevelTrigger_TriggerInside, $"{InsideLowerLevelEU:N2}", $"{InsideUpperLevelEU:N2}", GroupChannel.Units);
|
|
}
|
|
return TriggerOutsideBounds ? string.Format(Strings.Strings.LevelTrigger_TriggerOutside, $"{OutsideLowerLevelEU:N2}", $"{OutsideUpperLevelEU:N2}", GroupChannel.Units) : Strings.Strings.Table_NA;
|
|
}
|
|
}
|
|
}
|
|
}
|