Files
DP44/enriched-qwen3-coder-next/Common/DTS.CommonCore/Enums/DASFactory.md
2026-04-17 14:55:32 -04:00

14 KiB
Raw Blame History

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.CommonCore/Enums/DASFactory/WakeupTriggers.cs
Common/DTS.CommonCore/Enums/DASFactory/UseCasesTSRAIR.cs
Common/DTS.CommonCore/Enums/DASFactory/S6DBDiagnosticChannelList.cs
Common/DTS.CommonCore/Enums/DASFactory/ConstantsAndEnums.cs
Common/DTS.CommonCore/Enums/DASFactory/DFConstantsAndEnums.cs
2026-04-16T02:44:53.233679+00:00 Qwen/Qwen3-Coder-Next-FP8 1 79cc4aa25a4a023c

DASFactory Enums Module Documentation

1. Purpose

This module (DTS.Common.Enums.DASFactory) defines core enumerations, constants, and extension methods used across the DAS (Data Acquisition System) Factory product line. It serves as a centralized source of truth for device type identifiers, recording modes, channel configurations, diagnostic channels, and protocol-related flags. These definitions enable consistent behavior across modules handling device communication, configuration, diagnostics, and data acquisition workflows. The module supports legacy and modern device families (e.g., SLICE, TSR, TSR AIR, S6DB, TDAS) and includes mappings between internal and external enum representations.

2. Public Interface

Enumerations

WakeupTriggers

  • Definition: public enum WakeupTriggers
  • Values:
    • MotionDetect: Triggered by motion detection.
  • Attributes: Uses EnumDescriptionTypeConverter for localized descriptions.

UseCasesTSRAIR

  • Definition: public enum UseCasesTSRAIR : byte
  • Values:
    • AEROSPACE
    • AEROSPACE_with_motion
    • VIBRATION
    • SCHEDULED
    • INTERVAL
    • STREAMING
    • PRETRIGGER_TEST
  • Attributes: Uses EnumDescriptionTypeConverter.

S6DBDiagnosticChannelList

  • Definition: public enum S6DBDiagnosticChannelList
  • Values:
    • InputVoltage = 0
    • BackupVoltage = 1
    • TemperatureC = 2
    • BatterySoc = 3
    • DiagInputVoltage = 100
    • DiagMcuTemperature = 101
    • DiagChargerPower = 102
    • DiagChargerInputCurrent = 103
    • DiagEnv_1_Temperature = 104
    • DiagEnv_1_Humidity = 105
    • DiagEnv_2_Temperature = 106
    • DiagEnv_2_Humidity = 107
    • DiagEnv_3_Temperature = 108
    • DiagEnv_3_Humidity = 109
    • DiagEnv_4_Temperature = 110
    • DiagEnv_4_Humidity = 111
    • DiagEnv_5_Temperature = 112
    • DiagEnv_5_Humidity = 113
    • DiagBatterySoc = 114
    • DiagBatteryPackVoltage = 115
    • DiagBatteryPackCurrent = 116
    • DiagBatteryFgTemperature = 117
    • DiagBatteryThermistor1Temperature = 118
    • DiagBatteryThermistor2Temperature = 119
  • Note: Values 03 are legacy base channels; 100+ are additional diagnostic channels.

ConstantsAndEnums.DASType

  • Definition: public enum DASType (nested in ConstantsAndEnums)
  • Values: Includes NONE, HID_SLICE, WINUSB_SLICE, G5, SIM, TOM, DIM, TSR, HEADS, MINIDAU, ETHERNET_SLICE, ETHERNET_RIBEYE, SLICE_DB, TSR2, ETHERNET_TDAS, CDCUSB_SLICE, ETHERNET_SLICE2, WINUSB_SLICE1_5, ETHERNET_SLICE1_5, ETHERNET_SLICE6, ETHERNET_SLICE6AIR, WINUSB_SLICE6, WINUSB_SLICE6AIR, ETHERNET_SLICE6DB, SERIAL_TDAS, and others.
  • Purpose: Identifies device hardware type.

ConstantsAndEnums.VoltageStatusColor

  • Definition: public enum VoltageStatusColor
  • Values: Green, Red, Yellow, Off

Constants in ConstantsAndEnums

  • EVENT_NUMBER_PRETEST_DIAG = -1
  • EVENT_NUMBER_POSTTEST_DIAG = -2
  • EVENT_NUMBER_MEASURE_BRIDGE = -3

DFConstantsAndEnums Static Properties & Methods

  • AlwaysShowUnsignedADC: bool (default false)
  • OneShotWaitTimeMs: int (default 3000)
  • TemperatureLogTimeFormat: string (default "MM-dd-yyyy HH:mm:ss")
  • TemperatureLogValueFormat: string (default "N2")
  • TSR_AIR_HIGH_G_CUTOFF_RATE_SPS: int (value 500)
  • TSRAIR_ValidSampleRates: int[] (values: [100, 500, 1000, 5000, 10000, 15000, 20000])
  • UseDropDownForTestObjectAndPosition: bool (default false)
  • AllowEnableFaultCheckingOnS6DB: bool (default true)
  • TDASRemoveOffsetWeighting: double (default 1.0)
  • TDASShuntEmulationWeighting: double (default 0.5)
  • ExpectedMaxTDASDiagnosticRunTimePerChannelMS: int (default 8000)
  • IsSLICE6ERFirmware(string firmwareVersion): bool — Returns true if firmware version ends with "G1" or "G3" (indicating EDR firmware).
  • UseUDPForAutoArmATDMonitor: bool (default false)
  • ArmStateIdle = 0: byte
  • MADEUPEVENT_TESTID = "__MadeUp__": string
  • NO_CONFIGURATION = "NO_CONFIGURATION": string
  • TOMSWITCH_ARMED = "TOMSAFETY_ARMED": string
  • SAFETYSWITCH_EXCEPTION = "SAFETYSWITCH_EXCEPTION": string
  • CHANNEL_SEPARATOR = "_": string
  • SERIAL_SEPARATOR = "-": string
  • Serial append strings (e.g., LOWG_SERIAL_APPEND = "Low g", HIGHG_SERIAL_APPEND = "High g", etc.)
  • Channel index constants: CHANNEL_X = 0, CHANNEL_Y = 1, CHANNEL_Z = 2, CHANNEL_TEMPERATURE = 0, CHANNEL_HUMIDITY = 1, CHANNEL_PRESSURE = 2
  • User channel names: USER_CHANNEL_NAME_LOWG, USER_CHANNEL_NAME_HIGHG, etc.
  • ExtraCommunicationLogging: bool (default false)
  • ReceiveBufferSizeBytes: int (default 65536)
  • SendBufferSizeBytes: int (default 65536)
  • RemoteKeepAliveSeconds: uint (default 60)
  • RemoteKeepAliveRetryIntervalSeconds: uint (default 5)
  • LocalKeepAliveTimeOutMS: uint (default 5000)
  • LocalKeepAliveRetryIntervalMS: uint (default 1000)
  • HeartbeatAsyncConnectTimeoutMS: int (default 10000)
  • WaitTimeBetweenUnitConnects: int (default 100)
  • DontDoSDL: bool (default false)
  • SCHEDULE_AHEAD_IN_MINUTES = 2: int
  • High-g sensor indices: High_g_Linear_1_Index = 3, High_g_Linear_2_Index = 4, High_g_Linear_3_Index = 5
  • RealtimeUDPAddress: string (default "UDP://239.1.2.10:8400")
  • FIRST_USE_DATE_NOT_SET: DateTime (value: SqlDateTime.MinValue)

DFConstantsAndEnums Enumerations

  • FaultFlags ([Flags] enum): Bitwise flags for legacy SLICE 1 ARM status faults (e.g., IncomingStatusLineDropped = 1 << 0, ADCBufferOverrun = 1 << 1, ..., NO_DATA = 1 << 13)
  • ExcitationStatus: Off, On, Unknown
  • T0CorrectionStatus: ScanningForPowerLoss, ScanningForPeaksAndTroughs, SettingAttributes
  • ModuleType: Lists module types (e.g., SliceBridge, G5Analog, EmbeddedLinearAccelHighG, UART, StreamOut, etc.)
  • RecordingMode: Full list of recording modes (e.g., CircularBuffer, RecorderMode, AutoActiveMode, Aerospace, Scheduled, Streaming, RAMActive, a14_NormalRecorderAndStreamSubSampleMode, etc.) with descriptions and hex values.
  • TiltAxes: 48-axis orientation configurations for Slice 6 Bubble level tilt feature (e.g., XYZ = 0, XYIZ = 6, IXYIZ = 30, etc.)
  • ConfigMode: Channel configuration modes (Disabled, Normal, DummyArm, Clock, UART, StreamOut, StreamIn)
  • MultiCastDeviceClasses: [Flags] enum for device classes in UDP broadcast (e.g., Slice6 = 1 << 0, SDB = 1 << 1, ..., NextOne = 1 << 10, Any = 0xFFFF)
  • ProtocolLimitedCommands: List of commands limited by protocol version (e.g., DiangosShuntDAC, Arm, Diagnostics, SetUARTSettings, etc.)
  • CommandStatus: Comprehensive set of command status codes (e.g., StatusNoError = 0x00, StatusInvalidParameter, ..., StatusNoResponse)
  • QATSExtendedFault: [Flags] enum for extended fault reporting (e.g., EXT_FAULT_TYPE_STATUSLINE_PORT_1_DROPPED, FAULT_FLAG__DEVICE__KX134, EXT_FAULT_TYPE_STATUSLINE_SUPER_CAP, etc.)
  • TMAT_TEMPLATES: TMAT template identifiers (e.g., S6Air_PCM, TSRAIR_ANALOG)

Extension Methods in RecordingModeExtensions

  • UsesTestLength(RecordingModes mode): Returns true if mode uses test length (e.g., Recorder, Scheduled, Interval)
  • IsTSRAIROnlyRecordingMode(RecordingModes mode): Returns true for Active, MultipleEventActive, Scheduled, Interval
  • IsTSRAirRecordingMode(RecordingModes mode): Returns true for Active, MultipleEventActive, Scheduled, Interval, Streaming
  • SupportsT0Correction(DFConstantsAndEnums.RecordingMode mode): Returns true for circular buffer or hybrid recorder modes
  • ToRecordingModesAlt(DFConstantsAndEnums.RecordingMode mode): Maps to RecordingModes via alternate lookup
  • ToRecordingModes(DFConstantsAndEnums.RecordingMode mode): Maps to RecordingModes (fallback: CircularBuffer)
  • FromRecordingModes(this RecordingModes mode): Maps RecordingModesDFConstantsAndEnums.RecordingMode
  • IsACircularBufferMode(RecordingModes/DFConstantsAndEnums.RecordingMode mode): Returns true for circular buffer variants
  • DoesModeSupportAutoArm(RecordingModes mode): Returns false for Active, MultipleEventActive, Scheduled, Interval, Streaming
  • IsARecorderMode(RecordingModes/DFConstantsAndEnums.RecordingMode mode): Returns true for recorder variants
  • IsAHybridRecorderMode(RecordingModes/DFConstantsAndEnums.RecordingMode mode): Returns true for hybrid recorder variants
  • IsAMultipleEvent(RecordingModes mode): Returns true for multiple-event modes
  • CanBeAMultipleEvent(RecordingModes mode): Returns true if mode supports multiple-event capability
  • IsAStreamMode(RecordingModes/DFConstantsAndEnums.RecordingMode mode): Returns true for streaming modes
  • TestWillBeStreaming(RecordingModes recordingMode, bool streaming): Returns true if mode is streaming or streaming flag is set
  • IsAUartMode(RecordingModes/DFConstantsAndEnums.RecordingMode mode): Returns true for UART-enabled modes
  • IsAnOpenEndedRecordingMode(RecordingModes/DFConstantsAndEnums.RecordingMode mode): Returns true for open-ended modes (e.g., ContinuousRecorder, RecordOnBoot)

3. Invariants

  • Enum Values Are Fixed: All enum values are explicitly assigned and must not be changed without coordination across firmware and host software.
  • DASType Duplication: DASType is defined in both ConstantsAndEnums and DFConstantsAndEnums. The latter is the canonical version (includes more entries like ETHERNET_TSR_AIR, WINUSB_TSR_AIR, etc.).
  • RecordingMode Value Mapping: The mapping between DFConstantsAndEnums.RecordingMode and RecordingModes is bi-directional and must be kept consistent. Extension methods (ToRecordingModes, FromRecordingModes) enforce this.
  • RecordingModes Values Are Not Reused: Each RecordingModes value maps to exactly one DFConstantsAndEnums.RecordingMode and vice versa.
  • WakeupTriggers Has One Value: Only MotionDetect is defined; no other triggers are supported.
  • S6DBDiagnosticChannelList Channel Ranges: Base diagnostic channels (03) and extended channels (100+) are disjoint and non-overlapping.
  • FaultFlags Is a Flags Enum: Values are powers of two and combinable via bitwise OR.

4. Dependencies

Dependencies of this module:

  • DTS.Common.Base.Classes: Used for base classes (imported but not directly used in provided enums).
  • DTS.Common.Converters: Required for EnumDescriptionTypeConverter (used in WakeupTriggers and UseCasesTSRAIR).
  • System.ComponentModel: Required for [Description] attribute.
  • System: Core types (bool, int, string, DateTime, HashSet, Dictionary, etc.)

Dependencies on this module:

  • DASFactory modules: All modules that handle device configuration, diagnostics, or communication rely on these enums for:
    • Device type identification (DASType)
    • Recording mode selection (RecordingMode)
    • Channel configuration (ConfigMode)
    • Diagnostic channel addressing (S6DBDiagnosticChannelList)
    • Protocol command/status handling (CommandStatus, ProtocolLimitedCommands)
    • TSR AIR-specific behavior (UseCasesTSRAIR, TSR_AIR_HIGH_G_CUTOFF_RATE_SPS, TSRAIR_ValidSampleRates)

5. Gotchas

  • DASType Duplication: DASType is defined in both ConstantsAndEnums and DFConstantsAndEnums. The latter is the extended version and should be preferred.
  • RecordingMode Value Conflicts: Some DFConstantsAndEnums.RecordingMode values map to the same RecordingModes value (e.g., AutoActiveMode and Aerospace both map to RecordingModes.Active). This is intentional per comments.
  • Interval vs Scheduled: RecordingModes.Interval maps to DFConstantsAndEnums.RecordingMode.Scheduled, but DFConstantsAndEnums.RecordingMode.Interval maps to RecordingModes.Interval. This asymmetry may cause confusion.
  • T0Correction Support: Only circular buffer and hybrid recorder modes support T0 correction. Other modes (e.g., RecorderMode) do not.
  • IsTSRAIROnlyRecordingMode Excludes Streaming: While Streaming is a TSR AIR mode, it is not considered "TSR AIR only" per this method.
  • NO_CONFIGURATION vs NO_DATA: NO_CONFIGURATION ("NO_CONFIGURATION") indicates missing config on device; NO_DATA (1 << 13 in FaultFlags) is a runtime fault flag.
  • FIRST_USE_DATE_NOT_SET: Uses SqlDateTime.MinValue, not DateTime.MinValue, to represent unset date.
  • IsSLICE6ERFirmware Logic: Relies on firmware version string ending with 4-character token starting with "G1" or "G3". May break if version format changes.
  • S6DBDiagnosticChannelList.DiagEnv_X_Temperature Off-by-One: DiagEnv_1_Temperature = 104, but DiagChargerDischargeCurrent = 104 is commented out. Ensure no active code uses the old value.
  • RecordingModeExtensions Uses RecordingModes: The extension methods operate on RecordingModes, not DFConstantsAndEnums.RecordingMode, requiring conversion via ToRecordingModes/FromRecordingModes.
  • AlwaysShowUnsignedADC Is a Static Property: Its value is not persisted; must be set per-session.