using DTS.Common.Enums; using DTS.Common.Enums.DASFactory; using DTS.Common.Enums.Sensors; using DTS.Common.Enums.Viewer; using DTS.Common.Interface.ISO.ExtraProperties; using DTS.Common.Interface.RegionOfInterest; using System; using System.Collections.Generic; using System.ComponentModel; namespace DTS.Common.Interface.TestSetups.TestSetupsList { /// /// Describes a test setup record in the database /// public interface ITestSetupRecord { /// /// does a deep copy of provided test setup /// /// source record to copy void Copy(ITestSetupRecord copy); /// /// Database Id of test setup /// int Id { get; set; } /// /// Name of test setup /// string Name { get; set; } /// /// Description of test setup /// string Description { get; set; } /// /// whether test execution should progress automatically /// bool AutomaticProgression { get; set; } /// /// delay between steps when using automatic progression /// int AutomaticProgressionDelayMS { get; set; } /// /// whether the trigger polarity should be switched from close to open /// bool InvertTriggerCompletion { get; set; } /// /// whether the start polarity should be switched from close to open /// bool InvertStartRecordCompletion { get; set; } /// /// Whether or not a shorted start should be ignored /// bool IgnoreShortedStartCompletion { get; set; } /// /// Whether or not a shorted trigger should be ignored /// bool IgnoreShortedTriggerCompletion { get; set; } /// /// Whether diagnostics should be a viewable step when executing test /// bool ViewDiagnostics { get; set; } /// /// whether verify channels should be a viewable step when executing test /// bool VerifyChannels { get; set; } bool AutoVerifyChannels { get; set; } double AutoVerifyDelaySeconds { get; set; } /// /// overall recording mode of test /// Some DAS may not support the actual recording mode but may support a related recording /// mode (example circular buffer + UART versus circular buffer) /// RecordingModes RecordingMode { get; set; } /// /// samples per second for test as overall value /// Each DAS can have it's own rate so this is mostly just to control the rate for new das added to a test /// double SamplesPerSecondAggregate { get; set; } /// /// amount of data pre trigger that is requested in seconds /// double PreTriggerSeconds { get; set; } /// /// amount of data post trigger that is requested in seconds /// double PostTriggerSeconds { get; set; } /// /// number of events to record if recording mode supports multiple events /// int NumberOfEvents { get; set; } /// /// whether all channels are required to pass diagnostics for test execution /// bool StrictDiagnostics { get; set; } /// /// whether user confirmation is required on diagnostic errors discovered before /// test execution continues /// bool RequireUserConfirmationOnErrors { get; set; } /// /// whether to perform a Region of Interest (ROI) download as a unique step of test execution /// bool DoROIDownload { get; set; } /// /// whether to include viewing region of interest (ROI) as a step of test execution /// bool ViewROIDownload { get; set; } /// /// whether to include downloading all available data as a step of test execution /// bool DownloadAll { get; set; } /// /// whether to include real time as a step of test execution /// bool ViewRealtime { get; set; } /// /// the number of plots to show in real time if viewing real time /// short DefaultNumberRealtimeGraphs { get; set; } BindingList RegionsOfInterest { get; set; } /// /// the start of the region of interest (deprecated?) /// double ROIStart { get; set; } /// /// the end of the region of interest (deprecated?) /// double ROIEnd { get; set; } /// /// whether to include viewing of all download data as a step of test execution /// bool ViewDownloadAll { get; set; } /// /// whether to include export as a step of test execution /// bool ViewExport { get; set; } /// /// Bit mask of export formats to select in export step by default /// SupportedExportFormatBitFlags ExportFormats { get; set; } string LabDetails { get; set; } /// /// Whether lab details should be included as a part of test execution /// bool UseLabratoryDetails { get; set; } string CustomerDetails { get; set; } /// /// Whether customer details should be included as a part of test execution /// bool UseCustomerDetails { get; set; } /// /// Whether to allow test execution to continue when sensors in test are missing /// bool AllowMissingSensors { get; set; } /// /// whether a sensor with an ID is allowed to be assigned on a channel if the Id /// was not found on that channel /// bool AllowSensorIdToBlankChannel { get; set; } CalibrationBehaviors CalibrationBehavior { get; set; } /// /// whether test setup record should be synchronized with central server /// (deprecated) /// bool LocalOnly { get; set; } /// /// when test setup was last modified /// DateTime LastModified { get; set; } /// /// who last modified test setup /// string LastModifiedBy { get; set; } bool TurnOffExcitation { get; set; } /// /// whether to use EU levels to "trigger" channels in realtime viewer /// bool TriggerCheckRealtime { get; set; } /// /// Whether to include trigger check as a step in test execution /// bool TriggerCheckStep { get; set; } /// /// whether to include post test diagnostics as a step in test execution /// bool PostTestDiagnosticsLevel { get; set; } /// /// whether there's an expectation that there is a common status line between all DAS /// in test. /// bool CommonStatusLine { get; set; } bool SameAsDownloadFolder { get; set; } /// /// whether to include upload data as a step /// bool UploadData { get; set; } /// /// folder to upload data to /// [legacy, superseded by upload ini file] /// string UploadFolder { get; set; } /// /// whether to upload only export data files when uploading files /// bool UploadExportsOnly { get; set; } string Settings { get; set; } bool WarnOnFailedBattery { get; set; } /// /// whether test setup completion has been calculated yet or not /// If dirty is true it has not been calculated and needs to be /// bool Dirty { get; set; } /// /// whether the test setup is complete and ready to run /// [dependent on Dirty] /// bool IsComplete { get; set; } /// /// any warnings or errors known in test setup, stored to avoid needing to calculate when retrieving all setups /// string ErrorMessage { get; set; } string TestEngineerDetails { get; set; } /// /// whether to use test engineer details in test execution /// bool UseTestEngineerDetails { get; set; } byte[] TagsBlobBytes { get; set; } /// /// whether units in the test should be auto armed /// bool DoAutoArm { get; set; } bool DoEnableRepeat { get; set; } /// /// Whether test is a checkout test /// this has multiple internal meanings including whether strict diagnostics are used or not, whether data /// should be collected from sensors or not, etc /// this should generally be false /// bool CheckoutMode { get; set; } /// /// Instrumentation Setup File used to create test setup, if relevant /// string ISFFile { get; set; } bool QuitTestWithoutWarning { get; set; } bool NotAllChannelsRealTime { get; set; } bool NotAllChannelsViewer { get; set; } bool SuppressMissingSensorsWarning { get; set; } bool DoStreaming { get; set; } ClockSyncProfile ClockSyncProfileMaster { get; set; } ClockSyncProfile ClockSyncProfileSlave { get; set; } List ExtraProperties { get; set; } bool MeasureSquibResistancesStep { get; set; } string TestSetupUniqueId { get; set; } bool LowgLevelTriggerOn { get; set; } bool LowgLevelTriggerOnX { get; set; } bool LowgLevelTriggerOnY { get; set; } bool LowgLevelTriggerOnZ { get; set; } bool HighgLevelTriggerOn { get; set; } bool HighgLevelTriggerOnX { get; set; } bool HighgLevelTriggerOnY { get; set; } bool HighgLevelTriggerOnZ { get; set; } bool AngularAccelLevelTriggerOn { get; set; } bool AngularAccelLevelTriggerOnX { get; set; } bool AngularAccelLevelTriggerOnY { get; set; } bool AngularAccelLevelTriggerOnZ { get; set; } bool AngularRateLevelTriggerOn { get; set; } bool AngularRateLevelTriggerOnX { get; set; } bool AngularRateLevelTriggerOnY { get; set; } bool AngularRateLevelTriggerOnZ { get; set; } double LowgLinearLevelTriggerX { get; set; } double LowgLinearLevelTriggerY { get; set; } double LowgLinearLevelTriggerZ { get; set; } double HighgLinearLevelTriggerX { get; set; } double HighgLinearLevelTriggerY { get; set; } double HighgLinearLevelTriggerZ { get; set; } double AngularRateLevelTriggerX { get; set; } double AngularRateLevelTriggerY { get; set; } double AngularRateLevelTriggerZ { get; set; } double AngularAccelLevelTriggerX { get; set; } double AngularAccelLevelTriggerY { get; set; } double AngularAccelLevelTriggerZ { get; set; } bool HumidityLevelTriggerOn { get; set; } bool PressureLevelTriggerOn { get; set; } bool TemperatureLevelTriggerOn { get; set; } double HumidityLevelTriggerBelow { get; set; } double HumidityLevelTriggerAbove { get; set; } double PressureLevelTriggerBelow { get; set; } double PressureLevelTriggerAbove { get; set; } double TemperatureLevelTriggerBelow { get; set; } double TemperatureLevelTriggerAbove { get; set; } double LowgLinearAccRate { get; set; } double HighgLinearAccRate { get; set; } double AngularRate { get; set; } double TemperatureHumidityPressureRate { get; set; } bool BatterySaverModeOn { get; set; } bool WakeUpAndArmTriggerOn { get; set; } WakeupTriggers WakeUpTrigger { get; set; } int WakeUpMagnetTimeout { get; set; } int WakeUpMotionTimeout { get; set; } DateTime WakeUpTimeSessionStart { get; set; } TimeSpan WakeUpTimeDuration { get; set; } bool TimedIntervalTriggerOn { get; set; } int IntervalBetweenEventStartsMinutes { get; set; } TimeUnitTypeEnum TimedIntervalUnits { get; set; } double TimedIntervalDuration { get; set; } double TimedIntervalEvents { get; set; } bool RTCScheduleTriggerOn { get; set; } DateTime RTCScheduleStartDateTime { get; set; } TimeSpan RTCScheduleDuration { get; set; } bool StartWithEvent { get; set; } void InitializeFromDefaults(CalibrationBehaviors calBehavior, RecordingModes recordingMode, double preTriggerSeconds, double postTriggerSeconds, int numEvents); } }