--- source_files: - Common/DTS.Common/Interface/TestSetups/TestSetupsList/ITestSetupsListView.cs - Common/DTS.Common/Interface/TestSetups/TestSetupsList/ITestSetupsListViewModel.cs - Common/DTS.Common/Interface/TestSetups/TestSetupsList/ITestSetup.cs - Common/DTS.Common/Interface/TestSetups/TestSetupsList/ITestSetupRecord.cs - Common/DTS.Common/Interface/TestSetups/TestSetupsList/ITestTemplate.cs generated_at: "2026-04-17T15:36:47.639334+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "ffffd7ac370d5e8e" --- # Test Setups List Module Documentation ## 1. Purpose This module defines the core interface hierarchy for test setup management in the DTS (Data Test System) application. It establishes contracts for test setup records (`ITestSetupRecord`), extended test setup functionality (`ITestSetup`), heavy test template operations (`ITestTemplate`), and the MVVM pattern for listing test setups (`ITestSetupsListView`, `ITestSetupsListViewModel`). These interfaces govern how test configurations are defined, stored, associated with hardware/sensors/groups, and presented to users for selection and manipulation. --- ## 2. Public Interface ### `ITestSetupsListView` **Signature:** `public interface ITestSetupsListView : IBaseView { }` A marker interface extending `IBaseView` with no additional members. Represents the view contract for displaying a list of test setups. --- ### `ITestSetupsListViewModel` **Signature:** `public interface ITestSetupsListViewModel : IBaseViewModel, IFilterableListView` | Member | Signature | Description | |--------|-----------|-------------| | `View` | `ITestSetupsListView View { get; set; }` | Associated view instance. | | `TestSetups` | `ITestSetup[] TestSetups { get; set; }` | Array of test setups displayed in the list. | | `SetTestSetups` | `void SetTestSetups(ITestSetup[] allTestSetups)` | Populates the list with the provided test setups. | | `Sort` | `void Sort(object sortBy, bool bColumnClick)` | Sorts the list by the specified criteria. | | `Unset` | `void Unset()` | Clears/unsets the view model state. | | `Filter` | `void Filter(string currentFilter)` | Filters the list by the given search term. | | `MouseDoubleClick` | `void MouseDoubleClick(int index)` | Handles double-click interaction on the item at the given index. | --- ### `ITestSetupRecord` **Signature:** `public interface ITestSetupRecord` Base interface describing a test setup record persisted in the database. Contains ~100+ properties organized into the following categories: **Identity & Metadata:** - `int Id`, `string Name`, `string Description` - `DateTime LastModified`, `string LastModifiedBy` - `string TestSetupUniqueId` **Test Execution Flow Control:** - `bool AutomaticProgression`, `int AutomaticProgressionDelayMS` - `bool ViewDiagnostics`, `bool VerifyChannels`, `bool AutoVerifyChannels`, `double AutoVerifyDelaySeconds` - `bool DoROIDownload`, `bool ViewROIDownload`, `bool DownloadAll`, `bool ViewDownloadAll`, `bool ViewExport`, `bool ViewRealtime` - `bool TriggerCheckStep`, `bool TriggerCheckRealtime`, `bool PostTestDiagnosticsLevel` - `bool UploadData`, `string UploadFolder`, `bool UploadExportsOnly` **Recording Configuration:** - `RecordingModes RecordingMode` - `double SamplesPerSecondAggregate`, `double PreTriggerSeconds`, `double PostTriggerSeconds` - `int NumberOfEvents` **Trigger Configuration:** - `bool InvertTriggerCompletion`, `bool InvertStartRecordCompletion` - `bool IgnoreShortedStartCompletion`, `bool IgnoreShortedTriggerCompletion` **Diagnostics & Validation:** - `bool StrictDiagnostics`, `bool RequireUserConfirmationOnErrors` - `bool AllowMissingSensors`, `bool AllowSensorIdToBlankChannel` - `CalibrationBehaviors CalibrationBehavior` **Region of Interest:** - `BindingList RegionsOfInterest` - `double ROIStart`, `double ROIEnd` (marked as deprecated in comments) **Level Triggers (Low-g, High-g, Angular):** - Boolean enable flags per axis: `LowgLevelTriggerOn`, `LowgLevelTriggerOnX/Y/Z`, `HighgLevelTriggerOnX/Y/Z`, `AngularAccelLevelTriggerOnX/Y/Z`, `AngularRateLevelTriggerOnX/Y/Z` - Threshold values: `LowgLinearLevelTriggerX/Y/Z`, `HighgLinearLevelTriggerX/Y/Z`, `AngularRateLevelTriggerX/Y/Z`, `AngularAccelLevelTriggerX/Y/Z` **Environmental Level Triggers:** - `bool HumidityLevelTriggerOn`, `bool PressureLevelTriggerOn`, `bool TemperatureLevelTriggerOn` - Threshold bounds: `HumidityLevelTriggerBelow/Above`, `PressureLevelTriggerBelow/Above`, `TemperatureLevelTriggerBelow/Above` **Wake-up & Interval Triggers:** - `bool WakeUpAndArmTriggerOn`, `WakeupTriggers WakeUpTrigger` - `int WakeUpMagnetTimeout`, `int WakeUpMotionTimeout` - `DateTime WakeUpTimeSessionStart`, `TimeSpan WakeUpTimeDuration` - `bool TimedIntervalTriggerOn`, `int IntervalBetweenEventStartsMinutes`, `TimeUnitTypeEnum TimedIntervalUnits`, `double TimedIntervalDuration`, `double TimedIntervalEvents` - `bool RTCScheduleTriggerOn`, `DateTime RTCScheduleStartDateTime`, `TimeSpan RTCScheduleDuration`, `bool StartWithEvent` **Completion Status:** - `bool Dirty` — If true, completion has not been calculated and needs to be. - `bool IsComplete` — Whether the test setup is ready to run. - `string ErrorMessage` — Cached warnings/errors. **Methods:** | Method | Signature | Description | |--------|-----------|-------------| | `Copy` | `void Copy(ITestSetupRecord copy)` | Deep copies the provided test setup record. | | `InitializeFromDefaults` | `void InitializeFromDefaults(CalibrationBehaviors, RecordingModes, double preTriggerSeconds, double postTriggerSeconds, int numEvents)` | Initializes the record with default values. | --- ### `ITestSetup` **Signature:** `public interface ITestSetup : ITestSetupRecord` Extends `ITestSetupRecord` with group management, hardware association, and channel configuration. **Properties:** | Property | Type | Description | |----------|------|-------------| | `ChannelsForGroup` | `Dictionary` | Maps groups to their associated channels. | | `DASClockMasterList` | `Dictionary` | DAS serial numbers to clock master status. | | `DASSampleRateList` | `Dictionary` | DAS serial numbers to sample rates. | | `DASAAFRateList` | `Dictionary` | DAS serial numbers to Anti-Alias Filter rates. | | `EncapsulatedDASList` | `Dictionary>` | Encapsulated DAS mappings. | | `Groups` | `ObservableCollection` | Collection of groups in the test setup. | | `AddedHardware` | `int[]` | Hardware IDs explicitly added regardless of group membership. | | `RemovedHardware` | `int[]` | Hardware IDs explicitly removed regardless of group membership. | | `TooltipVisibility` | `Visibility` | Tooltip visibility state. | | `TooltipMessage` | `string` | Tooltip content. | | `CompletionErrorMessage` | `string` | Error message for completion validation. | **Methods:** | Method | Signature | Description | |--------|-----------|-------------| | `AddGroup` | `void AddGroup(IGroup, IDictionary, IDictionary)` | Adds a group with sensor and channel lookups. | | `AddGroup` | `void AddGroup(IGroup, IDictionary, IDictionary, IChannelSetting[])` | Adds a group with sensor, hardware lookups, and channel defaults. | | `RemoveGroup` | `void RemoveGroup(IGroup)` | Removes a group from the test setup. | | `MoveGroupUp` | `void MoveGroupUp(IGroup)` | Moves a group up in display order. | | `MoveGroupDown` | `void MoveGroupDown(IGroup)` | Moves a group down in display order. | | `MoveGroupToDisplayOrder` | `void MoveGroupToDisplayOrder(IGroup, int displayOrder)` | Moves a group to a specific display position. | | `SaveGroups` | `void SaveGroups()` | Persists group changes. | | `AddHardware` | `void AddHardware(int dasId, string dasSerialNumber, IDASHardware[], IDictionary)` | Adds hardware with serial number. | | `AddHardware` | `void AddHardware(int dasId, IDictionary)` | Adds hardware by ID. | | `RemoveHardware` | `void RemoveHardware(int dasId, IDASHardware[], IDictionary)` | Removes hardware from the test setup. | | `SaveHardware` | `void SaveHardware()` | Persists hardware changes. | | `GetAllIncludedHardware` | `int[] GetAllIncludedHardware()` | Returns all hardware IDs included in the test. | | `GetSampleRate` | `double GetSampleRate(string dasSerialNumber, double defaultValue)` | Gets sample rate for a DAS, returning default if not set. | | `Filter` | `bool Filter(string term)` | Filters the test setup by search term. | | `GetChannels` | `List GetChannels()` | Returns all channels in the test setup. | | `SetTestSetupChannelOrder` | `void SetTestSetupChannelOrder()` | Establishes channel ordering. | --- ### `ITestTemplate` **Signature:** `public interface ITestTemplate : ITestSetup` The "heavy" test setup interface