Files
DP44/DataPRO/SensorDB/SquibSettingDefaults.cs

132 lines
4.3 KiB
C#
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
using DTS.Common.Enums;
using DTS.Common.Enums.Sensors;
using DTS.Common.Interface.Sensors;
namespace DTS.SensorDB
{
/// <summary>
/// this class handles the updating the default squib settings
/// </summary>
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");
}
}
/// <summary>
/// commits the changes to the db
/// </summary>
/// <param name="settingDefaults"></param>
/// <param name="user"></param>
public static void CommitChange(SquibSettingDefaults settingDefaults, string user)
{
SensorsCollection.SensorsList.Commit(user, (SensorData)settingDefaults._defaultSquib, false);
}
/// <summary>
/// returns the defaults for squibs
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
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;
}
}
}