--- 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` | Returns a new `List` 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` | 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