Files
2026-04-17 14:55:32 -04:00

16 KiB
Raw Permalink Blame History

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
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
2026-04-16T02:53:19.296009+00:00 Qwen/Qwen3-Coder-Next-FP8 1 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 systems 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: IsoViewModeStaticabstract 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:

    • UartBaudRateuint
    • UDPStreamProfilebyte
    • ClockSyncProfile, InputClockSource, OutputClockSourcebyte
  • 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,