using DTS.Common.Enums;
namespace DTS.Common.Interface.Sensors
{
///
/// this interface describes the default properties and methods for a squib
/// It's intended to allow interaction with squib defaults
/// 13574 Design for Default squib config file settings
///
public interface ISquibSettingDefaults
{
///
/// gets/sets the squib tolerance low default
/// the low tolerance for squib resistance in ohms
/// this is the minimum resistance value for a valid squib load
///
double ToleranceLowDefault { get; set; }
///
/// gets/sets the squib tolerance high default
/// the high tolerance for squib resistance in ohms
/// this is the maximum resistance value for a valid squib load
///
double ToleranceHighDefault { get; set; }
///
/// gets/sets the squib output current default
/// the squib output current in amps
/// this is the current outputted by a squib in constant current
/// mode. It is only observed in constant current
///
double OutputCurrentDefault { get; set; }
///
/// gets/sets the squib measurement type default
/// the squib measurement type controls the alternate measurement type of
/// of a squib
///
SquibMeasurementType MeasurementTypeDefault { get; set; }
///
/// gets/sets the squib firemode default
/// the squib fire mode determines how the squib is fired
/// [cap discharge/constant current/ac discharge]
///
SquibFireMode FireModeDefault { get; set; }
///
/// gets/sets whether to limit squib output duration default
/// Limit duration allows for duration of output to be constrained
///
bool LimitDurationDefault { get; set; }
///
/// gets/sets the squib output duration in ms default
/// the squib fire duration is the amount of time to output current
/// It is only valid if the output is being limited
///
double FireDurationMS { get; set; }
///
/// gets/sets the delay before firing squib in ms default
/// the squib fire delay is the amount of time after a trigger is received
/// before output begins
///
double FireDelayMS { get; set; }
///
/// indicates whether the setting is valid or not
///
///
bool Validate();
///
/// indicates whether tolerance value is valid
///
bool ToleranceValid { get; }
}
}