364 lines
16 KiB
Markdown
364 lines
16 KiB
Markdown
---
|
||
source_files:
|
||
- Common/DTS.Common/Enums/IsoRestrictionLevels.cs
|
||
- Common/DTS.Common/Enums/GPSSentenceTypes.cs
|
||
- Common/DTS.Common/Enums/UartDataFormat.cs
|
||
- Common/DTS.Common/Enums/NetworkSelection.cs
|
||
- Common/DTS.Common/Enums/ScriptTypes.cs
|
||
- Common/DTS.Common/Enums/DestructiveTestChoices.cs
|
||
- Common/DTS.Common/Enums/InitializationTypes.cs
|
||
- Common/DTS.Common/Enums/Strings.cs
|
||
- Common/DTS.Common/Enums/MigrationResult.cs
|
||
- Common/DTS.Common/Enums/SLICE6MulticastProperties.cs
|
||
- Common/DTS.Common/Enums/RibbonTabNames.cs
|
||
- Common/DTS.Common/Enums/IsoSupportLevels.cs
|
||
- Common/DTS.Common/Enums/TabControlOperation.cs
|
||
- Common/DTS.Common/Enums/IncludeOverwriteName.cs
|
||
- Common/DTS.Common/Enums/RibbonControlOperation.cs
|
||
- Common/DTS.Common/Enums/LogLevels.cs
|
||
- Common/DTS.Common/Enums/ImportFormats.cs
|
||
- Common/DTS.Common/Enums/UICultures.cs
|
||
- Common/DTS.Common/Enums/T0Mode.cs
|
||
- Common/DTS.Common/Enums/VelocityUnit.cs
|
||
- Common/DTS.Common/Enums/ImportStatus.cs
|
||
- Common/DTS.Common/Enums/IsoViewMode.cs
|
||
- Common/DTS.Common/Enums/PopupWindowImage.cs
|
||
- Common/DTS.Common/Enums/CanArbBaseBitrate.cs
|
||
- Common/DTS.Common/Enums/UIItemStatus.cs
|
||
- Common/DTS.Common/Enums/DigitalOutputs.cs
|
||
- Common/DTS.Common/Enums/DigitalInputs.cs
|
||
- Common/DTS.Common/Enums/DataFlag.cs
|
||
- Common/DTS.Common/Enums/Squibs.cs
|
||
- Common/DTS.Common/Enums/SupportedExportFormatBitFlags.cs
|
||
- Common/DTS.Common/Enums/UartBaudRate.cs
|
||
- Common/DTS.Common/Enums/EnumBindingSourceExtension.cs
|
||
- Common/DTS.Common/Enums/UDPStreamProfile.cs
|
||
- Common/DTS.Common/Enums/ExcitationVoltageOptions.cs
|
||
- Common/DTS.Common/Enums/ApplicationStatusTypes.cs
|
||
- Common/DTS.Common/Enums/ExportHeaderLine.cs
|
||
- Common/DTS.Common/Enums/RecordingModes.cs
|
||
- Common/DTS.Common/Enums/CFCFilter.cs
|
||
- Common/DTS.Common/Enums/ClockSource.cs
|
||
generated_at: "2026-04-16T02:53:19.296009+00:00"
|
||
model: "Qwen/Qwen3-Coder-Next-FP8"
|
||
schema_version: 1
|
||
sha256: "a48c0a293b2d8942"
|
||
---
|
||
|
||
# DTS.Common.Enums Module Documentation
|
||
|
||
## 1. Purpose
|
||
|
||
This module defines a comprehensive set of enumerations used throughout the DTS (Data Acquisition and Test System) codebase to represent system states, configuration options, data formats, and operational modes. These enums serve as strongly-typed constants for configuration, state management, UI binding, data serialization, and inter-module communication. They enable type safety, improve code readability, and support UI frameworks through custom type converters and WPF markup extensions. The module is foundational to the system’s configuration and runtime behavior, particularly in areas involving data acquisition, export/import, device communication (UART, CAN, UDP), and user interface presentation.
|
||
|
||
## 2. Public Interface
|
||
|
||
### Enums (All in `DTS.Common.Enums` namespace unless otherwise noted)
|
||
|
||
#### Basic Enums
|
||
- **`GPSSentenceTypes`**
|
||
Represents supported GPS NMEA sentence types.
|
||
Values: `GPGGA`, `GPRMC`.
|
||
|
||
- **`UartDataFormat`**
|
||
Specifies UART data format modes.
|
||
Values: `Binary`, `PlainText`, `NMEA`.
|
||
|
||
- **`NetworkSelection`**
|
||
Defines how a network is selected.
|
||
Values: `Default`, `NetworkId`, `NetworkDesc`.
|
||
|
||
- **`ScriptTypes`**
|
||
Indicates script type for execution.
|
||
Values: `Migration`, `Initialization`.
|
||
*Uses `EnumDescriptionTypeConverter` for UI display.*
|
||
|
||
- **`DestructiveTestChoices`**
|
||
Represents user selection for destructive test confirmation.
|
||
Values: `Yes`, `No`, `NotSet`.
|
||
|
||
- **`InitializationTypes`**
|
||
Specifies initialization method type.
|
||
Values: `Aero`, `Crash`, `TSRAIR`.
|
||
*Uses `EnumDescriptionTypeConverter`.*
|
||
|
||
- **`StringReplacementMode`**
|
||
Controls string replacement behavior.
|
||
Values: `All`, `First`, `Last`.
|
||
*Uses `EnumDescriptionTypeConverter`.*
|
||
|
||
- **`MigrationResult`**
|
||
Result status of a migration operation.
|
||
Values: `OK`, `ExceptionThrown`, `WarningAllowStreamingModesWasNotMigrated`.
|
||
*Uses `EnumDescriptionTypeConverter`.*
|
||
|
||
- **`SLICE6Properties`**
|
||
UDP multicast properties for SLICE6 autodiscovery.
|
||
Values: `SLICE6MulticastAddress`, `SLICE6MulticastCommandPort`, `SLICE6MulticastResponsePort`.
|
||
|
||
- **`RibbonTabNames`**
|
||
*Static class* defining constants for ribbon tab names (currently `"TBD"` for all).
|
||
Members: `Tab1`, `Tab2`, `Tab3`.
|
||
|
||
- **`IsoSupportLevels`**
|
||
Defines ISO channel support levels.
|
||
Values: `ISO_ONLY`, `TRANSITORY`, `NO_ISO`.
|
||
*Uses `EnumDescriptionTypeConverter`; descriptions sourced from `[Description]` attributes.*
|
||
|
||
- **`TabControlOperation`**
|
||
Represents tab control modification operations.
|
||
Values: `AddedItem`, `RemovedItem`.
|
||
|
||
- **`IncludeOverwriteName`**
|
||
Specifies options for including/overwriting names in UI.
|
||
Values: `IncludedCheckBox`, `OverwriteCheckBox`, `ImportingTestSetupName`.
|
||
*Uses `EnumDescriptionTypeConverter`.*
|
||
|
||
- **`ExportChoices`**
|
||
Defines export configuration options.
|
||
Values: `ExportType`, `UnfilteredEUCheckBox`, `FilteredEUCheckBox`, `MVCheckBox`, `ADCCheckBox`.
|
||
*Uses `EnumDescriptionTypeConverter`.*
|
||
|
||
- **`RibbonControlOperation`**
|
||
Represents ribbon control modification operations.
|
||
Values: `AddedItem`, `RemovedItem`.
|
||
|
||
- **`LogLevels`**
|
||
Log severity levels.
|
||
Values: `TRACE=1`, `DEBUG=2`, `INFO=3`, `WARN=4`, `ERROR=5`, `CRITICAL=6`.
|
||
*Uses `EnumDescriptionTypeConverter`; descriptions are resource keys (e.g., `"LogLevel_Trace"`).*
|
||
|
||
- **`ImportFormats`** *(in `DTS.Common.Import.Enums`)*
|
||
Supported import file formats.
|
||
Values: `NOT_SPECIFIED`, `DTS_XML`, `ISF`, `TSF`, `DTS_CSV`, `TTS_XML`, `CrashDesigner_XML`, `E2X`, `TTS_CSV`.
|
||
|
||
- **`ImportFileFormat`** *(in `DTS.Common.Import.Enums`)*
|
||
Classifies import files by test setup count.
|
||
Values: `NoTestSetup`, `SingleTestSetup`, `MultipleTestSetup`.
|
||
|
||
- **`UICultures`**
|
||
Supported UI languages/cultures.
|
||
Values: `de_DE`, `en_US`, `es_ES`, `fr_FR`, `it_IT`, `ja_JP`.
|
||
*Uses `EnumDescriptionTypeConverter`; descriptions are resource keys (e.g., `"UICultures_de-DE"`).*
|
||
|
||
- **`T0Mode`** *(in `DTS.Common` namespace)*
|
||
T0 trigger mode.
|
||
Values: `DAS=0`, `Test=1`.
|
||
*Uses `EnumDescriptionTypeConverter`.*
|
||
**Also defines**: `T0ModeItemSource : IItemsSource` — returns list of `T0Mode` values.
|
||
|
||
- **`VelocityUnit`**
|
||
Velocity unit options.
|
||
Values: `KilometerPerHour=0`, `MeterPerSecond=1`.
|
||
*Uses `EnumDescriptionTypeConverter`; descriptions are resource keys.*
|
||
|
||
- **`ImportExtraStatus`** *(in `DTS.Common.Import.Enums`)*
|
||
Detailed status during import process.
|
||
Values: `None`, `NormalizingIds`, `ReadingCalibrations`, ..., `ReadingXML`.
|
||
|
||
- **`PossibleStatus`** *(in `DTS.Common.Import.Enums`)*
|
||
High-level import status.
|
||
Values: `Waiting`, `Working`, `Done`, `Failed`, `Reading`, `Importing`.
|
||
|
||
- **`IsoViewMode`**
|
||
Controls ISO channel view display mode.
|
||
Values: `ISOOnly`, `ISOAndUserCode`, `UserCodeOnly`, `ChannelNameOnly`.
|
||
*Uses `EnumDescriptionTypeConverter`.*
|
||
**Also defines**: `IsoViewModeStatic` — *abstract class* with static property `ViewMode { get; set; }` to hold current view mode across modules.
|
||
|
||
- **`PopupWindowImage`**
|
||
Specifies icon type for popup windows.
|
||
Values: `Warning=0`, `Error=1`, `Question=2`, `Information=3`.
|
||
|
||
- **`CanArbBaseBitrate`**
|
||
CAN arbitration base bitrates.
|
||
Values: `_50000=50000`, `_62000=62000`, ..., `_1000000=1000000`.
|
||
*Uses `EnumDescriptionTypeConverter`; descriptions are resource keys.*
|
||
|
||
- **`UIItemStatus`**
|
||
Status of UI items (e.g., validation results).
|
||
Values: `None`, `Success`, `Failed`, `Error`, `Warning`.
|
||
|
||
- **`DigitalOutputModes`**
|
||
Digital output configuration modes.
|
||
Values: `NONE=0`, `FVLH=1`, `FVHL=2`, `CCNO=4`, `CCNC=8`.
|
||
*Uses `EnumDescriptionTypeConverter`; descriptions are resource keys.*
|
||
*Note: Values are bit flags (powers of two).*
|
||
|
||
- **`DigitalInputModes`**
|
||
Digital input configuration modes.
|
||
Values: `NONE=1`, `TLH=2`, `THL=4`, `CCNO=8`, `CCNC=16`.
|
||
*Uses `EnumDescriptionTypeConverter`; descriptions are resource keys.*
|
||
*Note: Values are bit flags.*
|
||
|
||
- **`DataFlag`** *(in `DTS.Common` namespace)*
|
||
Data quality flags.
|
||
Values: `None=0`, `Normal=1`, `Saturated=2`, `ZeroCrossing=3`, `BrokenWire=4`, `Other=-1`.
|
||
*Uses `EnumDescriptionTypeConverter`.*
|
||
**Also defines**: `DataFlagItemSource : IItemsSource`.
|
||
|
||
- **`SquibMeasurementType`**
|
||
Squib measurement modes.
|
||
Values: `NONE=0`, `CURRENT=1`, `INIT_SIGNAL=2`, `VOLTAGE=4`.
|
||
*Uses `EnumDescriptionTypeConverter`.*
|
||
|
||
- **`SquibFireMode`**
|
||
Squib firing modes.
|
||
Values: `NONE=1`, `CAP=2`, `CONSTANT=4`, `AC=8`.
|
||
*Uses `EnumDescriptionTypeConverter`.*
|
||
|
||
- **`SupportedExportFormatBitFlags`**
|
||
Export format capabilities as bit flags.
|
||
Values: `none`, `csvunfiltered`, `diademadc`, ..., `Ch10FilteredEU`, `FIATASC`, etc.
|
||
*Uses `[Flags]` attribute.*
|
||
|
||
- **`UartBaudRate`**
|
||
UART baud rates.
|
||
Values: `_110=110`, `_300=300`, ..., `_921600=921600`.
|
||
*Uses `EnumDescriptionTypeConverter`; underlying type is `uint`.*
|
||
|
||
- **`EnumBindingSourceExtension`**
|
||
WPF `MarkupExtension` for binding to enum values in XAML.
|
||
- `EnumType { get; set; }`: The enum type to bind to.
|
||
- `ProvideValue(...)`: Returns array of enum values (or array + `null` if nullable enum).
|
||
*Validates that `EnumType` is an enum type.*
|
||
|
||
- **`UDPStreamProfile`**
|
||
UDP streaming profiles for S6A/CH10/TmNS.
|
||
Values: `RTCStreaming=0`, `DTS_UDP=1`, `CH10_MANUAL_CONFIG=2`, ..., `UART_STREAM=14`.
|
||
*Uses `EnumDescriptionTypeConverter`; underlying type is `byte`.*
|
||
|
||
- **`ExcitationVoltageOptions`** *(in `DTS.Common.Enums`)*
|
||
Excitation voltage options.
|
||
- Nested enum: `ExcitationVoltageOption` with values `Undefined=1`, `Volt2=2`, `Volt2_5=4`, ..., `Volt1=64`.
|
||
- Nested class: `VoltageMagnitudeAttribute : Attribute` — stores `double Value`.
|
||
- Nested class: `VoltageMagnitudeAttributeCoder` — helper to extract `double` values from enum fields.
|
||
|
||
- **`ApplicationStatusTypes`**
|
||
Comprehensive list of application status states (e.g., `IDLE`, `Armed`, `Failed`, `Downloading`, `WaitingForTrigger`, etc.).
|
||
Over 100 values covering DAS states, error conditions, and UI states.
|
||
|
||
- **`FtssHeaderLine`**
|
||
CSV export header line labels.
|
||
Values: `Headers`, `TestDate`, `SampleRate`, `IsoCode`, ..., `DataStart`, `Labels`.
|
||
*Uses `[Description]` attributes for display text.*
|
||
|
||
- **`UartHeaders`**
|
||
UART-related header labels.
|
||
Values: `Latitude`, `Longitude`, `Altitude`, `Velocity`, `Direction`, `Valid?`, `GPRMC`, `GPGGA`.
|
||
|
||
- **`XLSXExportHeaderLine`**
|
||
XLSX export header line labels (subset of `FtssHeaderLine`).
|
||
Values: `Headers`, `TestDate`, ..., `DataStart`, `Labels`.
|
||
|
||
- **`RecordingModes`**
|
||
Data acquisition recording modes.
|
||
Values: `CircularBuffer`, `Recorder`, `S6A_DeviceStreamingOnly`, ..., `RecordOnBootPlusUART`, etc.
|
||
*Uses `[Description]` and `[ProgrammableTriggers(...)]` attributes.*
|
||
**Also defines**:
|
||
- `NonStreamingRecordingModeItemsSource : RecordingModeItemsSource` — filters out streaming modes.
|
||
- `RecordingModeItemsSource : IItemsSource` — base class for UI item sources.
|
||
|
||
- **`CFCFilter`** *(in `DTS.Common` namespace)*
|
||
Software filter CFC (Cumulative Filter Characteristic) classes.
|
||
Values: `None=0`, `Unfiltered=-2`, `Class10=17`, `Class60=100`, `Class180=300`, `Class600=1000`, `Class1000=1650`.
|
||
*Uses `EnumDescriptionTypeConverter`.*
|
||
**Also defines**:
|
||
- `CFCFilterItemSource : IItemsSource`.
|
||
- `CFCFilterDTSFileStringConverter` — static class with methods:
|
||
- `GetFilterFromString(string)`
|
||
- `GetIsoCodeFromString(string, bool)`
|
||
- `FilterClassToString(IFilterClass)`
|
||
- `FilterClassToCFC(IFilterClass, bool)`
|
||
- `CFCFilterToCFC(CFCFilter, bool)`
|
||
|
||
- **`ClockSyncProfile`**
|
||
Clock synchronization profiles (PTP, IRIG, GPS, PPS, etc.).
|
||
Values: `None=0`, `Manual`, `Slave_E2E`, ..., `EXT_PPS_Master_E2E_PPS_OUT`.
|
||
*Uses `EnumDescriptionTypeConverter`; underlying type is `byte`.*
|
||
**Also defines**:
|
||
- `MasterClockSyncProfileItemsSource`, `SlaveClockSyncProfileItemsSource` — derived from `ProfileSourceItemsSource`.
|
||
- `ProfileSourceItemsSource : IItemsSource`.
|
||
|
||
- **`InputClockSource`**
|
||
Input clock source bit flags.
|
||
Values: `None=0`, `PTP=1`, `IRIG=2`, `GPS=4`, `OnePPS=8`, ..., `GPS_OnePPS=6`.
|
||
*Uses `EnumDescriptionTypeConverter`; underlying type is `byte`.*
|
||
|
||
- **`OutputClockSource`**
|
||
Output clock source bit flags.
|
||
Values: `None=0`, `PTP=255`, `PTPMasterE2E=1`, ..., `EXT_PPS_Master_E2E_PPS_OUT`.
|
||
*Uses `EnumDescriptionTypeConverter`; underlying type is `byte`.*
|
||
|
||
### Extension Methods
|
||
- **`HeaderLineExtension.GetDescription(this Enum genericEnum)`**
|
||
Returns the `DescriptionAttribute.Description` value if present; otherwise returns `ToString()`.
|
||
Used by `FtssHeaderLine`, `UartHeaders`, `XLSXExportHeaderLine`.
|
||
|
||
## 3. Invariants
|
||
|
||
- **Enum Values Are Bit Flags Where Applicable**:
|
||
`DigitalOutputModes`, `DigitalInputModes`, `SquibMeasurementType`, `SquibFireMode`, `SupportedExportFormatBitFlags`, `InputClockSource`, and `OutputClockSource` use bit-flag semantics (powers of two or explicit `|` combinations). Consumers must use bitwise operations for combinations.
|
||
|
||
- **Description Attributes Are Required for UI Display**:
|
||
Enums using `[TypeConverter(typeof(EnumDescriptionTypeConverter))]` rely on `[Description]` or `[DescriptionResource]` attributes for UI text. Missing attributes will fall back to `ToString()`.
|
||
|
||
- **Resource Keys vs. Literal Descriptions**:
|
||
- `LogLevels`, `UICultures`, `VelocityUnit`, `CanArbBaseBitrate`, `DigitalOutputModes`, `DigitalInputModes`, `SquibFireMode`, `CFCFilter`, `UDPStreamProfile`, `ClockSyncProfile`, `InputClockSource`, `OutputClockSource` use `[DescriptionResource(...)]` — values are *resource keys*, not literal strings.
|
||
- `FtssHeaderLine`, `UartHeaders`, `XLSXExportHeaderLine`, `IsoSupportLevels`, `RecordingModes` use `[Description(...)]` — values are *literal strings*.
|
||
|
||
- **Underlying Types Are Explicit**:
|
||
- `UartBaudRate` → `uint`
|
||
- `UDPStreamProfile` → `byte`
|
||
- `ClockSyncProfile`, `InputClockSource`, `OutputClockSource` → `byte`
|
||
|
||
- **Static State in `IsoViewModeStatic`**:
|
||
`IsoViewModeStatic.ViewMode` holds current view mode globally but does *not* persist or retrieve from DB — must be set explicitly.
|
||
|
||
- **`RibbonTabNames` Constants Are Placeholders**:
|
||
All constants (`Tab1`, `Tab2`, `Tab3`) are `"TBD"` — not yet finalized.
|
||
|
||
- **`EnumBindingSourceExtension` Validation**:
|
||
Throws `ArgumentException` if `EnumType` is not an enum; throws `InvalidOperationException` if `EnumType` is not set before `ProvideValue`.
|
||
|
||
- **`SelectedItemsStatus` Thread Safety**:
|
||
Uses `lock` on `_ListStatus` dictionary — safe for concurrent access.
|
||
|
||
- **`CFCFilterDTSFileStringConverter` Defaults**:
|
||
`GetFilterFromString` returns `CFCFilter.Unfiltered` for unrecognized input.
|
||
|
||
## 4. Dependencies
|
||
|
||
### Module Dependencies
|
||
- **`DTS.Common.Converters`**:
|
||
Used by `EnumDescriptionTypeConverter` (referenced via `[TypeConverter]` attributes).
|
||
*Implied dependency: `EnumDescriptionTypeConverter` must be implemented in this namespace.*
|
||
|
||
- **`DTS.Common.Base.Classes`**:
|
||
Used by `T0ModeItemSource`, `CFCFilterItemSource`, `DataFlagItemSource`, `RecordingModeItemsSource`, `ProfileSourceItemsSource` via `IItemsSource` interface.
|
||
|
||
- **`DTS.Common.Utils`**:
|
||
Used by `T0ModeItemSource`, `CFCFilterItemSource`, `DataFlagItemSource`, `EnumBindingSourceExtension` via `EnumUtil.GetValuesList<T>()`.
|
||
|
||
- **`DTS.Common.Attributes`**:
|
||
Used by `RecordingModes` via `[ProgrammableTriggers(...)]` attribute.
|
||
|
||
- **`DTS.Common.Utilities`**:
|
||
Used by `ExcitationVoltageOptions` via `VoltageMagnitudeAttribute`.
|
||
|
||
- **`Xceed.Wpf.Toolkit.PropertyGrid.Attributes`**:
|
||
Used by `T0Mode`, `DataFlag`, `CFCFilter`, `RecordingModes` via `IItemsSource` interface.
|
||
|
||
- **WPF Framework**:
|
||
`EnumBindingSourceExtension` inherits `MarkupExtension` — requires WPF.
|
||
|
||
- **System.ComponentModel**:
|
||
Used for `DescriptionAttribute`.
|
||
|
||
- **`DTS.Common.Import.Enums`**:
|
||
Nested namespace for import-related enums (`ImportFormats`, `ImportFileFormat`, `ImportExtraStatus`, `PossibleStatus`).
|
||
|
||
### Inferred Consumers
|
||
- UI layers (WPF) — via `EnumDescriptionTypeConverter`, `EnumBindingSourceExtension`, `[Description]` attributes.
|
||
- Export/Import modules — `ImportFormats`, `FtssHeaderLine`, `UartHeaders`, `XLSXExportHeaderLine`.
|
||
- DAS (Data Acquisition System) — `ApplicationStatusTypes`, `RecordingModes`, `ClockSyncProfile`, `DigitalInputModes`, `DigitalOutputModes`, `SquibMeasurementType`, |