282 lines
11 KiB
Markdown
282 lines
11 KiB
Markdown
---
|
|
source_files:
|
|
- DataPRO/IService/Classes/Channels/OutputDASChannel.cs
|
|
- DataPRO/IService/Classes/Channels/AnalogOutputDASChannel.cs
|
|
- DataPRO/IService/Classes/Channels/DigitalOutputDASChannel.cs
|
|
- DataPRO/IService/Classes/Channels/InputDASChannel.cs
|
|
- DataPRO/IService/Classes/Channels/AnalogInputDASChannelComparer.cs
|
|
- DataPRO/IService/Classes/Channels/TimestampDASChannel.cs
|
|
- DataPRO/IService/Classes/Channels/StreamInputDASChannel.cs
|
|
- DataPRO/IService/Classes/Channels/OutputTOMDigitalChannel.cs
|
|
- DataPRO/IService/Classes/Channels/CANInputDASChannel.cs
|
|
- DataPRO/IService/Classes/Channels/UARTInputDASChannel.cs
|
|
- DataPRO/IService/Classes/Channels/StreamOutputDASChannel.cs
|
|
- DataPRO/IService/Classes/Channels/DASChannel.cs
|
|
- DataPRO/IService/Classes/Channels/OutputSquibChannel.cs
|
|
generated_at: "2026-04-17T15:31:20.768905+00:00"
|
|
model: "zai-org/GLM-5-FP8"
|
|
schema_version: 1
|
|
sha256: "a9fb92d5e6adaff0"
|
|
---
|
|
|
|
# DAS Channel Classes Documentation
|
|
|
|
## 1. Purpose
|
|
|
|
This module provides a class hierarchy for representing data acquisition system (DAS) channels, supporting both input and output channel types with specialized implementations for various hardware interfaces (CAN, UART, Streaming, Squib, Timestamp). The hierarchy enables XML serialization/deserialization for configuration persistence, tracks channel ownership through module and DAS relationships, and provides configuration validation through the `IsConfigured()` method. Channels serve as the fundamental unit of measurement and control in the DAS architecture.
|
|
|
|
---
|
|
|
|
## 2. Public Interface
|
|
|
|
### DASChannel (Base Class)
|
|
**Namespace:** `DTS.DASLib.Service`
|
|
**Implements:** `IDASChannel`, `IXmlSerializable`
|
|
|
|
**Constructors:**
|
|
- `DASChannel(DASModule owner, int channelNumber)` — Initializes channel with owning module and module-relative channel number; sets `ConfigurationMode` to `Normal`, `EventStartTime` to `DateTime.Now`, `DiagnosticsMode` to `false`.
|
|
- `DASChannel()` — Parameterless constructor for serialization.
|
|
|
|
**Properties:**
|
|
| Property | Type | Description |
|
|
|----------|------|-------------|
|
|
| `SetupEID` | `string` | Setup event identifier. |
|
|
| `DataCollectionEID` | `string` | Data collection event identifier. |
|
|
| `ConfigurationMode` | `DFConstantsAndEnums.ConfigMode` | Configuration mode setting. |
|
|
| `DiagnosticsMode` | `bool` | Whether channel is in diagnostics mode. |
|
|
| `ModuleChannelNumber` | `int` | Channel number relative to owning module. |
|
|
| `AbsoluteDisplayOrder` | `int` | Display ordering; defaults to 1. |
|
|
| `UnitConverision` | `double` | Unit conversion factor; defaults to 1D. |
|
|
| `AtCapacity` | `bool` | Capacity indicator. |
|
|
| `CapacityOutputIsBasedOn` | `double` | Capacity basis value. |
|
|
| `SensitivityUnits` | `SensorConstants.SensUnits` | Sensitivity units; defaults to `NONE`. |
|
|
| `OwningModule` | `DASModule` | Back-reference to containing module (`[XmlIgnore]`). |
|
|
| `Number` | `byte` | Stack channel number relative to owning DAS (computed via `DASInfo.MapModuleArrayIndexAndChannelNum2DASChannel`). |
|
|
| `IDs` | `IEID[]` | Array of EID identifiers (`[XmlIgnore]`). |
|
|
| `EventStartTime` | `DateTime` | Event timestamp. |
|
|
| `LevelTriggerSeen` | `bool` | Level trigger registration flag. |
|
|
| `IsoChannelName` | `string` | ISO channel name. |
|
|
| `ChannelGroupName` | `string` | Channel group name. |
|
|
| `UserCode` | `string` | User-defined code. |
|
|
| `UserChannelName` | `string` | User-defined channel name. |
|
|
| `LinearSensorCalibration` | `string` | Linear calibration data. |
|
|
| `QualificationSamples` | `int` | Number of samples for qualification. |
|
|
| `LevelTriggerT0AdjustmentSamples` | `int?` | T0 adjustment for time alignment; null indicates no direct level trigger. |
|
|
| `IdType` | `int` | Identifier type; defaults to `DEFAULT_ID_TYPE` (0). |
|
|
| `UserValue1`, `UserValue2`, `UserValue3` | `string` | User-defined values. |
|
|
|
|
**Methods:**
|
|
- `virtual bool IsConfigured()` — Returns `false` by default; overridden by subclasses.
|
|
- `bool CanReProgram()` — Returns true if channel is reprogrammable (checks `OwningModule.OwningDAS.DASInfo.Modules[0].IsProgrammable`).
|
|
- `virtual void WriteXml(XmlWriter writer)` — Serializes channel to XML.
|
|
- `virtual void WriteXmlCRC32(XmlWriter writer)` — Serializes subset of fields for CRC32 calculation.
|
|
- `virtual void ReadXml(XmlReader reader)` — Deserializes channel from XML.
|
|
- `virtual void WriteElementStart(XmlWriter writer)` — Writes opening XML element with xsi:type attribute.
|
|
- `virtual void WriteElementEnd(XmlWriter writer)` — Writes closing XML element.
|
|
- `virtual void HandleElement(XmlReader reader)` — Handles individual XML elements during deserialization.
|
|
- `XmlSchema GetSchema()` — Returns `null` (IXmlSerializable requirement).
|
|
|
|
**Constants:**
|
|
- `DEFAULT_ID_TYPE = 0`
|
|
- `BRIDGE_ID_TYPE = 1`
|
|
- `IEPE_ID_TYPE = 2`
|
|
- `BRIDGE_G5_ID_TYPE = 3`
|
|
|
|
---
|
|
|
|
### OutputDASChannel
|
|
**Inherits:** `DASChannel`
|
|
|
|
**Constructors:**
|
|
- `OutputDASChannel(DASModule owner, int channelNumber)`
|
|
- `OutputDASChannel()`
|
|
|
|
---
|
|
|
|
### InputDASChannel
|
|
**Inherits:** `DASChannel`
|
|
|
|
**Constructors:**
|
|
- `InputDASChannel(DASModule owner, int channelNumber)`
|
|
- `InputDASChannel()`
|
|
|
|
---
|
|
|
|
### AnalogOutputDASChannel
|
|
**Inherits:** `OutputDASChannel`
|
|
|
|
**Constructors:**
|
|
- `AnalogOutputDASChannel(DASModule owner, int channelNumber)`
|
|
- `AnalogOutputDASChannel()`
|
|
|
|
---
|
|
|
|
### DigitalOutputDASChannel
|
|
**Inherits:** `OutputDASChannel`
|
|
|
|
**Constructors:**
|
|
- `DigitalOutputDASChannel(DASModule owner, int channelNumber)`
|
|
- `DigitalOutputDASChannel()`
|
|
|
|
---
|
|
|
|
### TimestampDASChannel
|
|
**Inherits:** `InputDASChannel`
|
|
|
|
**Constructors:**
|
|
- `TimestampDASChannel(DASModule owner, int channelNumber)`
|
|
- `TimestampDASChannel()`
|
|
|
|
**Methods:**
|
|
- `override bool IsConfigured()` — Always returns `true`.
|
|
- `override string ToString()` — Returns descriptive string based on `OwningModule.ModuleType()` and `ModuleChannelNumber`.
|
|
|
|
**Constants:**
|
|
- `MARKER = "MARKER"`
|
|
- `SEC_H = "SECONDS_HIGH"`
|
|
- `SEC_L = "SECONDS_LOW"`
|
|
- `NANOS_H = "NANOSECONDS_HIGH"`
|
|
- `NANOS_L = "NANOSECONDS_LOW"`
|
|
- `RSVD = "RESERVED"`
|
|
|
|
---
|
|
|
|
### StreamInputDASChannel
|
|
**Inherits:** `InputDASChannel`
|
|
|
|
**Constructors:**
|
|
- `StreamInputDASChannel(DASModule owner, int channelNumber)`
|
|
- `StreamInputDASChannel()`
|
|
|
|
**Properties:**
|
|
| Property | Type | Default |
|
|
|----------|------|---------|
|
|
| `SerialNumber` | `string` | — |
|
|
| `HardwareChannelName` | `string` | — |
|
|
| `UDPAddress` | `string` | `string.Empty` |
|
|
|
|
**Methods:**
|
|
- `override bool IsConfigured()` — Returns `true` if `SerialNumber` is not null or empty.
|
|
- `override string ToString()` — Returns `$"Stream{ModuleChannelNumber}"`.
|
|
- `override void WriteXml(XmlWriter writer)`
|
|
- `override void HandleElement(XmlReader reader)`
|
|
|
|
---
|
|
|
|
### StreamOutputDASChannel
|
|
**Inherits:** `OutputDASChannel`
|
|
|
|
**Constructors:**
|
|
- `StreamOutputDASChannel(DASModule owner, int channelNumber)`
|
|
- `StreamOutputDASChannel()`
|
|
|
|
**Properties:**
|
|
| Property | Type | Default |
|
|
|----------|------|---------|
|
|
| `SerialNumber` | `string` | — |
|
|
| `HardwareChannelName` | `string` | — |
|
|
| `UDPProfileName` | `string` | `UDPStreamProfile.CH10_ANALOG_2HDR.ToString()` |
|
|
| `UDPTimeChannelId` | `ushort` | — |
|
|
| `UDPDataChannelId` | `ushort` | — |
|
|
| `IRIGTimeDataPacketIntervalMs` | `ushort` | — |
|
|
| `TMATSIntervalMs` | `ushort` | `StreamOutputRecord.DEFAULT_TMATS_INTERVAL_MS` |
|
|
| `UDPAddress` | `string` | `string.Empty` |
|
|
| `UDPTmNSConfig` | `uint[]` | `new uint[8]` |
|
|
|
|
**Methods:**
|
|
- `override bool IsConfigured()` — Returns `true` if `SerialNumber` is not null or empty.
|
|
- `override string ToString()` — Returns `$"Stream{ModuleChannelNumber}"`.
|
|
- `override void WriteXml(XmlWriter writer)`
|
|
- `override void HandleElement(XmlReader reader)`
|
|
|
|
---
|
|
|
|
### CANInputDASChannel
|
|
**Inherits:** `InputDASChannel`
|
|
|
|
**Constructors:**
|
|
- `CANInputDASChannel(DASModule owner, int channelNumber)` — Sets `SerialNumber` from `owner.SerialNumber()`.
|
|
- `CANInputDASChannel()`
|
|
|
|
**Properties:**
|
|
| Property | Type | Description |
|
|
|----------|------|-------------|
|
|
| `SerialNumber` | `string` | Sensor serial number. |
|
|
| `HardwareChannelName` | `string` | Hardware channel name. |
|
|
| `IsFD` | `bool` | CAN FD mode flag. |
|
|
| `ArbBaseBitrate` | `int` | Arbitration base bitrate. |
|
|
| `ArbBaseSJW` | `int` | Arbitration base SJW. |
|
|
| `DataBitrate` | `int` | Data bitrate. |
|
|
| `DataSJW` | `int` | Data SJW. |
|
|
| `FileType` | `string` | File type identifier. |
|
|
|
|
**Methods:**
|
|
- `override bool IsConfigured()` — Returns `true` if `SerialNumber` is not null or empty.
|
|
- `override string ToString()` — Returns `$"CAN{ModuleChannelNumber}"`.
|
|
- `override void WriteXml(XmlWriter writer)`
|
|
- `override void HandleElement(XmlReader reader)`
|
|
|
|
---
|
|
|
|
### UARTInputDASChannel
|
|
**Inherits:** `InputDASChannel`
|
|
|
|
**Constructors:**
|
|
- `UARTInputDASChannel(DASModule owner, int channelNumber)`
|
|
- `UARTInputDASChannel()`
|
|
|
|
**Properties:**
|
|
| Property | Type | Description |
|
|
|----------|------|-------------|
|
|
| `SerialNumber` | `string` | Sensor serial number. |
|
|
| `HardwareChannelName` | `string` | Hardware channel name. |
|
|
| `BaudRate` | `uint` | Baud rate setting. |
|
|
| `DataBits` | `uint` | Data bits setting. |
|
|
| `StopBits` | `StopBits` | Stop bits enumeration. |
|
|
| `Parity` | `Parity` | Parity enumeration. |
|
|
| `FlowControl` | `Handshake` | Flow control enumeration. |
|
|
| `DataFormat` | `UartDataFormat` | Data format enumeration. |
|
|
|
|
**Methods:**
|
|
- `override bool IsConfigured()` — Returns `true` if `SerialNumber` is not null or empty.
|
|
- `override string ToString()` — Returns `$"UART{ModuleChannelNumber}"`.
|
|
- `override void WriteXml(XmlWriter writer)`
|
|
- `override void HandleElement(XmlReader reader)`
|
|
|
|
---
|
|
|
|
### OutputTOMDigitalChannel
|
|
**Inherits:** `DigitalOutputDASChannel`
|
|
|
|
**Constructors:**
|
|
- `OutputTOMDigitalChannel(XmlReader reader)` — Initializes `IDs` array and calls `ReadXml(reader)`.
|
|
- `OutputTOMDigitalChannel(DASModule owner, int channelNumber)`
|
|
- `OutputTOMDigitalChannel()`
|
|
|
|
**Properties:**
|
|
| Property | Type | Default |
|
|
|----------|------|---------|
|
|
| `OutputMode` | `DigitalOutputModes` | `DigitalOutputModes.NONE` |
|
|
| `DelayMS` | `double` | `0D` |
|
|
| `LimitDuration` | `bool` | `false` |
|
|
| `DurationMS` | `double` | `0D` |
|
|
| `DigitalChannelDescription` | `string` | `""` |
|
|
| `LastModifiedBy` | `string` | `""` |
|
|
| `LastModified` | `DateTime` | — |
|
|
| `LocalOnly` | `bool` | `false` |
|
|
| `HardwareChannelName` | `string` | — |
|
|
| `Version` | `int` | — |
|
|
| `Date` | `DateTime` | — |
|
|
|
|
**Methods:**
|
|
- `override bool IsConfigured()` — Returns `true` if `OutputMode != DigitalOutputModes.NONE` and `DigitalChannelDescription` is not empty.
|
|
- `override void WriteXml(XmlWriter writer)`
|
|
- `override void WriteXmlCRC32(XmlWriter writer)`
|
|
- `override void HandleElement(XmlReader reader)`
|
|
|
|
---
|
|
|
|
### OutputSquibChannel
|
|
**Inherits:** `AnalogOutputDASChannel`, `IComparable`
|
|
|
|
**Constructors: |