156 lines
6.5 KiB
Markdown
156 lines
6.5 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- Common/DTS.Common.SerializationPlus/Control/Event/Module/Channel/ReviewableAttribute.NotApplicableException.cs
|
||
|
|
- Common/DTS.Common.SerializationPlus/Control/Event/Module/Channel/DataValues.cs
|
||
|
|
- Common/DTS.Common.SerializationPlus/Control/Event/Module/Channel/CalculatedChannel.cs
|
||
|
|
generated_at: "2026-04-17T15:38:30.345685+00:00"
|
||
|
|
model: "zai-org/GLM-5-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "7405548f6ed6f3f6"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Documentation: DTS.Slice.Control.Event.Module.Channel
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module provides channel-related types within the `DTS.Slice.Control` namespace hierarchy. It defines exception types for attribute validation, data storage mechanisms for channel values (with optional memory-mapped file support), and an abstract class hierarchy for calculated channels that derive data from operations such as FFT, integration, differentiation, and vector mathematics. The module supports engineering unit-aware channels with various calculation types used in data acquisition and analysis workflows.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
### `Event.Module.Channel.ReviewableAttribute.NotApplicableException`
|
||
|
|
|
||
|
|
**Namespace:** `DTS.Slice.Control`
|
||
|
|
|
||
|
|
A nested exception class representing attempts to use a channel attribute that is not applicable to the associated channel. Inherits from `ApplicationException`.
|
||
|
|
|
||
|
|
| Constructor | Signature | Description |
|
||
|
|
|-------------|-----------|-------------|
|
||
|
|
| Default | `public NotApplicableException()` | Initializes an instance with no message. |
|
||
|
|
| With Message | `public NotApplicableException(string msg)` | Initializes with a custom message string. |
|
||
|
|
| With Message and Inner | `public NotApplicableException(string msg, System.Exception innerEx)` | Initializes with a message and inner exception. |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### `Event.Module.Channel.DataValues`
|
||
|
|
|
||
|
|
**Namespace:** `DTS.Slice.Control`
|
||
|
|
|
||
|
|
Represents a channel's data storage. Inherits from `Exceptional`.
|
||
|
|
|
||
|
|
| Constructor | Signature | Description |
|
||
|
|
|-------------|-----------|-------------|
|
||
|
|
| Default | `public DataValues()` | Initializes with `useMemoryMappedFile = true`. |
|
||
|
|
| Parameterized | `public DataValues(bool useMemoryMappedFile)` | Initializes with explicit memory-mapped file setting. |
|
||
|
|
|
||
|
|
| Property | Type | Access | Description |
|
||
|
|
|----------|------|--------|-------------|
|
||
|
|
| `UseMemoryMappedFile` | `bool` | get/set | Switch to use memory-mapped files instead of in-memory lists (for large data sets). |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### `Event.Module.Channel.CalculatedChannel` (Abstract)
|
||
|
|
|
||
|
|
**Namespace:** `DTS.Slice.Control`
|
||
|
|
|
||
|
|
Abstract base class for calculated channels. Inherits from `Channel` and implements `Common.DAS.Concepts.DAS.Channel.IEngineeringUnitAware`.
|
||
|
|
|
||
|
|
**Nested Enums:**
|
||
|
|
|
||
|
|
| Enum | Values |
|
||
|
|
|------|--------|
|
||
|
|
| `Operation` | `Integral`, `Derivative`, `HeadInjuryCriteria`, `FFT`, `ImportedCSV`, `Resultant`, `TSR`, `Scale`, `Offset`, `Sine`, `Cosine` |
|
||
|
|
| `XUnits` | `msec`, `sec`, `Hz`, `samples` |
|
||
|
|
|
||
|
|
**Constructor:**
|
||
|
|
```csharp
|
||
|
|
public CalculatedChannel(
|
||
|
|
string name,
|
||
|
|
XUnits xAxis,
|
||
|
|
string yAxis,
|
||
|
|
double[] xValues,
|
||
|
|
double[] yValues,
|
||
|
|
Operation calcType,
|
||
|
|
int number,
|
||
|
|
Module parentModule
|
||
|
|
)
|
||
|
|
```
|
||
|
|
|
||
|
|
**Properties:**
|
||
|
|
|
||
|
|
| Property | Type | Access | Description |
|
||
|
|
|----------|------|--------|-------------|
|
||
|
|
| `CalculationType` | `Operation` | get | Returns the operation type for this channel. |
|
||
|
|
| `X` | `double[]` | get | Returns X-axis values as array. |
|
||
|
|
| `Y` | `double[]` | get | Returns Y-axis values as array. |
|
||
|
|
| `XAxis` | `XUnits` | get | Returns the X-axis unit type. |
|
||
|
|
| `XUnitsString` | `string` | get | Returns string representation ("Hz", "ms", "samples", "s", or "N/A"). |
|
||
|
|
| `EngineeringUnits` | `string` | get/set | Gets or sets the Y-axis engineering units string. |
|
||
|
|
| `SupportsADC` | `bool` | get | Always returns `false`. |
|
||
|
|
| `SupportsEU` | `bool` | get | Always returns `true`. |
|
||
|
|
| `SupportsmV` | `bool` | get | Always returns `false`. |
|
||
|
|
| `ActualMaxRangeEu` | `double` | get | Returns `_y.Max()`. |
|
||
|
|
| `ActualMinRangeEu` | `double` | get | Returns `_y.Min()`. |
|
||
|
|
| `DataHalfRangeValueEu` | `double` | get | Returns midpoint of min/max Y values. |
|
||
|
|
| `DataMaxEu` | `double` | get | Returns `_y.Max()`. |
|
||
|
|
| `DataMinEu` | `double` | get | Returns `_y.Min()`. |
|
||
|
|
| `DataRangeEu` | `double` | get | Returns max of absolute min/max Y values. |
|
||
|
|
| `DataZeroLevelAdc` | `short` | get | Always returns `0`. |
|
||
|
|
| `IsConfigured` | `bool` | get/set | Getter returns `true`; setter throws `NotSupportedException`. |
|
||
|
|
|
||
|
|
**Methods:**
|
||
|
|
|
||
|
|
| Method | Return Type | Behavior |
|
||
|
|
|--------|-------------|----------|
|
||
|
|
| `ToString()` | `string` | Returns `ChannelDescriptionString` or "N/A". |
|
||
|
|
| `GetUnfilteredDataEu()` | `List<double>` | Returns a new `List<double>` copy of Y values. |
|
||
|
|
| `FromDtsSerializationTestModuleChannel(Serialization.Test.Module.Channel)` | `void` | Throws `NotSupportedException`. |
|
||
|
|
| `SetPropertyValuesFrom(DASLib.Service.DASChannel)` | `void` | Throws `NotSupportedException`. |
|
||
|
|
| `SetPropertyValuesFrom(IDiagnosticResult)` | `void` | Throws `NotSupportedException`. |
|
||
|
|
| `ToDtsSerializationTestModuleChannel(Serialization.Test.Module)` | `Serialization.Test.Module.Channel` | Throws `NotSupportedException`. |
|
||
|
|
| `ActualMaxRangeMv` | `double` | Throws `NotSupportedException`. |
|
||
|
|
| `ActualMinRangeMv` | `double` | Throws `NotImplementedException`. |
|
||
|
|
| `GetUnfilteredDataMV()` | `List<double>` | Throws `NotImplementedException`. |
|
||
|
|
| `SensorCapacityEU` | `double` | Throws `NotImplementedException`. |
|
||
|
|
| `DesiredRangeEU` | `double` | Throws `NotImplementedException`. |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Concrete Calculated Channel Classes
|
||
|
|
|
||
|
|
All inherit from `CalculatedChannel` and expose only constructors matching the base signature:
|
||
|
|
|
||
|
|
| Class | Additional Members |
|
||
|
|
|-------|-------------------|
|
||
|
|
| `IntegralCalculatedChannel` | None beyond base constructor. |
|
||
|
|
| `DerivativeCalculatedChannel` | None beyond base constructor. |
|
||
|
|
| `ScaleCalculatedChannel` | None beyond base constructor. |
|
||
|
|
| `OffsetCalculatedChannel` | None beyond base constructor. |
|
||
|
|
| `ResultantCalculatedChannel` | None beyond base constructor. |
|
||
|
|
| `AdditiveVectorCalculatedChannel` | None beyond base constructor. |
|
||
|
|
| `SineCalculatedChannel` | None beyond base constructor. |
|
||
|
|
| `CosineCalculatedChannel` | None beyond base constructor. |
|
||
|
|
|
||
|
|
### `FFTCalculatedChannel`
|
||
|
|
|
||
|
|
Extends `CalculatedChannel` with FFT-specific data.
|
||
|
|
|
||
|
|
**Constructor:**
|
||
|
|
```csharp
|
||
|
|
public FFTCalculatedChannel(
|
||
|
|
string name,
|
||
|
|
XUnits xAxis,
|
||
|
|
string yAxis,
|
||
|
|
double[] xValues,
|
||
|
|
double[] yValues,
|
||
|
|
Operation calcType,
|
||
|
|
int number,
|
||
|
|
Module parentModule,
|
||
|
|
double peakFrequency
|
||
|
|
)
|
||
|
|
```
|
||
|
|
|
||
|
|
| Property | Type | Access | Description |
|
||
|
|
|----------|------|--------|-------------|
|
||
|
|
| `PeakFrequency` | `double
|