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,58 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/CachedItemsList/ICachedItemsListView.cs
- Common/DTS.CommonCore/Interface/TestSetups/CachedItemsList/ICachedItem.cs
- Common/DTS.CommonCore/Interface/TestSetups/CachedItemsList/ICachedItemsListViewModel.cs
generated_at: "2026-04-17T16:35:30.933340+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "a73c02a02fbc51f8"
---
# Documentation: Cached Items List Module
## 1. Purpose
This module provides an interface-based abstraction for managing and displaying a list of cached items within a test setup context. It enables the system to track cached entities (sensors, calibrations, and DAS hardware), compare their cached state against database state, and identify items that are either out-of-date or missing from the cache. 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 representing the view component for the cached items list. Inherits from `IBaseView` but defines no additional members.
---
### `ICachedItem`
**Signature:** `public interface ICachedItem`
Represents a single cached item with metadata about its cache and database state.
| 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. `DateTime.MinValue` indicates the item is no longer in the database. |
---
### `ICachedItemsListViewModel`
**Signature:** `public interface ICachedItemsListViewModel : IBaseViewModel`
The view model interface responsible for managing the cached items list presentation logic.
| Property | Type | Access | Description |
|----------|------|--------|-------------|
| `View` | `ICachedItemsListView` | get/set | The associated view instance. |
| `CachedItems` | `ICachedItem[]` | get/set | Array of cached items being managed. |
| `HasOutofDateCachedItems` | `bool` | get | Indicates whether any cached items are out of date. |
| `HasMissingSensors` | `bool` | get | Indicates whether any sensors are missing from the cache. |
**Methods:**
```csharp
bool SetCachedItems(ISensorData[] sensors, ISensorCalibration[] sensorCalibrations, IDASHardware[] hardware, IDASHardware[] allD

View File

@@ -0,0 +1,72 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/Diagnostics/IDiagnosticsTreeView.cs
- Common/DTS.CommonCore/Interface/TestSetups/Diagnostics/IDiagnosticsViewModel.cs
generated_at: "2026-04-17T16:37:01.136998+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "a8cb4804c71260be"
---
# Documentation: Diagnostics TreeView Interfaces
## 1. Purpose
This module defines the contract for a diagnostics tree view component within a test setup context. It establishes a view/view-model pattern where `IDiagnosticsTreeView` represents the view abstraction and `IDiagnosticsViewModel` serves as the view-model interface, providing a typed view reference and an `Unset()` method for cleanup or state reset operations.
---
## 2. Public Interface
### `IDiagnosticsTreeView`
**Namespace:** `DTS.Common.Interface.TestSetups.Diagnostics`
```csharp
public interface IDiagnosticsTreeView : IBaseView { }
```
A marker interface extending `IBaseView`. Declares no members of its own; its purpose is to provide a specific type identity for diagnostics tree view implementations within the broader view hierarchy.
---
### `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 not documented in source; likely used for cleanup or resetting state. |
---
## 3. Invariants
- `IDiagnosticsViewModel.View` must be assignable to `IDiagnosticsTreeView`.
- Both interfaces must inherit from their respective base types (`IBaseView` and `IBaseViewModel`) from `DTS.Common.Base`.
- The `View` property is publicly gettable and settable; no null constraints are expressed at the interface level.
---
## 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 consumers are visible in the provided files.
---
## 5. Gotchas
- **`IDiagnosticsTreeView` is empty:** It declares no members, functioning purely as a type marker. Any view-specific contract must be defined in implementing classes or other interfaces.
- **`Unset()` behavior is unspecified:** The method's purpose (cleanup, state reset, event detachment, etc.) is not documented in the source. Developers should consult implementing classes or external documentation.
- **Bidirectional coupling potential:** The view-model holds a mutable reference to the view (`View { get; set; }`), which may imply two-way communication patterns not visible in this interface definition.

View File

@@ -0,0 +1,82 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/AnalogChannels/IAnalogChannelsView.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/AnalogChannels/IAnalogChannelsViewModel.cs
generated_at: "2026-04-17T16:37:04.386711+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "2539ecbced0d427a"
---
# Documentation: IAnalogChannelsView & IAnalogChannelsViewModel
## 1. Purpose
This module defines the MVVM (Model-View-ViewModel) contracts for the Analog Channels component within the TTS (Test Setup) Import system. `IAnalogChannelsView` serves as a marker interface for the view layer, while `IAnalogChannelsViewModel` defines the presentation logic contract, including view binding and validation capabilities. These interfaces enable decoupled communication between the UI layer and business logic for analog channel configuration during test setup imports.
---
## 2. Public Interface
### IAnalogChannelsView
**Namespace:** `DTS.Common.Interface.TestSetups.Imports.TTS`
**Declaration:**
```csharp
public interface IAnalogChannelsView : IBaseView { }
```
**Description:** A marker interface extending `IBaseView`. Contains no members; its purpose is to provide type identity for analog channel views within the system's view hierarchy.
---
### IAnalogChannelsViewModel
**Namespace:** `DTS.Common.Interface.TestSetups.Imports.TTS`
**Declaration:**
```csharp
public interface IAnalogChannelsViewModel : IBaseViewModel
```
**Members:**
| Member | Signature | Description |
|--------|-----------|-------------|
| `View` | `IAnalogChannelsView View { get; set; }` | Property for binding the associated view instance to the view model. |
| `Validate` | `string Validate()` | Method that performs validation and returns a string result. The return value semantics are not documented in the source. |
---
## 3. Invariants
- `IAnalogChannelsView` must always be assignable to `IBaseView`.
- `IAnalogChannelsViewModel` must always be assignable to `IBaseViewModel`.
- The `View` property on `IAnalogChannelsViewModel` must accept and return instances of `IAnalogChannelsView` (not merely `IBaseView`).
- The `Validate()` method must return a non-null `string` (nullability constraints are not specified in the source).
---
## 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.** Consumers would be concrete implementations of these interfaces (views and view models) and any factories or DI containers that resolve them.
---
## 5. Gotchas
- **Empty marker interface:** `IAnalogChannelsView` has no members. Any behavior it provides comes entirely from `IBaseView`. Developers should not expect analog-channel-specific members on this interface.
- **Validate() return semantics unclear:** The `Validate()` method returns `string` rather than a boolean or a structured result object. The source does not indicate whether:
- An empty/null string indicates success
- A non-empty string contains an error message
- Multiple errors are concatenated or handled differently
Developers should consult implementing classes or related documentation to understand the expected contract.
- **Tight coupling between View and ViewModel:** The `IAnalogChannelsViewModel`

View File

@@ -0,0 +1,69 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/DIChannels/IDigitalInputChannelsView.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/DIChannels/IDigitalInputChannelsViewModel.cs
generated_at: "2026-04-17T16:37:03.560564+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "c8618ce717264863"
---
# Documentation: Digital Input Channels View Interfaces
## 1. Purpose
This module defines the View and ViewModel interfaces for the Digital Input Channels component within the Test Setups imports subsystem (TTS namespace). It establishes the contract for a Model-View-ViewModel (MVVM) pattern implementation, where `IDigitalInputChannelsViewModel` manages the presentation logic and maintains a reference to its associated `IDigitalInputChannelsView`. This abstraction layer allows for decoupled UI components that can be tested independently and swapped at runtime.
---
## 2. Public Interface
### `IDigitalInputChannelsView`
**Location:** `DTS.Common.Interface.TestSetups.Imports.TTS.DIChannels`
**Signature:**
```csharp
public interface IDigitalInputChannelsView : IBaseView { }
```
**Behavior:** A marker interface that extends `IBaseView`. It defines no members of its own, serving purely as a type identifier for views that display digital input channel data.
---
### `IDigitalInputChannelsViewModel`
**Location:** `DTS.Common.Interface.TestSetups.Imports.TTS.DIChannels`
**Signature:**
```csharp
public interface IDigitalInputChannelsViewModel : IBaseViewModel
{
IDigitalInputChannelsView View { get; set; }
}
```
**Behavior:** Defines the ViewModel contract for digital input channels. Inherits from `IBaseViewModel` and exposes a single property `View` of type `IDigitalInputChannelsView`, establishing a bidirectional association between the ViewModel and its View.
---
## 3. Invariants
- **Inheritance constraint:** `IDigitalInputChannelsView` must always be assignable to `IBaseView`, and `IDigitalInputChannelsViewModel` must always be assignable to `IBaseViewModel`.
- **View association:** Any concrete implementation of `IDigitalInputChannelsViewModel` is expected to provide a gettable and settable `View` property that accepts/returns an `IDigitalInputChannelsView` instance.
- **Namespace alignment:** Both interfaces reside in the same namespace (`DTS.Common.Interface.TestSetups.Imports.TTS.DIChannels`), implying they are intended to be versioned and deployed together.
---
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base` — Provides `IBaseView` and `IBaseViewModel` base interfaces from which these interfaces inherit.
### What depends on this module:
- **Unknown from source alone.** Concrete implementations of these interfaces, as well as consumers that inject or reference `IDigitalInputChannelsView` or `IDigitalInputChannelsViewModel`, are not present in the provided source files.
---
## 5. Gotchas
- **Empty marker interface:** `IDigitalInputChannelsView` defines no members. Its utility comes entirely from the type hierarchy (`IBaseView` inheritance) and its role as a typed contract for the `View` property on the ViewModel. Developers should not expect view-specific members at this interface level.
- **Mutable View property:** The `View` property on `IDigitalInputChannelsViewModel` is both get

View File

@@ -0,0 +1,36 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/DOChannels/IDigitalOutputChannelsView.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/DOChannels/IDigitalOutputChannelsViewModel.cs
generated_at: "2026-04-17T16:24:31.003813+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "1a2677fa31768837"
---
# DOChannels
### Purpose
This module defines the MVP interfaces for managing Digital Output Channels within TTS (Test Setup) imports. It provides a minimal contract for a view (`IDigitalOutputChannelsView`) and view model (`IDigitalOutputChannelsViewModel`) for the digital output channels feature.
### Public Interface
**IDigitalOutputChannelsView**
- `interface IDigitalOutputChannelsView : IBaseView` - Marker interface for the digital output channels view. No members defined beyond the base interface.
**IDigitalOutputChannelsViewModel**
- `interface IDigitalOutputChannelsViewModel : IBaseViewModel`
- `IDigitalOutputChannelsView View { get; set; }` - Gets or sets the associated view instance.
### Invariants
- `IDigitalOutputChannelsViewModel.View` must be set for proper MVP binding (implied by pattern, not explicit in source).
### Dependencies
- **Depends on**: `DTS.Common.Base` (`IBaseView`, `IBaseViewModel`)
- **Depended on by**: Unclear from source alone (likely TTS import digital output channel implementations)
### Gotchas
- The view model interface is minimal with only a `View` property. Any additional functionality must be defined in concrete implementations or other partial interfaces not shown here.
- The purpose of this specific module versus other TTS import modules is unclear from source alone—likely differentiated by channel type (digital output vs. other channel types).
---

View File

@@ -0,0 +1,42 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/EditFile/IEditFileView.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/EditFile/IEditFileViewModel.cs
generated_at: "2026-04-17T16:24:31.002115+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "0cddffcfcf84c198"
---
# EditFile
### Purpose
This module defines the MVP (Model-View-Presenter) interfaces for editing TTS (Test Setup) import files. It provides the contract for a view (`IEditFileView`) and its corresponding view model (`IEditFileViewModel`) that handles validation, view initialization, and sensor searching functionality within the TTS import workflow.
### Public Interface
**IEditFileView**
- `interface IEditFileView : IBaseView` - Marker interface for the edit file view. No members defined beyond the base interface.
**IEditFileViewModel**
- `interface IEditFileViewModel : IBaseViewModel`
- `IEditFileView View { get; set; }` - Gets or sets the associated view instance.
- `bool Validate()` - Performs validation logic (specific rules unclear from source alone).
- `bool ValidateChange(ITTSChannelRecord record = null)` - Validates changes on the page. If a record is passed, ensures there are no RequiredChannels with identical channel codes. Returns success status.
- `bool ChangeValidationIsNeeded { get; set; }` - Flag indicating whether change validation should be performed.
- `void InitializeView()` - Initializes components in the View UI.
- `void Search(string text)` - Filters available sensors by the given text.
### Invariants
- `IEditFileViewModel.View` must be set before calling `InitializeView()`, `Validate()`, `ValidateChange()`, or `Search()` (implied by typical MVP pattern, not explicit in source).
- `ValidateChange()` with a non-null `ITTSChannelRecord` must check for duplicate channel codes in RequiredChannels.
### Dependencies
- **Depends on**: `DTS.Common.Base` (`IBaseView`, `IBaseViewModel`), `DTS.Common.Interface.TestSetups.Imports.TTS.ReadFile` (`ITTSChannelRecord`)
- **Depended on by**: Unclear from source alone (likely TTS import feature implementations)
### Gotchas
- The `Validate()` method has no XML documentation, so its specific validation rules are unclear from source alone.
- The relationship between `Validate()` and `ValidateChange()` is not explicit—callers must understand when each is appropriate.
---

View File

@@ -0,0 +1,17 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/HardwareScan/IHardwareScanView.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/HardwareScan/IChannelSummary.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/HardwareScan/IDasSummary.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/HardwareScan/IHardwareSummaryRecord.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/HardwareScan/IHardwareScanViewModel.cs
generated_at: "2026-04-17T16:02:06.099417+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "a3a408bb1641fa3f"
---
# HardwareScan
### Purpose
This module provides interfaces for hardware scanning functionality within the TTS (Test Setup) import system. It defines contracts for summar

View File

@@ -0,0 +1,47 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/LevelTrigger/ILevelTriggerView.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/LevelTrigger/ILevelTriggerViewModel.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/LevelTrigger/ILevelTrigger.cs
generated_at: "2026-04-17T16:35:31.096125+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "722feaa9f32ee26f"
---
# Level Trigger Module Documentation
## 1. Purpose
This module defines the contract for a **Level Trigger** component within the TTS (Test/Test Setup) import system. It provides interfaces for configuring level triggers that can be associated with hardware channels, including their threshold values (percentage and engineering units), channel assignments, and serialization for hashing purposes. The module follows an MVVM pattern with separate View and ViewModel interfaces.
---
## 2. Public Interface
### `ILevelTriggerView`
**Namespace:** `DTS.Common.Interface`
**Inheritance:** `IBaseView`
A marker interface for the Level Trigger view component. No members defined beyond the base interface.
---
### `ILevelTriggerViewModel`
**Namespace:** `DTS.Common.Interface`
**Inheritance:** `IBaseViewModel`
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `View` | `ILevelTriggerView` | get/set | The associated view instance for this view model. |
---
### `ILevelTrigger`
**Namespace:** `DTS.Common.Interface.TestSetups.Imports.TTS.LevelTrigger`
**Properties:**
| Property | Type | Access | Description |
|----------|------|--------|-------------|
|

View File

@@ -0,0 +1,42 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/ReadFile/IReadFileView.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/ReadFile/IReadFileViewModel.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/ReadFile/ITTSSetup.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/ReadFile/ITTSChannelRecord.cs
generated_at: "2026-04-17T15:37:17.417008+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "1f8a982b2acbc86a"
---
# TTS Import Read File Module Documentation
## 1. Purpose
This module defines the interfaces for importing and managing TTS (Toyota Test Setup) configuration files. It provides the contract for reading test setup files, parsing channel records, and configuring test parameters including sensor assignments, trigger settings, and recording modes. The module serves as the abstraction layer between the file import logic and the view/view-model components in the DTS test configuration system.
---
## 2. Public Interface
### `IReadFileView`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseView`
A marker interface with no members, used to identify view implementations for the read file functionality.
---
### `IReadFileViewModel`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseViewModel`
| Member | Signature | Description |
|--------|-----------|-------------|
| `View` | `IReadFileView { get; set; }` | Associated view instance for this view-model. |
| `FileToImport` | `string { get; set; }` | Path to the file being imported. |
| `SetStatus` | `void SetStatus(string status)` | Sets the current status message. |
| `SetStatus` | `void SetStatus(string status, string error)` | Sets the status message with an error description. |
| `SetProgress` | `void SetProgress(double progress)` | Updates the progress indicator (0.0 to 1.0 expected). |
| `ReadFile` | `void ReadFile(string fileName, double defaultSampleRate, RecordingModes defaultMode, double defaultTTSPreTrigger, double defaultTTSPostTrigger, double defaultTTSROIStart

View File

@@ -0,0 +1,64 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/Summary/ISummaryChannel.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/Summary/ISummaryView.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/Summary/ISummaryViewModel.cs
generated_at: "2026-04-17T16:35:31.118094+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "329e778815fbba01"
---
# Documentation: TTS Summary Interfaces
## 1. Purpose
This module defines the contract for the Summary component within the TTS (Test Setup) import subsystem. It establishes a Model-View-ViewModel (MVVM) architecture for displaying and managing test setup summary information during import operations. The interfaces facilitate the presentation of channel assignments, test identification, recording parameters (sample rate, triggers, recording mode), and progress/status feedback to the user during the import workflow.
---
## 2. Public Interface
### ISummaryChannel
**Inherits from:** `IBaseClass`
Represents summary data for a single channel configuration.
| Member | Type | Description |
|--------|------|-------------|
| `ChannelType` | `string` (get/set) | Gets or sets the type identifier for the channel. |
| `Assigned` | `int` (get/set) | Gets or sets the assigned channel count or identifier. |
| `Unassigned` | `string` (get/set) | Gets or sets information about unassigned channels. |
---
### ISummaryView
**Inherits from:** `IBaseView`
Defines the view contract for rendering the summary display.
| Member | Signature | Description |
|--------|-----------|-------------|
| `UpdateTestIds` | `void UpdateTestIds(string[] serializedValues)` | Updates the view with an array of serialized test identifier values. |
| `GetTestId` | `string GetTestId()` | Retrieves the current test identifier from the view. |
| `SetTestName` | `void SetTestName(string testName)` | Sets the test name in the view. |
---
### ISummaryViewModel
**Inherits from:** `IBaseViewModel`
Defines the view model contract for coordinating summary data and view interactions.
**Properties:**
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `View` | `ISummaryView` | get/set | Gets or sets the associated view instance. |
| `TestSetupComplete` | `bool` | get/set | Gets or sets a flag indicating whether test setup has completed. |
| `ImportFileName` | `string` | get | Gets the import file name. |
| `TestSetupName` | `string` | get | Gets the test setup name. |
| `SampleRate` | `double` | get

View File

@@ -0,0 +1,75 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/TOMChannels/ITOMChannelsView.cs
- Common/DTS.CommonCore/Interface/TestSetups/Imports/TTS/TOMChannels/ITOMChannelsViewModel.cs
generated_at: "2026-04-17T16:37:02.625756+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "71c7e063b1b07cbd"
---
# Documentation: ITOMChannelsView & ITOMChannelsViewModel
## 1. Purpose
This module defines the View and ViewModel interfaces for the TOM Channels component within the TTS (Test Setup) import subsystem. It establishes the contract for the UI layer following the MVVM (Model-View-ViewModel) architectural pattern, enabling decoupling between the presentation logic and the view implementation. The interfaces serve as integration points for handling TOM Channels data during test setup imports.
---
## 2. Public Interface
### `ITOMChannelsView`
**Namespace:** `DTS.Common.Interface.TestSetups.Imports.TTS`
**Declaration:**
```csharp
public interface ITOMChannelsView : IBaseView { }
```
**Description:** A marker interface representing the view component for TOM Channels. It extends `IBaseView` from `DTS.Common.Base` but defines no additional members of its own. Concrete implementations are expected to provide the actual UI rendering for TOM Channels.
---
### `ITOMChannelsViewModel`
**Namespace:** `DTS.Common.Interface.TestSetups.Imports.TTS`
**Declaration:**
```csharp
public interface ITOMChannelsViewModel : IBaseViewModel
{
ITOMChannelsView View { get; set; }
}
```
**Description:** Defines the ViewModel contract for TOM Channels, extending `IBaseViewModel`. It exposes a single property:
| Property | Type | Access | Description |
|----------|------|--------|-------------|
| `View` | `ITOMChannelsView` | get; set; | Holds a reference to the associated view instance |
---
## 3. Invariants
- **Inheritance constraint:** `ITOMChannelsView` must always be assignable to `IBaseView`, and `ITOMChannelsViewModel` must always be assignable to `IBaseViewModel`.
- **View association:** Any valid `ITOMChannelsViewModel` implementation is expected to maintain a reference to an `ITOMChannelsView` instance through the `View` property.
- **Namespace organization:** Both interfaces belong to `DTS.Common.Interface.TestSetups.Imports.TTS`, indicating they are part of the TTS import feature area.
---
## 4. Dependencies
### This module depends on:
- **`DTS.Common.Base`** — Provides the base interfaces:
- `IBaseView` (parent of `ITOMChannelsView`)
- `IBaseViewModel` (parent of `ITOMChannelsViewModel`)
### What depends on this module:
- **Unknown from source alone.** Concrete implementations of `ITOMChannelsView` and `ITOMChannelsViewModel` would reference these interfaces, but no such implementations are present in the provided source files.
---
## 5. Gotchas
- **Marker interface:** `ITOMChannelsView` defines no members beyond its inheritance from `IBaseView`. This suggests it may exist primarily for type identification or compile-time constraints rather than defining behavioral contracts.
- **Bidirectional coupling:** The `ITOMChannelsViewModel.View` property creates a reference

View File

@@ -0,0 +1,179 @@
---
source_files:
- Common/DTS.CommonCore/Interface/TestSetups/TestSetupsList/ITestSetupsListView.cs
- Common/DTS.CommonCore/Interface/TestSetups/TestSetupsList/ITestSetupsListViewModel.cs
- Common/DTS.CommonCore/Interface/TestSetups/TestSetupsList/ITestSetup.cs
- Common/DTS.CommonCore/Interface/TestSetups/TestSetupsList/ITestSetupRecord.cs
- Common/DTS.CommonCore/Interface/TestSetups/TestSetupsList/ITestTemplate.cs
generated_at: "2026-04-17T15:36:29.795378+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "2595ad599ee7b0c4"
---
# Test Setups Module Documentation
## 1. Purpose
This module defines the interface contracts for the Test Setup management system within DTS. It provides the data structures and behaviors for configuring, storing, and managing test setups—configurations for Data Acquisition System (DAS) tests involving sensors, channels, groups, hardware, and various recording/trigger settings. The interfaces follow a Model-View-ViewModel (MVVM) pattern: `ITestSetupsListView`/`ITestSetupsListViewModel` handle UI presentation, while `ITestSetupRecord`/`ITestSetup`/`ITestTemplate` form a domain model hierarchy representing test configurations at increasing levels of complexity.
---
## 2. Public Interface
### ITestSetupsListView
```csharp
public interface ITestSetupsListView : IBaseView { }
```
An empty marker interface extending `IBaseView`. No members defined.
---
### ITestSetupsListViewModel
```csharp
public interface ITestSetupsListViewModel : IBaseViewModel, IFilterableListView
```
| Member | Signature | Description |
|--------|-----------|-------------|
| `View` | `ITestSetupsListView View { get; set; }` | Associated view instance |
| `TestSetups` | `ITestSetup[] TestSetups { get; set; }` | Array of test setup instances |
| `SetTestSetups` | `void SetTestSetups(ITestSetup[] allTestSetups)` | Populates the test setups array |
| `Sort` | `void Sort(object sortBy, bool bColumnClick)` | Sorts the list by specified criteria |
| `Unset` | `void Unset()` | Clears/resets the view model state |
| `Filter` | `void Filter(string currentFilter)` | Filters the list by search term |
| `MouseDoubleClick` | `void MouseDoubleClick(int index)` | Handles double-click on item at index |
---
### ITestSetupRecord
```csharp
public interface ITestSetupRecord
```
Base interface describing a test setup record persisted in the database.
**Core Properties:**
| Property | Type | Description |
|----------|------|-------------|
| `Id` | `int` | Database ID |
| `Name` | `string` | Test setup name |
| `Description` | `string` | Test setup description |
| `LastModified` | `DateTime` | Last modification timestamp |
| `LastModifiedBy` | `string` | User who last modified |
| `Dirty` | `bool` | If true, completion has not been calculated |
| `IsComplete` | `bool` | Whether setup is ready to run (depends on `Dirty`) |
| `ErrorMessage` | `string` | Cached warnings/errors |
**Automatic Progression:**
| Property | Type | Description |
|----------|------|-------------|
| `AutomaticProgression` | `bool` | Auto-progress through test steps |
| `AutomaticProgressionDelayMS` | `int` | Delay between auto steps |
**Trigger Configuration:**
| Property | Type | Description |
|----------|------|-------------|
| `InvertTriggerCompletion` | `bool` | Switch trigger polarity from close to open |
| `InvertStartRecordCompletion` | `bool` | Switch start polarity from close to open |
| `IgnoreShortedStartCompletion` | `bool` | Ignore shorted start condition |
| `IgnoreShortedTriggerCompletion` | `bool` | Ignore shorted trigger condition |
**Recording Settings:**
| Property | Type | Description |
|----------|------|-------------|
| `RecordingMode` | `RecordingModes` | Overall recording mode |
| `SamplesPerSecondAggregate` | `double` | Default sample rate for new DAS added |
| `PreTriggerSeconds` | `double` | Pre-trigger data duration |
| `PostTriggerSeconds` | `double` | Post-trigger data duration |
| `NumberOfEvents` | `int` | Events to record (if mode supports multiple) |
**Diagnostic & Verification:**
| Property | Type | Description |
|----------|------|-------------|
| `ViewDiagnostics` | `bool` | Show diagnostics as test step |
| `VerifyChannels` | `bool` | Show verify channels as test step |
| `AutoVerifyChannels` | `bool` | Auto-verify channels |
| `AutoVerifyDelaySeconds` | `double` | Delay before auto-verify |
| `StrictDiagnostics` | `bool` | Require all channels pass diagnostics |
| `RequireUserConfirmationOnErrors` | `bool` | Prompt user on diagnostic errors |
**ROI & Download:**
| Property | Type | Description |
|----------|------|-------------|
| `DoROIDownload` | `bool` | ROI download as unique step |
| `ViewROIDownload` | `bool` | View ROI as test step |
| `DownloadAll` | `bool` | Download all data as step |
| `ViewDownloadAll` | `bool` | View downloaded data as step |
| `RegionsOfInterest` | `BindingList<IRegionOfInterest>` | ROI collection |
| `ROIStart` | `double` | ROI start (deprecated) |
| `ROIEnd` | `double` | ROI end (deprecated) |
**Realtime & Export:**
| Property | Type | Description |
|----------|------|-------------|
| `ViewRealtime` | `bool` | Include realtime viewing step |
| `DefaultNumberRealtimeGraphs` | `short` | Number of realtime plots |
| `ViewExport` | `bool` | Include export as step |
| `ExportFormats` | `SupportedExportFormatBitFlags` | Default export format bitmask |
**Lab/Customer/Test Engineer:**
| Property | Type | Description |
|----------|------|-------------|
| `LabDetails` | `string` | Lab information |
| `UseLabratoryDetails` | `bool` | Include lab details in execution |
| `CustomerDetails` | `string` | Customer information |
| `UseCustomerDetails` | `bool` | Include customer details |
| `TestEngineerDetails` | `string` | Engineer information |
| `UseTestEngineerDetails` | `bool` | Include engineer details |
**Sensor & Calibration:**
| Property | Type | Description |
|----------|------|-------------|
| `AllowMissingSensors` | `bool` | Continue execution with missing sensors |
| `AllowSensorIdToBlankChannel` | `bool` | Allow sensor ID assignment to blank channel |
| `CalibrationBehavior` | `CalibrationBehaviors` | Calibration handling mode |
**Upload & Data:**
| Property | Type | Description |
|----------|------|-------------|
| `UploadData` | `bool` | Include upload as step |
| `UploadFolder` | `string` | Upload destination (legacy, superseded by ini file) |
| `UploadExportsOnly` | `bool` | Upload only export files |
| `SameAsDownloadFolder` | `bool` | Use download folder for upload |
**Level Triggers (Low-g Linear):**
| Property | Type |
|----------|------|
| `LowgLevelTriggerOn` | `bool` |
| `LowgLevelTriggerOnX/Y/Z` | `bool` |
| `LowgLinearLevelTriggerX/Y/Z` | `double` |
**Level Triggers (High-g Linear):**
| Property | Type |
|----------|------|
| `HighgLevelTriggerOn` | `bool` |
| `HighgLevelTriggerOnX/Y/Z` | `bool` |
| `HighgLinearLevelTriggerX/Y/Z` | `double` |
**Level Triggers (Angular):**
| Property | Type |
|----------|------|
| `AngularAccelLevelTriggerOn` | `bool` |
| `AngularAccelLevelTriggerOnX/Y/Z` | `bool` |
| `AngularAccelLevelTriggerX/Y/Z` | `double` |
| `AngularRateLevelTriggerOn` | `bool` |
| `AngularRateLevelTriggerOnX/Y/Z` | `bool` |
| `AngularRateLevelTriggerX/Y/Z` | `double` |
**Environmental Level Triggers:**
| Property | Type |
|----------|------|
| `HumidityLevelTriggerOn` | `bool` |
| `HumidityLevelTriggerBelow/Above` | `double` |
| `PressureLevelTriggerOn` | `bool` |
| `PressureLevelTriggerBelow/Above` | `double` |
| `TemperatureLevelTriggerOn` | `bool` |
| `TemperatureLevelTriggerBelow/Above` | `double` |
**Wake-up & RTC Triggers:**
| Property