This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/CachedItemsList/ICachedItemsListView.cs
- Common/DTS.Common/Interface/TestSetups/CachedItemsList/ICachedItem.cs
- Common/DTS.Common/Interface/TestSetups/CachedItemsList/ICachedItemsListViewModel.cs
generated_at: "2026-04-17T16:35:55.757289+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "75da6219632a1dae"
---
# Documentation: DTS.Common.Interface.TestSetups.CachedItemsList
## 1. Purpose
This module defines the contract for a cached items list component within a test setup system. It provides interfaces for tracking and displaying cached items (sensors, calibrations, and DAS hardware), enabling comparison between cached state and database state to identify stale or missing items. The module follows a Model-View-ViewModel (MVVM) pattern, separating the view concerns from the presentation logic.
---
## 2. Public Interface
### `ICachedItemsListView`
**Signature:** `public interface ICachedItemsListView : IBaseView { }`
A marker interface extending `IBaseView` with no additional members. Represents the view abstraction for displaying cached items.
---
### `ICachedItem`
**Signature:** `public interface ICachedItem`
Defines the data contract for a single cached item.
| Property | Type | Access | Description |
|----------|------|--------|-------------|
| `Name` | `string` | get | The name of the cached item. |
| `ObjectType` | `string` | get | The type of the cached object. |
| `CacheTime` | `DateTime` | get | The timestamp when the item was cached. |
| `DBTime` | `DateTime` | get | The last modified time in the database. Returns `DateTime.MinValue` if the item no longer exists in the database. |
---
### `ICachedItemsListViewModel`
**Signature:** `public interface ICachedItemsListViewModel : IBaseViewModel`
Defines the presentation logic for the cached items list view.
| Property | Type | Access | Description |
|----------|------|--------|-------------|
| `View` | `ICachedItemsListView` | get/set | The associated view instance. |
| `CachedItems` | `ICachedItem[]` | get/set | Array of cached items managed by this view model. |
| `HasOutofDateCachedItems` | `bool` | get | Indicates whether any cached items are out of date. |
| `HasMissingSensors` | `bool` | get | Indicates whether there are missing sensors. |
**Methods:**
```csharp
bool SetCachedItems(ISensorData[] sensors, ISensorCalibration[] sensorCalibrations, IDASHardware[] hardware, IDASHardware[] allDAS)
```
Populates the cached items collection based on the provided sensor data, calibrations, and hardware arrays. Returns `bool` indicating success or failure.
---
## 3. Invariants
1. **DBTime Sentinel Value:** When `ICachedItem.DBTime`

View File

@@ -0,0 +1,72 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/Diagnostics/IDiagnosticsTreeView.cs
- Common/DTS.Common/Interface/TestSetups/Diagnostics/IDiagnosticsViewModel.cs
generated_at: "2026-04-17T16:37:48.409358+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "f18509de516a33fa"
---
# Documentation: Diagnostics Tree View Interfaces
## 1. Purpose
This module defines the contract for a diagnostics tree view component within the test setups subsystem. It establishes a view/viewmodel pattern where `IDiagnosticsTreeView` represents the view abstraction and `IDiagnosticsViewModel` serves as the view model interface, enabling separation of concerns for diagnostic tree visualization. The module exists to allow different concrete implementations of diagnostics tree UI components while maintaining a consistent interface for consumers.
---
## 2. Public Interface
### `IDiagnosticsTreeView`
**Namespace:** `DTS.Common.Interface.TestSetups.Diagnostics`
```csharp
public interface IDiagnosticsTreeView : IBaseView { }
```
A marker interface extending `IBaseView`. It defines no members of its own; its purpose appears to be type identification for diagnostics tree view implementations.
---
### `IDiagnosticsViewModel`
**Namespace:** `DTS.Common.Interface.TestSetups.Diagnostics`
```csharp
public interface IDiagnosticsViewModel : IBaseViewModel
{
IDiagnosticsTreeView View { get; set; }
void Unset();
}
```
| Member | Signature | Description |
|--------|-----------|-------------|
| `View` | `IDiagnosticsTreeView View { get; set; }` | Property providing access to the associated diagnostics tree view instance. Readable and writable. |
| `Unset` | `void Unset()` | Method with no parameters and no return value. Purpose is unclear from source alone—likely performs cleanup or clears state. |
---
## 3. Invariants
- `IDiagnosticsViewModel` implementations must provide both a getter and setter for the `View` property.
- The `View` property must be assignable to `IDiagnosticsTreeView` (or `null`, unless otherwise constrained).
- Both interfaces inherit from base interfaces (`IBaseView` and `IBaseViewModel` respectively), implying any invariants defined in those base contracts also apply.
---
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base` — provides `IBaseView` and `IBaseViewModel` base interfaces.
### What depends on this module:
- **Cannot be determined from source alone.** No downstream consumers are visible in these files.
---
## 5. Gotchas
- **`IDiagnosticsTreeView` is an empty marker interface.** It adds no members beyond `IBaseView`. Its utility is unclear from source alone—it may serve for type discrimination, dependency injection registration, or future extensibility.
- **`Unset()` method semantics are undefined.** The name suggests cleanup or state clearing, but the exact behavior (what is unset, whether it disposes resources, whether it nulls the `View` property) is not documented in the source.
- **View property is mutable.** The `View` property has both getter and setter, allowing external code to replace the view instance. It is unclear whether this is intentional or whether validation should occur on assignment.

View File

@@ -0,0 +1,23 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/AnalogChannels/IAnalogChannelsView.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/AnalogChannels/IAnalogChannelsViewModel.cs
generated_at: "2026-04-17T16:06:54.452779+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "8f484284cc0355e4"
---
# AnalogChannels
### Purpose
This module defines the View and ViewModel interfaces for Analog Channels within the TTS import subsystem. It provides the contract for UI components that manage analog channel configurations during test setup imports. Unlike other channel type interfaces, this ViewModel includes a validation method, suggesting analog channels require additional input verification.
### Public Interface
**IAnalogChannelsView**
- `interface IAnalogChannelsView : IBaseView` - Marker interface for the Analog Channels view. Inherits from `IBaseView` and defines no additional members.
**IAnalogChannelsViewModel**
- `interface IAnalogChannelsViewModel : IBaseViewModel` - ViewModel contract for Analog Channels.
- `IAnalogChannelsView View {

View File

@@ -0,0 +1,36 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/DIChannels/IDigitalInputChannelsView.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/DIChannels/IDigitalInputChannelsViewModel.cs
generated_at: "2026-04-17T16:06:54.452149+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "9204e71057c3aa5e"
---
# DIChannels
### Purpose
This module defines the View and ViewModel interfaces for Digital Input (DI) Channels within the TTS import subsystem. It provides the contract for UI components responsible for configuring digital input channel settings during test setup imports, following the established MVVM architecture pattern.
### Public Interface
**IDigitalInputChannelsView**
- `interface IDigitalInputChannelsView : IBaseView` - Marker interface for the Digital Input Channels view. Inherits from `IBaseView` and defines no additional members.
**IDigitalInputChannelsViewModel**
- `interface IDigitalInputChannelsViewModel : IBaseViewModel` - ViewModel contract for Digital Input Channels.
- `IDigitalInputChannelsView View { get; set; }` - Property to get or set the associated view instance.
### Invariants
- `IDigitalInputChannelsViewModel.View` must be assignable to `IDigitalInputChannelsView` type.
- Both interfaces must maintain inheritance from their respective base types to ensure framework compatibility.
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView` and `IBaseViewModel` base interfaces)
- **Depended on by**: Unknown from source alone (likely concrete implementations in UI/presentation layer)
### Gotchas
None identified from source alone.
---

View File

@@ -0,0 +1,38 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/DOChannels/IDigitalOutputChannelsView.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/DOChannels/IDigitalOutputChannelsViewModel.cs
generated_at: "2026-04-17T16:07:14.969532+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "655d9d3158c63211"
---
# DOChannels
### Purpose
This module defines the View and ViewModel interfaces for Digital Output Channels within the TTS (Test Setup) import system. It follows the MVVM pattern, providing a minimal contract for UI components that display digital output channel configurations. The interfaces serve as abstraction layers to decouple the UI presentation from its logic.
### Public Interface
**IDigitalOutputChannelsView** (interface)
- Inherits from `IBaseView`
- No members defined beyond the base interface
- Signature: `public interface IDigitalOutputChannelsView : IBaseView { }`
**IDigitalOutputChannelsViewModel** (interface)
- Inherits from `IBaseViewModel`
- Property: `IDigitalOutputChannelsView View { get; set; }` - Gets or sets the associated view instance
### Invariants
- `IDigitalOutputChannelsViewModel.View` must be assignable to `IDigitalOutputChannelsView` type
- Both interfaces must remain castable to their base types (`IBaseView`, `IBaseViewModel`)
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView` and `IBaseViewModel`)
- **Depended on by**: Unknown from source alone (likely Digital Output Channels UI components)
### Gotchas
- The interfaces are intentionally minimal, defining no additional members beyond the View property. This suggests either a placeholder for future expansion or a design where behavior is defined entirely in base interfaces or concrete implementations.
---

View File

@@ -0,0 +1,67 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/EditFile/IEditFileView.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/EditFile/IEditFileViewModel.cs
generated_at: "2026-04-17T16:37:50.222491+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "5ac38e6f5fa9cdc0"
---
# Documentation: DTS.Common.Interface.TestSetups.Imports.TTS.EditFile
## 1. Purpose
This module defines the View-ViewModel contract for the "Edit File" functionality within the TTS (Test Setup) Imports subsystem. It provides two interfaces—`IEditFileView` and `IEditFileViewModel`—that establish the pattern for UI components responsible for editing file records, including validation logic, view initialization, and sensor search capabilities.
---
## 2. Public Interface
### `IEditFileView`
**Location:** `DTS.Common.Interface.TestSetups.Imports.TTS.EditFile`
**Signature:**
```csharp
public interface IEditFileView : IBaseView { }
```
**Description:** A marker interface extending `IBaseView` with no additional members. Serves as the view contract for the Edit File feature.
---
### `IEditFileViewModel`
**Location:** `DTS.Common.Interface.TestSetups.Imports.TTS.EditFile`
**Signature:**
```csharp
public interface IEditFileViewModel : IBaseViewModel
```
**Members:**
| Member | Signature | Description |
|--------|-----------|-------------|
| `View` | `IEditFileView View { get; set; }` | Gets or sets the associated view instance. |
| `Validate` | `bool Validate()` | Performs validation; returns success status. Behavior specifics not documented in source. |
| `ValidateChange` | `bool ValidateChange(ITTSChannelRecord record = null)` | Validates changes on the page. If a `record` is passed, also ensures there are no `RequiredChannels` with identical channel codes. Returns success status. |
| `ChangeValidationIsNeeded` | `bool ChangeValidationIsNeeded { get; set; }` | Gets or sets a flag indicating whether change validation should be performed. |
| `InitializeView` | `void InitializeView()` | Initializes components in the View UI. |
| `Search` | `void Search(string text)` | Filters the available sensors by the given text parameter. |
---
## 3. Invariants
- `IEditFileView` must always be assignable to `IBaseView`.
- `IEditFileViewModel` must always be assignable to `IBaseViewModel`.
- `ValidateChange(ITTSChannelRecord record = null)` guarantees that when a non-null `record` is provided, duplicate channel codes in `RequiredChannels` will be detected and fail validation.
- The `View` property on `IEditFileViewModel` is intended to hold a reference to an `IEditFileView` implementation, though the source does not enforce non-null assignment.
---
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base` — Provides `IBaseView` and `IBaseViewModel` base interfaces.
- `DTS.Common.Interface.TestSetups.Imports.TTS.ReadFile`

View File

@@ -0,0 +1,54 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/HardwareScan/IHardwareScanView.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/HardwareScan/IChannelSummary.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/HardwareScan/IDasSummary.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/HardwareScan/IHardwareSummaryRecord.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/HardwareScan/IHardwareScanViewModel.cs
generated_at: "2026-04-17T16:34:40.953710+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "9b3c4686a829010b"
---
# Hardware Scan Interfaces Documentation
## 1. Purpose
This module defines the contract interfaces for a hardware scanning subsystem within the TTS (Test Setup Import) feature. It provides abstractions for scanning hardware resources, summarizing channel assignments, tracking DAS (Data Acquisition System) unit status, and aggregating hardware counts by type. The interfaces follow a Model-View-ViewModel (MVVM) pattern, supporting WPF-based UI presentation of hardware scan results.
---
## 2. Public Interface
### `IHardwareScanView`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseView`
A marker interface for the hardware scan view. No members defined.
---
### `IChannelSummary`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseClass`
Represents a summary of channel allocation status.
| Property | Type | Access |
|----------|------|--------|
| `ChannelType` | `string` | get/set |
| `Requested` | `int` | get/set |
| `Assigned` | `int` | get/set |
| `Unassigned` | `int` | get/set |
---
### `IDasSummary`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseClass`
Represents DAS unit status information with visual indicators.
| Property | Type | Access |
|----------|------|--------|

View File

@@ -0,0 +1,58 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/LevelTrigger/ILevelTriggerView.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/LevelTrigger/ILevelTriggerViewModel.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/LevelTrigger/ILevelTrigger.cs
generated_at: "2026-04-17T16:35:56.289883+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "c0de14b7a11078a6"
---
# Level Trigger Module Documentation
## 1. Purpose
This module defines the contract for Level Trigger components within the TTS (Test Setup) import system. It provides three interfaces that follow a Model-View-ViewModel (MVVM) pattern: `ILevelTrigger` represents the core data model and business logic for a level trigger configuration, while `ILevelTriggerView` and `ILevelTriggerViewModel` facilitate UI binding. Level triggers appear to be hardware-related test configuration entities that associate with channels and track values in both percentage and engineering units (EU).
---
## 2. Public Interface
### `ILevelTriggerView`
**Namespace:** `DTS.Common.Interface`
**Signature:** `public interface ILevelTriggerView : IBaseView { }`
A marker interface extending `IBaseView`. No members are defined; it serves as a view contract for MVVM binding.
---
### `ILevelTriggerViewModel`
**Namespace:** `DTS.Common.Interface`
**Signature:** `public interface ILevelTriggerViewModel : IBaseViewModel`
| Property | Type | Access | Description |
|----------|------|--------|-------------|
| `View` | `ILevelTriggerView` | get/set | The associated view instance for this view model. |
---
### `ILevelTrigger`
**Namespace:** `DTS.Common.Interface.TestSetups.Imports.TTS.LevelTrigger`
**Signature:** `public interface ILevelTrigger`
#### Properties
| Property | Type | Access | Description |
|----------|------|--------|-------------|
| `Code` | `string` | get | Identifier code for this level trigger. |
| `JCode` | `string` | get | Secondary identifier (purpose unclear from source). |
| `ValuePercent` | `double` | get/set | Trigger value expressed as a percentage. |
| `ValueEU` | `double` | get/set | Trigger value in engineering units. |
| `EULabel` | `string` | get | Label for the engineering units value. |
| `HWSerialNumber` | `string` | get | Hardware serial number associated with this trigger. |
| `ChannelNumber` | `int` | get | Numeric channel identifier. |
| `Channel` | `ITTSChannelRecord` | get/set | The currently assigned channel record. |
| `TestSetup` | `ITTSSetup` | get | The parent test setup this trigger belongs to. |
| `AvailableChannels` | `ITTSChannelRecord[]` | get | Array of channels that can be assigned to this trigger. |
| `IsActive` | `bool` |

View File

@@ -0,0 +1,79 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/ReadFile/IReadFileView.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/ReadFile/IReadFileViewModel.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/ReadFile/ITTSSetup.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/ReadFile/ITTSChannelRecord.cs
generated_at: "2026-04-17T15:37:43.106415+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "88957d45a6d8f2f6"
---
# Documentation: TTS Import File Reading Interfaces
## 1. Purpose
This module defines the core interfaces for reading and representing TTS (Toyota Test System) import files within the DTS test setup infrastructure. It establishes the MVVM contract for file reading operations (`IReadFileView`, `IReadFileViewModel`), defines the structure of a complete test setup configuration (`ITTSSetup`), and models individual channel records with their sensor, calibration, squib, and digital I/O settings (`ITTSChannelRecord`). The module serves as the abstraction layer between file parsing logic and the UI presentation of imported test configurations.
---
## 2. Public Interface
### `IReadFileView`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseView`
A marker interface for the view component in the file reading workflow. No members defined beyond the base interface.
---
### `IReadFileViewModel`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseViewModel`
| Member | Type | Description |
|--------|------|-------------|
| `View` | `IReadFileView` (get/set) | Reference to the associated view instance. |
| `FileToImport` | `string` (get/set) | Path to the file being imported. |
| `SetStatus(string status)` | `void` | Updates the status display with a message. |
| `SetStatus(string status, string error)` | `void` | Updates the status display with a message and error detail. |
| `SetProgress(double progress)` | `void` | Updates the progress indicator (value range unclear from source). |
| `ReadFile(...)` | `void` | Reads a TTS import file with specified default parameters. See signature below. |
**`ReadFile` method signature:**
```csharp
void ReadFile(
string fileName,
double defaultSampleRate,
RecordingModes defaultMode,
double defaultTTSPreTrigger,
double defaultTTSPostTrigger,
double defaultTTSROIStart,
double defaultTTSROIEnd,
bool defaultRequireEIDFound,
string defaultDigitalInputMode,
ISquibSettingDefaults squibDefaults
)
```
---
### `ReadFileDelegate`
**Namespace:** `DTS.Common.Interface`
```csharp
public delegate void ReadFileDelegate(string importFile);
```
A delegate type for reading a TTS import file.
---
### `ITTSSetup`
**Namespace:** `DTS.Common.Interface.TestSetups.Imports.TTS.ReadFile`
| Member | Type | Description |
|--------|------|-------------|
| `Filename` | `string` (get/set) | The setup filename. |
| `TestId` | `string` (

View File

@@ -0,0 +1,51 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/Summary/ISummaryChannel.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/Summary/ISummaryView.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/Summary/ISummaryViewModel.cs
generated_at: "2026-04-17T16:35:56.519072+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "b10d3674c80c12f5"
---
# Documentation: TTS Summary Interfaces
## 1. Purpose
This module defines the contract for the Summary component within the TTS (Test Test Setup) import subsystem. It establishes a Model-View-ViewModel (MVVM) architecture for managing test setup summaries, including channel configuration, test identification, and import status tracking. The interfaces enable decoupling between the UI layer and business logic for test setup import operations.
---
## 2. Public Interface
### `ISummaryChannel`
**Namespace:** `DTS.Common.Interface`
**Extends:** `IBaseClass`
Represents summary data for a single channel configuration.
| Property | Type | Access | Description |
|----------|------|--------|-------------|
| `ChannelType` | `string` | get/set | The type identifier for the channel |
| `Assigned` | `int` | get/set | Number of assigned items for this channel |
| `Unassigned` | `string` | get/set | Unassigned channel information as a string |
---
### `ISummaryView`
**Namespace:** `DTS.Common.Interface`
**Extends:** `IBaseView`
Defines the view contract for the summary UI component.
| Method | Signature | Description |
|--------|-----------|-------------|
| `UpdateTestIds` | `void UpdateTestIds(string[] serializedValues)` | Updates the view with an array of serialized test ID values |
| `GetTestId` | `string GetTestId()` | Retrieves the current test ID from the view |
| `SetTestName` | `void SetTestName(string testName)` | Sets the test name in the view |
---
### `ISummaryViewModel`
**Namespace:** `DTS.Common

View File

@@ -0,0 +1,36 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/TOMChannels/ITOMChannelsView.cs
- Common/DTS.Common/Interface/TestSetups/Imports/TTS/TOMChannels/ITOMChannelsViewModel.cs
generated_at: "2026-04-17T16:06:54.449843+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "a46082501779f1f0"
---
# TOMChannels
### Purpose
This module defines the View and ViewModel interfaces for TOM (Test Operations Module) Channels within the TTS (Test Test Setup) import subsystem. It follows the standard MVVM pattern used throughout the DTS codebase, providing a contract for UI components that manage TOM channel configurations during test setup imports.
### Public Interface
**ITOMChannelsView**
- `interface ITOMChannelsView : IBaseView` - Marker interface for the TOM Channels view. Inherits from `IBaseView` and defines no additional members.
**ITOMChannelsViewModel**
- `interface ITOMChannelsViewModel : IBaseViewModel` - ViewModel contract for TOM Channels.
- `ITOMChannelsView View { get; set; }` - Property to get or set the associated view instance.
### Invariants
- `ITOMChannelsViewModel.View` must be assignable to `ITOMChannelsView` type.
- Both interfaces must maintain inheritance from their respective base types (`IBaseView`, `IBaseViewModel`) to integrate with the DTS framework infrastructure.
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView` and `IBaseViewModel` base interfaces)
- **Depended on by**: Unknown from source alone (likely concrete implementations in UI/presentation layer)
### Gotchas
None identified from source alone.
---

View File

@@ -0,0 +1,154 @@
---
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<IRegionOfInterest> 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<IGroup, IGroupChannel[]>` | Maps groups to their associated channels. |
| `DASClockMasterList` | `Dictionary<string, bool>` | DAS serial numbers to clock master status. |
| `DASSampleRateList` | `Dictionary<string, double>` | DAS serial numbers to sample rates. |
| `DASAAFRateList` | `Dictionary<string, float>` | DAS serial numbers to Anti-Alias Filter rates. |
| `EncapsulatedDASList` | `Dictionary<string, List<string>>` | Encapsulated DAS mappings. |
| `Groups` | `ObservableCollection<IGroup>` | 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<int, ISensorData>, IDictionary<long, IGroupChannel>)` | Adds a group with sensor and channel lookups. |
| `AddGroup` | `void AddGroup(IGroup, IDictionary<int, ISensorData>, IDictionary<int, IDASHardware>, 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<int, IDASHardware>)` | Adds hardware with serial number. |
| `AddHardware` | `void AddHardware(int dasId, IDictionary<int, IDASHardware>)` | Adds hardware by ID. |
| `RemoveHardware` | `void RemoveHardware(int dasId, IDASHardware[], IDictionary<int, IDASHardware>)` | 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<IGroupChannel> 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