using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace DTS.Common.Interface.DataRecorders
{
///
/// interface describing a DAS channel in the Db
///
public interface IDASChannelDBRecord
{
///
/// a string id for the hardware the channel belongs to
/// (serialnumber_dastype)
///
string HardwareId { get; set; }
[Key]
[Column("DASChannelId")]
///
/// the id/key of the DAS channel record in the db
///
int DaschannelId { get; set; }
[Column("DASId")]
///
/// the das db id of the Hardware this channel belongs to
///
int? Dasid { get; set; }
///
/// the physical channel index of the channel among channels on the DAS
///
int ChannelIdx { get; set; }
///
/// BitMask for bridges supported by the channel
/// Bit 0 indicates IEPE
/// Bit 1 indicates quarter bridge
/// Bit 2 indicates half bridge
/// Bit 3 indicates full bridge
/// Bit 4 indicates digital input
/// Bit 5 indicates squib fire
/// Bit 6 indicates digital output
/// Bit 7 indicates Half bridge signal plus (G5 signal plus)
/// Bit 8 indicates RealTime Clock
/// Bit 9 indicates UART
///
int SupportedBridges { get; set; }
///
/// BitMask indicating what excitation options the channel supports
/// Bit 0 indicates an invalid excitation (undefined)
/// Bit 1 indicates 2V
/// Bit 2 indicates 2.5V
/// Bit 3 indicates 3V
/// Bit 4 indicates 5V
/// Bit 5 indicates 10V
/// Bit 6 indicates 1V
///
int SupportedExcitations { get; set; }
[Column("DASDisplayOrder")]
///
/// The display order of the channel among channels on the DAS
/// note that the physical order of channels and the display order may not match for
/// some hardware
///
int DASDisplayOrder { get; set; }
///
/// Indicates that record should be stored only in the local db and not propagated to a central db
/// deprecated
///
bool LocalOnly { get; set; }
///
/// BitMask indicating what Digital input modes are supported on the channel (if channel supports digital input bridge type)
/// Bit 0 indicates an invalid mode
/// Bit 1 indicates Transition low to high (TLH)
/// Bit 2 indicates Transition high to low (THL)
/// Bit 3 indicates Contact closure normally open (CCNO)
/// Bit 4 indicates Contact closure normally closed (CCNC)
///
int SupportedDigitalInputModes { get; set; }
///
/// BitMask indicating what Squib fire modes are supported on the channel (if the channel supports squib fire bridge type)
/// Bit 0 indicates an invalid mode (fire mode not set)
/// Bit 1 indicates capacitor discharge
/// Bit 2 indicates constant current
/// Bit 3 indicates AC discharge
///
int SupportedSquibFireModes { get; set; }
///
/// Bit mask indicating what digital output modes are supported (if the channel supports digital output bridge type)
/// a value of 0 indicates no digital output or off
/// Bit 0 indicates 5V low to high transition (FVLH)
/// Bit 1 indicates 5V high to low transition (FVHL)
/// Bit 2 indicates contact closure normally open (CCNO)
/// Bit 3 indicates contact closure normally closed (CCNC)
///
int SupportedDigitalOutputModes { get; set; }
string ModuleSerialNumber { get; set; }
int SettingId { get; set; }
///
/// array index of the module the channel belongs to among modules on a DAS
///
int ModuleArrayIndex { get; set; }
}
}