13 KiB
13 KiB
source_files, generated_at, model, schema_version, sha256
| source_files | generated_at | model | schema_version | sha256 | |||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
2026-04-16T02:13:09.317699+00:00 | Qwen/Qwen3-Coder-Next-FP8 | 1 | b809df2688f575c2 |
DTS.CommonCore 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 hardware capabilities. It serves as a centralized source of truth for typed constants, enabling type safety, consistent behavior across modules, and UI integration (e.g., via EnumDescriptionTypeConverter and EnumBindingSourceExtension). These enums are foundational for configuration, data processing, device communication, and user interface rendering.
2. Public Interface
Enums (No classes or methods are public functions; only types and static members)
Core Data & Communication
GPSSentenceTypes: Specifies supported GPS NMEA sentence types:GPGGA,GPRMC.UartDataFormat: Defines UART data formats:Binary,PlainText,NMEA.UartBaudRate: Enumerates standard UART baud rates (e.g.,_9600 = 9600,_115200 = 115200) asuint.UDPStreamProfile: Defines UDP streaming profiles for S6A devices (e.g.,RTCStreaming,DTS_UDP,CH10_MANUAL_CONFIG,UART_STREAM), typed asbyte.SLICE6Properties: Specifies SLICE6 multicast autodiscovery properties:SLICE6MulticastAddress,SLICE6MulticastCommandPort,SLICE6MulticastResponsePort.
Import/Export & Data Formats
ImportFormats: Defines supported import file formats (e.g.,DTS_XML,ISF,TSF,CrashDesigner_XML,E2X), values 1–9.ImportExtraStatus: Tracks detailed import progress states (e.g.,ReadingChannels,ReadingCalibrations,NormalizingIds).PossibleStatus: High-level import status states:Waiting,Working,Done,Failed,Reading,Importing.SupportedExportFormatBitFlags: Bitwise flags for export formats (e.g.,csvunfiltered = 0x1,isounfiltered = 0x4,HDFMV = 0x40000,Ch10FilteredEU = 0x1000000). Marked with[Flags].FtssHeaderLine/XLSXExportHeaderLine: Header line constants for CSV and XLSX exports (e.g.,TestDate,SampleRate,EngineeringUnits). Each has[Description]attribute for display text.
Configuration & Setup
RecordingModes: Lists all supported DAS recording modes (e.g.,CircularBuffer,Recorder,S6A_DeviceStreamingOnly,MultipleEventActive,Scheduled,Streaming). Over 30 values.NonStreamingRecordingModeItemsSource: ConcreteRecordingModeItemsSourcesubclass that filters to non-streaming modes.RecordingModeItemsSource: Abstract base class for populating UI item sources fromRecordingModes[].ClockSyncProfile: Defines clock synchronization profiles (e.g.,Manual,Slave_E2E,Master_E2E_GPS,IRIG,EXT_PPS,GPS_PPS_OUT). Values spanbyterange (0–255).InputClockSource: Bitwise flags for input clock sources (PTP,IRIG,GPS,1PPS, and combinations).OutputClockSource: Bitwise flags for output clock sources (e.g.,PTPMasterE2E,OnePPS,PTPMasterE2E_OnePPS).T0Mode: Defines T0 trigger modes:DAS = 0,Test = 1.VelocityUnit: Velocity units:KilometerPerHour = 0,MeterPerSecond = 1.IsoSupportLevels: ISO channel support levels:ISO_ONLY,TRANSITORY,NO_ISO.IsoViewMode: View modes for ISO channel display:ISOOnly,ISOAndUserCode,UserCodeOnly,ChannelNameOnly.IsoViewModeStatic: Abstract static class holding currentIsoViewMode(public static IsoViewMode ViewMode { get; set; }).ExcitationVoltageOptions.ExcitationVoltageOption: Excitation voltage options (e.g.,Volt2 = 2,Volt5 = 16,Volt10 = 32) with[VoltageMagnitude]attribute.ExcitationVoltageOptions.VoltageMagnitudeAttribute: Custom attribute storing voltage magnitude (double Value).ExcitationVoltageOptions.VoltageMagnitudeAttributeCoder: Helper class to extract magnitude values.
Digital I/O & Sensors
DigitalInputModes: Digital input modes (bitwise flags):NONE,TLH,THL,CCNO,CCNC.DigitalOutputModes: Digital output modes (bitwise flags):NONE,FVLH,FVHL,CCNO,CCNC.SquibMeasurementType: Squib measurement options (bitwise flags):NONE,CURRENT,INIT_SIGNAL,VOLTAGE.SquibFireMode: Squib firing modes (bitwise flags):NONE,CAP,CONSTANT,AC.
Data Quality & Processing
DataFlag: Data quality flags:None,Normal,Saturated,ZeroCrossing,BrokenWire,Other.CFCFilter: Software filter classes (CFC = Composite Functional Characteristic):None,Unfiltered,Class10 = 17,Class60 = 100,Class180 = 300,Class600 = 1000,Class1000 = 1650.CFCFilterDTSFileStringConverter: Static utility class for converting betweenCFCFilterenum and string representations (e.g.,"CFC 10","Q","0").StreamDigitalFilterTypes: DSP filter profiles for S6A streaming (e.g.,NO_DSP_FILTER,CH10_IIR_6TH_OPTION_80X,ALL_RT_FIR_45T65T_OPTION_80X).
UI & Localization
UICultures: Supported UI languages (e.g.,en_US,de_DE,ja_JP) with[DescriptionResource]attributes.PopupWindowImage: Popup dialog icon types:Warning,Error,Question,Information.UIItemStatus: UI status indicators:None,Success,Failed,Error,Warning.SelectedItemsStatus: Abstract static class managing per-object updating state viaSetUpdating(object, bool)andGetUpdating(object).RibbonTabNames: Static class with tab name constants (Tab1,Tab2,Tab3), all currently"TBD".TabControlOperation: Tab control operations:AddedItem,RemovedItem.RibbonControlOperation: Ribbon control operations:AddedItem,RemovedItem.ScriptTypes: Script execution types:Migration,Initialization.InitializationTypes: Initialization script types:Aero,Crash,TSRAIR.StringReplacementMode: String replacement modes:All,First,Last.MigrationResult: Migration operation results:OK,ExceptionThrown,WarningAllowStreamingModesWasNotMigrated.IncludeOverwriteName: UI control states:IncludedCheckBox,OverwriteCheckBox,ImportingTestSetupName.ExportChoices: Export configuration options:ExportType,UnfilteredEUCheckBox,FilteredEUCheckBox,MVCheckBox,ADCCheckBox.
Extension & Helpers
EnumBindingSourceExtension: WPFMarkupExtensionfor binding to enum values in XAML. Validates enum type and returns values (includingnullfor nullable enums).HeaderLineExtension.GetDescription(Enum): Extension method to retrieve[Description]attribute text from any enum.
3. Invariants
- Bitwise Flags: Enums marked
[Flags](SupportedExportFormatBitFlags) and those with explicit bit-shifted values (DigitalInputModes,DigitalOutputModes,SquibMeasurementType,SquibFireMode,InputClockSource,OutputClockSource) must be combined using bitwise OR (|) and checked with bitwise AND (&). - Numeric Values:
UartBaudRatevalues are strictlyuintand match standard baud rates (e.g.,_9600 = 9600).ClockSyncProfilevalues arebyteand span 0–255, with reserved ranges commented out. - Enum Descriptions: Enums with
[TypeConverter(typeof(EnumDescriptionTypeConverter))]rely on resource strings (via[Description]or[DescriptionResource]) for UI display. The converter must be registered in XAML or code-behind. - CFC Filter Values:
CFCFilteruses non-sequential integer values (e.g.,Class10 = 17,Class60 = 100) for compatibility with legacy DTS file formats; conversion utilities (CFCFilterDTSFileStringConverter) must be used for serialization/deserialization. - Static State:
IsoViewModeStatic.ViewModeholds a copy of the DB value; it is not automatically synchronized.SelectedItemsStatususes thread-safe locking (lock(MyLock)) for its internal dictionary. - Null Handling:
CFCFilterDTSFileStringConverter.GetFilterFromStringreturnsCFCFilter.Unfilteredfor null/empty input or unrecognized strings.
4. Dependencies
Dependencies of this module:
- DTS.Common.Converters: Used by
EnumDescriptionTypeConverter(applied to many enums). - DTS.Common.Base.Classes: Used by
IItemsSourceimplementations (e.g.,T0ModeItemSource,RecordingModeItemsSource,ProfileSourceItemsSource). - DTS.Common.Utils: Used by
EnumUtil.GetValuesList<T>()(e.g., inT0ModeItemSource,CFCFilterItemSource). - System.ComponentModel: Provides
DescriptionAttribute,TypeConverter. - Xceed.Wpf.Toolkit.PropertyGrid.Attributes: Provides
IItemsSourceandItemCollectionfor property grid integration. - System.Windows.Markup: Required for
EnumBindingSourceExtension(WPF markup extension). - DTS.Common.Enums.Sensors, DTS.Common.Interface.Sensors.SoftwareFilters: Referenced by
CFCFilterforIFilterClassconversion.
Dependencies on this module:
- DTS.CommonCore (other modules): All enums are in
DTS.Common.Enumsnamespace and are widely referenced across the codebase for configuration, state management, and UI binding. - UI Layer: WPF bindings use
EnumBindingSourceExtensionandEnumDescriptionTypeConverterfor dropdowns and labels.
5. Gotchas
- Reserved Enum Values:
ClockSyncProfilehas commented-out P2P profiles (e.g.,Slave_P2P,Master_P2P) and reserved ranges (_TDB_*), indicating future work or device-specific support not yet implemented. - CFC Filter String Conversion:
CFCFilterDTSFileStringConverter.GetIsoCodeFromStringandCFCFilterToCFCuse single-letter codes ("Q","D","C","B","A","P","S","0") for ISO channel codes—these must be matched exactly in downstream systems. UICulturesResource Keys:[DescriptionResource]attributes reference keys like"UICultures_en-US"; these must exist in the application's resource files.RibbonTabNames: All tab names are"TBD"; this is likely placeholder code.T0ModeItemSource/CFCFilterItemSource: TheseIItemsSourceimplementations useEnumUtil.GetValuesList<T>()—ensureEnumUtilis available and correctly implemented.SelectedItemsStatus: UsesDictionary<object, bool>; key objects must be stable (e.g., not recreated instances) to maintain state correctly.IsoViewModeStatic: The staticViewModeproperty is not persisted or synchronized with the database; it must be explicitly set and cleared by consumers.ExcitationVoltageOptions: TheVoltageMagnitudeAttributeCoderis a generic helper—ensureAttributeCoder<TEnum, TAttr, TValue>is defined and functional.EnumBindingSourceExtension: For nullable enums, it prependsnullto the value array; consumers must handle this case.HeaderLineExtension.GetDescription: Falls back toenum.ToString()if no[Description]attribute is found—ensure all enums used in headers have descriptions.