using DTS.Common.Interface.Sensors; using DTS.Common.Settings; namespace DTS.SensorDB { public class DigitalInputSensorDefault : DTS.Common.Base.BasePropertyChanged, IDigitalInputDefaults { private double _constantCurrentBreakpoint; /// /// 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) /// public double ConstantCurrentBreakpointADC { get => _constantCurrentBreakpoint; set => SetProperty(ref _constantCurrentBreakpoint, value, "ConstantCurrentBreakpointADC"); } private double _voltageBreakpoint; /// /// 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) /// public double VoltageBreakpointADC { get => _voltageBreakpoint; set => SetProperty(ref _voltageBreakpoint, value, "VoltageBreakpointADC"); } private bool _displaySPDADC; /// /// whether to display analog SLICE PRO DIGITAL ADC data /// public bool DisplaySPDADC { get => _displaySPDADC; set => SetProperty(ref _displaySPDADC, value, "DisplaySPDADC"); } /// /// returns true if properties are valid /// /// 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"; /// /// returns the defaults for digital inputs /// /// /// 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 }; } /// /// commits digital inputs to storage /// /// 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; } /// /// restores digital input settings to defaults /// /// 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; } } }