using DTS.Common.Enums; using DTS.Common.Enums.Sensors; using DTS.Common.Interface.Sensors; namespace DTS.SensorDB { /// /// this class handles the updating the default squib settings /// public sealed class SquibSettingDefaults : DTS.Common.Base.BasePropertyChanged, ISquibSettingDefaults { private ISensorData _defaultSquib; public double ToleranceLowDefault { get => _defaultSquib.SquibToleranceLow; set { _defaultSquib.SquibToleranceLow = value; OnPropertyChanged("ToleranceLowDefault"); OnPropertyChanged("ToleranceValid"); } } public double ToleranceHighDefault { get => _defaultSquib.SquibToleranceHigh; set { _defaultSquib.SquibToleranceHigh = value; OnPropertyChanged("ToleranceHighDefault"); OnPropertyChanged("ToleranceValid"); } } public double OutputCurrentDefault { get => _defaultSquib.SquibOutputCurrent; set { _defaultSquib.SquibOutputCurrent = value; OnPropertyChanged("OutputCurrentDefault"); } } public SquibMeasurementType MeasurementTypeDefault { get => _defaultSquib.SquibMeasurementType; set { _defaultSquib.SquibMeasurementType = value; OnPropertyChanged("MeasurementTypeDefault"); } } public SquibFireMode FireModeDefault { get => _defaultSquib.SquibFireMode; set { _defaultSquib.SquibFireMode = value; OnPropertyChanged("FireModeDefault"); OnPropertyChanged("IsConstantCurrent"); } } private static SquibFireMode[] _availableModes = new SquibFireMode[] { SquibFireMode.CAP, SquibFireMode.CONSTANT }; public SquibFireMode[] AvailableModes { get => _availableModes; } public bool IsConstantCurrent { get => FireModeDefault == SquibFireMode.CONSTANT; } public bool LimitDurationDefault { get => _defaultSquib.LimitSquibFireDuration; set { _defaultSquib.LimitSquibFireDuration = value; OnPropertyChanged("LimitDurationDefault"); } } public double FireDurationMS { get => _defaultSquib.SquibFireDurationMS; set { _defaultSquib.SquibFireDurationMS = value; OnPropertyChanged("FireDurationMS"); } } public double FireDelayMS { get => _defaultSquib.SquibFireDelayMS; set { _defaultSquib.SquibFireDelayMS = value; OnPropertyChanged("FireDelayMS"); } } /// /// commits the changes to the db /// /// /// public static void CommitChange(SquibSettingDefaults settingDefaults, string user) { SensorsCollection.SensorsList.Commit(user, (SensorData)settingDefaults._defaultSquib, false); } /// /// returns the defaults for squibs /// /// /// public static SquibSettingDefaults GetSquibSettingsDefault(string user) { var sd = DTS.SensorDB.SensorsCollection.SensorsList.GetSensorBySerialNumber(SensorConstants.TEST_SPECIFIC_SQUIB_SERIAL); return new SquibSettingDefaults(sd); } private SquibSettingDefaults(ISensorData defaultSquib) { _defaultSquib = defaultSquib; } public bool ToleranceValid { get { return ToleranceLowDefault < ToleranceHighDefault; } } public bool Validate() { return ToleranceValid; } } }