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,13 @@
---
source_files:
- Common/DTS.Common/Interface/BuildTestSetup/IBuildTestSetup.cs
generated_at: "2026-04-17T16:10:17.623733+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "334948e433f2c0b8"
---
# BuildTestSetup
### Purpose
This module

View File

@@ -0,0 +1,94 @@
---
source_files:
- Common/DTS.Common/Interface/Channels/IChannelSettingRecord.cs
- Common/DTS.Common/Interface/Channels/IGroupChannelSettingRecord.cs
- Common/DTS.Common/Interface/Channels/IChannelCode.cs
- Common/DTS.Common/Interface/Channels/IChannelSetting.cs
- Common/DTS.Common/Interface/Channels/IChannelDbRecord.cs
- Common/DTS.Common/Interface/Channels/IGroupChannel.cs
generated_at: "2026-04-17T15:34:44.843620+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "0ca0be184cb31e08"
---
# DTS.Common.Interface.Channels Documentation
## 1. Purpose
This module defines the core abstraction layer for channel management within the DTS (Data Acquisition System) domain. It provides interfaces for channel configuration persistence (`IChannelDbRecord`), channel settings management (`IChannelSetting`, `IChannelSettingRecord`, `IGroupChannelSettingRecord`), channel code identification (`IChannelCode`), and the primary aggregate channel interface (`IGroupChannel`) that combines database persistence, hardware/sensor assignment, and UI-facing state management. These interfaces serve as contracts between the data layer, business logic, and presentation layers for test setup configuration.
---
## 2. Public Interface
### IChannelSettingRecord
Defines a channel setting type definition (not an instance value).
| Member | Signature | Description |
|--------|-----------|-------------|
| `Id` | `int { get; set; }` | Unique identifier for the setting type. |
| `SettingName` | `string { get; set; }` | Name of the setting. |
| `DefaultValue` | `string { get; set; }` | Default value for this setting type. |
---
### IGroupChannelSettingRecord
Defines a setting value applied to a specific channel.
| Member | Signature | Description |
|--------|-----------|-------------|
| `ChannelId` | `long { get; set; }` | ID of the channel this setting applies to. |
| `SettingId` | `int { get; set; }` | Reference to the setting type ID. |
| `SettingValue` | `string { get; set; }` | The value applied to this channel. |
---
### IChannelCode
Defines a channel code identifier with type classification.
| Member | Signature | Description |
|--------|-----------|-------------|
| `Id` | `int { get; }` | Unique identifier (read-only). |
| `Code` | `string { get; }` | The code string value. |
| `Name` | `string { get; }` | Display name for the code. |
| `CodeType` | `ChannelEnumsAndConstants.ChannelCodeType { get; }` | Classification of the channel code type. |
---
### IChannelSetting
Defines a channel setting instance with typed value access and cloning capability.
| Member | Signature | Description |
|--------|-----------|-------------|
| `ChannelId` | `long { get; set; }` | ID of the associated channel. |
| `SettingTypeId` | `int { get; }` | The setting type identifier (read-only). |
| `SettingName` | `string { get; }` | Name of the setting (read-only). |
| `DefaultValue` | `string { get; }` | Default value for this setting (read-only). |
| `Value` | `string { get; set; }` | Raw string value. |
| `IntValue` | `int { get; set; }` | Integer interpretation of the value. |
| `DoubleValue` | `double { get; set; }` | Double interpretation of the value. |
| `BoolValue` | `bool { get; set; }` | Boolean interpretation of the value. |
| `Clone` | `IChannelSetting Clone()` | Creates a copy of this setting instance. |
---
### IChannelDbRecord
Defines the database persistence contract for a channel with Entity Framework data annotations.
| Member | Signature | Description |
|--------|-----------|-------------|
| `Id` | `long { get; set; }` | Primary key, mapped to column "Id". |
| `GroupId` | `int { get; set; }` | Foreign key to group, mapped to "GroupId". |
| `IsoCode` | `string { get; set; }` | ISO standard code, mapped to "IsoCode". |
| `IsoChannelName` | `string { get; set; }` | ISO channel name, mapped to "IsoChannelName". |
| `UserCode` | `string { get; set; }` | User-defined code, mapped to "UserCode". |
| `UserChannelName` | `string { get; set; }` | User-defined name, mapped to "UserChannelName". |
| `DASId` | `int { get; set; }` | Data Acquisition System ID, mapped to "DASId". |
| `DASChannelIndex` | `int { get; set; }` | Physical channel index on the DAS, mapped to "DASChannelIndex". |
| `GroupChannelOrder` | `int { get; set; }` | Sort order within group, mapped to "GroupChannelOrder". |
| `TestSetupOrder` | `int { get; set; }` | Sort order within test setup, mapped to "TestSetupOrder". |
| `SensorId` | `int { get; set; }` | Foreign key to sensor. |
| `Disabled` | `bool { get; set; }` | Whether channel is disabled, mapped to "Disabled". |
| `LastModified` | `DateTime { get; set; }` | Timestamp of last modification, mapped to "LastModified". |
| `LastModifiedBy` | `string { get; set;

View File

@@ -0,0 +1,84 @@
---
source_files:
- Common/DTS.Common/Interface/Channels/ChannelCodes/IChannelCodesListView.cs
- Common/DTS.Common/Interface/Channels/ChannelCodes/IChannelCodesListViewModel.cs
- Common/DTS.Common/Interface/Channels/ChannelCodes/IChannelCode.cs
generated_at: "2026-04-17T16:35:56.589507+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "71241a25844594e0"
---
# Documentation: Channel Codes Module
## 1. Purpose
This module defines the contract for a channel code management UI component within the DTS system. It provides interfaces for a View/ViewModel pattern that handles the display, editing, validation, and organization of two categories of channel codes: ISO channel codes and User-defined channel codes. The module abstracts the UI behavior for channel code lists, supporting operations such as filtering, sorting, copying, deleting, and bulk pasting of code data.
---
## 2. Public Interface
### `IChannelCodesListView`
**Namespace:** `DTS.Common.Interface.Channels.ChannelCodes`
**Signature:**
```csharp
public interface IChannelCodesListView : IBaseView { }
```
A marker interface extending `IBaseView` with no additional members. Represents the view contract for the channel codes list UI.
---
### `IChannelCodesListViewModel`
**Namespace:** `DTS.Common.Interface.Channels.ChannelCodes`
**Signature:**
```csharp
public interface IChannelCodesListViewModel : IBaseViewModel
```
**Properties:**
| Property | Type | Description |
|----------|------|-------------|
| `View` | `IChannelCodesListView` | Gets or sets the associated view instance. |
| `ISOChannelCodes` | `ObservableCollection<IChannelCode>` | Collection of ISO channel codes displayed in the UI. |
| `UserChannelCodes` | `ObservableCollection<IChannelCode>` | Collection of user-defined channel codes displayed in the UI. |
| `ChannelCodesFunc` | `Func<IList<IChannelCode>>` | Function delegate that returns a list of channel codes. |
| `ShowISOStringBuilder` | `bool` | Controls visibility of the ISO string builder UI element. |
| `UniqueISOCodesRequired` | `bool` | Indicates whether ISO codes must be unique. |
| `ShowChannelCodeLookupHelper` | `bool` | Controls visibility of the channel code lookup helper UI element. |
| `IsReadOnly` | `bool` | Controls whether the UI is in read-only mode. |
| `SelectedCodes` | `IChannelCode[]` | Returns an array of currently selected channel codes. |
**Methods:**
| Method | Signature | Description |
|--------|-----------|-------------|
| `Unset` | `void Unset()` | Clears or resets the view model state. |
| `SetPage` | `void SetPage(object page)` | Sets the current page context. |
| `OnSetActive` | `void OnSetActive()` | Called when the view becomes active. |
| `Save` | `bool Save()` | Persists changes. Returns success status. |
| `Validate` | `bool Validate(bool bDisplayWindow)` | Validates the current state. Parameter controls whether validation errors are displayed in a UI window. |
| `CopySelected` | `void CopySelected()` | Copies the currently selected channel codes. |
| `DeleteSelected` | `void DeleteSelected()` | Deletes the currently selected channel codes. |
| `Filter` | `void Filter(object columnTag, string searchTerm)` | Filters the displayed channel codes based on a column and search term. |
| `Sort` | `void Sort(object columnTag, bool bColumnClick)` | Sorts the displayed channel codes by the specified column. |
---
### `IChannelCode`
**Namespace:** `DTS.Common.Interface.Channels.ChannelCodes`
**Signature:**
```csharp
public interface IChannelCode
```
Represents a single channel code item for UI display and manipulation.
**Properties:**
| Property |

View File

@@ -0,0 +1,48 @@
---
source_files:
- Common/DTS.Common/Interface/CheckChannels/ICheckChannelsView.cs
- Common/DTS.Common/Interface/CheckChannels/ICheckChannelsViewModel.cs
- Common/DTS.Common/Interface/CheckChannels/ICheckChannelsMenuView.cs
- Common/DTS.Common/Interface/CheckChannels/ICheckChannelsMenuViewModel.cs
generated_at: "2026-04-17T16:22:07.564758+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "2700078ff70b5df1"
---
# CheckChannels
### Purpose
This module defines the view and ViewModel interfaces for a "Check Channels" feature within the DTS system. It provides both standard view/ViewModel pairs and Ribbon-specific variants, following the application's MVVM architecture pattern. The interfaces serve as contracts for UI components that allow users to verify or inspect channel configurations.
### Public Interface
**ICheckChannelsView** (`ICheckChannelsView.cs`)
- Signature: `public interface ICheckChannelsView : IBaseView`
- Description: Marker interface for the Check Channels view. Inherits from `IBaseView` but defines no additional members.
**ICheckChannelsViewModel** (`ICheckChannelsViewModel.cs`)
- Signature: `public interface ICheckChannelsViewModel : IBaseViewModel`
- Description: Marker interface for the Check Channels ViewModel. Inherits from `IBaseViewModel` but defines no additional members.
**ICheckChannelsMenuView** (`ICheckChannelsMenuView.cs`)
- Signature: `public interface ICheckChannelsMenuView : IRibbonView`
- Description: Marker interface for the Check Channels Ribbon menu view. Inherits from `IRibbonView` but defines no additional members.
**ICheckChannelsMenuViewModel** (`ICheckChannelsMenuViewModel.cs`)
- Signature: `public interface ICheckChannelsMenuViewModel : IRibbonViewModel`
- Description: Marker interface for the Check Channels Ribbon menu ViewModel. Inherits from `IRibbonViewModel` but defines no additional members.
### Invariants
- All views must implement `IBaseView` or `IRibbonView` respectively.
- All ViewModels must implement `IBaseViewModel` or `IRibbonViewModel` respectively.
- The menu variants (`ICheckChannelsMenuView`, `ICheckChannelsMenuViewModel`) are specifically for Ribbon-based UI integration.
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView`, `IBaseViewModel`, `IBaseModel`), `DTS.Common.RibbonControl` (for `IRibbonView`, `IRibbonViewModel`)
- **Depended on by**: Unknown from source alone (likely Check Channels feature implementation assemblies)
### Gotchas
- All four interfaces are marker interfaces with no members beyond their base types. Actual behavior contracts must be defined in implementing classes or documented elsewhere.
---

View File

@@ -0,0 +1,33 @@
---
source_files:
- Common/DTS.Common/Interface/CheckTrigger/ICheckTriggerView.cs
- Common/DTS.Common/Interface/CheckTrigger/ICheckTriggerViewModel.cs
generated_at: "2026-04-17T16:06:29.967191+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "16749ec2d102e7fd"
---
# CheckTrigger
### Purpose
This module defines the contract interfaces for the CheckTrigger feature following the MVVM (Model-View-ViewModel) pattern. It provides marker interfaces `ICheckTriggerView` and `ICheckTriggerViewModel` that extend base interfaces, enabling type-safe view/viewmodel associations and potentially supporting dependency injection or navigation frameworks.
### Public Interface
- **`ICheckTriggerView`** (interface) - Marker interface extending `IBaseView`. No additional members defined beyond the base interface.
- **`ICheckTriggerViewModel`** (interface) - Marker interface extending `IBaseViewModel`. No additional members defined beyond the base interface.
### Invariants
- Implementers of `ICheckTriggerView` must also satisfy the contract of `IBaseView` (members not visible in this source).
- Implementers of `ICheckTriggerViewModel` must also satisfy the contract of `IBaseViewModel` (members not visible in this source).
- The view and viewmodel interfaces are intended to be paired for the CheckTrigger feature.
### Dependencies
- **Depends on:** `DTS.Common.Base.IBaseView`, `DTS.Common.Base.IBaseViewModel`.
- **Depended on by:** Cannot be determined from source alone; likely used by CheckTrigger feature implementations and possibly an IoC container or navigation service.
### Gotchas
- These are marker interfaces with no additional members. The actual behavior contract is inherited from `IBaseView` and `IBaseViewModel` - refer to those base interfaces for the full API contract.
- The purpose of "CheckTrigger" is not documented in code; domain knowledge required to understand the feature's business purpose.
---

View File

@@ -0,0 +1,56 @@
---
source_files:
- Common/DTS.Common/Interface/Communication/ICommunicationReport.cs
- Common/DTS.Common/Interface/Communication/IDASConnectedDevice.cs
- Common/DTS.Common/Interface/Communication/ICommunication_DASInfo.cs
generated_at: "2026-04-17T16:35:32.988385+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "32c2a3f63497bcca"
---
# Documentation: DTS.Common.Interface.Communication
## 1. Purpose
This module defines a set of interfaces for modeling communication with Data Acquisition System (DAS) hardware and connected devices. It provides contracts for reporting communication results (`ICommunicationReport`), describing devices connected to a DAS (`IDASConnectedDevice`), and exposing DAS-specific metadata such as serial numbers, firmware versions, first-use tracking, and streaming capability (`ICommunication_DASInfo`). These interfaces enable decoupled communication between hardware abstraction layers and higher-level application logic.
---
## 2. Public Interface
### `ICommunicationReport`
Defines a structure for reporting the outcome of a communication operation.
| Member | Type | Description |
|--------|------|-------------|
| `UserState` | `object` | Gets or sets arbitrary user state associated with the communication. |
| `Result` | `CommunicationConstantsAndEnums.CommunicationResult` | Gets or sets the result status of the communication. |
| `Data` | `byte[]` | Gets or sets the raw data payload from the communication. |
---
### `IDASConnectedDevice`
Describes a device connected to a DAS (e.g., an S6 connected to an S6DB). Part of feature 10582 for auto-discovering and monitoring DAS status.
| Member | Type | Description |
|--------|------|-------------|
| `DeviceType` | `HardwareTypes` | Gets the hardware type of the connected device. |
| `Port` | `int` | Gets the 0-based port index on the DAS where the device is connected. |
| `SpotOnPort` | `int` | Gets the 0-based position on the chain or port where the device resides. |
| `PhysicalAddress` | `PhysicalAddress` | Gets the MAC/physical address of the device. |
| `IPAddress` | `string` | Gets the IP address of the device. |
| `SerialNumber` | `string` | Gets the serial number of the device. |
| `Location` | `string` | Gets the location descriptor of the device. |
| `Version` | `string` | Gets the firmware/hardware version of the device. |
---
### `ICommunication_DASInfo`
Provides metadata and device enumeration for a DAS unit.
| Member | Type | Description |
|--------|------|-------------|
| `ConnectedDevices` | `IDASConnectedDevice[]` | Gets the array of devices connected to this DAS. Currently only used by SLICE6DB. |
| `SetConnectedDevices(IDASConnectedDevice[] devices)` | `void` | Sets the `ConnectedDevices` array. |
| `SerialNumbers` |

View File

@@ -0,0 +1,24 @@
---
source_files:
- Common/DTS.Common/Interface/Components/IAssemblyView.cs
- Common/DTS.Common/Interface/Components/IAssemblyListView.cs
- Common/DTS.Common/Interface/Components/ITileView.cs
- Common/DTS.Common/Interface/Components/IGroupView.cs
- Common/DTS.Common/Interface/Components/ITileListView.cs
- Common/DTS.Common/Interface/Components/IGroupListView.cs
- Common/DTS.Common/Interface/Components/IAssemblyViewModel.cs
- Common/DTS.Common/Interface/Components/IAssemblyListViewModel.cs
- Common/DTS.Common/Interface/Components/ITileViewModel.cs
- Common/DTS.Common/Interface/Components/IGroupViewModel.cs
- Common/DTS.Common/Interface/Components/ITileListViewModel.cs
- Common/DTS.Common/Interface/Components/IGroupListViewModel.cs
generated_at: "2026-04-17T16:03:19.297979+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "e92ace6699531e75"
---
# Components
### Purpose
This module defines the View and ViewModel interfaces for

View File

@@ -0,0 +1,57 @@
---
source_files:
- Common/DTS.Common/Interface/Connection/IConnection.cs
generated_at: "2026-04-17T16:52:23.062559+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "c785cd9a26c94c57"
---
# Documentation: IConnection Interface
## 1. Purpose
The `IConnection` interface defines an abstraction for network connection management within the DTS system. It provides a comprehensive contract for socket-based communication, supporting both APM (Asynchronous Programming Model) and Task-based asynchronous patterns. The interface encapsulates connection lifecycle management (creation, connection, disconnection), data transfer operations (send/receive), server-side operations (bind/listen/accept), and introduces a "soft disconnect" concept for temporary disconnections with the expectation of reconnection. This interface exists to decouple higher-level application logic from specific connection implementations, enabling testability and implementation flexibility.
## 2. Public Interface
### Properties
| Signature | Description |
|-----------|-------------|
| `bool IsSoftDisconnected { get; }` | Returns `true` if the connection is in a soft-disconnected state (voluntarily disconnected with expectation of reconnecting). |
| `System.Net.Sockets.SocketFlags Flags { get; set; }` | Gets or sets socket flags used for send/receive operations. |
| `string ConnectString { get; }` | Returns the connection string associated with this connection. |
| `bool Connected { get; }` | Returns `true` if the connection is currently active. |
### Events
| Signature | Description |
|-----------|-------------|
| `event EventHandler OnDisconnected` | Raised when the connection is disconnected. |
### Methods - Connection Lifecycle
| Signature | Description |
|-----------|-------------|
| `void Create(string connectString)` | Initializes the connection using the provided connection string. |
| `void Create(string connectString, string hostIPAddress)` | Initializes the connection with a connection string and specific host IP address. |
| `void SoftDisconnect()` | Performs a soft disconnect (voluntary disconnection with intent to reconnect later). |
| `void SoftConnect()` | Reconnects a soft-disconnected connection. |
| `void KeepAliveErrorReceived()` | Called to indicate the device has not received a timely response to keep-alive. |
| `string GetConnectionData()` | Returns connection data as a string. |
### Methods - APM Pattern (Connect/Disconnect)
| Signature | Description |
|-----------|-------------|
| `IAsyncResult BeginConnect(AsyncCallback callback, object callbackObject)` | Begins an asynchronous connection attempt. |
| `void EndConnect(IAsyncResult ar)` | Completes an asynchronous connection attempt. |
| `IAsyncResult BeginDisconnect(bool reuseSocket, AsyncCallback callback, object state)` | Begins an asynchronous disconnection. |
| `void EndDisconnect(IAsyncResult asyncResult)` | Completes an asynchronous disconnection. |
### Methods - APM Pattern (Server Operations)
| Signature | Description |
|-----------|-------------|
| `void Bind(int port)` | Binds the connection to a specific port.

View File

@@ -0,0 +1,65 @@
---
source_files:
- Common/DTS.Common/Interface/CustomChannels/ICustomChannelsView.cs
- Common/DTS.Common/Interface/CustomChannels/ICustomChannelsExportView.cs
- Common/DTS.Common/Interface/CustomChannels/ICustomChannelsImportView.cs
- Common/DTS.Common/Interface/CustomChannels/ICustomChannelModel.cs
- Common/DTS.Common/Interface/CustomChannels/ICustomChannelsViewModel.cs
generated_at: "2026-04-17T16:02:22.282441+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "f9183b9c91865b30"
---
# CustomChannels
### Purpose
This module defines the contract for a Custom Channels feature, providing interfaces for a Model-View-ViewModel (MVVM) architecture that supports importing and exporting custom channel configurations. It serves as an abstraction layer between the UI components and the business logic for managing channel selection and file-based data transfer operations.
### Public Interface
**ICustomChannelsView** : `IBaseView`
- Marker interface for the main custom channels view. No members defined beyond the base interface.
**ICustomChannelsExportView** : `IBaseView`
- Marker interface for the export view. No members defined beyond the base interface.
**ICustomChannelsImportView** : `IBaseView`
- Marker interface for the import view. No members defined beyond the base interface.
**ICustomChannelModel**
- `string Name { get; }` — Read-only property for the channel name.
- `bool Included { get; set; }` — Read/write property indicating whether the channel is selected for inclusion.
**ICustomChannelsViewModel** : `IBaseViewModel`
- `ICustomChannelsImportView ImportView { get; set; }` — Gets or sets the import view instance.
- `ICustomChannelsExportView ExportView { get; set; }` — Gets or sets the export view instance.
- `void Unset()` — Clears or resets the view model state.
- `void OnSetActive(bool bImport)` — Called when the view becomes active; `bImport` indicates import mode (true) or export mode (false).
- `string ExportFileName { get; set; }` — Gets or sets the filename for export operations.
- `string ImportFileName { get; set; }` — Gets or sets the filename for import operations.
- `void ReadImportFile()` — Reads and parses the import file specified by `ImportFileName`.
- `ObservableCollection<ICustomChannelModel> AllCustomChannels { get; }` — Read-only collection of all available custom channel models.
- `void SelectAll()` — Marks all channels in `AllCustomChannels` as included.
- `void ClearSelection()` — Marks all channels in `AllCustomChannels` as not included.
- `void Export()` — Executes the export operation for selected channels.
- `void Import()` — Executes the import operation.
### Invariants
- `AllCustomChannels` collection must be initialized before UI binding.
- `ImportFileName` and `ExportFileName` should be set before calling `ReadImportFile()` and `Export()` respectively.
- `ImportView` and `ExportView` must be assigned before calling `OnSetActive()`.
- The `Name` property on `ICustomChannelModel` implementations is immutable after creation.
### Dependencies
**Depends on:**
- `DTS.Common.Base` (`IBaseView`, `IBaseViewModel`)
- `System.Collections.ObjectModel` (`ObservableCollection`)
**Dependents:** Unknown from source alone (likely concrete View/ViewModel implementations and a higher-level coordinator).
### Gotchas
- The `ICustomChannelsView` interface in file `ICustomChannelsView.cs` is in namespace `DTS.Common.Interface`, while the other interfaces are in `DTS.Common.Interface.CustomChannels`. This namespace inconsistency may cause resolution issues if not explicitly imported.
- No error handling contract is defined for `ReadImportFile()`, `Export()`, or `Import()` — behavior on failure is unspecified.
---

View File

@@ -0,0 +1,70 @@
---
source_files:
- Common/DTS.Common/Interface/CustomerDetails/ICustomerDetailsView.cs
- Common/DTS.Common/Interface/CustomerDetails/ICustomerDetailsViewModel.cs
generated_at: "2026-04-17T16:37:26.944473+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "f962d23186cb094d"
---
# Documentation: Customer Details Interfaces
## 1. Purpose
This module defines two marker interfaces, `ICustomerDetailsView` and `ICustomerDetailsViewModel`, which establish the contract for the Customer Details feature within an MVVM (Model-View-ViewModel) architecture. These interfaces extend base view and view model abstractions (`IBaseView` and `IBaseViewModel` respectively), enabling type-safe identification and binding of customer-specific UI components without defining additional members. They serve as extension points for the customer details functionality within the broader `DTS.Common.Interface` namespace.
---
## 2. Public Interface
### `ICustomerDetailsView`
**Namespace:** `DTS.Common.Interface`
**Inheritance:** `IBaseView`
```csharp
public interface ICustomerDetailsView : IBaseView { }
```
A marker interface representing the View component for customer details. Declares no members; all behavior is inherited from `IBaseView`. Used to identify and type-check customer details view implementations.
---
### `ICustomerDetailsViewModel`
**Namespace:** `DTS.Common.Interface`
**Inheritance:** `IBaseViewModel`
```csharp
public interface ICustomerDetailsViewModel : IBaseViewModel { }
```
A marker interface representing the ViewModel component for customer details. Declares no members; all behavior is inherited from `IBaseViewModel`. Used to identify and type-check customer details view model implementations.
---
## 3. Invariants
- **Inheritance Contract:** Both interfaces must always inherit from their respective base types (`IBaseView` and `IBaseViewModel`). Any implementation must satisfy the contracts defined by those base interfaces.
- **Naming Convention:** The interfaces follow a naming pattern aligned with MVVM conventions (`I[Feature]View` and `I[Feature]ViewModel`).
- **Empty Interface Constraint:** Neither interface defines additional members; they rely entirely on their base interfaces for functionality. This design implies they serve as type markers rather than behavioral contracts.
---
## 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:
**Cannot be determined from source alone.** Potential consumers would include:
- Concrete implementations of `ICustomerDetailsView` (e.g., WinForms, WPF, or web-based views)
- Concrete implementations of `ICustomerDetailsViewModel`
- Any factory or dependency injection registration code that resolves customer details components
---
## 5. Gotchas
- **Empty Interfaces:** Both `ICustomerDetailsView` and `ICustomerDetailsViewModel` define no members of their own. Developers implementing these interfaces must consult `IBaseView` and `IBaseViewModel` to understand the actual contract requirements. The purpose of these empty interfaces is unclear from source alone—they may serve as marker interfaces for DI registration, navigation systems, or feature identification.
- **Base Interface Contracts Unknown:** The actual members, properties, and methods that implementations must provide are defined in `IBaseView` and `IBaseViewModel`, which are not included in the provided source. The complete contract cannot be documented without those files.
- **Feature Scope Ambiguity:** The source does not indicate what specific customer details data or operations this feature encompasses. The scope of "Customer Details" (e.g., read-only display, editing, validation) cannot be determined from these interfaces alone.

View File

@@ -0,0 +1,140 @@
---
source_files:
- Common/DTS.Common/Interface/DASFactory/IAutoArmed.cs
- Common/DTS.Common/Interface/DASFactory/ITMATSStreamingDevice.cs
- Common/DTS.Common/Interface/DASFactory/ITiltSensorCalAware.cs
- Common/DTS.Common/Interface/DASFactory/IRangeBandwidthLimited.cs
- Common/DTS.Common/Interface/DASFactory/IAutoArmStatus.cs
- Common/DTS.Common/Interface/DASFactory/ITimeSynchronization.cs
- Common/DTS.Common/Interface/DASFactory/IConnectedEthernetDevice.cs
- Common/DTS.Common/Interface/DASFactory/IDASReconfigure.cs
- Common/DTS.Common/Interface/DASFactory/IDASConfigurationArg.cs
- Common/DTS.Common/Interface/DASFactory/IRealtime.cs
- Common/DTS.Common/Interface/DASFactory/IUDPQATSEntry.cs
- Common/DTS.Common/Interface/DASFactory/IDASFactory.cs
- Common/DTS.Common/Interface/DASFactory/ICommunication.cs
- Common/DTS.Common/Interface/DASFactory/IDiscoveredDevice.cs
- Common/DTS.Common/Interface/DASFactory/IAnalogInputDASChannel.cs
- Common/DTS.Common/Interface/DASFactory/IDASCommunication.cs
generated_at: "2026-04-17T15:29:07.779002+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "45ae757e0cac6506"
---
# DASFactory Interfaces Documentation
## 1. Purpose
This module defines the core abstraction layer for Data Acquisition System (DAS) hardware communication and management. It provides interfaces for device discovery, configuration, real-time data streaming, diagnostics, and channel-level sensor configuration. The interfaces enable polymorphic treatment of different DAS hardware types (SLICE, TDAS, S6, etc.) while exposing hardware-specific capabilities through optional interface implementations. This abstraction allows higher-level services to interact with diverse hardware through a unified API.
---
## 2. Public Interface
### IDASFactory
The primary factory interface for DAS device lifecycle management.
| Member | Signature | Description |
|--------|-----------|-------------|
| `StartMulticastAutoDiscovery` | `void StartMulticastAutoDiscovery()` | Initiates multicast device discovery. |
| `StopMulticastAutoDiscovery` | `void StopMulticastAutoDiscovery()` | Halts multicast device discovery. |
| `GetDiscoveredDevices` | `IDiscoveredDevice[] GetDiscoveredDevices()` | Returns array of discovered devices. |
| `PingAll` | `bool PingAll()` | Pings all connected devices. |
| `Language` | `string Language { get; set; }` | Language setting. |
| `TakeOwnership` | `void TakeOwnership()` | Takes ownership of devices. |
| `AllowSDBCommandPort` | `bool AllowSDBCommandPort { get; set; }` | Controls SDB command port usage. |
| `S6ConnectNewTimeout` | `double S6ConnectNewTimeout { get; set; }` | Connection timeout for S6 devices. |
| `SliceDBHostNames` | `string[] SliceDBHostNames { get; set; }` | SLICE DB host names. |
| `GetConnectedDevices` | `string[] GetConnectedDevices()` | Returns connected device identifiers. |
| `TDASHostNames` | `string[] TDASHostNames { get; set; }` | TDAS host names. |
| `TDASSerialPortNames` | `string[] TDASSerialPortNames { get; set; }` | TDAS serial port names. |
| `TDASSerialRackSerialNumber` | `string TDASSerialRackSerialNumber { get; set; }` | TDAS rack serial number. |
| `GetDASList` | `List<IDASCommunication> GetDASList()` | Returns list of all connected DAS hardware. |
| `GetSortedDASList` | `List<IDASCommunication> GetSortedDASList()` | Returns sorted list of connected DAS hardware. |
| `GetDevList` | `List<ICommunication> GetDevList()` | Returns ICommunication objects for all connected hardware. |
| `DetachAllDevices` | `void DetachAllDevices(bool detachUSB = false)` | Makes factory forget all devices. |
| `Refresh` | `void Refresh(ActionCompleteDelegate action)` | Initiates refresh; calls action when complete. |
| `MultiCastAutoDiscoveryDefaultTimeoutMS` | `int MultiCastAutoDiscoveryDefaultTimeoutMS { get; set; }` | Timeout for multicast discovery receive. |
| `AutoDiscoverMulticast` | `SortableBindingList<IDiscoveredDevice> AutoDiscoverMulticast(CancellationToken cancelToken, bool discoverParents = true)` | Performs multicast auto-discovery. |
### IDASCommunication
The primary interface for interacting with a DAS unit. Extends `IConfiguration`, `IDiagnos`, `ITriggerCheck`, `IRealTime`, `IArmStatus`, `IDownload`, `IInformation`, `IAutoArmStatus`, `IAutoArmed`, `IRangeBandwidthLimited`, `ITimeSynchronization`, `IComparable<IDASCommunication>`, and `IDisposable`.
| Member | Signature | Description |
|--------|-----------|-------------|
| `ExcitationStatus` | `ExcitationStatus ExcitationStatus { get; set; }` | Excitation status for DAS. |
| `ReadFirstUseDate` | `void ReadFirstUseDate()` | Populates `IsFirstUseDateSupported` and `FirstUseDate`. |
| `FirstUseDate` | `DateTime? FirstUseDate { get; set; }` | Date of first use; null if not used since calibration. |
| `IsFirstUseDateSupported` | `bool IsFirstUseDateSupported { get; set; }` | Whether hardware supports first use date. |
| `SetIsStreamingSupported` | `void SetIsStreamingSupported(bool supported = false)` | Sets streaming support flag. |
| `IsStreamingSupported` | `bool IsStreamingSupported { get; set; }` | Whether streaming is supported. |
| `ConnectionCheck` | `bool ConnectionCheck()` | Quick connection check; returns true if unit is communicable. |
| `GetHardwareType` | `HardwareTypes GetHardwareType()` | Returns the hardware type. |
| `GetStackChannelConfigTypes` | `int[] GetStackChannelConfigTypes()` | Returns channel configuration types. |
| `RecordId` | `int RecordId { get; set; }` | Record identifier. |
| `GetNominalRanges` | `double[] GetNominalRanges(SensorConstants.BridgeType bridge)` | Returns nominal ranges for given bridge type. |
| `InputLowVoltage` | `float InputLowVoltage { get; set; }` | Low input voltage threshold. |
| `InputMediumVoltage` | `float InputMediumVoltage { get; set; }` | Medium input voltage threshold. |
| `InputHighVoltage` | `float InputHighVoltage { get; set; }` | High input voltage threshold. |
| `BatteryLowVoltage` | `float BatteryLowVoltage { get; set; }` | Low battery voltage threshold. |
| `BatteryMediumVoltage` | `float BatteryMediumVoltage { get; set; }` | Medium battery voltage threshold. |
| `BatteryHighVoltage` | `float BatteryHighVoltage { get; set; }` | High battery voltage threshold. |
| `MinimumValidInputVoltage` | `double MinimumValidInputVoltage { get; set; }` | Minimum valid input voltage. |
| `MaximumValidInputVoltage` | `double MaximumValidInputVoltage { get; set; }` | Maximum valid input voltage. |
| `MinimumValidBatteryVoltage` | `double MinimumValidBatteryVoltage { get; set; }` | Minimum valid battery voltage. |
| `MaximumValidBatteryVoltage` | `double MaximumValidBatteryVoltage { get; set; }` | Maximum valid battery voltage. |
| `SerialNumber` | `string SerialNumber { get; set; }` | Serial number of base unit. |
| `FirmwareVersion` | `string FirmwareVersion { get; }` | Installed firmware version. |
| `DiagnosticsHasBeenRun` | `bool DiagnosticsHasBeenRun { get; set; }` | Flag indicating if arm attributes should be defaulted. |
| `ConfigureHasBeenRun` | `bool ConfigureHasBeenRun { get; set; }` | Flag indicating if configure has been run. |
| `NumberOfConfiguredChannels` | `int NumberOfConfiguredChannels()` | Count of configured channels. |
| `NumberOfChannels` | `int NumberOfChannels()` | Total channel count. |
| `MaxMemory` | `long MaxMemory()` | Maximum memory for DAS. |
| `MaxModules` | `int MaxModules { get; set; }` | Maximum module count. |
| `MinSampleRate` | `uint MinSampleRate()` | Minimum sample rate. |
| `MaxSampleRate` | `uint MaxSampleRate(int numberOfConfiguredChannels)` | Maximum sample rate given channel count. |
| `MaxAAFilterRate` | `uint MaxAAFilterRate()` | Maximum anti-alias filter rate. |
| `SupportsAutoArm` | `bool SupportsAutoArm()` | Whether auto-arm is supported. |
| `SupportsMultipleConfigurations` | `bool SupportsMultipleConfigurations()` | Whether multiple configurations supported. |
| `SupportsLevelTrigger` | `bool SupportsLevelTrigger()` | Whether level trigger supported. |
| `SupportsRealtime` | `bool SupportsRealtime()` | Whether realtime streaming supported. |
| `SupportsMultipleEvents` | `bool SupportsMultipleEvents()` | Whether multiple events supported. |
| `SupportsTriggerInversion` | `bool SupportsTriggerInversion()` | Whether trigger completion inversion supported. |
| `InvertTrigger` | `bool InvertTrigger { set; }` | Sets trigger inversion. |
| `SupportsStartInversion` | `bool SupportsStartInversion()` | Whether start completion inversion supported. |
| `InvertStart` | `bool InvertStart { get; set; }` | Start inversion setting. |
| `IgnoreShortedStart` | `bool IgnoreShortedStart { get; set; }` | Ignore shorted start line. |
| `IgnoreShortedTrigger` | `bool IgnoreShortedTrigger { get; set; }` | Ignore shorted trigger line. |
| `SupportsHardwareInputCheck` | `bool SupportsHardwareInputCheck()` | Whether hardware supports checking input status. |
| `SupportsMultipleSampleRealtime` | `bool SupportsMultipleSampleRealtime()` | Whether multiple sample realtime supported. |
| `ControlsDAQ` | `bool ControlsDAQ()` | Whether DAS base controls DAQ for modules. |
| `CheckAAF` | `bool CheckAAF(float rate)` | Checks if new AAF rate is acceptable. |
| `RequireDiagnosticRateMatchSampleRate` | `bool RequireDiagnosticRateMatchSampleRate()` | Whether diagnostic rate must match sample rate. |
| `GetPhaseShiftSamples` | `ulong GetPhaseShiftSamples(uint ModuleIndex, double ActualSampleRate, uint HardwareAAF, ulong originalT0)` | Returns phase delay in samples. |
| `IsEthernetDistributor` | `bool IsEthernetDistributor()` | Whether device is an ethernet distributor. |
| `GetCanCheckArmStatus` | `bool GetCanCheckArmStatus()` | Whether unit can read arm status. |
| `IsSlice6Distributor` | `bool IsSlice6Distributor()` | Whether device is SLICE6DB. |
| `IsBattery` | `bool IsBattery()` | Whether device is battery-powered. |
| `IsTSRAIR` | `bool IsTSRAIR()` | Whether device is TSR AIR. |
| `IsSlice6Air` | `bool IsSlice6Air()` | Whether device is SLICE6 AIR. |
| `IsSlice6AirTc` | `bool IsSlice6AirTc()` | Whether device is SLICE6 AIR TC. |
| `IsScheduleEventCountSupported` | `bool IsScheduleEventCountSupported()` | Whether scheduled event count supported. |
| `MACAddress` | `string MACAddress { get; set; }` | MAC address. |
| `DownstreamMACAddresses` | `string[] DownstreamMACAddresses { get; set; }` | Downstream MAC addresses. |
| `SupportsIndividualChannelRealtimeStreaming` | `bool SupportsIndividualChannelRealtimeStreaming { get; }` | Whether selectable channel realtime streaming supported. |
### ICommunication
Interface for low-level hardware communication. Extends `IComparable<ICommunication>` and `IComparable<string>`.
| Member | Signature | Description |
|--------|-----------|-------------|
| `ErrorInSetup` | `bool ErrorInSetup { get; set; }` | Indicates error during setup. |
| `Transport` | `IConnection Transport { get; set; }` | Transport connection. |
| `SetupReader` | `void SetupReader()` | Sets up receive buffer and callback. |
| `ReceiveBufferSize` | `int ReceiveBufferSize { get; set; }` | Receive buffer size. |
| `SerialNumber` | `string SerialNumber { get; set; }` | Device serial number. |
| `FirmwareVersion` | `string FirmwareVersion { get; set; }` | Firmware version. |
| `ProtocolVersion` | `byte ProtocolVersion { get; set; }` | Protocol version. |
| `DASInfo` | `ICommunication_DASInfo DASInfo { get; set; }` | DAS information. |
| `MinimumProtocols` | `Dictionary<DFConstantsAndEnums.ProtocolLimitedCommands, byte> MinimumProtocols { get; set

View File

@@ -0,0 +1,32 @@
---
source_files:
- Common/DTS.Common/Interface/DASFactory/ARM/IArmStatus.cs
- Common/DTS.Common/Interface/DASFactory/ARM/IArmStatusData.cs
generated_at: "2026-04-17T16:37:47.130184+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "18c4557d1a49adee"
---
# Documentation: DTS.Common.Interface.DASFactory.ARM
## 1. Purpose
This module defines two interfaces for managing and representing the ARM (armed/realtime) status of DAS (Data Acquisition System) units. `IArmStatus` provides the operational interface for transitioning between arm and realtime states, querying cached status flags, and optionally persisting status to a database. `IArmStatusData` serves as the data model holding detailed state information including trigger status, recording progress, hardware metrics, and fault conditions. Together, they enable the system to track and control DAS unit operational modes throughout test execution.
---
## 2. Public Interface
### IArmStatus
| Member | Signature | Description |
|--------|-----------|-------------|
| `SetInArm` | `void SetInArm(bool WriteToDb)` | Marks the unit as being in arm mode. Optionally writes status to database based on `WriteToDb` parameter. |
| `SetInRealtime` | `void SetInRealtime(bool WriteToDb, bool ExitRealtimeIfPossible)` | Marks the unit as being in realtime mode. Optionally writes to database and can conditionally exit realtime mode. |
| `GetIsInArm` | `bool GetIsInArm()` | Returns `true` if the unit is known to be in arm state. **Does not query hardware**—returns cached flag only. |
| `GetIsInRealtime` | `bool GetIsInRealtime()` | Returns `true` if the unit is known to be in realtime state. **Does not query hardware**—returns cached flag only. |
| `GetIsStreaming` | `bool GetIsStreaming()` | Returns `true` if the unit is known to be streaming. **Does not query hardware**—returns cached flag only. |
| `DASArmStatus` | `IArmStatusData DASArmStatus { get; set; }` | Property to get or set the detailed arm status data object. |
| `SetDASArmStatus` | `void SetDASArmStatus(IArmStatusData status, bool bSetInDb)` | Sets `DASArmStatus` property and optionally persists to database. |
| `SetDASArmStatus` | `void SetDASArmStatus

View File

@@ -0,0 +1,250 @@
---
source_files:
- Common/DTS.Common/Interface/DASFactory/Config/IAlignUDPToPPSAware.cs
- Common/DTS.Common/Interface/DASFactory/Config/IEID.cs
- Common/DTS.Common/Interface/DASFactory/Config/IVoltageInsertionEnabled.cs
- Common/DTS.Common/Interface/DASFactory/Config/IInformation.cs
- Common/DTS.Common/Interface/DASFactory/Config/IConfigurationData.cs
- Common/DTS.Common/Interface/DASFactory/Config/IConfiguration.cs
- Common/DTS.Common/Interface/DASFactory/Config/IInfoResultModule.cs
- Common/DTS.Common/Interface/DASFactory/Config/IDASChannel.cs
- Common/DTS.Common/Interface/DASFactory/Config/IInfoResult.cs
- Common/DTS.Common/Interface/DASFactory/Config/IDASModule.cs
generated_at: "2026-04-17T15:31:50.629398+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "621789ad0fb1ddef"
---
# DTS.Common.Interface.DASFactory.Config Documentation
## 1. Purpose
This module defines the core configuration interfaces for a Data Acquisition System (DAS). It provides abstractions for managing hardware modules, channels, test configurations, and device metadata. The interfaces support XML serialization for persistence, channel-to-module mapping, trigger configuration, and hardware identification (EIDs). This serves as the contract layer between DAS hardware communication components and higher-level configuration services.
---
## 2. Public Interface
### IAlignUDPToPPSAware
**Signature:**
```csharp
public interface IAlignUDPToPPSAware
{
bool AlignUDPToPPS { get; set; }
}
```
**Behavior:** Marker interface exposing a boolean flag indicating whether UDP data should be aligned to PPS (Pulse Per Second) timing signals.
---
### IEID
**Signature:**
```csharp
public interface IEID
{
string ID { get; set; }
byte[] Blob { get; set; }
bool IsValid();
}
```
**Behavior:** Represents an Electronic ID with a string identifier, binary blob data, and a validation method.
---
### IVoltageInsertionEnabled
**Signature:**
```csharp
public interface IVoltageInsertionEnabled
{
bool VoltageInsertionEnabled { get; }
}
```
**Behavior:** Read-only indicator that voltage insertion was detected as enabled on the hardware.
---
### IInformation
**Signature:**
```csharp
public interface IInformation
{
IInfoResult DASInfo { get; set; }
void SetDASInfo(IInfoResult dasInfo, bool bSetInDb = true);
void SetDASInfo();
}
```
**Behavior:** Provides access to DAS hardware information. `SetDASInfo` accepts an `IInfoResult` with an optional flag to persist to database (defaults to `true`). The parameterless overload implies a refresh or default initialization.
---
### IConfigurationData
**Signature:**
```csharp
public interface IConfigurationData
{
IDASModule[] Modules { get; set; }
IEID[] IDs { get; set; }
string TestID { get; set; }
string TestSetupUniqueId { get; set; }
string InstanceID { get; set; }
string Description { get; set; }
bool ClearSetup { get; set; }
int[] DisplayOrder { get; set; }
int DasDisplayOrder { get; set; }
string UDPReceiveAddress { get; set; }
int NumberOfConfiguredChannels();
int NumberOfChannels();
int NumberOfDownloadChannels();
int GetDisplayOrder(uint channelIdx);
void WriteXml(XmlWriter writer);
void ReadXml(XmlReader reader);
XmlSchema GetSchema();
}
```
**Behavior:** Central configuration container for a DAS setup. Manages module array, EIDs, test identification, and channel counts. Supports XML serialization via `WriteXml`/`ReadXml`. `NumberOfDownloadChannels` excludes UART and StreamOut channels.
---
### IConfiguration
**Signature:**
```csharp
public interface IConfiguration
{
string TestDirectory { get; set; }
bool SupportsAutoDetect { get; }
IConfigurationData ConfigData { get; set; }
ClockSyncProfile DASClockSyncProfile { get; set; }
void QueryConnectedDevices();
int GetDASDisplayOrder();
int[] GetChannelDisplayOrder();
void SetDASDisplayOrder(int order);
void SetChannelDisplayOrder(int[] order);
}
```
**Behavior:** High-level configuration interface. `QueryConnectedDevices` performs hardware discovery. Display order methods control UI ordering of DAS units and channels. `SupportsAutoDetect` indicates bridge/IEPE channel type auto-detection capability.
---
### IInfoResultModule
**Signature:**
```csharp
public interface IInfoResultModule
{
string SerialNumber { get; set; }
string FirmwareVersion { get; set; }
int ModuleArrayIndex { get; set; }
uint NumberOfChannels { get; set; }
uint[] SupportedSampleRates { get; set; }
Dictionary<uint, float> SampleRate2AAFrequency { get; set; }
ulong? MaxEventStorageSpaceInBytes { get; set; }
uint? NumberOfBytesPerSampleClock { get; set; }
double MaxRecordingSamples { get; set; }
DateTime? CalibrationDate { get; set; }
bool RackIsUnreadable { get; set; }
DFConstantsAndEnums.ModuleType TypeOfModule { get; set; }
DFConstantsAndEnums.RecordingMode[] SupportedModes { get; set; }
bool IsProgrammable { get; set; }
}
```
**Behavior:** Hardware metadata for a single module. Includes sample rate to anti-aliasing filter frequency mapping. `RackIsUnreadable` indicates armed TDAS rack state. Storage properties may be null if specified at DAS level instead.
---
### IDASChannel
**Signature:**
```csharp
public interface IDASChannel
{
DFConstantsAndEnums.ConfigMode ConfigurationMode { get; set; }
bool DiagnosticsMode { get; set; }
int ModuleChannelNumber { get; set; }
int AbsoluteDisplayOrder { get; set; }
double UnitConverision { get; set; } // Note: typo in source
bool AtCapacity { get; set; }
double CapacityOutputIsBasedOn { get; set; }
SensorConstants.SensUnits SensitivityUnits { get; set; }
byte Number { get; }
IEID[] IDs { get; set; }
DateTime EventStartTime { get; set; }
bool LevelTriggerSeen { get; set; }
int? LevelTriggerT0AdjustmentSamples { get; set; }
int QualificationSamples { get; set; }
string IsoChannelName { get; set; }
string ChannelGroupName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
string LinearSensorCalibration { get; set; }
string UserValue1 { get; set; }
string UserValue2 { get; set; }
string UserValue3 { get; set; }
int IdType { get; set; }
bool IsConfigured();
void WriteElementStart(XmlWriter writer);
void WriteElementEnd(XmlWriter writer);
void WriteXmlCRC32(XmlWriter writer);
void WriteXml(XmlWriter writer);
void ReadXml(XmlReader reader);
XmlSchema GetSchema();
}
```
**Behavior:** Represents a single data acquisition channel. `Number` is the stack channel number (0-based, read-only). `LevelTriggerT0AdjustmentSamples` is null if channel did not directly receive a level trigger. Supports CRC32-included XML serialization via `WriteXmlCRC32`.
---
### IInfoResult
**Signature:**
```csharp
public interface IInfoResult
{
string MACAddress { get; set; }
IInfoResultModule[] Modules { get; set; }
List<Common.Classes.Hardware.ExternalTilt> ActiveExternalTilts { get; set; }
uint MaxNumberOfModules { get; set; }
ulong? MaxEventStorageSpaceInBytes { get; set; }
uint? NumberOfBytesPerSampleClock { get; set; }
bool? DeviceStreamingOnly { get; set; }
int NumberOfBridgeChannels { get; set; }
IEID BatteryID { get; set; }
bool HasBattery { get; }
DateTime? CalibrationDate { get; set; }
byte MapDASChannelNumber2RealtimeChannelNumber(int channelNumber);
byte MapDASChannelNumber2ModuleArrayIndex(int channelNumber);
byte MapDASChannelNumber2ModuleDeviceID(int channelNumber);
byte MapDASChannelNumber2ModuleChannelNumber(int channelNumber);
byte MapModuleArrayIndexAndChannelNum2DASChannel(int moduleArrayIdx, int channelNumber);
}
```
**Behavior:** Aggregated hardware info for an entire DAS unit. Provides channel number mapping functions between DAS-global and module-local addressing. `CalibrationDate` returns `1970-01-01` if invalid/NA. `DeviceStreamingOnly` is null if hardware doesn't support streaming-only configuration.
---
### IDASModule
**Signature:**
```csharp
public interface IDASModule
{
IDASChannel[] Channels { get; set; }
IEID[] IDs { get; set; }
int ModuleArrayIndex { get; set; }
double RequestedPreTriggerSeconds { get; set; }
double RequestedPostTriggerSeconds { get; set; }
double PreTriggerSeconds { get; set; }
double PostTriggerSeconds { get; set; }
int NumberOfEvents { get; set; }
int WakeUpMotionTimeout { get; set; }
string FirmwareVersion { get; set; }
string Description { get; set; }
ulong? MaxEventStorageSpaceInBytes { get; set; }
ulong NumberOfSamples { get; set; }
ulong[] TriggerSampleNumbers { get; set; }
ulong Start

View File

@@ -0,0 +1,120 @@
---
source_files:
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ITriggerCheck.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IOptimizationValues.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ITCDiagnosticResults.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ICanDiagnosticResults.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IDiagnosticMessagesDevice.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ICanDiagnosticResult.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IArmCheckActions.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IModuleDiagnosticsResult.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ITriggerCheckResult.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ITCDiagnosticResult.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IArmCheckResults.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IDiagnos.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IDiagnosticActions.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IBaseInputValues.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IDiagnosticResult.cs
generated_at: "2026-04-17T15:29:33.942610+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "2fd64d6b1583117e"
---
# Diagnostics Interface Module Documentation
## 1. Purpose
This module defines the contract interfaces for the Data Acquisition System (DAS) diagnostics subsystem within the DTS framework. It provides abstractions for configuring, executing, and storing results of diagnostic operations including channel calibration, sensor verification, arm checks, trigger monitoring, CAN bus diagnostics, and thermocouple (TC) diagnostics. These interfaces enable a decoupled architecture where concrete implementations can vary across different DAS hardware platforms (e.g., TDAS Pro, SLICE Pro) while maintaining consistent diagnostic capabilities.
---
## 2. Public Interface
### `ITriggerCheck`
Simple container interface for trigger check results.
```csharp
ITriggerCheckResult TriggerCheckResult { get; set; }
```
### `ITriggerCheckResult`
Represents the state of trigger and start-record lines on a DAS unit.
| Property | Type | Description |
|----------|------|-------------|
| `IsStatusGood` | `bool` | Indicates if DAS status is good |
| `IsStartRecordActive` | `bool` | Indicates if start record line is currently active |
| `HasStartRecordBeenActive` | `bool` | Indicates if start record line was active at any point after arm |
| `IsTriggered` | `bool` | Indicates if trigger is currently active |
| `HasTriggered` | `bool` | Indicates if trigger line was active at any point after arm |
### `IOptimizationValues`
Stores optimization settings for real-time optimization (FB 6416).
```csharp
float TransferSpeed { get; set; }
```
### `IDiagnos`
The primary aggregating interface for all diagnostic operations and results.
| Property | Type | Description |
|----------|------|-------------|
| `ChannelDiagnostics` | `IDiagnosticActions[]` | Array of diagnostic action configurations per channel |
| `ChannelDiagnosticsResults` | `IDiagnosticResult[]` | Array of diagnostic results per channel |
| `ModuleDiagnosticsResults` | `IModuleDiagnosticsResult[]` | Module-level temperature diagnostics |
| `BaseInput` | `IBaseInputValues` | Base unit input/power values |
| `DASClockSyncStatus` | `IDictionary<InputClockSource, bool>` | Clock synchronization status per source |
| `ClockSyncInUTC` | `bool` | Whether clock sync is in UTC |
| `PTPDomainID` | `byte` | PTP domain identifier |
| `ArmCheckActions` | `IArmCheckActions` | Configuration of which arm checks to perform |
| `ArmCheckResults` | `IArmCheckResults` | Results from arm check operations |
| `OptimizationValues` | `IOptimizationValues` | Real-time optimization settings |
| Method | Description |
|--------|-------------|
| `void SetChannelDiagnosticActions(IDiagnosticActions[] actions, bool setInDb = true)` | Sets diagnostic action configurations |
| `void ClearChannelDiagnosticsResults(bool bClearDb = true)` | Clears all channel diagnostic results |
| `void SetChannelDiagnosticsResults(IDiagnosticResult[] results, bool setInDb)` | Sets channel diagnostic results |
### `IDiagnosticActions`
Configures which diagnostic tests to perform on a specific DAS channel.
| Property | Type | Description |
|----------|------|-------------|
| `DASChannelNumber` | `int` | Target channel number |
| `MeasureExcitation` | `bool` | Measure excitation voltage applied to sensor |
| `MeasureOffset` | `bool` | Measure sensor offset from zero |
| `CheckDigitalState` | `bool` | Check open/closed/low/high state of digital input |
| `MeasureInternalOffset` | `bool` | Measure internal offset |
| `RemoveOffset` | `bool` | Have firmware compensate for sensor offset |
| `MeasureNoise` | `bool` | Measure noise floor as percentage of full scale |
| `PerformShuntCheck` | `bool` | Perform emulated shunt check |
| `SquibFireCheck` | `bool` | Run squib fire check on channel |
| `PerformVoltageInsertCheck` | `bool` | Perform voltage insertion gain check (SLICE Pro) |
| `PerformCalSignalCheck` | `bool` | Perform calibration signal check |
| `MeasureBridgeResistance` | `bool` | Measure bridge resistance |
| Method | Description |
|--------|-------------|
| `bool AllActionsDisabled()` | Returns true if all diagnostic actions are disabled |
### `IDiagnosticResult`
Contains results from diagnostic operations on a single channel.
| Property | Type | Description |
|----------|------|-------------|
| `DASChannelNumber` | `int` | Source channel number |
| `EventNumber` | `int` | Associated event number |
| `ScalefactorMilliVoltsPerADC` | `double` | Scale factor for raw ADC to millivolts |
| `ScalefactorEngineeringUnitsPerADC` | `double` | Scale factor for raw ADC to engineering units |
| `ExpectedExcitationMilliVolts` | `double` | Factory excitation value |
| `MeasuredExcitationMilliVolts` | `double?` | Measured excitation voltage (null if not measured) |
| `NegativeExcitation` | `bool` | Flag for negative excitation reading (legacy TDC/TDAS compatibility) |
| `MeasuredOffsetMilliVolts` | `double?` | Measured sensor offset in mV |
| `MeasuredInternalOffsetMilliVolts` | `double?` | Measured internal offset in mV |
| `MeasuredOffsetEngineeringUnits` | `double?` | Measured offset in engineering units |
| `AutoZeroPercentDeviation` | `double?` | Deviation from zero during auto-zero |
| `FinalOffsetADC` | `short?` | Remaining offset after offset removal |
| `RemovedOffsetADC` | `int?` | Amount of offset removed |
| `RemovedInternalOffsetADC` | `int?` | Amount of internal offset removed |
| `NoisePercentFullScale` | `double?` | Noise as percentage of full scale |
| `ShuntDeflectionFailed` | `bool` | Whether shunt check failed |
| `CalSignalCheckFailed` | `bool` | Whether cal signal check failed |
| `MeasuredShuntDeflectionMv` | `double?` | Measured shunt deflection in mV |
| `TargetShuntDeflection

View File

@@ -0,0 +1,65 @@
---
source_files:
- Common/DTS.Common/Interface/DASFactory/Download/IDownloadReport.cs
- Common/DTS.Common/Interface/DASFactory/Download/IEventInfoAggregate.cs
- Common/DTS.Common/Interface/DASFactory/Download/IUARTDownload.cs
- Common/DTS.Common/Interface/DASFactory/Download/IUARTDownloadRequest.cs
- Common/DTS.Common/Interface/DASFactory/Download/IUARTEventInfo.cs
- Common/DTS.Common/Interface/DASFactory/Download/IDownloadRequest.cs
- Common/DTS.Common/Interface/DASFactory/Download/IEventInfo.cs
- Common/DTS.Common/Interface/DASFactory/Download/IDownload.cs
generated_at: "2026-04-17T15:33:30.204926+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "d5a65959da002319"
---
# Documentation: DTS.Common.Interface.DASFactory.Download
## 1. Purpose
This module defines the data contract interfaces for downloading event data from a Data Acquisition System (DAS). It provides abstractions for requesting data downloads (both standard and UART-based), reporting on stored events, managing event metadata including fault flags, and handling UART serial communication parameters. The interfaces serve as the boundary between the DASFactory implementation and consumers needing to retrieve recorded event data from hardware.
---
## 2. Public Interface
### IDownloadReport
Container interface for event metadata retrieved from a DAS.
| Member | Type | Description |
|--------|------|-------------|
| `Events` | `IEventInfo[]` | Array of all events stored on the DAS. |
| `UARTEvents` | `IUARTEventInfo[]` | Array of all UART events stored on the DAS. |
---
### IEventInfoAggregate
Aggregates multiple event info instances with summary statistics.
| Member | Type | Description |
|--------|------|-------------|
| `EventId` | `string` | Identifier for the event. |
| `EventDescription` | `string` | Text description of the event. |
| `DurationSeconds` | `double` | Duration of the event in seconds. |
| `GUID` | `string` | Globally unique identifier. |
| `HasBeenDownloaded` | `bool` | Whether the event has been downloaded. |
| `WasTriggered` | `bool` | Whether the event was triggered. |
| `NumberOfChannels` | `int` | Count of channels in the event. |
| `NumberOfSamples` | `ulong` | Total sample count. |
| `NumberOfBytes` | `ulong` | Total byte count. |
| `Faulted` | `bool` | Whether a fault occurred. |
| `EventNumber` | `int` | The event number. |
| `Add(IEventInfo newEvent)` | `void` | Adds an `IEventInfo` instance to the aggregate. |
---
### IDownloadRequest
Specifies parameters for a standard (non-UART) data download request.
| Member | Type | Description |
|--------|------|-------------|
| `EventNumber` | `ushort` | Target event number for download. |
| `DASChannelNumber` | `byte` | Channel number; use `ALL_CHANNELS` constant for all channels. |
| `StartSample` | `ulong` | First sample to download. |
| `

View File

@@ -0,0 +1,13 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Common.CPU/IcpuEngine.cs
generated_at: "2026-04-17T16:39:47.778671+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "e2f4280e5e273e76"
---
# Documentation for `IcpuEngine.cs`
## 1. Purpose
This module defines the `ICPUEngine` interface, which acts as a specific contract for CPU engine components within the `DTS.Common` namespace. It inherits from `IBaseClass`, indicating it is part of a broader object hierarchy, but it currently defines no unique

View File

@@ -0,0 +1,135 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/ITabView.cs
- Common/DTS.Common/Interface/DTS.Viewer/IDiagView.cs
- Common/DTS.Common/Interface/DTS.Viewer/ITestsView.cs
- Common/DTS.Common/Interface/DTS.Viewer/IStatsView.cs
- Common/DTS.Common/Interface/DTS.Viewer/ICursorView.cs
- Common/DTS.Common/Interface/DTS.Viewer/IViewerView.cs
- Common/DTS.Common/Interface/DTS.Viewer/ITabItemView.cs
- Common/DTS.Common/Interface/DTS.Viewer/IPropertyView.cs
- Common/DTS.Common/Interface/DTS.Viewer/IViewerShellView.cs
- Common/DTS.Common/Interface/DTS.Viewer/IGraphPropertyView.cs
- Common/DTS.Common/Interface/DTS.Viewer/IDockPanelVerticalView.cs
- Common/DTS.Common/Interface/DTS.Viewer/IDockPanelHorizontalView.cs
- Common/DTS.Common/Interface/DTS.Viewer/GroupChannelReadCalcDelegate.cs
- Common/DTS.Common/Interface/DTS.Viewer/IExportModule.cs
- Common/DTS.Common/Interface/DTS.Viewer/IViewerModule.cs
- Common/DTS.Common/Interface/DTS.Viewer/IPSDReportModule .cs
- Common/DTS.Common/Interface/DTS.Viewer/ITabViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/IDiagViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/IStatsViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/ICursorViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/ITestsViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/IViewerViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/IPropertyViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/IGraphPropertyViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/IDockPanelVerticalViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/IDockPanelHorizontalViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/ITabItemViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/IViewerShellViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/IMainLiteView.cs
- Common/DTS.Common/Interface/DTS.Viewer/IMainViewerView.cs
- Common/DTS.Common/Interface/DTS.Viewer/ISelectedDataViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/IMainViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/IMainLiteViewModel.cs
generated_at: "2026-04-17T15:25:23.094552+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "31a916a49292e99a"
---
# DTS.Common.Interface Documentation
## 1. Purpose
This module defines the abstraction layer for the DTS Viewer application's presentation components. It establishes the contract interfaces for Views, ViewModels, and Modules following the Model-View-ViewModel (MVVM) pattern with Prism framework integration. The interfaces enable loose coupling between UI components, support dependency injection, and define the structure for modular plug-in architecture including export, viewer, and PSD report modules.
---
## 2. Public Interface
### View Interfaces
All view interfaces inherit from `IBaseView` (defined in `DTS.Common.Base`) and serve as markers for view resolution:
| Interface | Description |
|-----------|-------------|
| `ITabView` | Marker interface for tab views |
| `IDiagView` | Marker interface for diagnostic views |
| `ITestsView` | Marker interface for test views |
| `IStatsView` | Marker interface for statistics views |
| `ICursorView` | Marker interface for cursor views |
| `IViewerView` | Marker interface for viewer views |
| `ITabItemView` | Marker interface for individual tab item views |
| `IPropertyView` | Marker interface for property views |
| `IViewerShellView` | Marker interface for the main shell view |
| `IGraphPropertyView` | Marker interface for graph property views |
| `IDockPanelVerticalView` | Marker interface for vertical dock panel views |
| `IDockPanelHorizontalView` | Marker interface for horizontal dock panel views |
| `IMainViewerView` | Marker interface for main viewer views (members commented out) |
#### `IMainLiteView`
```csharp
public interface IMainLiteView : IBaseView
{
StackPanel MainShell { get; set; }
ContentControl MainRegion { get; set; }
ContentControl NavigationRegion { get; set; }
ContentControl HorizontalTabRegion { get; set; }
ContentControl VerticalTabRegion { get; set; }
}
```
Exposes named region controls for view composition in a "lite" version of the main view.
---
### ViewModel Interfaces
All ViewModel interfaces inherit from `IBaseViewModel` (defined in `DTS.Common.Base`):
#### `ITabViewModel`
```csharp
public interface ITabViewModel : IBaseViewModel
{
ITabView View { get; }
}
```
#### `IDiagViewModel`
```csharp
public interface IDiagViewModel : IBaseViewModel
{
IDiagView View { get; }
}
```
#### `IStatsViewModel`
```csharp
public interface IStatsViewModel : IBaseViewModel
{
IStatsView View { get; }
}
```
#### `ICursorViewModel`
```csharp
public interface ICursorViewModel : IBaseViewModel
{
ICursorView View { get; }
}
```
#### `ITestsViewModel`
```csharp
public interface ITestsViewModel : IBaseViewModel
{
ITestsView View { get; }
}
```
#### `IViewerViewModel`
```csharp
public interface

View File

@@ -0,0 +1,14 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/CalculatedChannel/IAddCalculatedChannelView.cs
- Common/DTS.Common/Interface/DTS.Viewer/CalculatedChannel/IAddCalculatedChannelViewModel.cs
generated_at: "2026-04-17T16:07:17.602479+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "e969b5e4f8566e76"
---
# CalculatedChannel
### Purpose
This module defines the contract for the "Add Calculated Channel" feature within the DTS Viewer application. It provides interfaces for the view and view model responsible for creating and configuring calculated channels, including support for search regions, command binding, and ISO export configuration. The module follows the MVVM pattern to enable testable and decoupled calculated

View File

@@ -0,0 +1,15 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/ChartOptions/IChartOptionsView.cs
- Common/DTS.Common/Interface/DTS.Viewer/ChartOptions/IChartOptionsViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/ChartOptions/IChartOptionsModel.cs
generated_at: "2026-04-17T16:04:42.771600+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "4121bbfb53575890"
---
# ChartOptions
### Purpose
This module defines the contract for chart configuration and visualization options within the DTS Viewer subsystem. It provides the MVC-style interfaces (`IChartOptionsView`, `IChartOptionsViewModel`, `IChartOptionsModel`) that abstract chart display settings including axis scaling, cursors, filters, units, and export capabilities. This enables decoupling of chart rendering logic from business logic and facilitates

View File

@@ -0,0 +1,77 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/Filter/IFilterView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Filter/IFilterViewModel.cs
generated_at: "2026-04-17T16:37:44.981726+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "b90d5e3a8e3dbbca"
---
# Documentation: Filter View Interfaces
## 1. Purpose
This module defines two interfaces—`IFilterView` and `IFilterViewModel`—that establish the contract for filter-related components within a View/ViewModel architecture. These interfaces extend base types (`IBaseView` and `IBaseViewModel`) to specialize behavior for filtering and search contexts, enabling a decoupled design where filter views can interact with their parent view models and manage search region state.
---
## 2. Public Interface
### `IFilterView`
**File:** `Common/DTS.Common/Interface/DTS.Viewer/Filter/IFilterView.cs`
**Signature:**
```csharp
public interface IFilterView : IBaseView { }
```
**Description:** A marker interface that extends `IBaseView`. It defines no members of its own; its purpose is to distinguish filter views from other view types in the system.
---
### `IFilterViewModel`
**File:** `Common/DTS.Common/Interface/DTS.Viewer/Filter/IFilterViewModel.cs`
**Signature:**
```csharp
public interface IFilterViewModel : IBaseViewModel
{
IBaseView View { get; set; }
IBaseViewModel Parent { get; set; }
object ContextSearchRegion { get; set; }
}
```
**Description:** An interface for filter view models, extending `IBaseViewModel`. Defines the following properties:
| Property | Type | Accessor | Description |
|----------|------|----------|-------------|
| `View` | `IBaseView` | get/set | The Search View associated with this filter view model. |
| `Parent` | `IBaseViewModel` | get/set | The parent view model in the hierarchy. |
| `ContextSearchRegion` | `object` | get/set | A context object for the search region. |
---
## 3. Invariants
- `IFilterView` must always be assignable to `IBaseView`.
- `IFilterViewModel` must always be assignable to `IBaseViewModel`.
- The `View` property on `IFilterViewModel` implementations is expected to hold a reference to an `IBaseView` instance (though nullability is not specified in the source).
- The `Parent` property establishes a hierarchical relationship between view models; the exact parent-child semantics are not defined in these interfaces alone.
---
## 4. Dependencies
### This module depends on:
- **`DTS.Common.Base`** — Provides `IBaseView` and `IBaseViewModel` base interfaces that `IFilterView` and `IFilterViewModel` extend.
### What depends on this module:
- **Unknown from source alone.** No consumers of these interfaces are present in the provided files.
---
## 5. Gotchas
1. **Namespace/file location mismatch:** The file `IFilterViewModel.cs` contains a `// ReSharper disable CheckNamespace` directive, indicating the declared namespace

View File

@@ -0,0 +1,59 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/IGraphMainView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/IGraphChannelView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/IGraphPropertyView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/IExportGraphMainView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/ITestDataView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/IGraphPropertyViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/ITestDataSeriesView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/IGraphView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/IGraphViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/ITestDataViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/ITestDataSeriesViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/IGraphChannelViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/IGraphMainViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/IExportGraphMainViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/Graphs/ITestDataSeries.cs
generated_at: "2026-04-17T15:29:11.920378+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "fd4c81d636010560"
---
# Documentation: DTS.Common.Interface Graph Interfaces
## 1. Purpose
This module defines the contract interfaces for a graph visualization subsystem within the DTS application. It implements the Model-View-ViewModel (MVVM) pattern to separate concerns between test data representation (`ITestDataSeries`), presentation logic (ViewModel interfaces), and UI rendering (View interfaces). The interfaces support displaying, manipulating, and exporting test data series with features including channel selection, channel locking mechanisms, event filtering, and PDF/CSV export capabilities.
---
## 2. Public Interface
### View Interfaces
#### `IGraphMainView`
- **Signature:** `public interface IGraphMainView : IBaseView { }`
- **Behavior:** Marker interface for the main graph view. No members defined; extends `IBaseView`.
#### `IGraphChannelView`
- **Signature:** `public interface IGraphChannelView : IBaseView { }`
- **Behavior:** Marker interface for graph channel selection view. No members defined; extends `IBaseView`.
#### `IGraphPropertyView`
- **Signature:** `public interface IGraphPropertyView : IBaseView { }`
- **Behavior:** Marker interface for graph property view. No members defined; extends `IBaseView`.
#### `IExportGraphMainView`
- **Signature:** `public interface IExportGraphMainView : IBaseView { }`
- **Behavior:** Marker interface for the export graph main view. No members defined; extends `IBaseView`.
#### `ITestDataView`
- **Signature:** `public interface ITestDataView : IBaseView { }`
- **Behavior:** Marker interface for test data view. No members defined; extends `IBaseView`.
#### `ITestDataSeriesView`
- **Signature:** `public interface ITestDataSeriesView : IBaseView`
- **Members:**
- `bool SaveReportToPDF(string directory)` — Saves the report to

View File

@@ -0,0 +1,38 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/Legend/ILegendView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Legend/ILegendViewModel.cs
generated_at: "2026-04-17T16:06:49.136163+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "f447774506b0d21c"
---
# Legend
### Purpose
This module defines the view and ViewModel interfaces for a Legend component within the DTS Viewer. The ViewModel interface provides access to its associated view, suggesting a composition pattern where the ViewModel owns a reference to its View.
### Public Interface
**`ILegendView`** (interface)
- Inherits from: `IBaseView`
- No members defined. Serves as a marker interface for Legend views.
**`ILegendViewModel`** (interface)
- Inherits from: `IBaseViewModel`
- Members:
- `ILegendView View { get; }` — Gets the Tab View associated with this ViewModel.
### Invariants
- `ILegendViewModel.View` must return a valid `ILegendView` implementation.
- The XML comment indicates this view is specifically a "Tab View", suggesting the Legend is rendered as a tabbed interface element.
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView` and `IBaseViewModel`)
- **Depended on by**: Unknown from source alone (likely concrete Legend implementations and Viewer composition)
### Gotchas
- The XML documentation refers to "Tab View" which may indicate specific UI placement expectations not evident from the interface alone.
---

View File

@@ -0,0 +1,35 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/MainView/IMainView.cs
- Common/DTS.Common/Interface/DTS.Viewer/MainView/IViewerMainView.cs
- Common/DTS.Common/Interface/DTS.Viewer/MainView/IExportMainView.cs
- Common/DTS.Common/Interface/DTS.Viewer/MainView/IExportMainViewGrid.cs
- Common/DTS.Common/Interface/DTS.Viewer/MainView/IViewerMainViewGrid.cs
- Common/DTS.Common/Interface/DTS.Viewer/MainView/IMainViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/MainView/IViewerMainViewModel.cs
generated_at: "2026-04-17T16:03:43.916694+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "e4112aa5a4639709"
---
# MainView
### Purpose
This module defines the core View and ViewModel interfaces for the main DTS Viewer application shell. It establishes the region-based UI composition pattern used throughout the application, defining placeholders for navigation, graphs, tests, legends, diagnostics, statistics, cursors, and property panels. The module supports both standard viewer and export modes of operation.
### Public Interface
**IMainView**
- `interface IMainView : IBaseView` - Marker interface for main views. No members defined.
**IViewerMainView**
- `interface IViewerMainView : IBaseView` - Marker interface for viewer main views. No members defined.
**IExportMainView**
- `interface IExportMainView : IBaseView` - Marker interface for export main views. No members defined.
**IExportMainViewGrid**
- `interface IExportMainViewGrid : IBaseView` - Marker interface for export main view grid. No members defined.
**IViewerMainView

View File

@@ -0,0 +1,38 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/Menu/IMenuView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Menu/IMenuViewModel.cs
generated_at: "2026-04-17T16:07:17.601881+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "96e762e96eb06952"
---
# Menu
### Purpose
This module defines the contract for menu-related views and view models within the DTS Viewer application. It provides the interface abstractions necessary for implementing menu UI components following the MVVM pattern, allowing menu functionality to be consumed without tight coupling to specific implementations.
### Public Interface
**IMenuView** (interface)
- Inherits from: `IBaseView`
- No additional members defined. Serves as a marker interface for menu-specific views.
**IMenuViewModel** (interface)
- Inherits from: `IBaseViewModel`
- `IMenuView View { get; }` - Gets the Shell View (as documented). Read-only property providing access to the associated menu view instance.
### Invariants
- `IMenuView` must always be assignable to `IBaseView`.
- `IMenuViewModel` must always be assignable to `IBaseViewModel`.
- The `View` property must return a valid `IMenuView` instance when accessed on a properly initialized implementation.
### Dependencies
- **Depends on**: `DTS.Common.Base` (specifically `IBaseView` and `IBaseViewModel` interfaces)
- **Depended on by**: Unknown from source alone (likely concrete menu implementations and shell/main window components)
### Gotchas
- The XML documentation comment references "Shell View" for the `View` property, which appears inconsistent with the property name and return type. This is likely a documentation error from copy-paste; the property returns a menu view, not a shell view.
---

View File

@@ -0,0 +1,38 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/Navigation/INavigationView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Navigation/INavigationViewModel.cs
generated_at: "2026-04-17T16:07:17.600445+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "939a3a0ee1041138"
---
# Navigation
### Purpose
This module defines the contract for navigation-related views and view models within the DTS Viewer application. It establishes the interface hierarchy for navigation components, enabling a decoupled architecture where navigation views can be managed and accessed through their view models. The module serves as an abstraction layer for navigation UI components in what appears to be an MVVM (Model-View-ViewModel) pattern.
### Public Interface
**INavigationView** (interface)
- Inherits from: `IBaseView`
- No additional members defined. Serves as a marker interface for navigation-specific views.
**INavigationViewModel** (interface)
- Inherits from: `IBaseViewModel`
- `INavigationView NavigationView { get; }` - Gets the Shell View (as documented). Read-only property providing access to the associated navigation view instance.
### Invariants
- `INavigationView` must always be assignable to `IBaseView`.
- `INavigationViewModel` must always be assignable to `IBaseViewModel`.
- The `NavigationView` property must return a valid `INavigationView` instance (not null) when accessed on a properly initialized implementation.
### Dependencies
- **Depends on**: `DTS.Common.Base` (specifically `IBaseView` and `IBaseViewModel` interfaces)
- **Depended on by**: Unknown from source alone (likely concrete navigation implementations and higher-level shell/coordination components)
### Gotchas
- The XML documentation comment references "Shell View" for `NavigationView`, which may be a copy-paste artifact or indicate the navigation view serves as a shell container. The actual purpose should be verified against implementations.
---

View File

@@ -0,0 +1,62 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportMainViewGrid.cs
- Common/DTS.Common/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportResultsView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportSettingsView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportMainView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IChannelGRMSSummary.cs
- Common/DTS.Common/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportSettingsViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportResultsViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportSettingsModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/Reports/PowerSpectralDensity/IPSDReportMainViewModel.cs
generated_at: "2026-04-17T16:34:18.295555+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "5d991aa3a580f849"
---
# Documentation: DTS.Common.Interface - PSD Report Module
## 1. Purpose
This module defines the interface contracts for the Power Spectral Density (PSD) Report feature within the DTS Viewer application. It establishes a Model-View-ViewModel (MVVM) architecture, providing interfaces for the main report view, settings configuration, results display, and associated data models. The module enables PSD analysis with configurable filtering, windowing, and averaging options, and supports exporting results to PDF and CSV formats.
---
## 2. Public Interface
### View Interfaces
#### `IPSDReportMainView`
- **Signature:** `public interface IPSDReportMainView : IBaseView`
- **Behavior:** Marker interface for the main PSD report view. No members defined beyond `IBaseView` inheritance.
#### `IPSDReportMainViewGrid`
- **Signature:** `public interface IPSDReportMainViewGrid : IBaseView`
- **Behavior:** Marker interface for a grid component within the main PSD report view.
#### `IPSDReportSettingsView`
- **Signature:** `public interface IPSDReportSettingsView : IBaseView`
- **Behavior:** Marker interface for the PSD report settings configuration view.
#### `IPSDReportResultsView`
- **Signature:** `public interface IPSDReportResultsView : IBaseView`
- **Behavior:** Marker interface for the PSD report results display view.
---
### ViewModel Interfaces
#### `IPSDReportMainViewModel`
- **Signature:** `public interface IPSDReportMainViewModel : IBaseViewModel, ISelectedDataViewModel`
- **Behavior:** Main view model coordinating the PSD report feature. Manages navigation regions, user permissions, zoom state, and keyboard navigation.
- **Members:**
- `IBaseView View { get; set; }` — The associated main view.
- `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; }` — Property region context.
- `List<FrameworkElement> GetRegions()` — Returns a list of framework elements representing regions.
- `string

View File

@@ -0,0 +1,106 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/TestDefinition/ITestMetadata.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestDefinition/ITestGraphs.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestDefinition/ITestSetupMetadata.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestDefinition/ITestEvent.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestDefinition/ITestSummary.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestDefinition/ITestRunMetadata.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestDefinition/ITestModule.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestDefinition/ITestCalculatedChannel.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestDefinition/ITestChannel.cs
generated_at: "2026-04-17T15:32:19.198752+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "91e6a7da71bfb107"
---
# Test Definition Interfaces Documentation
## 1. Purpose
This module defines the core data contracts for the DTS (Data Test System) test definition hierarchy. It provides interfaces that model the complete structure of a test run: from high-level metadata containers (`ITestMetadata`) down to individual data channels (`ITestChannel`, `ITestCalculatedChannel`). These interfaces represent test setups, hardware modules, channel configurations, calibration parameters, and statistical measurements, enabling the system to serialize, deserialize, and manipulate test data across the application. The interfaces serve as the abstraction layer between data persistence and the application logic.
---
## 2. Public Interface
### `ITestMetadata`
**Namespace:** `DTS.Common.Interface.TestDefinition`
Root container interface aggregating test run and setup metadata.
| Property | Type | Access |
|----------|------|--------|
| `TestRun` | `ITestRunMetadata` | get/set |
| `TestSetup` | `ITestSetupMetadata` | get/set |
---
### `ITestRunMetadata`
**Namespace:** `DTS.Common.Interface`
Defines runtime metadata for a test execution. Implements `INotifyPropertyChanged`.
| Property | Type | Access |
|----------|------|--------|
| `Name` | `string` | get/set |
| `Id` | `string` | get/set |
| `Description` | `string` | get/set |
| `InlineSerializedData` | `bool` | get/set |
| `TestGuid` | `string` | get/set |
| `FaultFlags` | `int` | get/set |
| `Software` | `string` | get/set |
| `SoftwareVersion` | `string` | get/set |
| `DataType` | `string` | get/set |
| `FileDate` | `DateTime` | get/set |
| `FilePath` | `string` | get/set |
| `Modules` | `List<ITestModule>` | get/set |
| `Channels` | `List<ITestChannel>` | get/set |
| `CalculatedChannels` | `List<ITestChannel>` | get/set |
---
### `ITestSetupMetadata`
**Namespace:** `DTS.Common.Interface`
Defines configuration metadata for a test setup.
| Property | Type | Access |
|----------|------|--------|
| `SetupName` | `string` | get/set |
| `TimeStamp` | `DateTime` | get/set |
| `TestGraphs` | `List<ITestGraphs>` | get/set |
| `CalibrationBehavior` | `CalibrationBehaviors` | get/set |
---
### `ITestModule`
**Namespace:** `DTS.Common.Interface`
Represents a hardware module used during test recording. Implements `INotifyPropertyChanged`.
| Property | Type | Access |
|----------|------|--------|
| `SerialNumber` | `string` | get/set |
| `BaseSerialNumber` | `string` | get/set |
| `AaFilterRateHz` | `int` | get/set |
| `Number` | `int` | get/set |
| `NumberOfSamples` | `int` | get/set |
| `UnsubsampledNumberOfSamples` | `int` | get/set |
| `RequestedPostTriggerSeconds` | `double` | get/set |
| `RequestedPreTriggerSeconds` | `double` | get/set |
| `PostTriggerSeconds` | `double` | get/set |
| `PreTriggerSeconds` | `double` | get/set |
| `RecordingMode` | `string` | get/set |
| `SampleRateHz` | `int` | get/set |
| `StartRecordSampleNumber` | `int` | get/set |
| `NumberOfChannels` | `int` | get/set |
| `InlineSerializedData` | `bool` | get/set |
| `StartRecordTimestampSec` | `int` | get/set |
| `StartRecordTimestampNanoSec` | `int` | get/set |
| `TriggerTimestampSec` | `int` | get/set |
| `TriggerTimestampNanoSec` | `int` | get/set |
| `TriggerSampleNumbers` | `List<ulong>` | get/set |
| `PTPMasterSync` | `bool` | get/set |
| `TiltSensorAxisXDegreesPre`

View File

@@ -0,0 +1,56 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/TestModification/ITestModificationView.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestModification/ITestModificationViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestModification/ITestModificationModel.cs
generated_at: "2026-04-17T16:35:54.913135+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "e3203bdeab45d508"
---
# Documentation: Test Modification Module
## 1. Purpose
This module defines the contract for a Test Modification feature within the DTS Viewer application. It provides interfaces for modifying test channel properties—including description, EU multiplier/offset, timing parameters (T0, T1, T2), sensitivity, software filters, and data flags—while tracking which fields have been modified. The module follows a Model-View-ViewModel (MVVM) pattern and supports persisting calibration updates to a database.
---
## 2. Public Interface
### `ITestModificationView`
**Namespace:** `DTS.Common.Interface`
A marker interface extending `IBaseView` with no additional members. Represents the view component in the MVVM architecture for test modification.
---
### `ITestModificationViewModel`
**Namespace:** `DTS.Common.Interface`
Extends `IBaseViewModel`. Coordinates between the view and model for test modification operations.
| Member | Type | Description |
|--------|------|-------------|
| `View` | `ITestModificationView` | Gets or sets the associated view instance. |
| `Parent` | `IBaseViewModel` | Gets or sets the parent view model in the hierarchy. |
| `UseISOCodeFilterMapping` | `bool` | Controls whether ISO code should be modified when software filter is modified. |
| `UseZeroForUnfiltered` | `bool` | Controls whether '0' or 'P' is used when ISO code is modified due to software filter change. |
| `PublishChanges()` | `void` | Publishes pending modifications. |
| `UpdateDatabaseMethod()` | `void` | Updates the sensor calibration in the database. |
---
### `ITestModificationModel`
**Namespace:** `DTS.Common.Interface`
Extends `IBaseModel`. Holds the state and data for test modification operations.
**Hierarchy & Context:**
| Member | Type | Description |
|--------|------|-------------|
| `Parent` | `ITestModificationViewModel` | Gets or sets the parent view model. |
| `SelectedChannel` | `ITestChannel` | Gets or sets the channel on which modifications are based. |
| `Sensor` | `ISensorDbRecord` | Gets or sets the sensor database

View File

@@ -0,0 +1,14 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/TestModule/ITestModuleView.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestModule/ITestModuleViewModel.cs
generated_at: "2026-04-17T16:06:49.137304+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "e89ca848bbbf81f1"
---
# TestModule
### Purpose
This module defines the view and ViewModel interfaces for a Test Module component within the DTS Viewer. The ViewModel interface exposes a list of assemblies, suggesting this module is responsible for loading, displaying, or managing test assemblies at

View File

@@ -0,0 +1,40 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/TestSummary/ITestSummaryListView.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestSummary/ITestSummaryListViewModel.cs
- Common/DTS.Common/Interface/DTS.Viewer/TestSummary/ITestSummary.cs
generated_at: "2026-04-17T16:35:54.965034+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "86cadf2a62297314"
---
# Documentation: Test Summary Interfaces
## 1. Purpose
This module defines the contract for displaying and managing a list of test summaries within the DTS Viewer application. It follows a Model-View-ViewModel (MVVM) pattern, providing `ITestSummaryListView` (the view abstraction), `ITestSummaryListViewModel` (the presentation logic), and `ITestSummary` (the data model for individual test summaries). The module exists to decouple the UI layer from business logic and to provide a standardized way to interact with test summary data, including selection management and collection change notifications.
---
## 2. Public Interface
### `ITestSummaryListView`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseView`
A marker interface representing the view component for the test summary list. No members are defined beyond those inherited from `IBaseView`.
---
### `ITestSummaryListViewModel`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseViewModel`
| Member | Type | Description |
|--------|------|-------------|
| `View` | `ITestSummaryListView` (read-only) | Gets the Shell View associated with this ViewModel. |
| `TestSummaryList` | `ObservableCollection<ITestSummary>` | Observable collection of test summaries displayed in the list. Supports get and set. |
| `SelectedTestSummaryList` | `List<ITestSummary>` | List of currently selected test summaries. Supports get and set. |
| `PublishSelectedTestSummaryList()` | `void` | Publishes the currently selected test summaries (destination/mechanism not specified in interface). |
| `TestSummaryList_CollectionChanged(object sender

View File

@@ -0,0 +1,30 @@
---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/ViewerSettings/IViewerSettingsView.cs
- Common/DTS.Common/Interface/DTS.Viewer/ViewerSettings/IViewerSettingsViewModel.cs
generated_at: "2026-04-17T16:25:11.108113+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "b76a7379ec13e4a2"
---
# ViewerSettings
### Purpose
This module defines the view and view model interfaces for viewer settings configuration within the DTS application. It follows an MVVM pattern, providing a contract for UI components that manage calibration behavior settings and overall viewer configuration. The module enables decoupling of the settings UI from its implementation, allowing different concrete views to be swapped while maintaining consistent behavior.
### Public Interface
**IViewerSettingsView**
- Signature: `public interface IViewerSettingsView : IBaseView`
- An empty marker interface extending `IBaseView` that identifies a view component for viewer settings.
**IViewerSettingsViewModel**
- Signature: `public interface IViewerSettingsViewModel : IBaseViewModel`
- Properties:
- `IViewerSettingsView View { get; set; }` - Gets or sets the associated view instance.
- `IBaseViewModel Parent { get; set; }` - Gets or sets the parent view model in the hierarchy.
- `Visibility CalibrationBehaviorSettingVisibility { get; set; }` - Controls visibility of calibration behavior settings UI.
- `Visibility OverallSettingsVisibility { get; }` - Read-only visibility state for overall settings section.
- `DisplayedCalibrationBehavior[] AvailableCalibrationBehaviors { get; }` - Array of available calibration behavior options for selection.
- `DisplayedCalibration

View File

@@ -0,0 +1,41 @@
---
source_files:
- Common/DTS.Common/Interface/DataRecorders/IDASDBRecord.cs
- Common/DTS.Common/Interface/DataRecorders/IHardwareChannel.cs
- Common/DTS.Common/Interface/DataRecorders/IDASHardware.cs
- Common/DTS.Common/Interface/DataRecorders/IDASChannelDBRecord.cs
generated_at: "2026-04-17T15:37:41.747590+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "c69b9b4f0b53b3d9"
---
# Documentation: DTS.Common.Interface.DataRecorders
## 1. Purpose
This module defines the core interfaces for modeling Data Acquisition System (DAS) hardware and channels within the DTS system. It provides abstractions for database persistence (`IDASDBRecord`, `IDASChannelDBRecord`), runtime hardware representation (`IDASHardware`), and individual hardware channel capabilities (`IHardwareChannel`). These interfaces serve as the contract between the database layer, hardware abstraction layer, and the TTS import system, enabling the system to track hardware configuration, calibration status, channel capabilities, and hardware topology (including rack/module relationships).
---
## 2. Public Interface
### IDASDBRecord
Interface encapsulating a DAS record for database storage.
**Properties:**
| Property | Type | Description |
|----------|------|-------------|
| `DASId` | `int` | Database identifier for the DAS record |
| `SerialNumber` | `string` | Hardware serial number |
| `DASType` | `int` | Hardware type identifier |
| `MaxModules` | `int` | Maximum number of modules supported |
| `MaxMemory` | `long` | Maximum memory capacity |
| `MaxSampleRate` | `double` | Maximum supported sample rate |
| `MinSampleRate` | `double` | Minimum supported sample rate |
| `FirmwareVersion` | `string` | Firmware version string |
| `CalDate` | `DateTime` | Calibration date |
| `ProtocolVersion` | `int` | Communication protocol version |
| `LastModified`

View File

@@ -0,0 +1,96 @@
---
source_files:
- Common/DTS.Common/Interface/Database/IDatabaseCopyView.cs
- Common/DTS.Common/Interface/Database/IDatabaseSwitchView.cs
- Common/DTS.Common/Interface/Database/IDatabaseStatusBarView.cs
- Common/DTS.Common/Interface/Database/IDatabaseSwitchViewModel.cs
- Common/DTS.Common/Interface/Database/IUserDbRecord.cs
- Common/DTS.Common/Interface/Database/IDatabaseCopyViewModel.cs
- Common/DTS.Common/Interface/Database/IDatabaseStatusBarViewModel.cs
generated_at: "2026-04-17T16:03:43.915495+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "41cfe90dcb841b35"
---
# Database
### Purpose
This module defines the contract layer for database management operations within the DTS system, specifically handling database copying, switching between remote and local databases, and displaying database connection status. It provides the View and ViewModel interfaces that enable a Model-View-ViewModel (MVVM) architecture for database-related UI components, allowing applications to transfer remote databases to local instances and manage connection states.
### Public Interface
**IDatabaseCopyView**
- `interface IDatabaseCopyView : IBaseView` - Marker interface for database copy views. No members defined.
**IDatabaseSwitchView**
- `interface IDatabaseSwitchView : IBaseView` - Marker interface for database switch views. No members defined.
**IDatabaseStatusBarView**
- `interface IDatabaseStatusBarView : IBaseView` - Marker interface for database status bar views. No members defined.
**IDatabaseSwitchViewModel**
- `interface IDatabaseSwitchViewModel : IBaseViewModel` - ViewModel for transferring remote database to local database.
- `IDatabaseSwitchView View { get; set; }` - Associated view instance.
- `void Unset()` - Frees memory associated with the ViewModel.
- `bool RemoteIsActive { get; }` - Indicates if remote database is currently active.
- `string DefaultDbName { get; }` - Default database name.
- `void InitializeDbSettings(string defaultDbName, string dbHost, bool ntlmAuthentication, string dbUser, string dbPassword)` - Initializes database connection settings.
- `void SwitchRemote()` - Switches to remote database.
- `void SwitchLocal()` - Switches to local database.
- `string DbHost { get; }` - Database host address.
- `bool NTLMAuthentication { get; }` - Whether NTLM authentication is used.
- `string DbUser { get; }` - Database username.
- `string DbPassword { get; }` - Database password.
**IUserDbRecord**
- `interface IUserDbRecord` - Represents a user record in the database.
- `int ID { get; set; }` - Database ID of the user.
- `string UserName { get; set; }` - Unique username.
- `string DisplayName { get; set; }` - Display string for UI.
- `string Password { get; set; }` - Hashed and salted password value (not stored in database).
- `short Role { get; set; }` - User role identifier.
- `DateTime LastModified { get; set; }` - Last modification timestamp.
- `string LastModifiedBy { get; set; }` - Username of last modifier.
- `bool LocalOnly { get; set; }` - Deprecated field for local/remote synchronization flag.
**IDatabaseCopyViewModel**
- `interface IDatabaseCopyViewModel : IBaseViewModel` - ViewModel for copying remote database to local database.
- `IDatabaseCopyView View { get; set; }` - Associated view instance.
- `void Unset()` - Frees memory associated with the ViewModel.
- `void CopyDatabase()` - Copies from remote to local database using `DTS.Common.Storage` to determine locations.
- `void InitializeState(DbType dbType, string dbName)` - Initializes ViewModel state.
- `string DbName { get; }` - Database name.
- `IStatusAndProgressBarView OverallProgressBarView { get; }` - Overall progress/status view.
- `IStatusAndProgressBarView CurrentTaskProgressBarView { get; }` - Current task progress/status view.
- `DbType DatabaseType { get; }` - Type of database being copied.
- `bool CopyEnabled { get; }` - Whether copy operation is enabled.
- `bool IsCopyVisible { get; set; }` - Visibility state for copy operation.
**IDatabaseStatusBarViewModel**
- `interface IDatabaseStatusBarViewModel : IBaseViewModel` - ViewModel for database status bar UI.
- `IDatabaseStatusBarView View { get; set; }` - Associated view instance.
- `void Unset()` - Frees memory associated with the ViewModel.
- `DbType DatabaseType { get; }` - Current database type (requires `InitializeValues` call first).
- `bool RemoteConnected { get; }` - Remote database connection status (requires `InitializeValues` call first).
- `string ServerName { get; }` - Server name, not database name (requires `InitializeValues` call first).
- `void InitializeValues(DbType dbType, string serverName, bool remoteConnected)` - Sets initial values for display.
- `string ActiveDbName { get; }` - Current active database name based on type and connection status.
- `Brush BackgroundBrush { get; }` - Background brush for active database name display.
### Invariants
- `IUserDbRecord.UserName` must be unique across all users.
- `IUserDbRecord.Password` must be a hashed and salted value; plain text passwords are never stored.
- `IDatabaseSwitchViewModel` requires a local database with correct tables and stored procedures already configured before switching/copying operations.
- `IDatabaseStatusBarViewModel` properties (`DatabaseType`, `RemoteConnected`, `ServerName`) require `InitializeValues` to be called before their values are meaningful.
### Dependencies
- **Depends on**: `DTS.Common.Base` (IBaseView, IBaseViewModel), `DTS.Common.Enums.Database` (DbType), `System.Windows.Media` (Brush), `System` (DateTime).
- **Depended on by**: Concrete implementations of these interfaces (not shown in source).
### Gotchas
- `IUserDbRecord.LocalOnly` is marked as deprecated in the XML documentation; its use should be avoided.
- The XML documentation for `IDatabaseSwitchViewModel` and `IDatabaseCopyViewModel` both mention "transferring a remote database to a local database" and "clears the local database" - this is a destructive operation that overwrites local data.
- `IDatabaseCopyViewModel.CopyDatabase()` relies on `DTS.Common.Storage` to determine local and remote database locations, but this dependency is not visible in the interface signature.
---

View File

@@ -0,0 +1,14 @@
---
source_files:
- Common/DTS.Common/Interface/DownloadData/IDownloadDataViewModel.cs
- Common/DTS.Common/Interface/DownloadData/IDownloadDataView.cs
generated_at: "2026-04-17T16:06:28.886463+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "dbb4d92bc22a85a0"
---
# DownloadData
### Purpose
This module defines the contract for a "Download Data" feature within the application, adhering to a Model-View-ViewModel (

View File

@@ -0,0 +1,44 @@
---
source_files:
- Common/DTS.Common/Interface/DownloadEvent/IDownloadEvent.cs
generated_at: "2026-04-17T16:10:17.621281+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "54b69dae98e15350"
---
# DownloadEvent
### Purpose
This module defines `IDownloadEvent`, an interface representing a download event within the DTS system. It appears to be related to "Multiple download event" functionality (per FB 6399 reference) and provides a data-bound model for event configuration, including event identification, timing/length information, and associated test/DTS file references. The interface inherits from `INotifyPropertyChanged`, indicating it is designed for data binding in UI scenarios.
### Public Interface
**`IDownloadEvent`** (inherits `INotifyPropertyChanged`)
| Member | Type | Description |
|--------|------|-------------|
| `EventNumber` | `int` | Gets or sets the numeric identifier for the download event. |
| `EventNumberDisplay` | `string` | Gets or sets the display string for the event number. |
| `IsEnabled` | `bool` | Gets or sets whether the event is enabled. |
| `IsReadonly` | `bool` | Gets or sets whether the event is read-only. |
| `IsDefault` | `bool` | Gets whether this event is the default. (Read-only property) |
| `EventLength` | `TimeSpan` | Gets or sets the total length available for the download event. |
| `ShouldDisplayLength` | `bool` | Gets or sets whether the event length should be displayed in the UI. |
| `TestItem` | `string` | Gets or sets the test item identifier. |
| `DTSFile` | `string` | Gets or sets the associated DTS file reference. |
### Invariants
- `IsDefault` is a read-only property; implementers must provide logic to determine default status.
- All properties except `IsDefault` are read/write.
- Implementers must implement `INotifyPropertyChanged` to support UI data binding.
### Dependencies
- **Depends on**: `System`, `System.ComponentModel` (for `INotifyPropertyChanged`).
- **Depended on by**: Cannot be determined from source alone.
### Gotchas
- The comment references "FB 6399" which appears to be a feature/bug tracking identifier; the context of this reference is not available in source.
- The distinction between `EventNumber` (int) and `EventNumberDisplay` (string) suggests formatting or localization requirements that are not specified in the interface.
---

View File

@@ -0,0 +1,37 @@
---
source_files:
- Common/DTS.Common/Interface/EngineerDetails/IEngineerDetailsView.cs
- Common/DTS.Common/Interface/EngineerDetails/IEngineerDetailsViewModel.cs
generated_at: "2026-04-17T16:24:45.886852+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "f5d1f678485734fd"
---
# EngineerDetails
### Purpose
This module defines the view and view model contracts for the Engineer Details feature within the DTS application. It follows the MVVM (Model-View-ViewModel) architectural pattern, providing empty marker interfaces that extend base view/view model types to enable dependency injection and view binding for engineer-related UI components.
### Public Interface
**IEngineerDetailsView** (`IEngineerDetailsView.cs`)
- Signature: `public interface IEngineerDetailsView : IBaseView`
- Description: Marker interface for the Engineer Details view. Inherits from `IBaseView` but defines no additional members.
**IEngineerDetailsViewModel** (`IEngineerDetailsViewModel.cs`)
- Signature: `public interface IEngineerDetailsViewModel : IBaseViewModel`
- Description: Marker interface for the Engineer Details view model. Inherits from `IBaseViewModel` but defines no additional members.
### Invariants
- Both interfaces must inherit from their respective base types (`IBaseView`, `IBaseViewModel`) to maintain consistency with the application's MVVM framework.
- All implementations must reside in the `DTS.Common.Interface` namespace.
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView` and `IBaseViewModel` base interfaces)
- **Depended on by**: Unknown from source alone (likely concrete view/view model implementations and DI container registration)
### Gotchas
- Both interfaces are empty marker interfaces. Any behavior contracts must be defined in extending interfaces or concrete implementations. The purpose of these empty interfaces is unclear from source alone—they may exist for DI registration, type discrimination, or future extensibility.
---

View File

@@ -0,0 +1,77 @@
---
source_files:
- Common/DTS.Common/Interface/ExportData/IExportDataView.cs
- Common/DTS.Common/Interface/ExportData/IExportDataViewModel.cs
- Common/DTS.Common/Interface/ExportData/IExportHeader.cs
generated_at: "2026-04-17T16:35:51.580680+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "eab48691f38de164"
---
# Documentation: Export Data Interfaces
## 1. Purpose
This module defines a set of interfaces supporting a data export feature within an MVVM (Model-View-ViewModel) architecture. It provides marker interfaces for export-specific views and view models (`IExportDataView`, `IExportDataViewModel`) that integrate with a base framework, and defines `IExportHeader` for modeling selectable column headers during the export configuration process.
---
## 2. Public Interface
### `IExportDataView`
**Namespace:** `DTS.Common.Interface`
**File:** `Common/DTS.Common/Interface/ExportData/IExportDataView.cs`
```csharp
public interface IExportDataView : IBaseView
```
A marker interface extending `IBaseView`. Declares no members. Intended to identify views specifically scoped to export data functionality.
---
### `IExportDataViewModel`
**Namespace:** `DTS.Common.Interface`
**File:** `Common/DTS.Common/Interface/ExportData/IExportDataViewModel.cs`
```csharp
public interface IExportDataViewModel : IBaseViewModel
```
A marker interface extending `IBaseViewModel`. Declares no members. Intended to identify view models specifically scoped to export data functionality.
---
### `IExportHeader`
**Namespace:** `DTS.Common.Interface.ExportData`
**File:** `Common/DTS.Common/Interface/ExportData/IExportHeader.cs`
```csharp
public interface IExportHeader : INotifyPropertyChanged
```
Defines a selectable export column header with the following properties:
| Property | Type | Access | Description |
|----------|------|--------|-------------|
| `HeaderName` | `string` | get/set | The display name of the export header/column |
| `IsSelected` | `bool` | get/set | Indicates whether this header is selected for export |
Implements `INotifyPropertyChanged`, indicating that implementations are expected to raise the `PropertyChanged` event when property values change.
---
## 3. Invariants
- **`IExportHeader` implementations** must properly implement `INotifyPropertyChanged.PropertyChanged` event and are expected to raise property change notifications when `HeaderName` or `IsSelected` are modified. The source does not specify whether notifications must be raised for both properties or only the changed property.
- **Marker interfaces** (`IExportDataView`, `IExportDataViewModel`) have no behavioral contracts defined in this source; any invariants would be inherited from `IBaseView` and `IBaseViewModel` respectively, which are not included in the provided source.
---
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base.IBaseView` — base interface for `IExportDataView`
- `DTS.Common.Base.IBaseViewModel` — base interface for `IExportDataViewModel`
- `System.ComponentModel.INotifyPropertyChanged` — base interface for `IExportHeader

View File

@@ -0,0 +1,37 @@
---
source_files:
- Common/DTS.Common/Interface/ExportData/MainView/IExportMainViewModel.cs
generated_at: "2026-04-17T16:39:49.760501+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "cbc7cc6acea76256"
---
# Documentation: IExportMainViewModel
## 1. Purpose
`IExportMainViewModel` is a ViewModel interface for the main export view in a WPF-based application. It defines the contract for a primary view controller that manages multiple UI regions (navigation, graphs, properties), handles user permissions, test/file selection, keyboard navigation, and calibration behavior settings. This interface serves as the coordination point between the main view and its various sub-regions, supporting both standalone and embedded operation modes.
---
## 2. Public Interface
### Inherited Interfaces
- `IBaseViewModel` (from `DTS.Common.Base`)
- `ISelectedDataViewModel`
### Properties
| Name | Type | Access | Description |
|------|------|--------|-------------|
| `View` | `IBaseView` | get/set | The Main View instance. |
| `Standalone` | `bool` | get/set | Indicates whether the view is running in standalone mode. |
| `ContextNavigationRegion` | `object` | get/set | Context for the navigation region. |
| `ContextGraphRegion` | `object` | get/set | Context for a single graph region. |
| `ContextGraphsRegion` | `object` | get/set | Context for multiple graphs region. |
| `ContextPropertyRegion` | `object` | get/set | Context for the property region. |
| `ConfigPath` | `string` | get/set | Path to configuration. |
| `DoesUserHaveEditPermission` | `bool` | get/set | Indicates if the current user has edit permissions. |
| `ChannelCodeViewMode` | `Common.Enums.IsoViewMode` | get/set | The view mode for channel codes. |
| `CalibrationBehaviorSetting` |

View File

@@ -0,0 +1,40 @@
---
source_files:
- Common/DTS.Common/Interface/Graphs/IGraph.cs
- Common/DTS.Common/Interface/Graphs/IGraphRecord.cs
generated_at: "2026-04-17T16:37:25.581541+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "392b86d2780be0b6"
---
# Documentation: DTS.Common.Interface.Graphs
## 1. Purpose
This module defines the core data contracts for graph configuration within the DTS system. It provides two interfaces—`IGraphRecord` and `IGraph`—that model graph definitions persisted in a database, including axis bounds configuration, channel associations, and threshold lines. `IGraphRecord` represents the raw database record structure, while `IGraph` extends it with runtime operations for channel management and XML serialization. These interfaces serve as the abstraction layer between graph persistence and graph rendering/logic components.
---
## 2. Public Interface
### IGraphRecord
Base interface describing a database record for a graph.
| Property | Type | Description |
|----------|------|-------------|
| `GraphId` | `int` | Database primary key for the graph. |
| `TestSetupId` | `int` | Foreign key linking the graph to a test setup. |
| `GraphName` | `string` | Display name of the graph. Constrained to 50 characters via `[MaxLength(50)]`. |
| `GraphDescription` | `string` | Description text for the graph. Constrained to 50 characters via `[MaxLength(50)]`. |
| `ChannelsString` | `string` | Serialized representation of all channels in the graph. Constrained to 2048 characters via `[MaxLength(2048)]`. |
| `UseDomainMin` | `bool` | Flag indicating whether the domain (X) axis has a minimum bound. |
| `DomainMin` | `double` | Minimum value for the domain axis. Only meaningful when `UseDomainMin` is `true`. |
| `UseDomainMax` | `bool` | Flag indicating whether the domain (X) axis has a maximum bound. |
| `DomainMax` | `double` | Maximum value for the domain axis. Only meaningful when `UseDomainMax` is `true`. |
| `UseRangeMin` | `bool` | Flag indicating whether the range (Y) axis has a minimum bound. |
| `RangeMin` | `double` | Minimum value for the range axis. Only meaningful when `UseRangeMin` is `true`. |
| `UseRangeMax` | `bool` | Flag indicating whether the range (Y) axis has a maximum bound. |
| `RangeMax` | `double` | Maximum value for the range axis. Only meaningful when `UseRangeMax` is `true`. |
| `ThresholdsString` | `string` | Serialized representation of threshold lines to display on the graph. Constrained to 2048

View File

@@ -0,0 +1,93 @@
---
source_files:
- Common/DTS.Common/Interface/GroupTemplate/IGroupTemplateListView.cs
- Common/DTS.Common/Interface/GroupTemplate/IGroupTemplateExportView.cs
- Common/DTS.Common/Interface/GroupTemplate/IGroupTemplateImportView.cs
- Common/DTS.Common/Interface/GroupTemplate/ITemplateChannelListView.cs
- Common/DTS.Common/Interface/GroupTemplate/IGroupTemplateInfoControlView.cs
- Common/DTS.Common/Interface/GroupTemplate/IGroupTemplateViewModel.cs
- Common/DTS.Common/Interface/GroupTemplate/IGroupTemplateInfoControlViewModel.cs
- Common/DTS.Common/Interface/GroupTemplate/IGroupTemplate.cs
- Common/DTS.Common/Interface/GroupTemplate/IGroupTemplateListViewModel.cs
- Common/DTS.Common/Interface/GroupTemplate/ITemplateChannelListViewModel.cs
- Common/DTS.Common/Interface/GroupTemplate/IGroupTemplateChannel.cs
- Common/DTS.Common/Interface/GroupTemplate/ITestObjectTemplate.cs
generated_at: "2026-04-17T15:30:34.454216+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "681aad733ee04d10"
---
# Documentation: DTS.Common.Interface.GroupTemplate
## 1. Purpose
This module defines the contract interfaces for the Group Template subsystem within the DTS application. It establishes the abstraction layer between views and view models following an MVVM (Model-View-ViewModel) architecture, enabling the management, listing, import/export, and channel configuration of group templates. The interfaces support both standalone templates and embedded templates within test setups, with capabilities for sorting, filtering, and pagination.
---
## 2. Public Interface
### Views (Marker Interfaces)
| Interface | Namespace | Base | Description |
|-----------|-----------|------|-------------|
| `IGroupTemplateListView` | `DTS.Common.Interface.GroupTemplate` | `IBaseView` | Marker interface for the group template list view. |
| `IGroupTemplateExportView` | `DTS.Common.Interface.GroupTemplate` | `IBaseView` | Marker interface for the export view. |
| `IGroupTemplateImportView` | `DTS.Common.Interface.GroupTemplate` | `IBaseView` | Marker interface for the import view. |
| `ITemplateChannelListView` | `DTS.Common.Interface.GroupTemplate` | `IBaseView` | Marker interface for the template channel list view. |
| `IGroupTemplateInfoControlView` | `DataPro.Common.Interface` | `IBaseView` | Marker interface for the group template info control view. |
### IGroupTemplate
**Namespace:** `DTS.Common.Interface.GroupTemplate`
```csharp
public interface IGroupTemplate
{
bool Disabled { get; set; }
string Name { get; set; }
string Description { get; set; }
string Channels { get; set; }
string AssociatedGroups { get; set; }
string LastModifiedBy { get; set; }
DateTime LastModified { get; set; }
string SerialNumber { get; set; }
bool Filter(string term);
}
```
Represents a group template entity with metadata properties and a `Filter` method for search term matching.
### IGroupTemplateViewModel
**Namespace:** `DTS.Common.Interface.GroupTemplate`
```csharp
public interface IGroupTemplateViewModel : IBaseViewModel
{
IGroupTemplateImportView ImportView { get; set; }
IGroupTemplateExportView ExportView { get; set; }
void Unset();
}
```
Primary view model interface for group template management, holding references to import/export views.
### IGroupTemplateInfoControlViewModel
**Namespace:** `DataPro.Common.Interface`
```csharp
public interface IGroupTemplateInfoControlViewModel : IBaseViewModel
{
IGroupTemplateInfoView View { get; }
IGroupTemplateModel SelectedGroupTemplate { get; set; }
}
```
View model for the group template info control, exposing the shell view and selected template.
### IGroupTemplateListViewModel
**Namespace:** `

View File

@@ -0,0 +1,81 @@
---
source_files:
- Common/DTS.Common/Interface/Groups/IGroupImportImportView.cs
- Common/DTS.Common/Interface/Groups/IGroupHardwareDbRecord.cs
- Common/DTS.Common/Interface/Groups/IGroupImportOptionsView.cs
- Common/DTS.Common/Interface/Groups/IGroupImportPreviewView.cs
- Common/DTS.Common/Interface/Groups/ITestSetupGroupRecord.cs
- Common/DTS.Common/Interface/Groups/IGroupChannel.cs
- Common/DTS.Common/Interface/Groups/ITestObject.cs
- Common/DTS.Common/Interface/Groups/IGroupDbRecord.cs
- Common/DTS.Common/Interface/Groups/IGroupImportViewModel.cs
generated_at: "2026-04-17T15:32:03.577164+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "872c0bf6ee2eeb3a"
---
# Documentation: DTS.Common.Interface.Groups
## 1. Purpose
This module defines the core interfaces for the Group Import subsystem within DTS. It provides contracts for database record representations (`IGroupDbRecord`, `IGroupHardwareDbRecord`, `ITestSetupGroupRecord`), view interfaces for a multi-step import wizard (`IGroupImportOptionsView`, `IGroupImportPreviewView`, `IGroupImportImportView`), domain entities (`IGroupChannel`, `ITestObject`), and a coordinating view model (`IGroupImportViewModel`). The module enables parsing `.GRP` files, validating group configurations, and committing groups with their associated channels to the database through a delegate-based architecture that bridges the import module with the host application.
---
## 2. Public Interface
### IGroupImportImportView
**Inherits:** `IBaseView`
Marker interface for views responsible for presenting progress feedback during group creation and commit operations. No members defined beyond the base interface.
---
### IGroupHardwareDbRecord
Interface describing a GroupHardware record in the database.
| Property | Type | Attributes | Description |
|----------|------|------------|-------------|
| `Id` | `int` | `[Key]`, `[Column("Id")]` | Primary key of the GroupHardware record |
| `GroupId` | `int` | `[Column("GroupId")]` | Foreign key reference to a group |
| `DASId` | `int` | `[Column("DASId")]` | Data acquisition system identifier |
| `SerialNumber` | `string` | `[Column("SerialNumber")]` | Serial number of the hardware |
---
### IGroupImportOptionsView
**Inherits:** `IBaseView`
View interface for file selection and validation.
| Method | Signature | Description |
|--------|-----------|-------------|
| `Validate` | `bool Validate(out List<string> errors, out List<string> warnings)` | Returns `true` if files have been selected; `false` otherwise. Populates `errors` and `warnings` collections with validation messages. |
---
### IGroupImportPreviewView
**Inherits:** `IBaseView`
View interface for parsing channels from `.GRP` files, displaying results, and allowing group selection and renaming.
| Method | Signature | Description |
|--------|-----------|-------------|
| `Validate` | `bool Validate(bool userIsAdmin, out List<string> errors, out List<string> warnings)` | Validates currently selected groups including channels and group names. Returns `true` if all selected groups are valid. Errors indicate continuation is blocked; warnings are non-fatal. |
---
### ITestSetupGroupRecord
Interface describing a test setup group database record.
| Property | Type | Description |
|----------|------|-------------|
| `GroupId` | `int` | Database ID of the group |
| `DisplayOrder` | `int` | Display order of the group |
| `Position` | `string` | Position field (ISO 13499) for group, if available. Groups can contain mixed position fields. |
| `TestObjectType` | `string` | Test Object field (ISO 13499) for group, if available. Groups can contain mixed test object fields. |
| `TestSetupId` | `int` | Database ID of the test setup the group belongs to |
---

View File

@@ -0,0 +1,45 @@
---
source_files:
- Common/DTS.Common/Interface/Groups/GroupChannelList/IGroupChannelListView.cs
- Common/DTS.Common/Interface/Groups/GroupChannelList/IGroupChannelSettingsListView.cs
- Common/DTS.Common/Interface/Groups/GroupChannelList/IGroupChannelListViewModel.cs
generated_at: "2026-04-17T15:39:49.778268+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "c0ec7b2fdd691bd5"
---
# Documentation: Group Channel List Interfaces
## 1. Purpose
This module defines the contract for the Group Channel List feature within the DTS system. It provides three interfaces that together implement a Model-View-ViewModel (MVVM) pattern for managing, displaying, and editing group channels associated with test setups and sensor configurations. The module handles channel population, filtering, sorting, drag-and-drop sensor assignment, ISO code management, and coordinates between the main channel list view and a settings view.
---
## 2. Public Interface
### `IGroupChannelListView`
**Extends:** `IBaseView`
| Member | Signature | Description |
|--------|-----------|-------------|
| `HandleColumns` | `void HandleColumns(IsoViewMode viewMode)` | Configures which columns are displayed based on the ISO view mode. |
---
### `IGroupChannelSettingsListView`
**Extends:** `IBaseView`
| Member | Signature | Description |
|--------|-----------|-------------|
| `SetOrderMode` | `void SetOrderMode(bool bUseTestSetupOrder)` | Sets whether columns use group order or test setup order. |
| `SetDisplayOptions` | `void SetDisplayOptions(bool bShowSensorChannelUserValues)` | Controls visibility of User Value X columns. |
| `HandleColumns` | `void HandleColumns(IsoViewMode viewMode)` | Configures columns based on ISO view mode. |
| `SetFilterMode` | `void SetFilterMode(PossibleFilters filterMode)` | Configures columns based on sensor type filter. |
| `ViewDbVersion` | `int ViewDbVersion { get; set; }` | Stores minimum client DB version for feature toggling. |
---
### `IGroupChannelListViewModel`
**Extends:** `IBase

View File

@@ -0,0 +1,64 @@
---
source_files:
- Common/DTS.Common/Interface/Groups/GroupList/IGroupListView.cs
- Common/DTS.Common/Interface/Groups/GroupList/TestSetupParentHelper.cs
- Common/DTS.Common/Interface/Groups/GroupList/IGroupListViewModel.cs
- Common/DTS.Common/Interface/Groups/GroupList/IGroup.cs
generated_at: "2026-04-17T16:35:07.817551+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "78713dab5b60904a"
---
# Documentation: DTS.Common.Interface.Groups.GroupList
## 1. Purpose
This module defines the core interfaces and a helper class for the Group List feature within the DTS system. It provides the contract for managing groups—including their creation, retrieval, deletion, filtering, sorting, and persistence—while abstracting the view and view model layers. The module serves as the primary interface boundary between group management logic and the presentation layer, enabling groups to be associated with hardware, channels, sensors, test setups, and tags.
---
## 2. Public Interface
### `IGroupListView`
**File:** `IGroupListView.cs`
**Namespace:** `DTS.Common.Interface.Groups.GroupTemplateList`
A marker interface extending `IBaseView` with no additional members.
```csharp
public interface IGroupListView : IBaseView { }
```
---
### `TestSetupParentHelper`
**File:** `TestSetupParentHelper.cs`
**Namespace:** `DTS.Common.Interface.Groups.GroupList`
A simple data carrier class used to associate test setup information with groups.
| Member | Type | Description |
|--------|------|-------------|
| `Id` | `int` | Public field for the test setup identifier. |
| `Name` | `string` | Property for the test setup name. |
| `Modified` | `bool` | Property indicating whether the test setup has been modified. |
| `ToString()` | `string` | Override that returns the `Name` property. |
---
### `IGroupListViewModel`
**File:** `IGroupListViewModel.cs`
**Namespace:** `DTS.Common.Interface.Groups.GroupList`
Defines the view model contract for group list management, extending `IBaseViewModel` and `IFilterableListView`.
| Member | Signature | Description |
|--------|-----------|-------------|
| `View` | `IGroupListView { get; set; }` | Property for the associated view instance. |
| `Groups` | `IGroup[] { get; set; }` | Property for the collection of groups. |
| `Unset` | `void Unset()` | Clears or resets the view model state. |
| `Sort` | `void Sort(object o, bool columnClick)` | Sorts the group list; parameters' specific meanings unclear from source. |
| `OnSetActive` | `void OnSetActive(object page, bool groupTile, object currentUser)` | Called when the view becomes active; parameter semantics unclear. |
| `MouseDoubleClick` | `void MouseDoubleClick(int index)` | Handles double-click interaction on a group at the specified index. |
| `Filter` | `void Filter(string term)` |

View File

@@ -0,0 +1,64 @@
---
source_files:
- Common/DTS.Common/Interface/Hardware/IDASMonitorInfo.cs
- Common/DTS.Common/Interface/Hardware/IISOHardware.cs
- Common/DTS.Common/Interface/Hardware/IATDArmStatus.cs
- Common/DTS.Common/Interface/Hardware/IDiagnosticResult.cs
generated_at: "2026-04-17T15:37:39.437341+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "2331d3a38d60b064"
---
# Hardware Interfaces Documentation
## 1. Purpose
This module defines the core hardware abstraction interfaces for a Data Acquisition System (DAS). It provides contracts for monitoring hardware status (`IDASMonitorInfo`), managing arm states across distributed test devices (`IATDArmStatus`, `IDistributorArmStatus`, `IDeviceArmStatus`), persisting hardware configuration to a database (`IISOHardware`), and capturing diagnostic calibration results (`IDiagnosticResult`). These interfaces enable decoupled communication between hardware layers, diagnostic services, and data recording subsystems.
---
## 2. Public Interface
### IDASMonitorInfo
Defines monitor information for a DAS unit, including tilt sensor calibration and channel configuration.
**Properties:**
- `string SerialNumber { get; }` — Hardware serial number.
- `double[] TiltSensorCals { get; }` — Tilt sensor calibration values.
- `short[] TiltSensorDataPre { get; }` — Pre-capture tilt sensor data.
- `DFConstantsAndEnums.TiltAxes TiltAxes { get; }` — Configured tilt axes.
- `int AxisIgnored { get; }` — Index of any ignored axis.
- `double MountOffsetAxisOne { get; }` — Mount offset for axis one.
- `double MountOffsetAxisTwo { get; }` — Mount offset for axis two.
**Methods:**
- `string GetChannelName(int index)` — Retrieves channel name at the specified index.
- `double GetOffsetTolerancemVLow(int index)` — Retrieves low offset tolerance in millivolts.
- `double GetOffsetTolerancemVHigh(int index)` — Retrieves high offset tolerance in millivolts.
- `void ReadFromFile(string path)` — Reads monitor configuration from file.
- `void WriteToFile(string path)` — Writes monitor configuration to file.
---
### IISOHardware
Defines ISO hardware that can be persisted to a database. Extends `IDASDBRecord`.
**Properties:**
- `HardwareTypes DASTypeEnum { get; set; }` — Hardware type enumeration.
- `string IPAddress { get; set; }` — Network IP address.
**Methods:**
- `void GetChannelsString(out int analog, out int digitalIn, out int digitalOut, out int squib, out int uart, out int streamOut, out int streamIn, out int can)` — Retrieves channel counts by type.
- `bool IsPseudoRackModule()` — Indicates if hardware is capable of being a pseudo-rack module (e.g., SLICE slabs, SLICE6 with S6DB).
- `bool IsTSRAIR()` — Indicates if hardware is TSRAIR type.
- `bool ValidateSerialNumber(ref List<string> errors)` — Validates serial number; populates errors list on failure.
- `bool ValidateIPAddress(ref List<string> errors)` — Validates IP address; populates errors list on failure.
- `void Insert()` — Inserts hardware record into database.
- `void Update()` — Updates hardware record in database.
- `void Delete()` — Removes hardware record from database.
---
### IAllATDStatus
Aggregates

View File

@@ -0,0 +1,60 @@
---
source_files:
- Common/DTS.Common/Interface/Hardware/AddEditHardware/IAddEditHardwareView.cs
- Common/DTS.Common/Interface/Hardware/AddEditHardware/IAddEditHardwareDASModule.cs
- Common/DTS.Common/Interface/Hardware/AddEditHardware/IAddEditHardwareViewModel.cs
- Common/DTS.Common/Interface/Hardware/AddEditHardware/IAddEditHardwareHardware.cs
generated_at: "2026-04-17T16:22:07.565840+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "47afc474465cb2e8"
---
# AddEditHardware
### Purpose
This module defines the interfaces for adding and editing hardware (Data Acquisition Systems/DAS) within the DTS application. It provides a comprehensive contract for managing hardware properties, DAS modules, validation, and persistence. The module supports various hardware types including SLICE PRO SIM and SLICE6 AIR-TC configurations, with features for rack sizing, IP addressing, and module management.
### Public Interface
**IAddEditHardwareView** (`IAddEditHardwareView.cs`)
- Signature: `public interface IAddEditHardwareView : IBaseView`
- Members:
- `void Activated()` - Notifies the view it has been activated for post-activation work.
- `int ViewDbVersion { get; set; }` - Gets or sets the database version for the view.
**IAddEditHardwareDASModule** (`IAddEditHardwareDASModule.cs`)
- Signature: `public interface IAddEditHardwareDASModule`
- Members:
- `HardwareTypes ModuleType { get; set; }` - The type of the DAS module.
- `string SerialNumber { get; set; }` - Serial number of the module.
- `ImageSource DASImage { get; }` - Image representing the DAS (read-only).
- `IAddEditHardwareHardware OwningHardware { get; set; }` - Parent hardware that owns this module.
- `SLICEBridgeTypes SLICEBridgeType { get; set; }` - Bridge type for SLICE modules.
- `string GetSerialNumberPrefix()` - Returns the prefix for modules of this ModuleType.
**IAddEditHardwareViewModel** (`IAddEditHardwareViewModel.cs`)
- Signature: `public interface IAddEditHardwareViewModel : IBaseViewModel`
- Members:
- `IAddEditHardwareView View { get; set; }` - Associated view instance.
- `void Unset()` - Clears/unsets the ViewModel state.
- `IAddEditHardwareHardware Hardware { get; set; }` - Hardware being operated on.
- `int? TestId { get; set; }` - Optional test identifier.
- `void SetHardware(IDASHardware hw, IISOHardware isoHW)` - Initializes ViewModel with given hardware.
- `bool NotificationsOn { get; set; }` - Controls whether change notifications are sent.
- `bool Validate(IISOHardware isoHW, ref List<string> errors, ref List<string> warnings, bool displayWindow, bool IsAdd)` - Validates hardware; returns true if commit-able.
- `void PublishPageError(bool displayWindow, List<string> errors, List<string> warnings)` - Publishes validation errors/warnings.
- `void Save()` - Commits changes.
- `IISOHardware GetISOHardware()` - Retrieves ISO hardware representation.
- `bool AllowStandin { get; set; }` - Whether stand-in hardware is supported.
- `void SetSLICE6TreeView(ISLICE6TreeView treeView, IHardwareListViewModel treeViewModel)` - Sets SLICE6 treeview module access.
- `ISLICE6TreeView SLICE6TreeView { get; }` - Access to current SLICE6TreeView.
**IAddEditHardwareHardware** (`IAddEditHardwareHardware.cs`)
- Signature: `public interface IAddEditHardwareHardware`
- Members:
- `HardwareTypes HardwareType { get; set; }` - DAS hardware type.
- `string SerialNumber { get; set; }` - Serial number.
- `string FirmwareVersion { get; set; }` - Firmware version.
- `string IPAddress { get; set; }` - IP address (if supported).
- `bool SupportsIPAddress

View File

@@ -0,0 +1,34 @@
---
source_files:
- Common/DTS.Common/Interface/Hardware/HardwareList/ISLICE6TreeView.cs
- Common/DTS.Common/Interface/Hardware/HardwareList/IHardwareListView.cs
- Common/DTS.Common/Interface/Hardware/HardwareList/IHardwareListOverdueView.cs
- Common/DTS.Common/Interface/Hardware/HardwareList/IHardwareListReplaceView.cs
- Common/DTS.Common/Interface/Hardware/HardwareList/IHardwareListSelectView.cs
- Common/DTS.Common/Interface/Hardware/HardwareList/ISLICE6TreeNode.cs
- Common/DTS.Common/Interface/Hardware/HardwareList/IHardware.cs
- Common/DTS.Common/Interface/Hardware/HardwareList/IHardwareListViewModel.cs
generated_at: "2026-04-17T15:33:17.167341+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "bca8e8866d04c9df"
---
# Hardware List Interfaces Documentation
## 1. Purpose
This module defines the contract layer for the Hardware List subsystem within the DTS diagnostics and data acquisition system. It provides interfaces for representing hardware devices (IHardware), managing SLICE6 device tree structures (ISLICE6TreeNode, ISLICE6TreeView), and implementing a Model-View-ViewModel pattern for hardware list operations including calibration tracking, hardware replacement workflows, and SLICE6-to-SLICE6DB association management. These interfaces enable decoupling between the presentation layer and business logic for hardware inventory and configuration.
---
## 2. Public Interface
### ISLICE6TreeView
```csharp
public interface ISLICE6TreeView : IBaseView { }
```
Marker interface for SLICE6 tree view implementations. Extends `IBaseView`.
### IHardwareListView
```csharp

View File

@@ -0,0 +1,55 @@
---
source_files:
- Common/DTS.Common/Interface/ISO/ExtraProperties/IExtraPropertiesListView.cs
- Common/DTS.Common/Interface/ISO/ExtraProperties/IExtraPropertiesListViewModel.cs
- Common/DTS.Common/Interface/ISO/ExtraProperties/IExtraProperty.cs
generated_at: "2026-04-17T16:35:54.446728+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "99f1ac3c6f8ff64b"
---
# Documentation: DTS.Common.Interface.ISO.ExtraProperties
## 1. Purpose
This module defines the contract for a Model-View-ViewModel (MVVM) pattern implementation for managing a collection of "extra properties" — arbitrary key-value pairs associated with some parent entity. It provides interfaces for the view (`IExtraPropertiesListView`), view model (`IExtraPropertiesListViewModel`), and individual property items (`IExtraProperty`), enabling UI-agnostic management of property lists with support for selection, filtering, sorting, validation, and clipboard operations. The module appears designed for use within a larger desktop application framework (likely WPF-based) that handles ISO-related data.
---
## 2. Public Interface
### IExtraPropertiesListView
**Signature:** `public interface IExtraPropertiesListView : IBaseView`
A marker interface extending `IBaseView` with no additional members. Represents the view abstraction for the extra properties list UI.
---
### IExtraPropertiesListViewModel
**Signature:** `public interface IExtraPropertiesListViewModel : IBaseViewModel`
Defines the view model contract for managing a collection of extra properties.
| Member | Signature | Description |
|--------|-----------|-------------|
| `SetPage` | `void SetPage(IDataPROPage page)` | Injects a page reference, presumably for navigation or context. |
| `SetParent` | `void SetParent(object parent)` | Sets the parent object that owns these extra properties. |
| `View` | `IExtraPropertiesListView View { get; set; }` | Gets or sets the associated view instance. |
| `CopySelected` | `void CopySelected()` | Copies the currently selected properties to clipboard. |
| `DeleteSelected` | `void DeleteSelected()` | Deletes the currently selected properties from the collection. |
| `ExtraProperties` | `ObservableCollection<IExtraProperty> ExtraProperties { get; set; }` | The observable collection of extra properties bound to the UI. |
| `SetExtraProperties` | `void SetExtraProperties(IList<IExtraProperty> properties)` | Replaces the current collection with the provided list of properties. |
| `Filter` | `void Filter(object tag, string term)` | Filters the displayed properties based on a tag and search term. |
| `Sort` | `void Sort(object o, bool columnClick)` | Sorts the properties collection. Parameters suggest column-based sorting. |
| `Validate` | `bool Validate(ref List<string> errors)` | Validates the properties collection; returns `true` if valid, `false` with error messages populated in the `errors` list. |
| `IsReadOnly` | `bool IsReadOnly { get; set; }` | Controls whether the UI allows editing of properties. |
| `SelectedProperties` | `IExtraProperty[] SelectedProperties { get; }` | Returns an array of currently selected property items. |
---
### IExtraProperty
**Signature

View File

@@ -0,0 +1,64 @@
---
source_files:
- Common/DTS.Common/Interface/LabDetails/ILabDetailsView.cs
- Common/DTS.Common/Interface/LabDetails/ILabDetailsViewModel.cs
- Common/DTS.Common/Interface/LabDetails/ILabDetailsMenuView.cs
- Common/DTS.Common/Interface/LabDetails/ILabDetailsMenuViewModel.cs
generated_at: "2026-04-17T16:34:44.878640+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "c9488231a3aee52d"
---
# Documentation: LabDetails Interfaces
## 1. Purpose
This module defines four marker interfaces for the LabDetails feature within an MVVM (Model-View-ViewModel) architecture. The interfaces establish type contracts for two distinct UI components: a main LabDetails view with its corresponding view model, and a LabDetails menu view integrated with a ribbon control system. These interfaces enable dependency injection, testability, and loose coupling between UI components and their consumers.
## 2. Public Interface
### ILabDetailsView
**Signature:** `public interface ILabDetailsView : IBaseView { }`
A marker interface extending `IBaseView`. Represents the main view contract for LabDetails functionality. No members are defined beyond those inherited from `IBaseView`.
---
### ILabDetailsViewModel
**Signature:** `public interface ILabDetailsViewModel : IBaseViewModel { }`
A marker interface extending `IBaseViewModel`. Represents the view model contract paired with `ILabDetailsView`. No members are defined beyond those inherited from `IBaseViewModel`.
---
### ILabDetailsMenuView
**Signature:** `public interface ILabDetailsMenuView : IRibbonView { }`
A marker interface extending `IRibbonView`. Represents a menu view contract for LabDetails that integrates with a ribbon control system. No members are defined beyond those inherited from `IRibbonView`.
---
### ILabDetailsMenuViewModel
**Signature:** `public interface ILabDetailsMenuViewModel : IRibbonViewModel { }`
A marker interface extending `IRibbonViewModel`. Represents the view model contract paired with `ILabDetailsMenuView`. No members are defined beyond those inherited from `IRibbonViewModel`.
## 3. Invariants
- Each view interface (`ILabDetailsView`, `ILabDetailsMenuView`) must have a corresponding view model interface (`ILabDetailsViewModel`, `ILabDetailsMenuViewModel`) following the MVVM pairing pattern.
- All interfaces are marker interfaces with no additional members; any behavioral contracts are inherited from their respective base interfaces (`IBaseView`, `IBaseViewModel`, `IRibbonView`, `IRibbonViewModel`).
- The specific invariants enforced by `IBaseView`, `IBaseViewModel`, `IRibbonView`, and `IRibbonViewModel` are not visible in the provided source.
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base` — provides `IBaseView` and `IBaseViewModel` base types
- `DTS.Common.RibbonControl` — provides `IRibbonView` and `IRibbonViewModel` base types
### What depends on this module:
- Not determinable from the provided source alone. Consumers would typically include concrete implementations of these interfaces and any modules that reference LabDetails views or view models through these contracts.
## 5. Gotchas
- **Marker interfaces:** All four interfaces define no members of their own. They serve purely

View File

@@ -0,0 +1,56 @@
---
source_files:
- Common/DTS.Common/Interface/ManageUsers/IManageUsersView.cs
- Common/DTS.Common/Interface/ManageUsers/IManageUsersViewModel.cs
generated_at: "2026-04-17T16:37:26.250439+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "4a84afb7d595aca3"
---
# Documentation: IManageUsersView & IManageUsersViewModel Interfaces
## 1. Purpose
This module defines two marker interfaces, `IManageUsersView` and `IManageUsersViewModel`, which serve as type identifiers for the Manage Users feature within an MVVM (Model-View-ViewModel) architecture. These interfaces extend base view and view model contracts from the `DTS.Common.Base` namespace, enabling type-safe association between views and view models in the user management subsystem without defining any additional members.
## 2. Public Interface
### `IManageUsersView`
- **Namespace:** `DTS.Common.Interface`
- **Inheritance:** `IBaseView`
- **Signature:**
```csharp
public interface IManageUsersView : IBaseView
```
- **Behavior:** Empty marker interface. Inherits from `IBaseView` but declares no additional members. Used to identify views specifically related to user management.
### `IManageUsersViewModel`
- **Namespace:** `DTS.Common.Interface`
- **Inheritance:** `IBaseViewModel`
- **Signature:**
```csharp
public interface IManageUsersViewModel : IBaseViewModel
```
- **Behavior:** Empty marker interface. Inherits from `IBaseViewModel` but declares no additional members. Used to identify view models specifically related to user management.
## 3. Invariants
- Both interfaces are empty; they define no members beyond those inherited from their respective base interfaces.
- `IManageUsersView` must always be assignable to `IBaseView`.
- `IManageUsersViewModel` must always be assignable to `IBaseViewModel`.
- The behavior and invariants of `IBaseView` and `IBaseViewModel` are not defined in the provided source; their contracts are inherited but unspecified here.
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base` — provides `IBaseView` and `IBaseViewModel` base interfaces
### What depends on this module:
- **Unclear from source alone.** Consumers would typically include concrete view and view model implementations for the Manage Users feature, but these are not present in the provided files.
## 5. Gotchas
- **Empty marker interfaces:** Both interfaces declare no members. This is either intentional (for type discrimination/registration purposes) or represents incomplete implementation. The source alone cannot distinguish between these cases.
- **Base interface contracts unknown:** The actual responsibilities and members inherited from `IBaseView` and `IBaseViewModel` are not visible in the provided source. Developers must consult `DTS.Common.Base` to understand the full interface contract.
- **Naming convention:** The interfaces follow a naming pattern suggesting MVVM pairing, but no compile-time enforcement links a specific view to its corresponding view model.

View File

@@ -0,0 +1,50 @@
---
source_files:
- Common/DTS.Common/Interface/Menu/HamburgerMenu/IHamburgerMenuView.cs
- Common/DTS.Common/Interface/Menu/HamburgerMenu/IHamburgerMenuViewModel.cs
generated_at: "2026-04-17T16:07:58.358969+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "760e48ac189ee322"
---
# HamburgerMenu
### Purpose
This module defines the contract for a hamburger menu navigation component used for group channel navigation. The ViewModel manages menu item lifecycle (set/clear), context menu generation, and handles user interaction via a delegate callback when menu items are pressed. It supports enabling/disabling the menu state, which addresses a historical issue (reference #15324) where warning dialogs were displayed on every tab change.
### Public Interface
**IHamburgerMenuView** (extends `IBaseView`)
- Empty interface serving as a marker type for Hamburger Menu views. XML documentation describes it as "view for group channels."
**IHamburgerMenuViewModel** (extends `IBaseViewModel`)
- `IHamburgerMenuView View { get; set; }` — Gets or sets the associated view instance.
- `void OnSetActive()` — Called when the view is loaded; performs any necessary initialization work.
- `void Unset()` — Called when the view is unloaded; performs cleanup work.
- `ContextMenu GetContextMenu()` — Returns the context menu for the hamburger menu.
- `void SetMenuItems(string[] items)` — Sets the menu items to display.
- `void ClearMenuItems()` — Clears all menu items.
- `MenuItemPressedDelegate MenuItemPressed { get; set; }` — Delegate handler invoked when a menu item is pressed.
- `bool IsEnabled { get; }` — Returns whether the hamburger menu is currently enabled.
- `void EnableMenu(bool enable)` — Enables or disables the hamburger menu.
**MenuItemPressedDelegate**
- `delegate void MenuItemPressedDelegate(string command)` — Callback signature for menu item press events, receiving a string command identifier.
### Invariants
- `IsEnabled` is read-only; state changes must go through `EnableMenu(bool)`.
- The `MenuItemPressed` delegate may be null; callers should check before invoking.
- `SetMenuItems` accepts a `string[]` array; null handling behavior is unspecified.
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView`, `IBaseViewModel`)
- **Depends on**: `System.Windows.Controls` (for `ContextMenu`)
- **Consumers**: Any module that needs to provide hamburger menu navigation functionality.
### Gotchas
- The XML documentation comment on `IHamburgerMenuViewModel` incorrectly describes it as "the view module for the group import module" — this appears to be copy-paste tech debt.
- Comment references bug #15324 regarding warning dialogs on tab changes; the `EnableMenu`/`IsEnabled` mechanism was added to address this.
- The relationship between `SetMenuItems` and `GetContextMenu` is unclear — whether they operate on the same menu or different menus is not specified in the interface.
---

View File

@@ -0,0 +1,67 @@
---
source_files:
- Common/DTS.Common/Interface/Networking/INetworkingView.cs
- Common/DTS.Common/Interface/Networking/INetworkAdapterView.cs
- Common/DTS.Common/Interface/Networking/INetworkAdapterViewModel.cs
- Common/DTS.Common/Interface/Networking/INetworkingViewModel.cs
generated_at: "2026-04-17T16:34:44.833274+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "d25c28bf58e6a8e1"
---
# Documentation: Networking Interfaces
## 1. Purpose
This module defines the core interfaces for the networking subsystem within the DTS application, following the Model-View-ViewModel (MVVM) pattern. It establishes contracts for views and view models responsible for network configuration and adapter selection. The interfaces support configuration of SLICE6 multicast communication (address and ports) and provide a mechanism for reporting operational status. These abstractions decouple the UI layer from networking logic, enabling testability and separation of concerns.
---
## 2. Public Interface
### `INetworkingView`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseView`
A marker interface with no members. Serves as a type contract for networking-related views in the MVVM architecture.
---
### `INetworkAdapterView`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseView`
A marker interface with no members. Serves as a type contract for network adapter selection views.
---
### `INetworkAdapterViewModel`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseViewModel`
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `SelectedNetworkInterface` | `NetworkInterface` | get/set | Gets or sets the currently selected network interface from `System.Net.NetworkInformation`. |
---
### `INetworkingViewModel`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseViewModel`
**Properties:**
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `View` | `INetworkingView` | get/set | Reference to the associated view instance. |
| `SLICE6MulticastAddress` | `string` | get/set | The multicast address used for SLICE6 communication. |
| `SLICE6MulticastAddressHasError` | `bool` | get | Indicates whether the multicast address has a validation error. |
| `SLICE6MulticastCommandPort` | `int` | get/set | The port number for SLICE6 multicast commands. |
| `SLICE6MulticastResponsePort` | `int` | get/set | The port number for SLICE6 multicast responses. |
**Methods:**
| Signature | Description |
|-----------|-------------|
| `void SetStatus(StatusInfo.StatusState status, string message = "", decimal percentage = -1, int processId = 0)` | Updates the operational status with optional message, progress

View File

@@ -0,0 +1,76 @@
---
source_files:
- Common/DTS.Common/Interface/Pagination/IPaginationView.cs
- Common/DTS.Common/Interface/Pagination/IPaginationViewModel.cs
- Common/DTS.Common/Interface/Pagination/IFilterableListView.cs
generated_at: "2026-04-17T16:35:33.191659+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "33df2b5a84b97a39"
---
# Documentation: Pagination Interfaces
## 1. Purpose
This module defines a set of interfaces for supporting pagination and filtering functionality within a view-based architecture (likely MVVM). It provides marker interfaces for pagination-capable views and view models, as well as a contract for list views that support dynamic filtering. These interfaces enable the system to identify and interact with UI components that handle paginated or filterable data without coupling to concrete implementations.
---
## 2. Public Interface
### `IPaginationView`
**Namespace:** `DTS.Common.Interface`
**Inheritance:** `IBaseView`
A marker interface with no members. Types implementing this interface indicate they are views capable of displaying paginated content.
---
### `IPaginationViewModel`
**Namespace:** `DTS.Common.Interface`
**Inheritance:** `IBaseViewModel`
A marker interface with no members. Types implementing this interface indicate they are view models that provide pagination logic or state.
---
### `IFilterableListView`
**Namespace:** `DTS.Common.Interface.Pagination`
Defines a contract for views that support filterable list displays.
| Member | Signature | Description |
|--------|-----------|-------------|
| `Filter` | `void Filter(object tag, string term)` | Applies a filter identified by `tag` with the search criteria `term`. |
| `ClearAllFilters` | `void ClearAllFilters()` | Removes all active filters from the list view. |
| `ListViewId` | `string ListViewId { get; }` | Read-only property returning a unique identifier for this list view instance. |
---
## 3. Invariants
- **`IFilterableListView.ListViewId`** must return a valid string value. Whether it must be non-null/non-empty is not specified in the source.
- **`Filter(object tag, string term)`** accepts any `object` as a tag and any `string` as a term; no constraints on these parameters are defined at the interface level.
- The relationship between `IPaginationView`/`IPaginationViewModel` and `IFilterableListView` is not defined in the source—whether they are intended to be used together is unclear.
---
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base.IBaseView` — base interface for `IPaginationView`
- `DTS.Common.Base.IBaseViewModel` — base interface for `IPaginationViewModel`
### What depends on this module:
- Cannot be determined from the provided source files alone.
---
## 5. Gotchas
1. **Namespace inconsistency:** `IPaginationView` and `IPaginationViewModel` are located in the `Pagination` folder but declare namespace `DTS.Common.Interface`, while `IFilterableListView` uses `DTS.Common.Interface.Pagination`. This may cause confusion when locating types or resolving imports.
2. **Marker interfaces:** `IPaginationView` and `IPaginationViewModel` define no members. Their utility depends entirely on how `IBaseView` and `IBaseViewModel` are defined (not provided), and how consuming code performs type checking or registration.
3. **`Filter` method semantics:** The purpose of the `tag` parameter in `

View File

@@ -0,0 +1,20 @@
---
source_files:
- Common/DTS.Common/Interface/Realtime/IRealtimeChannelSelectView.cs
- Common/DTS.Common/Interface/Realtime/IRealtimeChannelSelectViewModel.cs
- Common/DTS.Common/Interface/Realtime/IRealtimeChannel.cs
generated_at: "2026-04-17T16:23:53.217301+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "d85c2572688c587f"
---
# Realtime
### Purpose
This module defines interfaces for real-time data channel selection in a Model-View-ViewModel (MVVM) architecture. It abstracts the presentation layer for selecting and configuring real-time data acquisition channels, providing properties for sensor metadata, hardware identification, and display configuration.
### Public Interface
**Interface: `IRealtimeChannelSelectView`** (inherits `IBaseView`)
- Marker interface with no members; extends `IBaseView` from `DTS.Common.Base`.

View File

@@ -0,0 +1,10 @@
---
source_files:
- Common/DTS.Common/Interface/RegionOfInterest/IRegionOfInterest.cs
generated_at: "2026-04-17T16:55:21.902057+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "75281db059a29c14"
---
# Documentation: IRegionOf

View File

@@ -0,0 +1,28 @@
---
source_files:
- Common/DTS.Common/Interface/RegionOfInterest/RegionOfInterestChannels/IRegionOfInterestChannelsView.cs
- Common/DTS.Common/Interface/RegionOfInterest/RegionOfInterestChannels/IRegionOfInterestChannelsViewModel.cs
generated_at: "2026-04-17T16:06:44.419376+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "ed5c736e770743c9"
---
# RegionOfInterestChannels
### Purpose
This module defines the view and view model interfaces for managing Regions of Interest (ROI) channels within the DTS system. It provides the contract for UI components that display and manipulate channel assignments to regions of interest, supporting filtering, sorting, and validation operations across groups and test setups.
### Public Interface
**IRegionOfInterestChannelsView**
- `IRegionOfInterestChannelsView : IBaseView` - Marker interface for the ROI channels view component. No additional members defined.
**IRegionOfInterestChannelsViewModel**
- `void SetParent(object o)` - Sets the parent object for the view model.
- `IRegionOfInterestChannelsView View { get; set; }` - Gets or sets the associated view instance.
- `BindingList<IRegionOfInterest> RegionsOfInterest { get; set; }` - Collection of regions of interest bound to the UI.
- `string[] AllChannelSSNs { get; }` - Read-only array of all channel serial numbers.
- `List<DTS.Common.Classes.Groups.GroupChannel> AllChannelsUnfiltered { get; set; }` - Unfiltered list of all group channels.
- `void SetGroups(ITestSetup testSetup, Dictionary<string, IDASHardware> serialNumberToHardware, IsoViewMode viewMode)` - Configures groups using a test setup, hardware lookup dictionary, and view mode.
- `void SetTest(string

View File

@@ -0,0 +1,35 @@
---
source_files:
- Common/DTS.Common/Interface/Reports/PedestrianAndHead/ITRLReportInputView.cs
- Common/DTS.Common/Interface/Reports/PedestrianAndHead/ITRLReportOutputView.cs
- Common/DTS.Common/Interface/Reports/PedestrianAndHead/IHeadReportInputView.cs
- Common/DTS.Common/Interface/Reports/PedestrianAndHead/IHeadReportOutputView.cs
- Common/DTS.Common/Interface/Reports/PedestrianAndHead/ITRLReportViewModel.cs
- Common/DTS.Common/Interface/Reports/PedestrianAndHead/IHeadReportViewModel.cs
generated_at: "2026-04-17T16:03:15.425774+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "c6aa5694736533c7"
---
# PedestrianAndHead
### Purpose
This module defines view and view model interfaces for TRL (likely pedestrian-related) and Head impact report generation. It follows the Model-View-ViewModel (MVVM) pattern, establishing contracts for input/output views and their coordinating view models to enable dependency injection and testability.
### Public Interface
**ITRLReportInputView**
- Signature: `public interface ITRLReportInputView : IBaseView`
- Behavior: Contract for the input view component of TRL report generation.
**ITRLReportOutputView**
- Signature: `public interface ITRLReportOutputView : IBaseView`
- Behavior: Contract for the output view component of TRL report generation.
**IHeadReportInputView**
- Signature: `public interface IHeadReportInputView : IBaseView`
- Behavior: Contract for the input view component of Head report generation.
**IHeadReportOutputView**
- Signature:

View File

@@ -0,0 +1,54 @@
---
source_files:
- Common/DTS.Common/Interface/RunTest/IRunTestView.cs
- Common/DTS.Common/Interface/RunTest/IRunTestViewModel.cs
generated_at: "2026-04-17T16:37:26.779847+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "8df0644989f8030b"
---
# Documentation: IRunTestView and IRunTestViewModel Interfaces
## 1. Purpose
This module defines two marker interfaces—`IRunTestView` and `IRunTestViewModel`—for the RunTest feature within the DTS application. These interfaces establish type identity for views and view models involved in test execution workflows, following the MVVM (Model-View-ViewModel) architectural pattern. They serve as extension points that inherit from base view/view model contracts, allowing components to be identified and consumed polymorphically without defining additional members specific to this feature.
## 2. Public Interface
### `IRunTestView`
- **Namespace:** `DTS.Common.Interface`
- **Inheritance:** `IBaseView`
- **Signature:**
```csharp
public interface IRunTestView : IBaseView
```
- **Behavior:** Empty interface with no members. Inherits from `IBaseView` and serves as a type marker for RunTest-related view implementations.
### `IRunTestViewModel`
- **Namespace:** `DTS.Common.Interface`
- **Inheritance:** `IBaseViewModel`
- **Signature:**
```csharp
public interface IRunTestViewModel : IBaseViewModel
```
- **Behavior:** Empty interface with no members. Inherits from `IBaseViewModel` and serves as a type marker for RunTest-related view model implementations.
## 3. Invariants
- Both interfaces are empty contracts; any behavior or state requirements are inherited from their respective base interfaces (`IBaseView` and `IBaseViewModel`).
- The actual invariants enforced by these interfaces depend on the definitions of `IBaseView` and `IBaseViewModel`, which are not provided 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 typically include concrete view and view model implementations for the RunTest feature, as well as any registration, navigation, or dependency injection wiring that resolves these interfaces.
## 5. Gotchas
- **Empty marker interfaces:** Neither interface defines any members. Developers implementing these interfaces must consult `IBaseView` and `IBaseViewModel` to understand the actual contract requirements.
- **Base interface definitions unavailable:** The source does not include `IBaseView` or `IBaseViewModel`, so the full contract obligations for implementers cannot be documented here.
- **Naming collision potential:** The term "RunTest" in the namespace path (`Interface/RunTest/`) suggests a feature area, but the interfaces themselves provide no insight into what "running a test" entails in this system.

View File

@@ -0,0 +1,39 @@
---
source_files:
- Common/DTS.Common/Interface/SensorDatabase/ISensorDatabaseView.cs
- Common/DTS.Common/Interface/SensorDatabase/ISensorDatabaseViewModel.cs
generated_at: "2026-04-17T16:24:55.024203+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "9929fdf19b3f1666"
---
# SensorDatabase
### Purpose
This module defines the view and view model contracts for the Sensor Database feature within the DTS application. It follows the MVVM (Model-View-ViewModel) pattern, providing empty marker interfaces that extend base view/viewmodel interfaces to establish a type hierarchy for Sensor Database components in the system.
### Public Interface
**`ISensorDatabaseView`** (interface)
- Extends: `IBaseView`
- Signature: `public interface ISensorDatabaseView : IBaseView`
- Description: Marker interface for Sensor Database views. No members defined; relies entirely on inherited contract from `IBaseView`.
**`ISensorDatabaseViewModel`** (interface)
- Extends: `IBaseViewModel`
- Signature: `public interface ISensorDatabaseViewModel : IBaseViewModel`
- Description: Marker interface for Sensor Database view models. No members defined; relies entirely on inherited contract from `IBaseViewModel`.
### Invariants
- Both interfaces must always be assignable to their respective base types (`IBaseView`, `IBaseViewModel`) for polymorphic handling in the MVVM infrastructure.
- Implementations are expected to provide the actual functionality through the base interface contracts.
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView` and `IBaseViewModel`)
- **Depended on by**: Unknown from source alone (likely Sensor Database feature implementations)
### Gotchas
- These are marker interfaces with no custom members. All behavior contracts come from the base interfaces. The purpose of these empty interfaces appears to be type discrimination for Sensor Database-specific views/viewmodels, but the rationale for not adding any Sensor Database-specific members is unclear from source alone.
---

View File

@@ -0,0 +1,68 @@
---
source_files:
- Common/DTS.Common/Interface/SensorTemplates/ISensorTemplatesView.cs
- Common/DTS.Common/Interface/SensorTemplates/ISensorTemplatesViewModel.cs
generated_at: "2026-04-17T16:37:26.799222+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "77f786dfa41cfc02"
---
# Documentation: ISensorTemplatesView and ISensorTemplatesViewModel
## 1. Purpose
This module defines two marker interfaces—`ISensorTemplatesView` and `ISensorTemplatesViewModel`—for the Sensor Templates feature within a Model-View-ViewModel (MVVM) architecture. These interfaces establish type contracts for the view and view model components, enabling dependency injection, type registration, and potentially navigation or lifecycle management within the broader DTS application framework. Both interfaces extend base contracts from the `DTS.Common.Base` namespace but do not define any feature-specific members.
---
## 2. Public Interface
### `ISensorTemplatesView`
- **Namespace:** `DTS.Common.Interface`
- **Inheritance:** `IBaseView`
- **Signature:**
```csharp
public interface ISensorTemplatesView : IBaseView
```
- **Behavior:** Empty marker interface. Inherits from `IBaseView` but declares no additional members. Intended to be implemented by a view class responsible for rendering the Sensor Templates UI.
### `ISensorTemplatesViewModel`
- **Namespace:** `DTS.Common.Interface`
- **Inheritance:** `IBaseViewModel`
- **Signature:**
```csharp
public interface ISensorTemplatesViewModel : IBaseViewModel
```
- **Behavior:** Empty marker interface. Inherits from `IBaseViewModel` but declares no additional members. Intended to be implemented by a view model class providing the presentation logic and state for the Sensor Templates feature.
---
## 3. Invariants
- **Type hierarchy:** `ISensorTemplatesView` must always be assignable to `IBaseView`. `ISensorTemplatesViewModel` must always be assignable to `IBaseViewModel`.
- **No additional contracts:** Neither interface defines its own members; all behavioral contracts are inherited from their respective base interfaces.
- **Invariants from base types:** Any invariants enforced by `IBaseView` or `IBaseViewModel` apply transitively, but these are not visible in the provided 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 include concrete implementations of these interfaces (e.g., a SensorTemplatesView class or SensorTemplatesViewModel class), registration/bootstrapping code, or navigation/routing configurations.
---
## 5. Gotchas
- **Empty interfaces:** Both interfaces are currently empty marker interfaces. This may indicate:
- Intentional design for type identification, service registration, or navigation routing
- Incomplete implementation awaiting feature-specific members
- All required functionality already provided by base interfaces
- **Base interface contracts unknown:** The actual responsibilities and members of `IBaseView` and `IBaseViewModel` are not visible in the provided source. Developers must consult `DTS.Common.Base` to understand what inherited contracts apply.
- **Naming convention:** The interfaces follow a naming pattern suggesting a View-ViewModel pair, but no compile-time enforcement links them together (e

View File

@@ -0,0 +1,611 @@
---
source_files:
- Common/DTS.Common/Interface/Sensors/IZeroMethods.cs
- Common/DTS.Common/Interface/Sensors/IInitialOffsets.cs
- Common/DTS.Common/Interface/Sensors/ISensorDbRecord.cs
- Common/DTS.Common/Interface/Sensors/IStreamInputSettingDefaults.cs
- Common/DTS.Common/Interface/Sensors/ISoftwareFilter.cs
- Common/DTS.Common/Interface/Sensors/ICanSettingDefaults.cs
- Common/DTS.Common/Interface/Sensors/IDigitalOutDbRecord.cs
- Common/DTS.Common/Interface/Sensors/IThermocouplerRecord.cs
- Common/DTS.Common/Interface/Sensors/IStreamInputRecord.cs
- Common/DTS.Common/Interface/Sensors/IDigitalOutDefaults.cs
- Common/DTS.Common/Interface/Sensors/IDigitalInputDefaults.cs
- Common/DTS.Common/Interface/Sensors/IDigitalInputScaleMultiplier.cs
- Common/DTS.Common/Interface/Sensors/ICANRecord.cs
- Common/DTS.Common/Interface/Sensors/IUartSettingDefaults.cs
- Common/DTS.Common/Interface/Sensors/ISensorChange.cs
- Common/DTS.Common/Interface/Sensors/IUARTRecord.cs
- Common/DTS.Common/Interface/Sensors/IStreamOutputSettingDefaults.cs
- Common/DTS.Common/Interface/Sensors/ISensorCalDbRecord.cs
- Common/DTS.Common/Interface/Sensors/IAnalogDefaults.cs
- Common/DTS.Common/Interface/Sensors/ISensorCalibration.cs
- Common/DTS.Common/Interface/Sensors/IStreamOutputRecord.cs
- Common/DTS.Common/Interface/Sensors/ICalibrationRecord.cs
- Common/DTS.Common/Interface/Sensors/IIEPESensorDefaults.cs
- Common/DTS.Common/Interface/Sensors/ISquibDbRecord.cs
- Common/DTS.Common/Interface/Sensors/ISensorAggregate.cs
- Common/DTS.Common/Interface/Sensors/ISensorBase.cs
- Common/DTS.Common/Interface/Sensors/ISquibSettingDefaults.cs
- Common/DTS.Common/Interface/Sensors/IDigitalInDbRecord.cs
- Common/DTS.Common/Interface/Sensors/ISensorData.cs
- Common/DTS.Common/Interface/Sensors/IAnalogDbRecord.cs
generated_at: "2026-04-17T15:26:58.423059+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "97f3b5be0c6d6a50"
---
# DTS.Common.Interface.Sensors Module Documentation
## 1. Purpose
This module defines the core abstraction layer for the DTS sensor management system. It provides interfaces for various sensor types (analog, digital input/output, thermocoupler, UART, CAN, stream input/output, squib), their database records, calibration data, and configuration defaults. The interfaces enable loose coupling between sensor implementations and the broader system, supporting data collection hardware configuration, calibration tracking, and ISO 13499 compliance for telemetry data.
---
## 2. Public Interface
### Base Sensor Interfaces
#### `ISensorDbRecord`
Base interface for sensor database records.
```csharp
int id { get; set; } // Primary key
short SensorType { get; set; } // Sensor type identifier
string SerialNumber { get; set; } // Required, max 50 chars
```
#### `ISensorBase`
Core sensor properties and methods for configured sensors.
```csharp
// Type identification
bool IsDigitalInput();
bool IsDigitalOutput();
bool IsSquib();
bool IsUart();
bool IsStreamOutput();
// Configuration properties
bool CheckOffset { get; set; }
bool MeasureNoise { get; set; }
bool MeasureExcitation { get; set; }
bool Invert { get; set; }
string Model { get; set; }
string Manufacturer { get; set; }
string UserPartNumber { get; set; }
double Capacity { get; set; }
double FullScaleCapacity { get; }
SensorConstants.CouplingModes CouplingMode { get; set; }
double OffsetToleranceLow { get; set; }
double OffsetToleranceHigh { get; set; }
string DisplayUnit { get; set; }
void SetDisplayUnitNoNotify(string unit);
double RangeLow { get; set; }
double RangeMedium { get; set; }
double RangeHigh { get; set; }
ExcitationVoltageOptions.ExcitationVoltageOption[] SupportedExcitation { get; set; }
void SetExcitationsNoNotify(ExcitationVoltageOptions.ExcitationVoltageOption[] excitations);
ISensorCalibration Calibration { get; set; }
SensorConstants.BridgeType Bridge { get; set; }
double BridgeResistance { get; set; }
string FilterClassIso { get; set; }
bool UniPolar { get; set; }
bool IgnoreRange { get; set; }
string LastUpdatedBy { get; set; }
int Version { get; set; }
bool LocalOnly { get; }
void SetLocalOnly(bool bLocalOnly);
short AxisNumber { get; set; }
short NumberOfAxes { get; set; }
int CalInterval { get; set; }
string Polarity { get; set; }
DateTime LastModified { get; set; }
string UserChannelName { get; set; }
string UserCode { get; set; }
string ISOChannelName { get; set; }
string ISOCode { get; set; }
string PhysicalDimension { get; set; }
string Direction { get; set; }
bool DoNotUse { get; set; }
bool Broken { get; set; }
bool OutOfDate { get; set; }
bool InWarningPeriod { get; set; }
bool InspectBeforeUse { get; set; }
void CopyValues(ISensorBase copy, bool copyCalibration = true);
```
#### `ISensorAggregate`
Nullable variant of sensor properties for aggregate views.
```csharp
bool? IsDigitalInput();
bool? IsDigitalOutput();
bool? IsSquib();
bool? IsUart();
bool? IsStreamOutput();
bool? IsAnalog();
bool? IsStreamInput();
// All properties from ISensorBase as nullable versions
IFilterClass Filter { get; set; }
```
#### `ISensorData`
Comprehensive sensor data interface combining all sensor type capabilities.
```csharp
// Identification
int DatabaseId { get; set; }
string SerialNumber { get; set; }
string UserSerialNumber { get; set; }
string UUID { get; set; }
string EID { get; set; }
string SettingName { get; set; }
string Comment { get; set; }
// Calibration
ISensorCalibration GetLatestCalibration();
ISensorCalibration NewEmbeddedSC(string units);
DateTime GetDueDate(ISensorCalibration sc);
InitialOffset InitialOffset { get; set; }
DateTime? FirstUseDate { get; set; }
int? LatestCalibrationId { get; set; }
// Type checks
bool IsDigitalInput();
bool IsDigitalOutput();
bool IsSquib();
bool IsUart();
bool IsCan();
bool IsStreamInput();
bool IsStreamOutput();
bool IsThermocoupler();
// Test-specific flags
bool IsTestSpecificDigitalOutput { get; set; }
bool IsTestSpecificSquib { get; set; }
bool IsTestSpecificDigitalIn { get; set; }
bool IsTestSpecificEmbedded { get; set; }
bool IsTestSpecificThermo { get; }
bool IsTestSpecificEmbeddedClock { get; set; }
bool IsTestSpecificStreamInput { get; set; }
bool IsTestSpecificStreamOutput { get; set; }
bool IsTestSpecificUart { get; set; }
bool IsTestSpecificCan { get; set; }
// Digital Output properties
double DigitalOutputDelayMS { get; set; }
double DigitalOutputDurationMS { get; set; }
DigitalOutputModes DigitalOutputMode { get; set; }
bool DigitalOutputLimitDuration { get; set; }
// Squib properties
double SquibFireDelayMS { get; set; }
double SquibFireDurationMS { get; set; }
bool LimitSquibFireDuration { get; set; }
double SquibToleranceLow { get; set; }
double SquibToleranceHigh { get; set; }
SquibMeasurementType SquibMeasurementType { get; set; }
double SquibOutputCurrent { get; set; }
SquibFireMode SquibFireMode { get; set; }
bool BypassCurrentFilter { get; }
bool BypassVoltageFilter { get; }
// Digital Input properties
DigitalInputModes InputMode { get; set; }
double InputActiveValue { get; set; }
double InputDefaultValue { get; set; }
// UART properties
uint UartBaudRate { get; set; }
uint UartDataBits { get; set; }
StopBits UartStopBits { get; set; }
Parity UartParity { get; set; }
Handshake UartFlowControl { get; } // Getter only
UartDataFormat UartDataFormat { get; set; }
// CAN properties
bool CanIsFD { get; set; }
int CanArbBaseBitrate { get; set; }
int CanArbBaseSJW { get; set; }
int CanDataBitrate { get; set; }
int CanDataSJW { get; set; }
string CanFileType { get; set; }
// Stream Input/Output properties
string StreamInUDPAddress { get; set; }
UDPStreamProfile StreamOutUDPProfile { get; set; }
string StreamOutUDPAddress { get; set; }
ushort StreamOutUDPTimeChannelId { get; set; }
ushort StreamOutUDPDataChannelId { get; set; }
string StreamOutUDPTmNSConfig { get; set; }
ushort StreamOutIRIGTimeDataPacketIntervalMs { get; set; }
ushort StreamOutTMATSIntervalMs { get; set; }
// Serialization
void ReadXML(System.Xml.XmlElement root);
void WriteXML(ref System.Xml.XmlWriter writer, bool exportFirstUseDate = true);
string ToDisplayString();
string GetSerialNumberWithAxis(string format);
```
---
### Analog Sensor Interfaces
#### `IAnalogDbRecord`
Database record for analog sensors.
```csharp
int Id { get; set; }
string SerialNumber { get; set; }
short AxisNumber { get; set; } // Deprecated
short BridgeLegMode { get; set; } // Deprecated
double BridgeResistance { get; set; }
SensorConstants.BridgeType Bridge { get; set; }
bool Broken { get; set; }
bool BypassFilter { get; set; }
bool CalibrationSignal { get; set; }
int CalInterval { get; set; }
double Capacity { get; set; }
bool CheckOffset { get; set; }
string Comment { get; set; }
SensorConstants.CouplingModes CouplingMode { get; set; }
DateTime Created { get; set; }
bool DiagnosticsMode { get; set; }
string DisplayUnit { get; set; }
bool DoNotUse { get; set; }
double SensitivityTolerancePercent { get; set; }
bool InspectBeforeUseCleared { get; set; }
string EId { get; set; }
double ExternalShuntResistance { get; set; }
IFilterClass Filter { get; set; }
double? InitialEu { get; set; }
double InternalShuntResistance { get; set; }
bool Invert { get; set; }
string ISOChannelName { get; set; }
string ISOCode { get; set; }
DateTime LastModified { get; set; }
bool LocalOnly { get; set; }
string Manufacturer { get; set; }
string Model { get; set; }
string ModifiedBy { get; set; }
short NumberOfAxes { get; set; }
double OffsetToleranceHigh { get; set; }
double OffsetToleranceLow { get; set; }
double RangeMedium { get; set; }
double RangeHigh { get; set; }
double RangeLow { get; set; }
int SensorCategory { get; set; }
int SensorModelId { get; set; }
short Shunt { get; set; }
SensorStatus Status { get; set; }
ExcitationVoltageOptions.ExcitationVoltageOption[] SupportedExcitation { get; set; }
byte[] TagsBlobBytes { get; set; }
long TimesUsed { get; set; }
bool UniPolar { get; set; }
string UserChannelName { get; set; }
string UserCode { get; set; }
string UserSerialNumber { get; set; }
string UserValue1 { get; set; }
string UserValue2 { get; set; }
string UserValue3 { get; set; }
int Version { get; set; }
DateTime? FirstUseDate { get; set; }
int? LatestCalibrationId { get; set; }
bool ACCouplingModeEnabled { get; set; }
string AssemblyName { get; set; }
int UsageCount { get; set; }
int MaximumUsage { get; set; }
```
#### `IAnalogDefaults`
Default settings for analog sensors.
```csharp
IFilterClass SelectedFilterOption { get; set; }
List<IFilterClass> FilterOptions { get; }
bool UseMeasuredExcitation { get; set; }
bool Validate();
void Save();
void ReadXML(System.Xml.XmlElement root);
void WriteXML(ref System.Xml.XmlWriter writer);
bool TrackAnalogDiagnosticsEnabled { get; }
bool TrackAnalogDiagnostics { get; set; }
```
---
### Digital Input/Output Interfaces
#### `IDigitalInDbRecord`
Database record for digital input settings.
```csharp
int Id { get; set; }
string SerialNumber { get; set; }
DigitalInputModes Mode { get; set; }
IDigitalInputScaleMultiplier ScaleMultiplier { get; set; }
DateTime LastModified { get; set; }
string LastModifiedBy { get; set; }
string EID { get; set; }
string ISOCode { get; set; }
string ISOChannelName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
string UserValue1 { get; set; }
string UserValue2 { get; set; }
string UserValue3 { get; set; }
byte[] UserTags { get; set; }
string MeasurementUnit { get; set; }
IFilterClass FilterClass { get; set; }
bool DoNotUse { get; set; }
bool Broken { get; set; }
```
#### `IDigitalInputScaleMultiplier`
Scale multiplier for digital input interpretation.
```csharp
Forms Form { get; set; } // Enum: ArbitraryLowAndHigh
double DefaultValue { get; set; } // Value for OFF state
double ActiveValue { get; set; } // Value for ON state
bool SimpleEquals(IDigitalInputScaleMultiplier rhs);
string ToSerializeDbString();
void FromDbSerializeString(string s);
```
#### `IDigitalInputDefaults`
Default settings for digital inputs.
```csharp
double ConstantCurrentBreakpointADC { get; set; }
double VoltageBreakpointADC { get; set; }
bool DisplaySPDADC { get; set; }
bool Validate();
```
#### `IDigitalOutDbRecord`
Database record for digital output settings.
```csharp
int DatabaseId { get; set; }
string SerialNumber { get; set; }
double DODelay { get; set; }
double DODuration { get; set; }
string ModifiedBy { get; set; }
DateTime LastModified { get; set; }
string ISOCode { get; set; }
string ISOChannelName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
bool Broken { get; set; }
bool DoNotUse { get; set; }
DigitalOutputModes DOMode { get; set; }
bool LimitDuration { get; set; }
int Version { get; set; }
byte[] TagsBlobBytes { get; set; }
```
#### `IDigitalOutDefaults`
Default settings for digital outputs.
```csharp
DigitalOutputModes OutputMode { get; set; }
double DelayMS { get; set; }
bool LimitDuration { get; set; }
double DurationMS { get; set; }
```
---
### Squib Interfaces
#### `ISquibDbRecord`
Database record for squib (explosive initiator) settings.
```csharp
string SerialNumber { get; set; }
int Id { get; set; }
bool BypassCurrentFilter { get; set; }
bool BypassVoltageFilter { get; set; }
double DelayMs { get; set; }
double DurationMs { get; set; }
SquibFireMode FireMode { get; set; }
string IsoCode { get; set; }
string IsoChannelName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
SquibMeasurementType MeasurementType { get; set; }
double SquibOutputCurrent { get; set; }
double SquibToleranceLow { get; set; }
double SquibToleranceHigh { get; set; }
bool LimitDuration { get; set; }
string ArticleId { get; set; }
int Version { get; set; }
DateTime LastModified { get; set; }
string LastModifiedBy { get; set; }
string UserValue1 { get; set; }
string UserValue2 { get; set; }
string UserValue3 { get; set; }
byte[] UserTags { get; set; }
bool DoNotUse { get; set; }
bool Broken { get; set; }
bool DefineDelayInTest { get; set; }
```
#### `ISquibSettingDefaults`
Default settings for squib outputs.
```csharp
double ToleranceLowDefault { get; set; }
double ToleranceHighDefault { get; set; }
double OutputCurrentDefault { get; set; }
SquibMeasurementType MeasurementTypeDefault { get; set; }
SquibFireMode FireModeDefault { get; set; }
bool LimitDurationDefault { get; set; }
double FireDurationMS { get; set; }
double FireDelayMS { get; set; }
bool Validate();
bool ToleranceValid { get; }
```
---
### UART Interfaces
#### `IUARTRecord`
Database record for UART sensors.
```csharp
int Id { get; set; }
string SerialNumber { get; set; }
uint UartBaudRate { get; set; }
uint UartDataBits { get; set; }
StopBits UartStopBits { get; set; }
Handshake UartFlowControl { get; } // Getter only
UartDataFormat UartDataFormat { get; set; }
Parity UartParity { get; set; }
DateTime LastModified { get; set; }
string LastUpdatedBy { get; set; }
byte[] TagsBlobBytes { get; set; }
bool DoNotUse { get; set; }
bool Broken { get; set; }
```
#### `IUartSettingDefaults`
Default settings for UART configuration.
```csharp
uint BaudRate { get; set; }
uint DataBits { get; set; }
StopBits StopBits { get; set; }
Parity Parity { get; set; }
Handshake FlowControl { get; } // Getter only
UartDataFormat DataFormat { get; set; }
bool Validate();
```
---
### CAN Interfaces
#### `ICANRecord`
Database record for CAN bus sensors.
```csharp
int Id { get; set; }
string SerialNumber { get; set; }
DateTime LastModified { get; set; }
string LastUpdatedBy { get; set; }
byte[] TagsBlobBytes { get; set; }
bool DoNotUse { get; set; }
bool Broken { get; set; }
bool CanIsFD { get; set; }
int CanArbBaseBitrate { get; set; }
int CanArbBaseSJW { get; set; }
int CanDataBitrate { get; set; }
int CanDataSJW { get; set; }
string CanFileType { get; set; }
```
#### `ICanSettingDefaults`
Default settings for CAN configuration.
```csharp
bool IsFD { get; set; }
int ArbBaseBitrate { get; set; }
int ArbBaseSJW { get; set; }
int DataBitrate { get; set; }
int DataSJW { get; set; }
string FileType { get; set; }
bool Validate();
```
---
### Stream Input/Output Interfaces
#### `IStreamInputRecord`
Database record for stream input sensors.
```csharp
int Id { get; set; }
string SerialNumber { get; set; }
DateTime LastModified { get; set; }
string LastUpdatedBy { get; set; }
byte[] TagsBlobBytes { get; set; }
bool DoNotUse { get; set; }
bool Broken { get; set; }
string StreamInUDPAddress { get; set; }
```
#### `IStreamInputSettingDefaults`
Default settings for stream input.
```csharp
string UDPAddress { get; set; }
bool Validate();
```
#### `IStreamOutputRecord`
Database record for stream output sensors.
```csharp
int Id { get; set; }
string SerialNumber { get; set; }
DateTime LastModified { get; set; }
string LastUpdatedBy { get; set; }
byte[] TagsBlobBytes { get; set; }
bool DoNotUse { get; set; }
bool Broken { get; set; }
UDPStreamProfile StreamOutUDPProfile { get; set; }
string StreamOutUDPAddress { get; set; }
ushort StreamOutUDPTimeChannelId { get; set; }
ushort StreamOutUDPDataChannelId { get; set; }
string StreamOutUDPTmNSConfig { get; set; }
ushort StreamOutIRIGTimeDataPacketIntervalMs { get; set; }
ushort StreamOutTMATSIntervalMs { get; set; }
```
#### `IStreamOutputSettingDefaults`
Default settings for stream output.
```csharp
UDPStreamProfile Profile { get; set; }
string UDPAddress { get; set; }
ushort TimeChannelId { get; set; }
ushort DataChannelId { get; set; }
string TmNSConfig { get; set; }
ushort IRIGTimeDataPacketIntervalMs { get; set; }
bool UseAdvancedUDPStreamProfiles { get; set; }
bool Validate();
```
---
### Thermocoupler Interface
#### `IThermocouplerRecord`
Database record for thermocoupler sensors.
```csharp
int Id { get; set; }
string SerialNumber { get; set; }
DateTime LastModified { get; set; }
string LastUpdatedBy { get; set; }
byte[] TagsBlobBytes { get; set; }
bool DoNotUse { get; set; }
bool Broken { get; set; }
```
---
### Calibration Interfaces
#### `ISensorCalDbRecord`
Database record for sensor calibration.
```csharp
int? CalibrationId { get; set; }
string SerialNumber { get; set; }
DateTime CalibrationDate { get; set; }
string Username { get; set; }
bool LocalOnly { get; set; }
bool NonLinear { get; set; }
ICalibrationRecords Records { get; set; }
DateTime ModifyDate { get; set; }
bool IsProportional { get; set; }
bool RemoveOffset { get; set; }
ZeroMethods ZeroMethods { get; set; }
string[] CertificationDocuments { get; set; }
InitialOffsets InitialOffsets { get; set; }
bool LinearAdded { get; }
SensitivityInspectionType SensitivityInspection { get; set; }
string CalibrationNote { get; set; }
int UsageCount { get; set; }
```
#### `ISensorCalibration`
Extended calibration interface with serialization.
```csharp
string EngineeringUnits { get; }

View File

@@ -0,0 +1,36 @@
---
source_files:
- Common/DTS.Common/Interface/Sensors/AnalogDiagnostics/IDiagnosticRun.cs
- Common/DTS.Common/Interface/Sensors/AnalogDiagnostics/IDiagnosticEntry.cs
generated_at: "2026-04-17T16:24:55.024568+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "5ebd8c3221c912e5"
---
# AnalogDiagnostics
### Purpose
This module defines the data contracts for analog sensor diagnostic testing. It captures the structure of diagnostic runs (test sessions) and individual diagnostic entries (per-channel test results), including excitation, offset, range, noise, and shunt measurements with pass/fail status tracking.
### Public Interface
**`IDiagnosticRun`** (interface)
- Namespace: `DTS.Common.Interface.Sensors.AnalogDiagnostics`
- Members:
- `long? Id { get; set; }` — Nullable identifier for the diagnostic run
- `string DataPROUser { get; set; }` — User associated with the diagnostic run
- `int? TestId { get; set; }` — Nullable test identifier
- `string TestName { get; set; }` — Name of the test
- `bool PreTest { get; set; }` — Flag indicating if this is a pre-test run
**`IDiagnosticEntry`** (interface)
- Namespace: `DTS.Common.Interface.Sensors.AnalogDiagnostics`
- Members:
- `long? Id { get; set; }` — Nullable identifier for the entry
- `long DiagnosticRunId { get; set; }` — Foreign key to parent diagnostic run (non-nullable)
- `double? Excitation { get; set; }` — Excitation measurement value
- `DiagnosticStatus ExcitationStatus { get; set; }` — Status of excitation test
- `double? Offset { get; set; }` — Offset measurement value
- `DiagnosticStatus OffsetStatus { get; set; }` — Status of offset test
- `double? ActualRange { get; set; }` — Actual range measurement

View File

@@ -0,0 +1,61 @@
---
source_files:
- Common/DTS.Common/Interface/Sensors/SensorSettingsModule/ISensorSettingsView.cs
- Common/DTS.Common/Interface/Sensors/SensorSettingsModule/ISensorSettingsViewModel.cs
- Common/DTS.Common/Interface/Sensors/SensorSettingsModule/ICalibrationPolicy.cs
generated_at: "2026-04-17T16:23:28.254054+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "14988a2958fb721f"
---
# SensorSettingsModule
### Purpose
This module defines the contract for the Sensor Settings user interface component within the DTS application. It provides interfaces for configuring sensor-related defaults including squib settings, digital I/O, IEPE sensors, calibration policies, and analog settings. The module follows a Model-View-ViewModel (MVVM) pattern, separating the view concerns from the business logic of persisting and validating sensor configuration defaults per user.
### Public Interface
**ISensorSettingsView**
- `interface ISensorSettingsView : IBaseView` - Marker interface for the Sensor Settings view. No members defined beyond the base interface.
**ISensorSettingsViewModel**
- `string User { get; set; }` - User identifier used when saving/reading defaults from the database.
- `int UserID { get; set; }` - Numeric user ID used when saving/reading defaults from the database.
- `ISensorSettingsView View { get; set; }` - The associated view instance for this ViewModel.
- `ISquibSettingDefaults SquibSettings { get; set; }` - Defaults for squib configuration.
- `IDigitalOutDefaults DigitalOutSettings { get; set; }` - Defaults for digital output configuration.
- `IDigitalInputDefaults DigitalInputDefaults { get; set; }` - Defaults for digital input configuration.
- `IIEPESensorDefaults IEPESensorDefaults { get; set; }` - Defaults for IEPE sensor configuration.
- `ICalibrationPolicy SensorCalibrationDefaults { get; set; }` - Calibration policy defaults.
- `IAnalogDefaults AnalogDefaults { get; set; }` - Analog settings defaults (FB 13120 default filter class setting).
- `void RestoreOriginalSettings()` - Restores all settings to their original/pre-modification values.
- `void Unset()` - Uninitializes the display and frees memory resources.
- `void OnSetActive()` - Initializes the display when the view becomes active.
- `bool ValidateAndSave()` - Validates current settings; returns true if valid and saves, returns false if invalid without saving.
**ICalibrationPolicy**
- `SensorConstants.SensorCalPolicy SelectedCalPolicy { get; set; }` - The currently selected calibration policy.
- `SensorConstants.SensorCalPolicy[] AvailableSensorCalPolicies { get; }` - Array of all available calibration policies.
- `int WarningPeriod { get; set; }` - Period in days before calibration is due for a warning.
- `bool UseSensorFirstUseDate { get; set; }` - Whether calibration interval starts after calibration date or first use date.
- `bool DontAllowDataCollectionIfOverused { get; set; }` - Whether to validate Test Setup based on sensor usage limits.
- `int UsageRemainingForWarning { get; set; }` - Threshold for warning when sensor usage approaches maximum.
- `int DefaultMaxUsageAllowed { get; set; }` - Default maximum number of uses for sensors.
- `bool SensorAssemblyEnabled { get; }` - Whether the database supports sensor usage policy.
- `bool AllowInspectBeforeUseEnabled { get; }` - Whether the database supports "inspect before use" feature.
- `bool AllowInspectBeforeUse { get; set; }` - Whether to allow inspect before use (FB43142).
- `void ReadXML(System.Xml.XmlElement root)` - Imports settings from XML (FB15758).
- `void WriteXML(ref System.Xml.XmlWriter writer)` - Exports settings to XML (FB15758).
### Invariants
- `ValidateAndSave()` must not persist invalid settings; it returns false and performs no save operation.
- `RestoreOriginalSettings()` should return all configurable properties to their state as of the last successful load or save.
- XML import/export methods (`ReadXML`/`WriteXML`) are paired operations for settings migration.
### Dependencies
- **Depends on**: `DTS.Common.Base` (IBaseView, IBaseViewModel), `DTS.Common.Enums.Sensors` (SensorConstants.SensorCalPolicy).
- **Referenced interfaces not defined in this module**: `ISquibSettingDefaults`, `IDigitalOutDefaults`, `IDigitalInputDefaults`, `IIEPESensorDefaults`, `IAnalogDefaults` (all used as property types).
### Gotchas
- The `User` and `UserID` properties are used for database persistence context; their synchronization with

View File

@@ -0,0 +1,365 @@
---
source_files:
- Common/DTS.Common/Interface/Sensors/SensorsList/ISensorsListOverdueView.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/ISensorTemplatesExportView.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/ISensorsTemplatesImportView.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/ISensorTemplatesViewModel.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/ISensorsListView.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/ISensorsListEditGroupView.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/IDragAndDropItem.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/ISquib.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/ISensorsListEditGroupViewModel.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/IStreamInputSetting.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/ICanIOSetting.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/IUartIOSetting.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/IDigitalInputSetting.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/IDigitalOutputSetting.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/ISensorsListViewModel.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/IStreamOutputSetting.cs
- Common/DTS.Common/Interface/Sensors/SensorsList/IAnalogSensor.cs
generated_at: "2026-04-17T15:28:59.729208+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "bee3b0a04bb35df3"
---
# Documentation: DTS.Common.Interface.Sensors.SensorsList
## 1. Purpose
This module defines the interface contracts for the sensor management subsystem, encompassing views, view models, and data models for multiple sensor types (analog sensors, squibs, digital I/O, UART, CAN, and stream I/O). It provides the abstraction layer between UI components and business logic for displaying, filtering, sorting, and managing sensors, supporting calibration tracking, drag-and-drop operations, sensor grouping, and template import/export functionality.
---
## 2. Public Interface
### Marker Interfaces (Empty Contracts)
| Interface | Base | Purpose |
|-----------|------|---------|
| `ISensorsListOverdueView` | `IBaseView` | Marker for overdue sensors view |
| `ISensorTemplatesExportView` | `IBaseView` | Marker for template export view |
| `ISensorsTemplatesImportView` | `IBaseView` | Marker for template import view |
| `ISensorTemplatesViewModel` | `IBaseViewModel` | Marker for templates view model |
---
### ISensorsListView
```csharp
public interface ISensorsListView : IBaseView
{
void HandleColumns(CalibrationBehaviors calibrationBehavior);
void SetIncludedVisible(bool bUsesIncludeColumn);
void HandleAssemblyVisibilityColumns(bool bDontAllowDataCollectionIfOverused);
void HandleInspectBeforeUseVisibilityColumn(bool show);
}
```
**Behavior**: Controls column visibility and configuration for the main sensors list view based on calibration behavior and system settings.
---
### ISensorsListEditGroupView
```csharp
public interface ISensorsListEditGroupView : IBaseView
{
void HandleColumns();
void HandleAssemblyVisibilityColumns(bool bDontAllowDataCollectionIfOverused);
void HandleInspectBeforeUseVisibilityColumn(bool show);
}
```
**Behavior**: Manages column configuration for the sensor group editing view. Referenced in FB 13065 (Sensor "First Use" Date).
---
### IDragAndDropItem
```csharp
public interface IDragAndDropItem
{
string SerialNumber { get; set; }
int DatabaseId { get; set; }
string ISOCode { get; }
string ISOChannelName { get; }
string UserCode { get; }
string UserChannelName { get; }
}
```
**Behavior**: Describes the payload when dragging sensors from a sensor list. Common interface across different sensor types.
---
### ISquib
```csharp
public interface ISquib
{
int DatabaseId { get; set; }
bool Included { get; set; }
string SerialNumber { get; set; }
string Description { get; set; }
double ResistanceLow { get; set; }
double ResistanceHigh { get; set; }
string ID { get; set; }
string SQMode { get; set; }
double SQDelay { get; set; }
double SQCurrent { get; set; }
double SQDuration { get; set; }
bool LimitDuration { get; set; }
string ModifiedBy { get; set; }
DateTime LastModified { get; set; }
bool Filter(string term);
bool Assigned { get; set; }
bool Online { get; set; }
string ISOCode { get; set; }
string ISOChannelName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
SquibFireMode Mode { get; set; }
bool Broken { get; set; }
bool DoNotUse { get; set; }
}
```
**Behavior**: Represents a squib (explosive initiator) sensor for UI display with firing parameters, resistance ranges, and status flags.
---
### IAnalogSensor
```csharp
public interface IAnalogSensor
{
SensorConstants.BridgeType Bridge { get; set; }
bool IEPE { get; }
int DatabaseId { get; set; }
bool Included { get; set; }
string SerialNumber { get; set; }
string Description { get; set; }
string Manufacturer { get; set; }
string Model { get; set; }
double Capacity { get; set; }
double RangeHigh { get; set; }
double RangeMedium { get; set; }
double RangeLow { get; set; }
string Sensitivity { get; set; }
string AddedSensitivity { get; set; }
double Resistance { get; set; }
string Excitation { get; set; }
string Units { get; set; }
string EID { get; set; }
DateTime CalDate { get; set; }
DateTime CalDueDate { get; set; }
string ModifiedBy { get; set; }
DateTime LastModified { get; set; }
bool Filter(string term);
bool Assigned { get; set; }
bool Online { get; set; }
string ISOCode { get; set; }
string ISOChannelName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
FilterClassType CFC { get; set; }
bool Polarity { get; set; }
string NonLinearCalculationType { get; set; }
NonLinearStyles NonLinearCalculationTypeEnum { get; set; }
ZeroMethodType ZeroMethod { get; set; }
double ZeroMethodStart { get; set; }
double ZeroMethodEnd { get; set; }
string UserValue1 { get; set; }
string UserValue2 { get; set; }
string UserValue3 { get; set; }
UIItemStatus SensorCalibrationOrUsageStatus { get; }
InitialOffset[] InitialOffsets { get; set; }
IFilterClass FilterClass { get; set; }
DateTime? FirstUseDate { get; set; }
int? LatestCalibrationId { get; set; }
bool UsingLatestCalibration { get; set; }
int SensorUsageCount { get; set; }
int MaximumUsage { get; set; }
string AssemblyName { get; set; }
}
```
**Behavior**: Primary interface for analog sensor representation in the UI. Includes calibration tracking, usage monitoring, and first-use date tracking (FB 13065). Supports dual-sensitivity sensors via `AddedSensitivity`.
---
### IDigitalInputSetting
```csharp
public interface IDigitalInputSetting
{
int DatabaseId { get; set; }
bool Included { get; set; }
string SerialNumber { get; set; }
string Description { get; set; }
string DIMode { get; set; }
string ModifiedBy { get; set; }
DateTime LastModified { get; set; }
bool Filter(string term);
bool Assigned { get; set; }
bool Online { get; set; }
string EID { get; set; }
string ISOCode { get; set; }
string ISOChannelName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
string ActiveValue { get; set; }
string DefaultValue { get; set; }
DigitalInputModes Mode { get; set; }
bool Broken { get; set; }
bool DoNotUse { get; set; }
}
```
**Behavior**: Represents digital input configuration for UI display with active/idle state display values.
---
### IDigitalOutputSetting
```csharp
public interface IDigitalOutputSetting
{
int DatabaseId { get; set; }
bool Included { get; set; }
string SerialNumber { get; set; }
string Description { get; set; }
double DODelay { get; set; }
double DODuration { get; set; }
string ModifiedBy { get; set; }
DateTime LastModified { get; set; }
bool Filter(string term);
bool Assigned { get; set; }
bool Online { get; set; }
string ISOCode { get; set; }
string ISOChannelName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
bool LimitDuration { get; set; }
DigitalOutputModes DOMode { get; set; }
bool Broken { get; set; }
bool DoNotUse { get; set; }
}
```
**Behavior**: Represents digital output configuration with timing parameters (delay, duration).
---
### IUartIOSetting
```csharp
public interface IUartIOSetting
{
int DatabaseId { get; set; }
bool Included { get; set; }
string SerialNumber { get; set; }
string Description { get; set; }
string LastModifiedBy { get; set; }
DateTime LastModified { get; set; }
bool Filter(string term);
bool Assigned { get; set; }
bool Online { get; set; }
string ISOCode { get; set; }
string ISOChannelName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
bool Broken { get; set; }
bool DoNotUse { get; set; }
uint BaudRate { get; set; }
uint DataBits { get; set; }
StopBits StopBits { get; set; }
Parity Parity { get; set; }
Handshake FlowControl { get; } // Read-only per FB 30486
UartDataFormat DataFormat { get; set; }
}
```
**Behavior**: Represents UART I/O configuration with serial communication parameters. `FlowControl` is read-only and always `NONE` per FB 30486.
---
### ICanIOSetting
```csharp
public interface ICanIOSetting
{
int DatabaseId { get; set; }
bool Included { get; set; }
string SerialNumber { get; set; }
string Description { get; set; }
string LastModifiedBy { get; set; }
DateTime LastModified { get; set; }
bool Filter(string term);
bool Assigned { get; set; }
bool Online { get; set; }
string ISOCode { get; set; }
string ISOChannelName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
bool Broken { get; set; }
bool DoNotUse { get; set; }
bool CanIsFD { get; set; }
int CanArbBaseBitrate { get; set; }
int CanArbBaseSJW { get; set; }
int CanDataBitrate { get; set; }
int CanDataSJW { get; set; }
string CanFileType { get; set; }
}
```
**Behavior**: Represents CAN bus I/O configuration with CAN FD support and bitrate parameters.
---
### IStreamInputSetting
```csharp
public interface IStreamInputSetting
{
int DatabaseId { get; set; }
bool Included { get; set; }
string SerialNumber { get; set; }
string Description { get; set; }
string LastModifiedBy { get; set; }
DateTime LastModified { get; set; }
bool Filter(string term);
bool Assigned { get; set; }
bool Online { get; set; }
string ISOCode { get; set; }
string ISOChannelName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
bool Broken { get; set; }
bool DoNotUse { get; set; }
string UDPAddress { get; set; }
}
```
**Behavior**: Represents stream input configuration with UDP address support.
---
### IStreamOutputSetting
```csharp
public interface IStreamOutputSetting
{
int DatabaseId { get; set; }
bool Included { get; set; }
string SerialNumber { get; set; }
string Description { get; set; }
string LastModifiedBy { get; set; }
DateTime LastModified { get; set; }
bool Filter(string term);
bool Assigned { get; set; }
bool Online { get; set; }
string ISOCode { get; set; }
string ISOChannelName { get; set; }
string UserCode { get; set;

View File

@@ -0,0 +1,59 @@
---
source_files:
- Common/DTS.Common/Interface/Sensors/SoftwareFilters/ISoftwareFiltersView.cs
- Common/DTS.Common/Interface/Sensors/SoftwareFilters/ISoftwareFiltersViewModel.cs
generated_at: "2026-04-17T16:37:28.874617+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "3dee9bc406f144e0"
---
# Documentation: DTS.Common.Interface.Sensors.SoftwareFilters
## 1. Purpose
This module defines the contract for the Software Filters feature within the DTS system. It provides interfaces for both the view layer (`ISoftwareFiltersView`) and the view model layer (`ISoftwareFiltersViewModel`) following an MVVM pattern, as well as a separate `IFilterClass` interface for representing individual filter configurations. The module enables the display, sorting, filtering, and persistence of software filter settings, likely used in sensor data processing workflows.
---
## 2. Public Interface
### `ISoftwareFiltersView`
**Signature:** `public interface ISoftwareFiltersView : IBaseView { }`
A marker interface extending `IBaseView`. It defines no members of its own and serves as a type contract for view implementations in the MVVM architecture.
---
### `IFilterClass`
**Signature:** `public interface IFilterClass : IComparable`
Defines a filter class configuration with frequency and type properties. Marked with `System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))` for property grid expansion support.
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `FilterName` | `string` | get | Read-only name of the filter |
| `FClass` | `FilterClassType` | get/set | The filter class type enumeration value |
| `Frequency` | `double` | get/set | The frequency value for the filter |
| `GetFilterClassNumericValue()` | `int` | method | Returns a numeric representation of the filter class |
**Note:** Implements `IComparable`, implying instances can be sorted/ordered.
---
### `ISoftwareFiltersViewModel`
**Signature:** `public interface ISoftwareFiltersViewModel : IBaseViewModel, IFilterableListView`
The primary view model contract for managing a collection of software filters. Inherits from both `IBaseViewModel` and `IFilterableListView`.
| Member | Type | Description |
|--------|------|-------------|
| `View` | `ISoftwareFiltersView` (get/set) | Reference to the associated view instance |
| `SoftwareFilters` | `ObservableCollection<ISoftwareFilter>` (get/set) | Bindable collection of software filters |
| `CurrentUser` | `string` (get/set) | The current user context for the view model |
| `Sort(object sortBy, bool bColumnClick)` | `void` | Sorts the filter collection based on the provided parameter |
| `Unset()` | `void` | Clears or resets the view model state |
| `Filter(string currentFilter)` | `void` | Applies a text-based filter to the collection |
| `GetSoftwareFilters()` | `ISoftwareFilter[]` | Returns the filters as an array |
| `PopulateView()` | `void` | Initializes/populates the view with data |
| `Validate

View File

@@ -0,0 +1,21 @@
---
source_files:
- Common/DTS.Common/Interface/StatusAndProgressBar/IStatusAndProgressBarView.cs
- Common/DTS.Common/Interface/StatusAndProgressBar/IStatusAndProgressFooterView.cs
- Common/DTS.Common/Interface/StatusAndProgressBar/IStatusAndProgressBarFooterViewModel.cs
- Common/DTS.Common/Interface/StatusAndProgressBar/IStatusAndProgressBarViewModel.cs
- Common/DTS.Common/Interface/StatusAndProgressBar/StatusAndProgressDelegates.cs
generated_at: "2026-04-17T16:02:22.284071+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "b7c6bd43a8c00b74"
---
# StatusAndProgressBar
### Purpose
This module provides interfaces and delegates for status reporting and progress indication within the application's UI. It supports both a main progress bar view and a footer-based progress display, enabling decoupled communication between background operations and UI updates through defined delegate types.
### Public Interface
**IStatusAndProgressBarView** : `IBase

View File

@@ -0,0 +1,29 @@
---
source_files:
- Common/DTS.Common/Interface/SystemSettings/ISystemSettingsView.cs
- Common/DTS.Common/Interface/SystemSettings/ISystemSettingsViewModel.cs
generated_at: "2026-04-17T16:24:45.888599+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "fdb313195ef8d3f3"
---
# SystemSettings
### Purpose
This module defines the view and view model contracts for the System Settings feature. It provides a shell view architecture with multiple regions (context menu, main content, navigation), enabling a modular UI composition pattern where different components can be injected into designated areas of the settings interface.
### Public Interface
**ISystemSettingsView** (`ISystemSettingsView.cs`)
- Signature: `public interface ISystemSettingsView : IBaseView`
- Description: Marker interface for the System Settings view. Inherits from `IBaseView` with no additional members.
**ISystemSettingsViewModel** (`ISystemSettingsViewModel.cs`)
- Signature: `public interface ISystemSettingsViewModel : IBaseViewModel`
- Description: Defines the contract for the System Settings view model with region management capabilities.
| Member | Signature | Description |
|--------|-----------|-------------|
| `View` | `ISystemSettingsView View { get; }` | Read-only property providing access to the associated Shell View. |
| `GetRegions()` | `List<FrameworkElement> GetRegions()` | Returns a collection of `FrameworkElement` objects representing UI regions. |

View File

@@ -0,0 +1,78 @@
---
source_files:
- Common/DTS.Common/Interface/SystemSettings/DB/IDBImportView.cs
- Common/DTS.Common/Interface/SystemSettings/DB/IDBExportView.cs
- Common/DTS.Common/Interface/SystemSettings/DB/IDBViewModel.cs
generated_at: "2026-04-17T16:35:54.942184+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "9116b3acac6aeb65"
---
# Documentation: DB Import/Export Interfaces
## 1. Purpose
This module defines a set of interfaces for database import and export functionality within the system settings context. It provides an abstraction layer for view models handling file-based data transfer operations, specifically supporting XML-formatted import/export workflows. The interfaces `IDBImportView` and `IDBExportView` serve as view contracts, while `IDBViewModel` orchestrates the data flow between import/export operations and their associated views.
---
## 2. Public Interface
### `IDBImportView`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseView`
A marker interface with no members. Used to identify views responsible for import functionality.
---
### `IDBExportView`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseView`
A marker interface with no members. Used to identify views responsible for export functionality.
---
### `IDBViewModel`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseViewModel`
Defines the contract for a view model that manages database import and export operations.
**Properties:**
| Name | Type | Access | Description |
|------|------|--------|-------------|
| `ImportView` | `IDBImportView` | get/set | The view instance handling import UI |
| `ExportView` | `IDBExportView` | get/set | The view instance handling export UI |
| `ImportFileName` | `string` | get/set | File path to import from |
| `ImportStatusText` | `string` | get/set | Status message for import operations |
| `ExportFileName` | `string` | get/set | File path to export to |
| `ExportData` | `string` | get/set | Formatted XML string to write to the export file |
| `ImportData` | `string` | get/set | Formatted XML string read from the import file |
**Methods:**
| Name | Return Type | Description |
|------|-------------|-------------|
| `Export()` | `void` | Exports `ExportData` to `ExportFileName` |
---
## 3. Invariants
- `IDBImportView` and `IDBExportView` must always be assignable to `IBaseView`.
- `IDBViewModel` must always be assignable to `IBaseViewModel`.
- `ExportData` and `ImportData` are expected to contain formatted XML strings (as noted in source comments).
- The `Export()` method is expected to write the contents of `ExportData` to the path specified by `ExportFileName`.
---
## 4. Dependencies
**This module depends on:**
- `DTS.Common.Base` — provides `IBaseView` and `IBaseViewModel` base interfaces.
**What depends on this module:**

View File

@@ -0,0 +1,62 @@
---
source_files:
- Common/DTS.Common/Interface/SystemSettings/ISOSettings/IisoSettingsView.cs
- Common/DTS.Common/Interface/SystemSettings/ISOSettings/IISOSettingsModel.cs
- Common/DTS.Common/Interface/SystemSettings/ISOSettings/IISOSettingsViewModel.cs
- Common/DTS.Common/Interface/SystemSettings/ISOSettings/IISOSettingsData.cs
generated_at: "2026-04-17T16:35:04.545245+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "fddef7f2bd60cdbb"
---
# ISO Settings Module Documentation
## 1. Purpose
This module defines the contract for ISO (International Organization for Standardization) settings configuration within the DTS system. It establishes a Model-View-ViewModel (MVVM) architecture for managing ISO-related application settings, including code display preferences, view modes, and validation requirements. The interfaces provide abstraction layers that decouple the presentation logic from data persistence and business rules.
---
## 2. Public Interface
### `IISOSettingsView`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseView`
A marker interface for the ISO Settings view component. Contains no members; all behavior is inherited from `IBaseView`.
---
### `IISOSettingsModel`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseModel`
Defines the data persistence contract for ISO settings.
| Method | Signature | Description |
|--------|-----------|-------------|
| `SaveData` | `void SaveData(IISOSettingsData data)` | Persists the provided ISO settings data. |
| `LoadData` | `IISOSettingsData LoadData()` | Retrieves the current ISO settings data. |
---
### `IISOSettingsViewModel`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseViewModel`
Defines the coordinator between view, model, and data components.
| Property | Type | Access | Description |
|----------|------|--------|-------------|
| `View` | `IISOSettingsView` | `get; set;` | Reference to the associated view instance. |
| `ISOData` | `IISOSettingsData` | `get; set;` | The ISO settings data being managed. |
| `Model` | `IISOSettingsModel` | `get; set;` | Reference to the model for data operations. |
---
### `IISOSettingsData`
**Namespace:** `DTS.Common.Interface`
**Inherits:** `IBaseClass`
Defines the data structure

View File

@@ -0,0 +1,37 @@
---
source_files:
- Common/DTS.Common/Interface/SystemSettings/PowerAndBattery/IPowerAndBatteryView.cs
- Common/DTS.Common/Interface/SystemSettings/PowerAndBattery/IPowerAndBatteryViewModel.cs
generated_at: "2026-04-17T16:25:09.412115+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "1379d037a4fc0710"
---
# PowerAndBattery
### Purpose
This module defines the contract interfaces for the Power and Battery settings feature within the system settings hierarchy. It follows the Model-View-ViewModel (MVVM) pattern, providing empty marker interfaces that extend base view and view model contracts, allowing concrete implementations to be injected and swapped at runtime.
### Public Interface
**`IPowerAndBatteryView`** (`IPowerAndBatteryView.cs`)
- **Signature:** `public interface IPowerAndBatteryView : IBaseView { }`
- **Behavior:** Marker interface for Power and Battery settings views. Inherits from `IBaseView` but defines no additional members.
**`IPowerAndBatteryViewModel`** (`IPowerAndBatteryViewModel.cs`)
- **Signature:** `public interface IPowerAndBatteryViewModel : IBaseViewModel { }`
- **Behavior:** Marker interface for Power and Battery settings view models. Inherits from `IBaseViewModel` but defines no additional members.
### Invariants
- Both interfaces must remain empty marker interfaces, relying entirely on their base contracts (`IBaseView`, `IBaseViewModel`) for functionality.
- The View-ViewModel pairing is implied by naming convention but not enforced at compile time.
### Dependencies
- **Depends on:** `DTS.Common.Base` (specifically `IBaseView` and `IBaseViewModel`)
- **Dependents:** Unknown from source alone—likely consumed by concrete implementations in a UI layer and dependency injection configuration.
### Gotchas
- The interfaces define no Power/Battery-specific members. Any domain-specific properties or methods must be added to these interfaces or handled through the base interfaces' mechanisms. The current design suggests either a placeholder implementation or that all required behavior is already defined in the base interfaces.
---

View File

@@ -0,0 +1,52 @@
---
source_files:
- Common/DTS.Common/Interface/SystemSettings/QASettings/IQASettingsView.cs
- Common/DTS.Common/Interface/SystemSettings/QASettings/IQASettingsViewModel.cs
generated_at: "2026-04-17T16:37:30.823094+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "d8b9901d57c4012d"
---
# Documentation: IQASettingsView and IQASettingsViewModel Interfaces
## 1. Purpose
This module defines two marker interfaces, `IQASettingsView` and `IQASettingsViewModel`, which represent the View and ViewModel contracts for a QA (Quality Assurance) Settings feature within the system settings domain. These interfaces follow the Model-View-ViewModel (MVVM) architectural pattern and serve as extension points for concrete implementations, inheriting from base view and viewmodel abstractions. Their role is to provide type identity for QA settings-related views and viewmodels within the DTS application framework.
## 2. Public Interface
### `IQASettingsView`
- **Namespace:** `DTS.Common.Interface`
- **Declaration:** `public interface IQASettingsView : IBaseView { }`
- **Inheritance:** Extends `IBaseView` from `DTS.Common.Base`
- **Members:** None defined
- **Behavior:** Serves as a marker interface for QA Settings view implementations. Any concrete view implementing this interface must also satisfy the `IBaseView` contract.
### `IQASettingsViewModel`
- **Namespace:** `DTS.Common.Interface`
- **Declaration:** `public interface IQASettingsViewModel : IBaseViewModel { }`
- **Inheritance:** Extends `IBaseViewModel` from `DTS.Common.Base`
- **Members:** None defined
- **Behavior:** Serves as a marker interface for QA Settings viewmodel implementations. Any concrete viewmodel implementing this interface must also satisfy the `IBaseViewModel` contract.
## 3. Invariants
- Any class implementing `IQASettingsView` must also implement all members of `IBaseView` (exact members unspecified in provided source).
- Any class implementing `IQASettingsViewModel` must also implement all members of `IBaseViewModel` (exact members unspecified in provided source).
- Both interfaces are public and must remain accessible for external implementations.
- The interfaces define no additional members beyond their base interfaces, implying they are intended purely for type discrimination or future extensibility.
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base` — Provides `IBaseView` and `IBaseViewModel` base interfaces that these interfaces extend.
### What depends on this module:
- **Cannot be determined from source alone.** Concrete view and viewmodel classes implementing these interfaces, as well as any registration, navigation, or dependency injection infrastructure that resolves these types, would depend on this module.
## 5. Gotchas
- **Empty marker interfaces:** Both interfaces define no members of their own. The rationale for having separate interfaces rather than using `IBaseView`/`IBaseViewModel` directly is not clear from the source—it may be for type identification, dependency injection registration, or future extensibility.
- **Base interface contracts unknown:** The actual requirements imposed by `IBaseView` and `IBaseViewModel` are not visible in the provided source, making it unclear what implementers must provide.
- **Naming convention:** The file path (`SystemSettings/QASettings`) suggests these are part of a larger settings hierarchy, but the relationship to other settings interfaces is not documented in the source.

View File

@@ -0,0 +1,51 @@
---
source_files:
- Common/DTS.Common/Interface/SystemSettings/RealtimeSettings/IRealtimeSettingsView.cs
- Common/DTS.Common/Interface/SystemSettings/RealtimeSettings/IRealtimeSettingsViewModel.cs
generated_at: "2026-04-17T16:37:40.296576+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "5e75e9eb3642973f"
---
# Documentation: IRealtimeSettingsView and IRealtimeSettingsViewModel
## 1. Purpose
This module defines two marker interfaces—`IRealtimeSettingsView` and `IRealtimeSettingsViewModel`—for the RealtimeSettings feature within the SystemSettings domain. These interfaces follow the Model-View-ViewModel (MVVM) pattern, establishing type identity for views and view models that handle real-time system configuration. They serve as extension points for concrete implementations while maintaining consistency with the broader application architecture through their base interfaces.
## 2. Public Interface
### `IRealtimeSettingsView`
- **Namespace:** `DTS.Common.Interface`
- **Signature:** `public interface IRealtimeSettingsView : IBaseView { }`
- **Behavior:** An empty marker interface that inherits from `IBaseView`. It provides no additional members beyond those defined in its base interface. Used to identify view components responsible for rendering real-time settings UI.
### `IRealtimeSettingsViewModel`
- **Namespace:** `DTS.Common.Interface`
- **Signature:** `public interface IRealtimeSettingsViewModel : IBaseViewModel { }`
- **Behavior:** An empty marker interface that inherits from `IBaseViewModel`. It provides no additional members beyond those defined in its base interface. Used to identify view model components that manage state and logic for real-time settings.
## 3. Invariants
- Any class implementing `IRealtimeSettingsView` must also fulfill the contract of `IBaseView`.
- Any class implementing `IRealtimeSettingsViewModel` must also fulfill the contract of `IBaseViewModel`.
- The exact members required by `IBaseView` and `IBaseViewModel` are not visible in the provided source; their contracts must be obtained from `DTS.Common.Base` to understand full implementation requirements.
## 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 typically be concrete view and view model classes within the `SystemSettings/RealtimeSettings` feature area, but no implementations are shown in the provided files.
## 5. Gotchas
- **Empty interfaces:** Both interfaces define no members of their own. This suggests they are either:
- Marker interfaces used solely for type identification/registration purposes.
- Work-in-progress placeholders where domain-specific members have not yet been defined.
- **Base interface contracts unknown:** Without visibility into `IBaseView` and `IBaseViewModel`, developers cannot determine what methods, properties, or events must be implemented to satisfy these interfaces.
- **File path vs. namespace mismatch:** The files are located in `Common/DTS.Common/Interface/SystemSettings/RealtimeSettings/`, but the declared namespace is `DTS.Common.Interface`. The subfolders (`SystemSettings/RealtimeSettings`) do not affect the namespace, which may cause confusion when locating types.

View File

@@ -0,0 +1,37 @@
---
source_files:
- Common/DTS.Common/Interface/SystemSettings/TablesSettings/ITablesSettingsView.cs
- Common/DTS.Common/Interface/SystemSettings/TablesSettings/ITablesSettingsModel.cs
generated_at: "2026-04-17T16:25:09.413509+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "e54974454f73a467"
---
# TablesSettings
### Purpose
This module defines the contract interfaces for the Tables Settings feature within the system settings hierarchy. It follows the MVVM pattern, providing marker interfaces for view and view model components that handle table-related configuration in the application.
### Public Interface
**`ITablesSettingsView`** (`ITablesSettingsView.cs`)
- **Signature:** `public interface ITablesSettingsView : IBaseView { }`
- **Behavior:** Marker interface for Tables settings views. Inherits from `IBaseView` with no additional members.
**`ITablesSettingsViewModel`** (`ITablesSettingsModel.cs`)
- **Signature:** `public interface ITablesSettingsViewModel : IBaseViewModel { }`
- **Behavior:** Marker interface for Tables settings view models. Inherits from `IBaseViewModel` with no additional members.
### Invariants
- Both interfaces must remain empty marker interfaces.
- The View-ViewModel pairing is implied by naming convention.
### Dependencies
- **Depends on:** `DTS.Common.Base` (specifically `IBaseView` and `IBaseViewModel`)
- **Dependents:** Unknown from source alone—likely consumed by concrete implementations in a UI layer.
### Gotchas
- **File naming inconsistency:** The file `ITablesSettingsModel.cs` contains the interface `ITablesSettingsViewModel`. The filename suggests "Model" but the interface name follows the "ViewModel" convention. This mismatch could cause confusion when navigating the codebase or during code reviews.
---

View File

@@ -0,0 +1,36 @@
---
source_files:
- Common/DTS.Common/Interface/SystemSettings/TestSettings/ITestSettingsView.cs
- Common/DTS.Common/Interface/SystemSettings/TestSettings/ITestSettingsViewModel.cs
generated_at: "2026-04-17T16:06:49.134285+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "a0265c566979ffb5"
---
# TestSettings
### Purpose
This module defines the view and ViewModel interfaces for the Test Settings feature within the system settings hierarchy. It provides empty contract interfaces that extend base types, allowing for type-safe view/ViewModel pairing in what appears to be an MVVM architecture.
### Public Interface
**`ITestSettingsView`** (interface)
- Inherits from: `IBaseView`
- No members defined. Serves as a marker interface for Test Settings views.
**`ITestSettingsViewModel`** (interface)
- Inherits from: `IBaseViewModel`
- No members defined. Serves as a marker interface for Test Settings ViewModels.
### Invariants
- Both interfaces must be implemented by concrete types that also satisfy their respective base contracts (`IBaseView` and `IBaseViewModel`).
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView` and `IBaseViewModel`)
- **Depended on by**: Unknown from source alone (likely concrete Test Settings implementations)
### Gotchas
- Both interfaces are empty marker interfaces. Any behavior contracts must be defined in the base interfaces or added to these interfaces later.
---

View File

@@ -0,0 +1,56 @@
---
source_files:
- Common/DTS.Common/Interface/SystemSettings/UISettings/IUISettingsView.cs
- Common/DTS.Common/Interface/SystemSettings/UISettings/IUISettingsViewModel.cs
generated_at: "2026-04-17T16:37:28.996637+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "de88342860a71a53"
---
# Documentation: IUISettingsView and IUISettingsViewModel Interfaces
## 1. Purpose
This module defines two marker interfaces—`IUISettingsView` and `IUISettingsViewModel`—that establish the View and ViewModel contracts for a UI Settings feature within an MVVM (Model-View-ViewModel) architecture. These interfaces exist to provide type identity for UI Settings components, allowing them to be identified, resolved, or constrained independently of their base types. They serve as extension points for future UI-specific settings functionality while maintaining compatibility with the broader `IBaseView` and `IBaseViewModel` hierarchies.
---
## 2. Public Interface
### `IUISettingsView`
- **Namespace:** `DTS.Common.Interface`
- **Signature:** `public interface IUISettingsView : IBaseView`
- **Description:** A marker interface for UI Settings views. Inherits from `IBaseView` but defines no additional members. Intended to be implemented by view components responsible for displaying or editing UI settings.
### `IUISettingsViewModel`
- **Namespace:** `DTS.Common.Interface`
- **Signature:** `public interface IUISettingsViewModel : IBaseViewModel`
- **Description:** A marker interface for UI Settings view models. Inherits from `IBaseViewModel` but defines no additional members. Intended to be implemented by view model components that manage the state and behavior for UI settings views.
---
## 3. Invariants
- **Inheritance constraint:** `IUISettingsView` must always inherit from `IBaseView`, and `IUISettingsViewModel` must always inherit from `IBaseViewModel`.
- **Member contract:** Neither interface defines any members of its own; all behavior contracts are inherited from their respective base interfaces.
- **Type identity:** Any class implementing `IUISettingsView` or `IUISettingsViewModel` is implicitly also a `IBaseView` or `IBaseViewModel` respectively.
**Note:** Additional invariants (e.g., threading requirements, lifecycle guarantees) cannot be determined from the source alone and would be defined in `IBaseView` and `IBaseViewModel`.
---
## 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 include concrete view and view model implementations for UI settings, as well as any dependency injection containers, navigation services, or factory classes that resolve or create UI Settings components by these interface types.
---
## 5. Gotchas
- **Empty marker interfaces:** Both interfaces define no members. This is a valid pattern for type discrimination, but developers should be aware that all actual behavior contracts come from `IBaseView` and `IBaseViewModel`. If UI Settings-specific members are needed in the future, these interfaces would need to be extended.
- **Base interface contracts unknown:** The actual responsibilities, properties, and methods that implementers must provide are defined in `IBaseView` and `IBaseViewModel`, which are not included in the provided source. Developers should consult those definitions to understand the full contract

View File

@@ -0,0 +1,40 @@
---
source_files:
- Common/DTS.Common/Interface/TSRAIRGo/INavigationButtonInfo.cs
- Common/DTS.Common/Interface/TSRAIRGo/ArmStateMachineStates.cs
generated_at: "2026-04-17T16:06:29.967746+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "9dc42f5f04856916"
---
# TSRAIRGo
### Purpose
This module provides interfaces and enums for the TSRAIRGo feature, specifically defining navigation button configuration and arm state machine states. The `INavigationButtonInfo` interface standardizes navigation button properties, while `ArmStateMachineStates.States` enum defines the lifecycle states for an arming process, likely related to hardware device control or data acquisition triggering.
### Public Interface
- **`INavigationButtonInfo`** (interface) - Defines properties for navigation button configuration:
- `NavigationButtonId Id { get; }` - Read-only identifier for the button.
- `string Text { get; set; }` - Button display text.
- `string Tooltip { get; set; }` - Button tooltip text.
- `bool Enabled { get; set; }` - Button enabled state.
- `bool ShowBorder { get; set; }` - Border visibility toggle.
- **`ArmStateMachineStates`** (class) - Container class for the `States` enum.
- **`ArmStateMachineStates.States`** (enum) - Defines arming state machine states with `Description` attributes:
- `CheckingArmState` - "Checking Arm State"
- `Disarmed` - "Disarmed"
- `IDLE` - "IDLE"
- `PreparingForArming` - "Preparing For Arming"
- `ClearingFlash` - "Clearing Flash"
- `WaitingForTrigger` - "Waiting For Trigger"
- `Recording` - "Recording"
- `PostTestProcessing` - "Post Test Processing"
- `CheckingForData` - "Checking For Data"
- `GettingEventInfo` - "Getting Event Info"
- `ReadyForDownload` - "Ready For Download"
- `Faulted` - "Faulted"
### Invariants
- `INavigationButtonInfo.Id` is read-only and should remain constant for a given button instance.

View File

@@ -0,0 +1,52 @@
---
source_files:
- Common/DTS.Common/Interface/Tags/ITagAssignment.cs
- Common/DTS.Common/Interface/Tags/ITagAware.cs
- Common/DTS.Common/Interface/Tags/ITag.cs
generated_at: "2026-04-17T16:23:53.215410+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "b4a7b44904b5a3ec"
---
# Tags
### Purpose
This module defines the core interfaces and types for a tagging system that allows arbitrary objects to be associated with text-based tags. It provides the data structures for tag assignment relationships, the contract for tag-aware entities, and the representation of tag records themselves. This enables a flexible categorization and filtering mechanism across various entity types in the system.
### Public Interface
**Enum: `TagTypes`**
- Defines the categories of objects that can be tagged: `User`, `Group`, `Template`, `TestSetup`, `Sensors`, `SensorModels`.
**Interface: `ITagAssignment`**
- `int ObjectID { get; set; }` - The ID of the object being tagged.
- `int TagID { get; set; }` - The ID of the tag being assigned.
- `TagTypes ObjectType { get; set; }` - The type category of the object being tagged.
**Interface: `ITagAware`**
- `void SetTags(string[] tagsText)` - Associates the provided tag strings with the implementing object.
- `string[] GetTagsArray()` - Retrieves all tag strings associated with the object.
- `int[] GetTagIDs()` - Retrieves the database IDs of all associated tags.
- `void RemoveTags(string[] tagsText)` - Removes the specified tag strings from the object.
- `bool ContainsAnyTag(int[] tags)` - Returns true if the object is associated with any of the provided tag IDs.
**Interface: `ITag`** (inherits `ICloneable`)
- `int ID { get; set; }` - Database identifier for the tag record.
- `string Text { get; set; }` - The text label of the tag.
- `bool IsObsolete { get; set; }` - Indicates whether the tag has been marked obsolete.
### Invariants
- `ITagAssignment` requires both `ObjectID` and `TagID` to reference valid existing records (not enforced at interface level).
- `TagTypes` enum values determine which entity types are taggable; adding new types requires enum modification.
- `ITag` inherits from `ICloneable`, implying implementations must support object duplication.
### Dependencies
- **Depends on**: `System` (for `ICloneable` in `ITag`).
- **Depended on by**: Unknown from source alone—likely consumed by tag management services, repositories, and entity implementations.
### Gotchas
- The `ITagAware.ContainsAnyTag` method takes `int[]` tag IDs while `SetTags` and `RemoveTags` operate on `string[]` tag text. Callers must be aware of this API inconsistency.
- `ITagAssignment` does not include the tag text itself, only the `TagID`, requiring a join or lookup to resolve tag names.
---

View File

@@ -0,0 +1,55 @@
---
source_files:
- Common/DTS.Common/Interface/TestMetaData/ITestEngineerDetailsDbRecord.cs
- Common/DTS.Common/Interface/TestMetaData/ICustomerDetailsDbRecord.cs
- Common/DTS.Common/Interface/TestMetaData/ILabratoryDetailsDbRecord.cs
generated_at: "2026-04-17T16:36:24.942784+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "906e36c501c7f613"
---
# Documentation: DTS.Common.Interface.TestMetaData
## 1. Purpose
This module defines data contract interfaces for test metadata entities within the DTS system. It provides three interfaces—`ITestEngineerDetailsDbRecord`, `ICustomerDetailsDbRecord`, and `ILabratoryDetailsDbRecord`—that abstract database records representing test engineers, customers, and laboratories respectively. These interfaces serve as ORM-mappable contracts, using DataAnnotations attributes to specify primary keys and column mappings, enabling loose coupling between database schema and consuming code.
---
## 2. Public Interface
### `ITestEngineerDetailsDbRecord`
Defines a record in the `TestEngineerDetails` database table.
| Property | Type | Attributes | Description |
|----------|------|------------|-------------|
| `TestEngineerId` | `int` | `[Key]`, `[Column("TestEngineerId")]` | Primary key for the record |
| `Name` | `string` | `[Column("Name")]` | Name field |
| `TestEngineerName` | `string` | `[Column("TestEngineerName")]` | Test engineer name |
| `TestEngineerPhone` | `string` | `[Column("TestEngineerPhone")]` | Phone number |
| `TestEngineerFax` | `string` | `[Column("TestEngineerFax")]` | Fax number |
| `TestEngineerEmail` | `string` | `[Column("TestEngineerEmail")]` | Email address |
| `LocalOnly` | `bool` | `[Column("LocalOnly")]` | Local-only flag |
| `LastModified` | `DateTime` | `[Column("LastModified")]` | Timestamp of last modification |
| `LastModifiedBy` | `string` | `[Column("LastModifiedBy")]` | User who last modified the record |
| `Version` | `int` | `[Column("Version")]` | Version number for concurrency tracking |
---
### `ICustomerDetailsDbRecord`
Defines a record in the `CustomerDetails` database table.
| Property | Type | Attributes | Description |
|----------|------|------------|-------------|
| `CustomerId` | `int` | `[Key]`, `[Column("CustomerId")]` | Primary key for the record |
| `Name` | `string` | `[Column("Name")]` | Name field |
| `CustomerName` | `string` | `[Column("CustomerName")]` | Customer name |
| `CustomerTestRefNumber` | `string` | `[Column("CustomerTestRefNumber")]` | Customer test reference number |
| `ProjectRefNumber` | `string` | `[Column("ProjectRefNumber")]` | Project reference number |
| `CustomerOrderNumber` | `string` | `[Column("CustomerOrderNumber")]` | Customer order number |
| `CustomerCostUnit` | `string` | `[Column("CustomerCostUnit")]` | Customer cost unit |
| `LocalOnly` | `bool` | `[Column("LocalOnly")]` | Local-only flag |
| `LastModified` | `DateTime` | `[Column("LastModified")]` | Timestamp of last modification |

View File

@@ -0,0 +1,42 @@
---
source_files:
- Common/DTS.Common/Interface/TestModule/ITestModuleView.cs
- Common/DTS.Common/Interface/TestModule/ITestModuleViewModel.cs
generated_at: "2026-04-17T16:07:10.454200+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "1757ca37501c0a0c"
---
# TestModule
### Purpose
This module defines the contract for a Test Module component within the DTS application, following a View-ViewModel pattern. It provides interfaces for a testing or assembly inspection feature, allowing the ViewModel to expose a list of assemblies that the View can consume. This appears to be part of a plugin or module testing infrastructure.
### Public Interface
**ITestModuleView**
- Signature: `public interface ITestModuleView : IBaseView { }`
- Description: Marker interface for the Test Module View. Inherits from `IBaseView` but defines no additional members.
**ITestModuleViewModel**
- Signature: `public interface ITestModuleViewModel : IBaseViewModel`
- Description: ViewModel interface for the Test Module. Inherits from `IBaseViewModel` and exposes assembly data.
- Property: `List<Assembly> AssemblyList { get; set; }` - Gets or sets a list of .NET assemblies, presumably for inspection, testing, or module loading purposes.
### Invariants
- `ITestModuleView` must always be assignable to `IBaseView`.
- `ITestModuleViewModel` must always be assignable to `IBaseViewModel`.
- The `AssemblyList` property may be null or empty; null safety is not enforced at the interface level.
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView` and `IBaseViewModel` base interfaces)
- **Depends on**: `System.Collections.Generic` (for `List<T>`)
- **Depends on**: `System.Reflection` (for `Assembly` type)
- **Depended on by**: Cannot be determined from source alone; likely consumed by concrete View/ViewModel implementations and a DI container or navigation service.
### Gotchas
- The `AssemblyList` uses `set` accessor, meaning the entire list can be replaced. Consumers should be aware that the reference can change, not just the contents.
- Neither interface defines any methods for loading or validating assemblies—this logic is left to implementations.
---

View File

@@ -0,0 +1,19 @@
---
source_files:
- Common/DTS.Common/Interface/TestSetups/ITestSetupsView.cs
- Common/DTS.Common/Interface/TestSetups/ITestSetupsViewModel.cs
- Common/DTS.Common/Interface/TestSetups/ITestDASOrder.cs
- Common/DTS.Common/Interface/TestSetups/IROIPeriodChannelRecord.cs
- Common/DTS.Common/Interface/TestSetups/ITestSetupHardwareRecord.cs
- Common/DTS.Common/Interface/TestSetups/ITestSetupROIRecord.cs
- Common/DTS.Common/Interface/TestSetups/ICalculatedChannelRecord.cs
- Common/DTS.Common/Interface/TestSetups/IISFFile.cs
generated_at: "2026-04-17T15:33:15.223209+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "9b1827902d318cea"
---
# TestSetups
#

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

View File

@@ -0,0 +1,24 @@
---
source_files:
- Common/DTS.Common/Interface/ViewData/IViewDataView.cs
- Common/DTS.Common/Interface/ViewData/IViewDataViewModel.cs
generated_at: "2026-04-17T16:07:10.456102+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "d74885dd95b342a1"
---
# ViewData
### Purpose
This module defines the contract for a generic "View Data" component within the DTS application. It provides empty marker interfaces for both View and ViewModel layers, suggesting this may serve as a foundational or placeholder module for displaying arbitrary data, or it may be extended through other means not visible in these interfaces.
### Public Interface
**IViewDataView**
- Signature: `public interface IViewDataView : IBaseView { }`
- Description: Marker interface for the View Data View. Inherits from `IBaseView` with no additional members.
**IViewDataViewModel**
- Signature: `public interface IViewDataViewModel : IBaseViewModel { }`
- Description: Marker interface for the

View File

@@ -0,0 +1,78 @@
---
source_files:
- Common/DTS.Common/Interface/Viewer/IMainView.cs
- Common/DTS.Common/Interface/Viewer/IMenuView.cs
- Common/DTS.Common/Interface/Viewer/IFilterView.cs
- Common/DTS.Common/Interface/Viewer/INavigationView.cs
- Common/DTS.Common/Interface/Viewer/ITestDefinitionListView.cs
- Common/DTS.Common/Interface/Viewer/IMenuViewModel.cs
- Common/DTS.Common/Interface/Viewer/INavigationViewModel.cs
- Common/DTS.Common/Interface/Viewer/IFilterViewModel.cs
- Common/DTS.Common/Interface/Viewer/ITestDefinitionListViewModel.cs
- Common/DTS.Common/Interface/Viewer/IMainViewModel.cs
generated_at: "2026-04-17T16:34:18.316431+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "620b4a2305ac725b"
---
# Documentation: DTS.Common.Interface Viewer Interfaces
## 1. Purpose
This module defines the view and view-model interfaces for the Viewer component of the DTS application. It establishes the contract layer for an MVVM (Model-View-ViewModel) architecture, providing typed interfaces for main shell views, navigation, menus, filtering, and test summary list displays. These interfaces enable decoupled communication between UI components and their backing view models, supporting a region-based UI composition pattern.
---
## 2. Public Interface
### View Interfaces
All view interfaces inherit from `IBaseView` (defined in `DTS.Common.Base`) and currently define no additional members—they serve as marker interfaces for type identification and dependency injection.
| Interface | File | Description |
|-----------|------|-------------|
| `IMainView` | `IMainView.cs` | Marker interface for the main application view. |
| `IMenuView` | `IMenuView.cs` | Marker interface for the menu view component. |
| `IFilterView` | `IFilterView.cs` | Marker interface for the filter/search view component. |
| `INavigationView` | `INavigationView.cs` | Marker interface for the navigation view component. |
| `ITestSummaryListView` | `ITestDefinitionListView.cs` | Marker interface for the test summary list view. |
### ViewModel Interfaces
All view-model interfaces inherit from `IBaseViewModel` (defined in `DTS.Common.Base`).
#### `IMenuViewModel`
```csharp
public interface IMenuViewModel : IBaseViewModel
{
IMenuView View { get; }
}
```
Provides access to the associated `IMenuView` instance.
#### `INavigationViewModel`
```csharp
public interface INavigationViewModel : IBaseViewModel
{
INavigationView NavigationView { get; }
}
```
Provides access to the associated `INavigationView` instance via the `NavigationView` property.
#### `IFilterViewModel`
```csharp
public interface IFilterViewModel : IBaseViewModel
{
IBaseView View { get; }
IBaseViewModel Parent { get; }
object ContextSearchRegion { get; set; }
}
```
- `View`: Returns the filter view as `IBaseView`.
- `Parent`: Provides access to the parent view model in the hierarchy.
- `ContextSearchRegion`: A mutable property for region-based UI composition, likely used for dynamic view injection.
#### `ITestSummaryListViewModel`
```csharp
public interface ITestSummaryListViewModel

View File

@@ -0,0 +1,96 @@
---
source_files:
- Common/DTS.Common/Interface/Viewer/TestDefinition/ITestMetadata.cs
- Common/DTS.Common/Interface/Viewer/TestDefinition/ITestGraphs.cs
- Common/DTS.Common/Interface/Viewer/TestDefinition/ITestSetupMetadata.cs
- Common/DTS.Common/Interface/Viewer/TestDefinition/ITestSummary.cs
- Common/DTS.Common/Interface/Viewer/TestDefinition/ITestRunMetadata.cs
- Common/DTS.Common/Interface/Viewer/TestDefinition/ITestModule.cs
- Common/DTS.Common/Interface/Viewer/TestDefinition/ITestChannel.cs
- Common/DTS.Common/Interface/Viewer/TestDefinition/ITestCalculatedChannel.cs
generated_at: "2026-04-17T15:33:20.599457+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "4dd2bd7f7bafbe51"
---
# Documentation: DTS.Common.Interface Test Definition Interfaces
## 1. Purpose
This module defines a set of interfaces for modeling test definition metadata within the DTS (presumably Data Test System) application. It provides the data contract abstractions for test runs, test setups, modules, channels, and graph configurations. These interfaces serve as the public API for test metadata throughout the system, enabling decoupling between test data storage, processing, and visualization components. The interfaces support property change notification patterns, suggesting use in data-binding scenarios such as UI views.
---
## 2. Public Interface
### `ITestMetadata`
**Namespace:** `DTS.Common.Interface.TestDefinition`
Container interface aggregating test run and setup metadata.
```csharp
public interface ITestMetadata
{
ITestRunMetadata TestRun { get; set; }
ITestSetupMetadata TestSetup { get; set; }
}
```
---
### `ITestRunMetadata`
**Namespace:** `DTS.Common.Interface`
Represents metadata for a test run execution. Implements `INotifyPropertyChanged`.
```csharp
public interface ITestRunMetadata : INotifyPropertyChanged
{
string Id { get; set; }
string Description { get; set; }
bool InlineSerializedData { get; set; }
string TestGuid { get; set; }
int FaultFlags { get; set; }
string Software { get; set; }
string SoftwareVersion { get; set; }
string DataType { get; set; }
List<ITestModule> Modules { get; set; }
List<ITestChannel> Channels { get; set; }
List<ITestChannel> CalculatedChannels { get; set; }
}
```
---
### `ITestSetupMetadata`
**Namespace:** `DTS.Common.Interface`
Represents configuration metadata for a test setup.
```csharp
public interface ITestSetupMetadata
{
string Name { get; set; }
DateTime TestDate { get; set; }
DateTime TimeStamp { get; set; }
List<ITestGraphs> TestGraphs { get; set; }
}
```
---
### `ITestSummary`
**Namespace:** `DTS.Common.Interface.TestDefinition`
Represents a summary view of a test. Implements `IBaseClass`.
```csharp
public interface ITestSummary : IBaseClass
{
string Id { get; set; }
string Name { get; set; }
string Description { get; set; }
int ChannelCount { get; set; }
DateTime TestDate { get; set; }
string DataType { get;

View File

@@ -0,0 +1,36 @@
---
source_files:
- Common/DTS.Common/Interface/Viewer/TestModule/ITestModuleView.cs
- Common/DTS.Common/Interface/Viewer/TestModule/ITestModuleViewModel.cs
generated_at: "2026-04-17T16:07:58.356252+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "ad373f54a4d46c05"
---
# TestModule
### Purpose
This module defines the contract for a Test Module viewer component within the DTS application. It provides a minimal interface pair (View/ViewModel) following the MVVM pattern, where the ViewModel maintains a list of assemblies (`AssemblyList`). This appears to be a plugin or module inspection mechanism, allowing the application to dynamically load or display test modules via reflection.
### Public Interface
**ITestModuleView** (extends `IBaseView`)
- Empty interface serving as a marker type for Test Module views.
**ITestModuleViewModel** (extends `IBaseViewModel`)
- `List<Assembly> AssemblyList { get; set; }` — Gets or sets a list of .NET assemblies associated with this test module context.
### Invariants
- `ITestModuleViewModel.AssemblyList` may be null or empty; no validation is enforced at the interface level.
- Both interfaces inherit from `IBaseView` and `IBaseViewModel` respectively, implying they must satisfy any contracts defined in those base types.
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView`, `IBaseViewModel`)
- **Depends on**: `System.Collections.Generic` (for `List<T>`)
- **Depends on**: `System.Reflection` (for `Assembly`)
### Gotchas
- The `AssemblyList` property uses a mutable `List<Assembly>` rather than `IList<Assembly>` or `IReadOnlyList<Assembly>`, allowing external modification of the collection reference. The intended ownership semantics (who populates/clears this list) are unclear from the source alone.
---

View File

@@ -0,0 +1,49 @@
---
source_files:
- Common/DTS.Common/Interface/_GenericModule/IGenericModuleView.cs
- Common/DTS.Common/Interface/_GenericModule/IGenericModuleViewModel.cs
generated_at: "2026-04-17T16:37:19.503229+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "bf7ed2ed0d95051d"
---
# Documentation: IGenericModuleView & IGenericModuleViewModel
## 1. Purpose
This module defines two marker interfaces—`IGenericModuleView` and `IGenericModuleViewModel—that establish a type hierarchy for generic module components within the DTS system. These interfaces follow the Model-View-ViewModel (MVVM) pattern, providing a common base type for views and view models that can be used across generic module implementations. They serve as extension points for polymorphic handling of module-related UI components.
## 2. Public Interface
### `IGenericModuleView`
- **Signature:** `public interface IGenericModuleView : IBaseView`
- **Namespace:** `DTS.Common.Interface`
- **Inheritance:** Extends `IBaseView` from `DTS.Common.Base`
- **Members:** None (marker interface)
### `IGenericModuleViewModel`
- **Signature:** `public interface IGenericModuleViewModel : IBaseViewModel`
- **Namespace:** `DTS.Common.Interface`
- **Inheritance:** Extends `IBaseViewModel` from `DTS.Common.Base`
- **Members:** None (marker interface)
## 3. Invariants
- Both interfaces must always inherit from their respective base interfaces (`IBaseView` and `IBaseViewModel`) from `DTS.Common.Base`.
- Any class implementing `IGenericModuleView` must also implement all members of `IBaseView` (members not visible in provided source).
- Any class implementing `IGenericModuleViewModel` must also implement all members of `IBaseViewModel` (members not visible in provided source).
- The interfaces themselves define no additional members beyond their inheritance hierarchy.
## 4. Dependencies
**This module depends on:**
- `DTS.Common.Base` — Provides `IBaseView` and `IBaseViewModel` parent interfaces.
**What depends on this module:**
- Unknown from source alone. Consumers would be concrete view and view model implementations within the generic module system.
## 5. Gotchas
- **Empty marker interfaces:** Both interfaces define no members of their own. Their value lies entirely in type identification and the inheritance chain. Developers should not expect any contract methods or properties from these interfaces directly.
- **Base interface contracts unknown:** The actual behavioral contracts are defined in `IBaseView` and `IBaseViewModel`, which are not included in the provided source. The full obligations of implementers cannot be determined from these files alone.