100 lines
4.3 KiB
C#
100 lines
4.3 KiB
C#
using DTS.Common.Interface.Sensors;
|
|
using DTS.Common.Settings;
|
|
|
|
namespace DTS.SensorDB
|
|
{
|
|
public class DigitalInputSensorDefault : DTS.Common.Base.BasePropertyChanged, IDigitalInputDefaults
|
|
{
|
|
private double _constantCurrentBreakpoint;
|
|
/// <summary>
|
|
/// breakpoint in ADC where transition is made from active state to default state or vice versa
|
|
/// only valid for Constant Current Normally Open (CCNO) or Normally Closed (CCNC)
|
|
/// </summary>
|
|
public double ConstantCurrentBreakpointADC
|
|
{
|
|
get => _constantCurrentBreakpoint;
|
|
set => SetProperty(ref _constantCurrentBreakpoint, value, "ConstantCurrentBreakpointADC");
|
|
}
|
|
|
|
private double _voltageBreakpoint;
|
|
|
|
/// <summary>
|
|
/// breakpoint in ADC where transition is made from active state to default state or vice versa
|
|
/// only valid for Transition High to Low (THL) or (TLH)
|
|
/// </summary>
|
|
public double VoltageBreakpointADC
|
|
{
|
|
get => _voltageBreakpoint;
|
|
set => SetProperty(ref _voltageBreakpoint, value, "VoltageBreakpointADC");
|
|
}
|
|
|
|
private bool _displaySPDADC;
|
|
/// <summary>
|
|
/// whether to display analog SLICE PRO DIGITAL ADC data
|
|
/// </summary>
|
|
public bool DisplaySPDADC
|
|
{
|
|
get => _displaySPDADC;
|
|
set => SetProperty(ref _displaySPDADC, value, "DisplaySPDADC");
|
|
}
|
|
/// <summary>
|
|
/// returns true if properties are valid
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public bool Validate()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
private const string VOLTAGE_INPUT_KEY = "VoltageInputBreakpoint";
|
|
private const string CONSTANT_CURRENT_KEY = "ConstantCurrentInputBreakpoint";
|
|
private const string DISPLAY_SPD_ADC_KEY = "DisplaySPDADC";
|
|
/// <summary>
|
|
/// returns the defaults for digital inputs
|
|
/// </summary>
|
|
/// <param name="user"></param>
|
|
/// <returns></returns>
|
|
public static IDigitalInputDefaults GetDigitalInputDefaults(string user)
|
|
{
|
|
var ccDefault = SettingsDB.GetGlobalValueDouble(CONSTANT_CURRENT_KEY,
|
|
DTS.Common.Constant.DigitalInputs.ConstantCurrentBreakPointDefault);
|
|
var voltageDefault = SettingsDB.GetGlobalValueDouble(VOLTAGE_INPUT_KEY,
|
|
DTS.Common.Constant.DigitalInputs.VoltageInputBreakPointDefault);
|
|
|
|
var displaySPDADC = SettingsDB.GetGlobalValueBool(DISPLAY_SPD_ADC_KEY,
|
|
DTS.Common.Constant.DigitalInputs.DisplaySPDADCDefault);
|
|
|
|
return new DigitalInputSensorDefault()
|
|
{
|
|
ConstantCurrentBreakpointADC = ccDefault,
|
|
VoltageBreakpointADC = voltageDefault,
|
|
DisplaySPDADC = displaySPDADC
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// commits digital inputs to storage
|
|
/// </summary>
|
|
/// <param name="defaults"></param>
|
|
public static void Save(IDigitalInputDefaults defaults)
|
|
{
|
|
SettingsDB.SetGlobalValueDouble(CONSTANT_CURRENT_KEY, defaults.ConstantCurrentBreakpointADC);
|
|
SettingsDB.SetGlobalValueDouble(VOLTAGE_INPUT_KEY, defaults.VoltageBreakpointADC);
|
|
SettingsDB.SetGlobalValueBoolean(DISPLAY_SPD_ADC_KEY, defaults.DisplaySPDADC);
|
|
DTS.Common.Constant.DigitalInputs.ConstantCurrentBreakPoint = defaults.ConstantCurrentBreakpointADC;
|
|
DTS.Common.Constant.DigitalInputs.VoltageInputBreakPoint = defaults.VoltageBreakpointADC;
|
|
DTS.Common.Constant.DigitalInputs.DisplaySPDADC = defaults.DisplaySPDADC;
|
|
}
|
|
/// <summary>
|
|
/// restores digital input settings to defaults
|
|
/// </summary>
|
|
/// <param name="sensorDefaults"></param>
|
|
public static void RestoreDefaults(IDigitalInputDefaults sensorDefaults)
|
|
{
|
|
sensorDefaults.ConstantCurrentBreakpointADC = DTS.Common.Constant.DigitalInputs.ConstantCurrentBreakPointDefault;
|
|
sensorDefaults.VoltageBreakpointADC = DTS.Common.Constant.DigitalInputs.VoltageInputBreakPointDefault;
|
|
sensorDefaults.DisplaySPDADC = DTS.Common.Constant.DigitalInputs.DisplaySPDADC;
|
|
}
|
|
}
|
|
}
|