using System.Windows;
using DTS.Common.Base;
using DTS.Common.Enums;
using DTS.Common.Enums.TTS;
using DTS.Common.Interface.DataRecorders;
namespace DTS.Common.Interface.TestSetups.Imports.TTS.ReadFile
{
///
/// represents a single record in a TTS Import
///
public interface ITTSChannelRecord : IBaseClass
{
int ChannelNumber { get; set; }
string ChannelCode { get; set; }
string JCodeOrDescription { get; set; }
double ChannelRange { get; set; }
int ChannelFilterHz { get; set; }
string SensorEID { get; set; }
string SensorSerialNumber { get; set; }
double SensorSensitivity { get; set; }
double SensorExcitationVolts { get; set; }
double SensorCapacity { get; set; }
string SensorEU { get; set; }
bool SensorPolarity { get; set; }
ToyotaBridgeType ChannelType { get; set; }
string Description { get; set; }
bool ProportionalToExcitation { get; set; }
double BridgeResistance { get; set; }
double InitialOffsetVoltage { get; set; }
double InitialOffsetVoltageTolerance { get; set; }
bool RemoveOffset { get; set; }
ToyotaZeroMethods ZeroMethod { get; set; }
double CableMultiplier { get; set; }
double InitialEUInMV { get; set; }
double InitialEUInEU { get; set; }
double IRTraccExponent { get; set; }
double PolynomialConstant { get; set; }
double PolynomialCoefficientC { get; set; }
double PolynomialCoefficentB { get; set; }
double PolynomialCoefficientA { get; set; }
double PolynomialCoefficientAlpha { get; set; }
string ISOCode { get; set; }
string ISODescription { get; set; }
string ISOPolarity { get; set; }
bool IsSquib { get; set; }
bool IsDigitalInput { get; set; }
bool IsDigitalOutput { get; set; }
///
/// returns true if the record is empty (no channel code and no sensor serial number)
///
bool IsEmptyRecord { get; }
IHardwareChannel HardwareChannel { get; set; }
///
/// returns whether the channelcode is valid or not
///
bool IsChannelCodeValid { get; set; }
bool IsJCodeValid { get; set; }
bool IsRangeValid { get; set; }
bool IsFilterValid { get; set; }
///
/// disabled channels are channels which are in the test setup, but aren't used during run test
///
bool Disabled { get; set; }
///
/// for squibs, what firemode to use
///
SquibFireMode SquibFireMode { get; set; }
///
/// the delay in ms between trigger and squib fire
///
double SquibFireDelayMs { get; set; }
///
/// whether to limit the duration or not of squib fire
///
bool LimitDuration { get; set; }
///
/// the duration of the squib fire in ms from the start of firing
/// (if limiting duration)
///
double SquibFireDurationMs { get; set; }
///
/// the limit for current (amps)
///
double SquibFireCurrent { get; set; }
///
/// the squib resistance tolerance low value (ohms)
///
double SquibFireResistanceLowOhm { get; set; }
///
/// the squib resistance tolerance high value (ohms)
///
double SquibFireResistanceHighOhm { get; set; }
///
/// the digital input mode (if relevant)
///
DigitalInputModes DigitalInputMode { get; set; }
///
/// the digital output mode (if relevant)
///
DigitalOutputModes DigitalOutputMode { get; set; }
///
/// the delay between trigger and output (if relevant)
///
double DigitalOutputDelay { get; set; }
///
/// the duration of output after output started (if relevant)
///
double DigitalOutputDuration { get; set; }
IEditFileViewModel Parent { get; set; }
//bool ValidationNeeded { get; set; }
ITTSChannelRecord Copy();
Visibility RangeVisible { get; }
Visibility FilterVisible { get; }
bool OriginallyRequestedChannel { get; set; }
///
/// controls whether the channel should be marked as diagnostics mode or not
/// note that diagnostics mode is only used when the configuration supports diagnostics mode
/// even if the sensor has diagnosticsmode set to true
///
bool DiagnosticsMode { get; set; }
bool IsModified { get; set; }
///
/// returns an array of bytes to represent the channel, for use in CRC and hashing
///
/// array of bytes representing the channel
byte[] GetBytes();
}
}