using DTS.Common.Enums.DASFactory; using System; using System.Xml; using System.Xml.Schema; using DTS.Common.Enums; namespace DTS.Common.Interface.DASFactory.Config { public interface IDASModule { /// /// An array of objects representing the channels attatched to this /// module, indexable by ModuleChannelNumber of the Channel. /// IDASChannel[] Channels { get; set; } /// /// EID's for the module corresponding to the sensors on each of the channels. /// IEID[] IDs { get; set; } /// /// Index of this Module in any array of Modules. The first module in a DAS unit will have a /// ModuleArrayIndex of 0. /// int ModuleArrayIndex { get; set; } /// /// For use only with Circular-Buffer mode. /// See . /// The number of requested seconds for this Module to sample data before a 'Trigger' event; the number of /// seconds to sample BEFORE time-zero. /// double RequestedPreTriggerSeconds { get; set; } /// /// For use with all recording modes. /// See . /// The number of requested seconds to sample data from sensors after time-zero, that is after /// a trigger or start event. /// double RequestedPostTriggerSeconds { get; set; } /// /// For use only with Circular-Buffer mode. /// See . /// The number of seconds for this Module to sample data before a 'Trigger' event; the number of /// seconds to sampel BEFORE time-zero. /// double PreTriggerSeconds { get; set; } /// /// For use with all recording modes. /// See . /// The number of seconds to sample data from sensors after time-zero, that is after /// a trigger or start event. /// double PostTriggerSeconds { get; set; } /// /// The number of events to collect before disarming. /// int NumberOfEvents { get; set; } /// /// The number of seconds of inactivity before going to sleep. /// int WakeUpMotionTimeout { get; set; } /// /// The version of the firmware on a module. /// string FirmwareVersion { get; set; } /// /// A string that describes the module, for example, to know if it was created for the /// purposes of adding it to the .dts file during download of Slice6 Distributor attributes. /// string Description { get; set; } /// /// The maximum storage space for a module. /// ulong? MaxEventStorageSpaceInBytes { get; set; } /// /// This is set after a recording session and is the total number of samples this Module /// captured during the last data acquisition run. /// ulong NumberOfSamples { get; set; } /// /// An array of sample numbers where a trigger was activated. /// ulong[] TriggerSampleNumbers { get; set; } int GetLevelTriggerT0AdjustmentSamplesAutoApplied(); /// /// The sample number where recording started. /// ulong StartRecordSampleNumber { get; set; } /// /// /// uint StartRecordTimestampSec { get; set; } /// /// /// uint TriggerTimestampSec { get; set; } /// /// /// uint StartRecordTimestampNanoSec { get; set; } /// /// /// uint TriggerTimestampNanoSec { get; set; } /// /// /// bool PTPMasterSync { get; set; } /// /// /// double TiltSensorAxisXDegreesPre { get; set; } /// /// /// double TiltSensorAxisYDegreesPre { get; set; } /// /// /// double TiltSensorAxisZDegreesPre { get; set; } /// /// /// double TiltSensorAxisXDegreesPost { get; set; } /// /// /// double TiltSensorAxisYDegreesPost { get; set; } /// /// /// double TiltSensorAxisZDegreesPost { get; set; } float TemperatureLocation1Pre { get; set; } float TemperatureLocation2Pre { get; set; } float TemperatureLocation3Pre { get; set; } float TemperatureLocation4Pre { get; set; } float TemperatureLocation1Post { get; set; } float TemperatureLocation2Post { get; set; } float TemperatureLocation3Post { get; set; } float TemperatureLocation4Post { get; set; } /// /// The sample rate in Hz at which the Module will sample sensor data. /// uint SampleRateHz { get; set; } /// /// FB 25558 Actual sample rate currently is used in realtime for TSR AIR type only in future it might be used for other hardware types /// uint ActualSampleRateHz { get; set; } /// /// Hardware anti-alias filter rate. /// float AAFilterRateHz { get; set; } /// /// What type of recording mode is this Module in? /// See . /// DFConstantsAndEnums.RecordingMode RecordingMode { get; set; } DateTime ScheduledStartTime { get; set; } int RecordingInterval { get; set; } UDPStreamProfile StreamProfile { get; set; } #region Slice 6 Tilt Feature /// /// Defines which 2 axis will be used for the bubble level feature for Slice 6. /// DFConstantsAndEnums.TiltAxes TiltAxes { get; set; } double TargetAxisOne { get; set; } double TargetAxisTwo { get; set; } /// /// The target angle threshold in degrees for Axis 1 /// float TargetAngleAxisX { get; set; } /// /// The target angle threshold in degrees for Axis 2 /// float TargetAngleAxisY { get; set; } /// /// The target angle threshold in degrees for Axis 3 /// float TargetAngleAxisZ { get; set; } double MountOffsetAxisOne { get; set; } double MountOffsetAxisTwo { get; set; } string SystemLocation { get; set; } string SystemID { get; set; } int AxisIgnored { get; set; } double LevelTolerance { get; set; } bool UseForTiltCalculation { get; set; } double InputVoltage { get; set; } double BatteryVoltage { get; set; } /// /// The external tilt enumeration given by the attached DAS /// byte TiltID { get; set; } /// /// The serial number of the external tilt /// string TiltSerialNumber { get; set; } #endregion //public IDASCommunication OwningDAS { get; set; } /// /// Count how many channels are configured in this Module. /// See . /// /// Number of configured channels int NumberOfConfiguredChannels(); /// /// Count how many TOM channels are configured in this module /// /// Number of configured TOM channels int NumberOfConfiguredTOMChannels(); bool IsDummyArmed(); /// /// Count how many channels this module has (regardless if they are configured /// or not). /// /// Total number of channels int NumberOfChannels(); /// /// Retrieve the serial number from DASInfo /// /// The serial number of this module string SerialNumber(); /// /// Retrieve the module type from DASInfo /// /// The type of this module DFConstantsAndEnums.ModuleType ModuleType(); /// /// Retrieve the module type from DASInfo and return whether or not it's a stream in type /// /// Whether the type of this module is a stream in bool IsStreamIn(); /// /// Retrieve the module type from DASInfo and return whether or not it's a stream out type /// /// Whether the type of this module is a stream out bool IsStreamOut(); /// /// Retrieve the module type from DASInfo and return whether or not it's a uart type /// /// Whether the type of this module is a uart bool IsUart(); /// /// Retrieve the module type from DASInfo and return whether or not it's a clock type /// /// Whether the type of this module is a clock bool IsClock(); /// /// Retrieve the module type from DASInfo and return whether or not it's an embedded type /// /// Whether the type of this module is embedded bool IsEmbedded(); void WriteXmlCRC32(XmlWriter writer); void WriteXml(XmlWriter writer); void ReadXml(XmlReader reader); XmlSchema GetSchema(); ushort GetCRC32(); } }