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,77 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/CalculatedChannel/IAddCalculatedChannelView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/CalculatedChannel/IAddCalculatedChannelViewModel.cs
generated_at: "2026-04-17T16:37:00.038248+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "1ccb27a039f0f14f"
---
# Documentation: Calculated Channel View Interfaces
## 1. Purpose
This module defines the view and view model interfaces for the "Add Calculated Channel" feature within a larger MVVM (Model-View-ViewModel) architecture. It provides the contract for a dialog or panel that allows users to create calculated channels, exposing properties for ISO export configuration, DTS encoding settings, and a command for adding the calculated channel. The separation of `IAddCalculatedChannelView` and `IAddCalculatedChannelViewModel` follows the MVVM pattern to decouple UI presentation from business logic.
---
## 2. Public Interface
### `IAddCalculatedChannelView`
**Namespace:** `DTS.Common.Interface`
**Signature:**
```csharp
public interface IAddCalculatedChannelView : IBaseView { }
```
**Description:** A marker interface extending `IBaseView`. It defines no members of its own and serves solely as a type identifier for views that implement the Add Calculated Channel functionality.
---
### `IAddCalculatedChannelViewModel`
**Namespace:** `DTS.Common.Interface`
**Signature:**
```csharp
public interface IAddCalculatedChannelViewModel : IBaseViewModel
```
**Members:**
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `View` | `IBaseView` | get/set | Gets or sets the associated Search View. |
| `Parent` | `IBaseViewModel` | get/set | Gets or sets the parent view model in the hierarchy. |
| `PublishChanges()` | `void` | method | Publishes changes made in the view model. Implementation behavior is not specified in the interface. |
| `IncludeGroupNameInISOExport` | `bool` | get/set | Gets or sets a flag indicating whether the group name should be included in ISO export. |
| `DefaultDTSEncoding` | `int` | get/set | Gets or sets the default DTS encoding value. |
| `AddCalculatedChannelCommand` | `ICommand` | get | Gets the command for adding a calculated channel. |
| `ContextSearchRegion` | `object` | get/set | Gets or sets the context for the search region. |
---
## 3. Invariants
- `IAddCalculatedChannelView` must always be assignable to `IBaseView`.
- `IAddCalculatedChannelViewModel` must always be assignable to `IBaseViewModel`.
- `AddCalculatedChannelCommand` is read-only (getter only); implementations must provide the command instance at construction or via dependency injection.
- The `View` property on the view model is typed as `IBaseView`, suggesting it may hold a reference to any view implementing that base interface, not specifically `IAddCalculatedChannelView`.
---
## 4. Dependencies
### This module depends on:
- **`DTS.Common.Base`** — Provides `IBaseView` and `IBaseViewModel` base interfaces.
- **`System.Windows.Input`** — Provides `ICommand` interface (indicates WPF or similar XAML-based UI framework).
### What depends on this module:
- **Unclear from source alone.** Concrete implementations of `IAddCalculatedChannelView` and `IAddCalculatedChannelViewModel` would exist elsewhere in the codebase, likely in view and view model classes for the calculated channel feature.
---
## 5. Gotchas
1. **Namespace discrepancy with file

View File

@@ -0,0 +1,46 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/ChartOptions/IChartOptionsView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/ChartOptions/IChartOptionsViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/ChartOptions/IChartOptionsModel.cs
generated_at: "2026-04-17T16:35:27.913668+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "5a364fa570e5a57f"
---
# Documentation: Chart Options Interfaces
## 1. Purpose
This module defines the contract for chart configuration and visualization options within the DTS system. It provides the `IChartOptionsView`, `IChartOptionsViewModel`, and `IChartOptionsModel` interfaces that implement a Model-View-ViewModel (MVVM) pattern for managing chart display settings, including axis scaling, unit types, cursor functionality, zoom controls, and PDF export capabilities. These interfaces serve as the abstraction layer between chart visualization components and their underlying data/logic.
---
## 2. Public Interface
### IChartOptionsView
**Namespace:** `DTS.Common.Interface`
```csharp
public interface IChartOptionsView : IBaseView { }
```
A marker interface extending `IBaseView` with no additional members. Used to identify chart options view implementations.
---
### IChartOptionsViewModel
**Namespace:** `DTS.Common.Interface`
```csharp
public interface IChartOptionsViewModel : IBaseViewModel
```
**Properties:**
| Name | Type | Description |
|------|------|-------------|
| `View` | `IBaseView` | Gets or sets the Search View. |
| `Parent` | `IBaseViewModel` | Gets or sets the parent view model. |
| `Model` | `IChartOptionsModel`

View File

@@ -0,0 +1,41 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/Filter/IFilterView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Filter/IFilterViewModel.cs
generated_at: "2026-04-17T16:24:21.604994+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "61f92ffaad776a8f"
---
# Filter
### Purpose
This module defines the contract for filter components within the DTS Viewer subsystem. It provides the `IFilterView` and `IFilterViewModel` interfaces that establish the View-ViewModel pattern for filter UI components, enabling filtering functionality within search or data view contexts.
### Public Interface
**`IFilterView`**
- Signature: `public interface IFilterView : IBaseView`
- Description: Marker interface extending `IBaseView` for filter view components. No members defined.
**`IFilterViewModel`**
- Signature: `public interface IFilterViewModel : IBaseViewModel`
- Description: ViewModel interface for filter components with the following members:
- `IBaseView View { get; set; }` - Gets or sets the associated Search View.
- `IBaseViewModel Parent { get; set; }` - Gets or sets the parent ViewModel reference.
- `object ContextSearchRegion { get; set; }` - Gets or sets the context for the search region.
### Invariants
- `IFilterViewModel.View` must be assignable to an `IBaseView` implementation.
- `IFilterViewModel.Parent` must reference a valid parent `IBaseViewModel` when set.
- The namespace is declared as `DTS.Common.Interface` (note: file path suggests `DTS.Viewer/Filter` but namespace differs).
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView`, `IBaseViewModel`)
- **Dependents**: Unknown from source alone (consumers would implement these interfaces).
### Gotchas
- The file path suggests a `DTS.Viewer` namespace component, but the actual namespace is `DTS.Common.Interface`. The `// ReSharper disable CheckNamespace` directive in `IFilterViewModel.cs` indicates intentional namespace suppression, suggesting a historical discrepancy between file organization and namespace declaration.
---

View File

@@ -0,0 +1,95 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/IGraphMainView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/IGraphChannelView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/IGraphPropertyView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/ITestDataView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/IGraphPropertyViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/ITestDataSeriesView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/IGraphView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/IGraphViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/ITestDataViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/ITestDataSeriesViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/IGraphChannelViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/IGraphMainViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Graphs/ITestDataSeries.cs
generated_at: "2026-04-17T16:22:46.438361+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "90119c50c8a714cd"
---
# Graphs
### Purpose
This module defines the core interfaces for the Graph visualization subsystem within the DTS Viewer application. It establishes the contracts for the Model-View-ViewModel (MVVM) architecture, specifically handling the display of test data series, channel selection, and graph properties. It serves as the abstraction layer between the data models (test results) and the UI components rendering the graphs.
### Public Interface
**Views**
* `IGraphMainView` : `IBaseView` - Marker interface for the main graph view.
* `IGraphChannelView` : `IBaseView` - Marker interface for the channel selection view.
* `IGraphPropertyView` : `IBaseView` - Marker interface for the graph properties view.
* `ITestDataView` : `IBaseView` - Marker interface for the test data view.
* `IGraphView` : `IBaseView` - Marker interface for the graph view. Contains a commented-out method `SetGraphs`.
* `ITestDataSeriesView` : `IBaseView` - Interface for the data series view.
* `bool SaveReportToPDF(string directory)` - Saves the report to PDF.
* `bool SaveReportToCSV(string directory)` - Saves the report to CSV.
**ViewModels**
* `IGraphPropertyViewModel` : `IBaseViewModel`
* `IGraphPropertyView View { get; }` - Gets the associated View.
* `IGraphViewModel` : `IBaseViewModel`
* `IGraphView View { get; }` - Gets the associated View.
* `ITestDataSeriesView DataSeriesView { get; set; }` - Gets or sets the data series view.
* `ITestDataViewModel` : `IBaseViewModel`
* `ITestDataView View { get; set; }` - Gets or sets the View.
* `ITestDataSeries Model { get; set; }` - Gets or sets the Model.
* `ITestDataSeriesViewModel` : `IBaseViewModel`
* `ITestDataSeriesView View { get; set; }` - Gets or sets the View.
* `ITestDataSeries Model { get; set; }` - Gets or sets the Model.
* `void MoveCursor(object sender, KeyEventArgs e)` - Handles cursor movement logic.
* `string CurrentCursorValues { get; set; }` - Holds current cursor values.
* `IGraphChannelViewModel` : `IBaseViewModel`
* `IGraphChannelView View { get; }` - Gets the associated View.
* `ObservableCollection<ITestChannel> GraphChannelList { get; set; }` - List of available channels.
* `ObservableCollection<ITestChannel> SelectedGraphChannelList { get; set; }` - List of selected channels.
* `TestChannel SelectedGraphChannel { get; set; }` - Currently selected channel.
* `IGraphMainViewModel` : `IBaseViewModel`
* `IGraphMainView View { get; set; }` - Gets or sets the View.
* `IBaseViewModel Parent { get; set; }` - Reference to the parent ViewModel.
* `List<ITestChannel> LockedChannelList { get; set; }` - List of locked channels.
* `List<ITestChannel> SelectedChannelList { get; set; }` - List of selected channels.
* `string LockedGroupName { get; set; }` - Name of the locked group.
* `void PublishSelectedChannels()` - Publishes selected channels.
* `void AddSelectedChannel(ITestChannel channel)` - Adds a channel to selection.
* `void AddSelectedGroupChannels(string groupName, List<ITestChannel> channels)` - Adds a group of channels.
* `void AddLockedChannel(ITestChannel channel, bool isLocked)` - Adds a locked channel.
* `void AddLockedGroupChannels(string testName, string groupName, List<ITestChannel> channels, bool isLocked)` - Adds a locked group.
* `void GraphList_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)` - Handles collection changes.
**Models**
* `ITestDataSeries` : `IBaseModel` - Represents a single series of test data.
* Identifiers: `TestGroup`, `TestSetupName`, `TestId`, `ChannelId`, `HardwareChannel`, `Bridge`, `GroupName`, `ChannelName`.
* Data: `double[] Xvalue`, `double[] Yvalue`, `Brush GraphColor`.
* Metadata: `SWAAF`, `HWAAF`, `SampleRate`, `ISOCode`, `ISOChannelName`, `UserCode`, `UserChannelName`, `Description`, `SensorSN`, `EngineeringUnits`, `Excitation`, `Polarity`, `RecordingMode`.
* Statistics: `MinY`, `MaxY`, `AvgY`, `StdDevY`, `T0EUValue` (all strings).
* FFT Specifics: `bool FFT`, `double PeakFrequency`, `double PeakMagnitude`, `double GRMS`.
* HIC Specifics: `bool HIC`, `string HICValue`, `string T1Time`, `string T2Time`.
### Invariants
* All View interfaces must inherit from `IBaseView`.
* All ViewModel interfaces must inherit from `IBaseViewModel`.
* `ITestDataSeries` properties `PeakFrequency` and `PeakMagnitude` are only valid when `FFT` is true.
* `ITestDataSeries.GRMS` is only calculated for PSD results graphs.
### Dependencies
* `DTS.Common.Base` (for `IBaseView`, `IBaseViewModel`, `IBaseModel`).
* `DTS.Common.Classes.Viewer.TestMetadata` (for `TestChannel`, `ITestChannel`).
* `System.Windows.Media` (for `Brush`).
* `System.Collections.ObjectModel` (for `ObservableCollection`).
* `System.Windows.Input` (for `KeyEventArgs`).
### Gotchas
* Several files contain `// ReSharper disable CheckNamespace`, indicating potential namespace mismatches or refactoring in progress.
* `IGraphView` contains a commented-out

View File

@@ -0,0 +1,27 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/Legend/ILegendView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Legend/ILegendViewModel.cs
generated_at: "2026-04-17T16:24:10.493440+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "5097be44fb6f9cdc"
---
# Legend
### Purpose
This module defines the contract for the Legend component within the DTS Viewer subsystem. It provides interfaces for the View and ViewModel following the MVVM pattern, with the ViewModel exposing a reference to its associated View for legend display functionality.
### Public Interface
**ILegendView** (extends `IBaseView`)
- Marker interface with no additional members.
- Represents the view contract for legend display UI.
**ILegendViewModel** (extends `IBaseViewModel`)
- `ILegendView View { get; }` — Gets the Tab View associated with this ViewModel. Read-only property returning the paired legend view instance.
### Invariants
- `ILegendViewModel.View` must return a non-null `ILegendView` instance when accessed (assumed, not explicit in source).
-

View File

@@ -0,0 +1,73 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/MainView/IMainView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/MainView/IViewerMainView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/MainView/IViewerMainViewGrid.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/MainView/IMainViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/MainView/IViewerMainViewModel.cs
generated_at: "2026-04-17T16:02:06.098089+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "3ab13d6a0117777e"
---
# MainView
### Purpose
This module defines the core view and view-model interfaces for the DTS Viewer application's main window. It establishes the contract for main view implementations and provides region management for UI composition, supporting both standard and "Viewer" variants of the main view with navigation, graph, test, legend, diagnostic, statistics, cursor, and property regions.
### Public Interface
**IMainView** : `IBaseView`
- Empty marker interface extending `IBaseView`. No members defined.
**IViewerMainView** : `IBaseView`
- Empty marker interface extending `IBaseView`. No members defined.
**IViewerMainViewGrid** : `IBaseView`
- Empty marker interface extending `IBaseView`. No members defined.
**IMainViewModel** : `IBaseViewModel`
- `IBaseView View { get; }` — Gets the Main View.
- `object ContextNavigationRegion { get; set; }` — Region for navigation UI.
- `object ContextGraphRegion { get; set; }` — Region for graph display.
- `object ContextTestsRegion { get; set; }` — Region for tests UI.
- `object ContextGraphsRegion { get; set; }` — Region for graphs collection.
- `object ContextLegendRegion { get; set; }` — Region for legend display.
- `object ContextDiagRegion { get; set; }` — Region for diagnostics.
- `object ContextStatsRegion { get; set; }` — Region for statistics.
- `object ContextCursorRegion { get; set; }` — Region for cursor controls.
- `object ContextPropertyRegion { get; set; }` — Region for property display.
- `List<FrameworkElement> GetRegions()` — Returns a list of all region FrameworkElements.
**IViewerMainViewModel** : `IBaseViewModel`, `ISelectedDataViewModel`
- `IBaseView View { get; set; }` — Gets or sets the Main View.
- `bool Standalone { get; set; }` — Indicates if running in standalone mode.
- `string ConfigPath { get; set; }` — Path to configuration file.
- `bool DoesUserHaveEditPermission { get; set; }` — User edit permission flag.
- `Common.Enums.IsoViewMode ChannelCodeViewMode { get; set; }` — Channel code view mode setting.
- `Common.Enums.Sensors.CalibrationBehaviors CalibrationBehaviorSetting { get; set; }` — Calibration behavior setting.
- `bool CalibrationBehaviorSettableInViewer { get; set; }` — Whether calibration behavior can be set in viewer.
- `Visibility SettingsVisibility { get; }` — Visibility state for settings UI.
- `void ZoomReset()` — Resets zoom to default.
- `void LeftKeyPress()` — Handles left arrow key press.
- `void RightKeyPress()` — Handles right arrow key press.
- Inherits all region properties from `IMainViewModel` pattern (ContextNavigationRegion, ContextGraphRegion, etc.).
- `List<FrameworkElement> GetRegions()` — Returns a list of all region FrameworkElements.
### Invariants
- All view interfaces (`IMainView`, `IViewerMainView`, `IViewerMainViewGrid`) must inherit from `IBaseView`.
- `IMainViewModel.View` is read-only (getter only), while `IViewerMainViewModel.View` is read-write.
- All region properties (`ContextNavigationRegion`, `ContextGraphRegion`, etc.) are typed as `object`, suggesting loose typing for region content.
- `IViewerMainViewModel` additionally inherits from `ISelectedDataViewModel` (behavior unspecified in source).
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView`, `IBaseViewModel`, `IBaseClass`, `ISelectedDataViewModel`), `System.Collections.Generic`, `System.Windows`.
- **Depended on by**: Not determinable from source alone.
### Gotchas
- The module suppresses namespace checks via `// ReSharper disable CheckNamespace`, suggesting the file location may not match the declared namespace `DTS.Common.Interface`.
- `IMainViewModel` and `IViewerMainViewModel` have nearly identical region properties, but `View` differs in accessor (get vs get/set). The reason for this inconsistency is unclear from source.
- Region properties are typed as `object` rather than specific UI types, which may require runtime casting.
---

View File

@@ -0,0 +1,62 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/Menu/IMenuView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Menu/IMenuViewModel.cs
generated_at: "2026-04-17T16:36:46.261350+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "13bf8dbc76bc4cec"
---
# Documentation: DTS.Common.Interface Menu Interfaces
## 1. Purpose
This module defines the view and view model contracts for a menu component within an MVVM (Model-View-ViewModel) architecture. It establishes the relationship between `IMenuView` and `IMenuViewModel`, enabling the view model to maintain a reference to its associated view. The interfaces extend base view/view model abstractions from `DTS.Common.Base`, integrating the menu component into the broader application framework.
---
## 2. Public Interface
### `IMenuView`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseView`
A marker interface with no additional members. It serves as a type identifier for menu view implementations, inheriting all behavior from `IBaseView`.
---
### `IMenuViewModel`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseViewModel`
| Member | Type | Accessor | Description |
|--------|------|----------|-------------|
| `View` | `IMenuView` | get only | Returns the associated menu view instance. |
---
## 3. Invariants
- `IMenuViewModel.View` is read-only; implementations must provide the view at construction or through internal initialization, not via a public setter.
- All implementations of `IMenuView` must also satisfy the contract of `IBaseView`.
- All implementations of `IMenuViewModel` must also satisfy the contract of `IBaseViewModel`.
- The `View` property must return a non-null `IMenuView` instance when accessed (implied by typical MVVM patterns, though not explicitly enforced in the interface).
---
## 4. Dependencies
**This module depends on:**
- `DTS.Common.Base` — provides `IBaseView` and `IBaseViewModel` base interfaces.
**What depends on this module:**
- Cannot be determined from the provided source files alone. These interfaces are likely consumed by concrete menu view/view model implementations and possibly a dependency injection container or navigation system.
---
## 5. Gotchas
- **Marker interface:** `IMenuView` defines no members of its own. All behavior must come from `IBaseView`, which is not shown in these files.
- **Documentation mismatch:** The XML comment on `IMenuViewModel.View` states "Gets the Shell View," but the property is named `View` and returns `IMenuView`. It is unclear whether this is a copy-paste error or if the menu view is intended to serve as a shell component.
- **Tight coupling:** The view model holds a direct reference to the view interface, which may indicate a non-pure MVVM implementation or a specific framework requirement.

View File

@@ -0,0 +1,79 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/Navigation/INavigationView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Navigation/INavigationViewModel.cs
generated_at: "2026-04-17T16:36:43.112741+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "94b9c4671c376030"
---
# Documentation: Navigation Interfaces
## 1. Purpose
This module defines the core navigation interfaces for the DTS Viewer system, establishing the contract between navigation views and their corresponding view models within an MVVM (Model-View-ViewModel) architecture. It provides a typed abstraction layer that allows navigation components to be referenced generically while maintaining a clear separation between view and view model concerns.
---
## 2. Public Interface
### `INavigationView` (interface)
**Namespace:** `DTS.Common.Interface`
**Inherits from:** `IBaseView`
A marker interface for navigation view components. No members are defined; it serves solely as a type identifier that extends `IBaseView`.
```csharp
public interface INavigationView : IBaseView { }
```
---
### `INavigationViewModel` (interface)
**Namespace:** `DTS.Common.Interface`
**Inherits from:** `IBaseViewModel`
Defines the contract for navigation view models, providing access to an associated navigation view instance.
**Properties:**
| Name | Type | Access | Description |
|------|------|--------|-------------|
| `NavigationView` | `INavigationView` | `get` | Returns the associated navigation view instance. The XML documentation describes this as "Gets the Shell View." |
```csharp
public interface INavigationViewModel : IBaseViewModel
{
INavigationView NavigationView { get; }
}
```
---
## 3. Invariants
- `INavigationViewModel.NavigationView` must return a non-null `INavigationView` instance in a properly configured implementation (not enforced at interface level, but implied by the architecture).
- Any class implementing `INavigationView` must also satisfy the contract of `IBaseView`.
- Any class implementing `INavigationViewModel` must also satisfy the contract of `IBaseViewModel`.
- The `NavigationView` property is read-only; implementations are expected to provide this reference at construction or through internal initialization.
---
## 4. Dependencies
### This module depends on:
- **`DTS.Common.Base`** — Provides base interfaces:
- `IBaseView` (base for `INavigationView`)
- `IBaseViewModel` (base for `INavigationViewModel`)
### What depends on this module:
- **Unclear from source alone.** Consumers would include any concrete implementations of `INavigationView` or `INavigationViewModel`, as well as any components that need to reference navigation components generically.
---
## 5. Gotchas
- **Marker interface pattern:** `INavigationView` defines no members of its own. All expected behavior must come from `IBaseView` or be cast to a concrete type.
- **Documentation inconsistency:** The XML comment for `NavigationView` states "Gets the Shell View," which may be a copy-paste artifact or may indicate this interface is specifically intended for shell-level navigation. The relationship between "Shell View" and "Navigation View" terminology is unclear from the source alone.
- **No setter:** The `NavigationView` property is getter-only. How the view reference is initialized (constructor injection, property injection, service locator, etc.) is not specified in these interfaces.

View File

@@ -0,0 +1,60 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportMainViewGrid.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportResultsView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportSettingsView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportMainView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IChannelGRMSSummary.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportSettingsViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportResultsViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportSettingsModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportMainViewModel.cs
generated_at: "2026-04-17T16:34:19.269870+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "fe27c5bceaa4e73e"
---
# Documentation: PSD Report Interfaces
## 1. Purpose
This module defines the interface contracts for the Power Spectral Density (PSD) Report feature within the DTS Viewer application. It follows the Model-View-ViewModel (MVVM) architectural pattern, providing interfaces for Views, ViewModels, and Models that handle PSD analysis configuration, signal processing parameters (filters, windowing), and results presentation including GRMS (G-RMS) summaries per channel.
---
## 2. Public Interface
### View Interfaces
#### `IPSDReportMainView`
- **Signature:** `public interface IPSDReportMainView : IBaseView`
- **Behavior:** Marker interface for the main PSD report view. Extends `IBaseView`.
#### `IPSDReportMainViewGrid`
- **Signature:** `public interface IPSDReportMainViewGrid : IBaseView`
- **Behavior:** Marker interface for a grid component within the main PSD report view. Extends `IBaseView`.
#### `IPSDReportSettingsView`
- **Signature:** `public interface IPSDReportSettingsView : IBaseView`
- **Behavior:** Marker interface for the PSD report settings/configuration view. Extends `IBaseView`.
#### `IPSDReportResultsView`
- **Signature:** `public interface IPSDReportResultsView : IBaseView`
- **Behavior:** Marker interface for the PSD report results display view. Extends `IBaseView`.
---
### ViewModel Interfaces
#### `IPSDReportMainViewModel`
- **Signature:** `public interface IPSDReportMainViewModel : IBaseViewModel, ISelectedDataViewModel`
- **Behavior:** Main view model for the PSD Report feature. Manages navigation regions, user permissions, key press handling, and display settings.
- **Properties:**
- `IBaseView View { get; set; }` — Associated view instance.
- `object ContextNavigationRegion { get; set; }` — Navigation region context.
- `object ContextGraphRegion { get; set; }` — Graph region context.
- `object ContextTestsRegion { get; set; }` — Tests region context.
- `object ContextGraphsRegion { get; set; }` — Graphs region context.
- `object ContextLegendRegion { get; set; }` — Legend region context.
- `object ContextPropertyRegion { get; set; }`

View File

@@ -0,0 +1,94 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestDefinition/ITestMetadata.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestDefinition/ITestGraphs.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestDefinition/ITestSetupMetadata.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestDefinition/ITestSummary.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestDefinition/ITestRunMetadata.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestDefinition/ITestModule.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestDefinition/ITestCalculatedChannel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestDefinition/ITestChannel.cs
generated_at: "2026-04-17T15:33:03.656826+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "0be730e443db10bc"
---
# Test Definition Interfaces Documentation
## 1. Purpose
This module defines the core data contracts for test definitions in the DTS data acquisition system. It provides interfaces that model the hierarchical structure of a test run—including test metadata, hardware modules, measurement channels (both physical and calculated), and graph configurations. These interfaces serve as the abstraction layer between test data storage/parsing and the viewer application, enabling loose coupling between data representation and UI components.
---
## 2. Public Interface
### `ITestMetadata`
**Namespace:** `DTS.Common.Interface.TestDefinition`
Container interface aggregating test run and setup metadata.
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `TestRun` | `ITestRunMetadata` | get/set | Reference to test run metadata |
| `TestSetup` | `ITestSetupMetadata` | get/set | Reference to test setup metadata |
---
### `ITestRunMetadata`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `INotifyPropertyChanged`
Represents metadata for a single test run execution.
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `Name` | `string` | get/set | Test run name |
| `Id` | `string` | get/set | Test run identifier |
| `Description` | `string` | get/set | Test description |
| `InlineSerializedData` | `bool` | get/set | Whether data is serialized inline |
| `TestGuid` | `string` | get/set | Unique test identifier |
| `FaultFlags` | `int` | get/set | Fault status flags |
| `Software` | `string` | get/set | Software name used for test |
| `SoftwareVersion` | `string` | get/set | Software version |
| `DataType` | `string` | get/set | Type of data |
| `FileDate` | `DateTime` | get/set | File creation/modification date |
| `FilePath` | `string` | get/set | Path to test file |
| `Modules` | `List<ITestModule>` | get/set | Collection of hardware modules |
| `Channels` | `List<ITestChannel>` | get/set | Collection of measurement channels |
| `CalculatedChannels` | `List<ITestChannel>` | get/set | Collection of calculated channels |
---
### `ITestSetupMetadata`
**Namespace:** `DTS.Common.Interface`
Represents configuration metadata for test setup.
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `SetupName` | `string` | get/set | Name of the setup configuration |
| `TimeStamp` | `DateTime` | get/set | Setup timestamp |
| `TestGraphs` | `List<ITestGraphs>` | get/set | Collection of graph configurations |
| `CalibrationBehavior` | `CalibrationBehaviors` | get/set | Calibration behavior setting (enum from `DTS.Common.Enums.Sensors`) |
---
### `ITestModule`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `INotifyPropertyChanged`
Represents a hardware data acquisition module with extensive configuration.
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `SerialNumber` | `string` | get/set | Module serial number |
| `BaseSerialNumber` | `string` | get/set | Base serial number |
| `AaFilterRateHz` | `int` | get/set | Anti-aliasing filter rate |
| `Number` | `int` | get/set | Module number |
| `NumberOfSamples` | `int` | get/set | Total sample count |
| `UnsubsampledNumberOfSamples` | `int` | get/set | Sample count before subsampling |
| `RequestedPostTriggerSeconds` | `double` | get/set | Requested post-trigger duration |
| `RequestedPreTriggerSeconds` | `double` | get/set | Requested pre-trigger duration |
| `PostTriggerSeconds` | `

View File

@@ -0,0 +1,46 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestModification/ITestModificationView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestModification/ITestModificationViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestModification/ITestModificationModel.cs
generated_at: "2026-04-17T16:03:49.804655+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "499e2b4f1f7002a7"
---
# TestModification
### Purpose
This module defines the interfaces for the test modification feature, which allows users to modify channel properties including description, EU multiplier/offset, T0 timing, line fit parameters, sensitivity, software filters, and data flags. It follows the MVVM pattern with separate interfaces for View, ViewModel, and Model layers.
### Public Interface
**ITestModificationView**
- Signature: `public interface ITestModificationView : IBaseView`
- Description: Marker interface for test modification views. Inherits from `IBaseView` with no additional members.
**ITestModificationViewModel**
- Signature: `public interface ITestModificationViewModel : IBaseViewModel`
- Description: View model interface for test modification operations.
- Properties:
- `ITestModificationView View { get; set; }` - The associated view instance.
- `IBaseViewModel Parent { get; set; }` - Reference to the parent view model.
- `bool UseISOCodeFilterMapping { get; set; }` - Controls whether ISO code should be modified when software filter is modified.
- `bool UseZeroForUnfiltered { get; set; }` - Controls whether '0' or 'P' is used when ISO code is modified due to software filter modification.
- Methods:
- `void PublishChanges()` - Publishes modification changes.
**ITestModificationModel**
- Signature: `public interface ITestModificationModel : IBaseModel`
- Description: Model interface containing the state and validation logic for test modifications.
- Properties:
- `ITestModificationViewModel Parent { get; set; }` - Reference to parent view model.
- `ITestChannel SelectedChannel { get; set; }` - The channel on which modifications are based.
- `bool IsModifiedDescription { get; }` - Indicates if Description field has been modified.
- `string Description { get; set; }` - The `ChannelDescriptionString` of the selected channel.
- `bool IsModifiedEuMultiplier { get; }` - Indicates if EU multiplier has been modified.
- `double EuMultiplier { get; set; }` - EU multiplier of the selected channel.
- `double EuOffset { get; set; }` - EU offset of the selected channel.
- `bool IsModifiedEuOffset { get; }` - Indicates if EU offset has been modified.
- `bool IsModifiedT

View File

@@ -0,0 +1,68 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestModule/ITestModuleView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestModule/ITestModuleViewModel.cs
generated_at: "2026-04-17T16:36:42.241451+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "46a1136c4533f580"
---
# Documentation: ITestModuleView & ITestModuleViewModel
## 1. Purpose
This module defines two interfaces—`ITestModuleView` and `ITestModuleViewModel`—that establish the contract for a Test Module viewer component within the DTS system. Following the Model-View-ViewModel (MVVM) pattern, these interfaces provide the abstraction layer between the view layer and its corresponding view model, enabling decoupled UI components for test module inspection or management. The view model interface specifically exposes assembly-related functionality, suggesting this component is responsible for displaying or interacting with loaded .NET assemblies in a testing context.
---
## 2. Public Interface
### `ITestModuleView`
**Namespace:** `DTS.Common.Interface`
**Inherits from:** `IBaseView`
An empty marker interface that extends `IBaseView`. No members are defined beyond the inherited contract.
---
### `ITestModuleViewModel`
**Namespace:** `DTS.Common.Interface`
**Inherits from:** `IBaseViewModel`
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `AssemblyList` | `List<Assembly>` | get; set; | A mutable list of .NET assemblies available to or managed by the test module view model. |
---
## 3. Invariants
1. **Namespace Consistency**: Both interfaces reside in `DTS.Common.Interface` regardless of their physical file location in a `TestModule` subdirectory.
2. **Inheritance Chain**:
- `ITestModuleView` must always be assignable to `IBaseView`
- `ITestModuleViewModel` must always be assignable to `IBaseViewModel`
3. **AssemblyList Nullability**: The source does not specify whether `AssemblyList` may be null or must be initialized to an empty list. Callers should not assume non-null without external verification.
---
## 4. Dependencies
### This module depends on:
- **`DTS.Common.Base`** — Provides `IBaseView` and `IBaseViewModel` base interfaces
- **`System.Collections.Generic`** — Provides `List<T>` for the `AssemblyList` property
- **`System.Reflection`** — Provides the `Assembly` type used in `AssemblyList`
### What depends on this module:
*Cannot be determined from the provided source files alone.* Concrete implementations of these interfaces and consumers of `ITestModuleView`/`ITestModuleViewModel` are not present in the provided code.
---
## 5. Gotchas
1. **Namespace/Folder Mismatch**: The files are physically located in a `TestModule` subdirectory (`Common/DTS.CommonCore/Interface/DTS.Viewer/TestModule/`), but the declared namespace is `DTS.Common.Interface`—not `DTS.Common.Interface.TestModule` or `DTS.Common.Viewer.TestModule`. The `// ReSharper disable CheckNamespace` directive suppresses IDE warnings about this discrepancy. This may indicate:
- A deliberate flattening of the namespace hierarchy
- Historical refactoring that moved files without updating namespaces
- An organizational choice to keep all interfaces in a single namespace
2. **Empty View Interface**: `ITestModule

View File

@@ -0,0 +1,52 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestSummary/ITestSummaryListView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestSummary/ITestSummaryListViewModel.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestSummary/ITestSummary.cs
generated_at: "2026-04-17T16:35:09.324243+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "11bec197c9c0a2ab"
---
# Documentation: TestSummary Interfaces
## 1. Purpose
This module defines the contract for a Test Summary visualization component within the DTS system. It provides three interfaces—`ITestSummaryListView`, `ITestSummaryListViewModel`, and `ITestSummary`—that establish a Model-View-ViewModel (MVVM) pattern for displaying, selecting, and managing test summary data. The module serves as the abstraction layer between test data entities and their presentation in the viewer, enabling users to view lists of test summaries, select individual summaries for further operations, and access associated metadata, channels, and graphs.
---
## 2. Public Interface
### `ITestSummaryListView`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseView`
A marker interface with no members. Represents the view component for displaying test summary lists.
---
### `ITestSummaryListViewModel`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseViewModel`
| Member | Type | Description |
|--------|------|-------------|
| `View` | `ITestSummaryListView` (get) | Provides access to the associated Shell View. |
| `TestSummaryList` | `ObservableCollection<ITestSummary>` (get/set) | The bindable collection of test summaries displayed in the view. |
| `SelectedTestSummaryList` | `List<ITestSummary>` (get/set) | The subset of test summaries currently selected by the user. |
| `PublishSelectedTestSummaryList()` | `void` | Publishes the currently selected test summaries (mechanism unspecified in interface). |
| `TestSummaryList_CollectionChanged(object, NotifyCollectionChangedEventArgs)` | `void` | Event handler for changes to the `TestSummaryList` collection. |
---
### `ITestSummary`
**Namespace:** `DTS.Common.Interface.TestDefinition`
**Inherits:** `IBaseClass`
| Property | Type | Description |
|----------|------|-------------|
| `Id` | `string` | Unique identifier for the test summary. |
| `SetupName` | `string` | Name of the test setup configuration. |
| `Description` | `string` | Human-readable

View File

@@ -0,0 +1,82 @@
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/ViewerSettings/IViewerSettingsView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/ViewerSettings/IViewerSettingsViewModel.cs
generated_at: "2026-04-17T16:36:42.748844+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "0c5939668c00e6fc"
---
# Documentation: IViewerSettingsView & IViewerSettingsViewModel
## 1. Purpose
This module defines the contract for a Viewer Settings component within an MVVM architecture. `IViewerSettingsView` serves as a marker interface for the view layer, while `IViewerSettingsViewModel` defines the presentation logic for configuring viewer-related settings, specifically around calibration behavior options. The module facilitates the display and modification of viewer settings, including visibility control for calibration-related UI elements and the ability to persist changes.
---
## 2. Public Interface
### IViewerSettingsView
**Namespace:** `DTS.Common.Interface`
**Declaration:**
```csharp
public interface IViewerSettingsView : IBaseView { }
```
**Description:** A marker interface extending `IBaseView`. It defines no additional members beyond its base interface, serving purely as a type identifier for viewer settings views.
---
### IViewerSettingsViewModel
**Namespace:** `DTS.Common.Interface`
**Declaration:**
```csharp
public interface IViewerSettingsViewModel : IBaseViewModel
```
**Members:**
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `View` | `IViewerSettingsView` | get/set | The associated view instance bound to this view model. |
| `Parent` | `IBaseViewModel` | get/set | Reference to the parent view model in the hierarchy. |
| `PublishChanges()` | `void` | N/A | Method to persist or broadcast settings changes. |
| `CalibrationBehaviorSettingVisibility` | `Visibility` | get/set | Controls visibility of the calibration behavior setting UI element. |
| `OverallSettingsVisibility` | `Visibility` | get | Read-only visibility state for overall settings UI elements. |
| `AvailableCalibrationBehaviors` | `DisplayedCalibrationBehavior[]` | get | Array of available calibration behavior options for selection. |
| `CalibrationBehaviorSetting` | `DisplayedCalibrationBehavior` | get/set | The currently selected calibration behavior setting. |
---
## 3. Invariants
- `IViewerSettingsView` must always be assignable to `IBaseView`.
- `IViewerSettingsViewModel` must always be assignable to `IBaseViewModel`.
- `OverallSettingsVisibility` is read-only; implementing classes determine its value internally and cannot be set from outside the implementation.
- `AvailableCalibrationBehaviors` returns an array (not a collection), implying a fixed or snapshot set of options at the time of access.
- The `View` property establishes a two-way relationship between the view model and its view.
---
## 4. Dependencies
### This module depends on:
- **`System.Windows`** - For the `Visibility` enumeration type (WPF-specific).
- **`DTS.Common.Base`** - For `IBaseView` and `IBaseViewModel` base interfaces.
- **`DTS.Common.Classes.Sensors`** - For the `DisplayedCalibrationBehavior` class.
### What depends on this module:
- Not determinable from the provided source files alone.
---
## 5. Gotchas
- **WPF Coupling:** The use of `System.Windows.Visibility` ties this interface to WPF. This may limit portability to other UI frameworks (e.g., no direct compatibility with non-WPF platforms).
- **Array Return Type:** `Available