--- source_files: - DataPRO/IService/Classes/Diagnostics/OptimizationValues.cs - DataPRO/IService/Classes/Diagnostics/DiagnosticActions.cs - DataPRO/IService/Classes/Diagnostics/DiagnosticsResultActions.cs - DataPRO/IService/Classes/Diagnostics/DiagnosticsResult.cs generated_at: "2026-04-17T15:38:51.449636+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "34ce6d811e6f9b1a" --- # Diagnostics Module Documentation ## 1. Purpose This module provides data structures and operations for managing diagnostic tests and results for Data Acquisition System (DAS) channels. It enables pre-recording validation of sensor configurations by measuring excitation voltages, offsets, noise floors, shunt deflections, bridge resistance, and squib firing characteristics. The module bridges in-memory diagnostic state with persistent database storage, supporting analog input channels, digital input channels, and output squib channels. --- ## 2. Public Interface ### `OptimizationValues` (Class) **Namespace:** `DTS.DASLib.Service.Classes.Diagnostics` **Implements:** `IOptimizationValues` | Property | Type | Description | |----------|------|-------------| | `TransferSpeed` | `float` | Gets or sets the transfer speed value. | --- ### `DiagnosticsActions` (Class) **Namespace:** `DTS.DASLib.Service` **Implements:** `IDiagnosticActions` Holds instructions for diagnosing a single DAS channel. #### Properties | Property | Type | Default | Description | |----------|------|---------|-------------| | `DASChannelNumber` | `int` | `0` | The DAS channel number for these diagnostic instructions. | | `MeasureExcitation` | `bool` | `false` | Whether to measure excitation voltage applied to the sensor. | | `MeasureOffset` | `bool` | `false` | Whether to measure the sensor's offset from zero. | | `CheckDigitalState` | `bool` | `false` | Whether to check open/closed/low/high state of a digital input channel. | | `MeasureInternalOffset` | `bool` | `false` | Whether to measure internal offset. | | `RemoveOffset` | `bool` | `false` | Whether firmware should compensate for sensor offset. | | `MeasureNoise` | `bool` | `false` | Whether to measure noise floor as percentage of full scale. | | `PerformShuntCheck` | `bool` | `false` | Whether to perform an emulated shunt check. | | `SquibFireCheck` | `bool` | `false` | Whether to run a squib fire check on the channel. | | `PerformVoltageInsertCheck` | `bool` | `false` | Whether to perform a voltage insertion gain check (SLICE Pro). | | `PerformCalSignalCheck` | `bool` | `false` | Whether to perform a calibration signal check. | | `MeasureBridgeResistance` | `bool` | `false` | Whether to measure the resistance of the bridge. | #### Methods ```csharp public DiagnosticsActions() ``` Initializes a new instance with all diagnostic actions disabled and `DASChannelNumber` set to 0. ```csharp public bool AllActionsDisabled() ``` Returns `true` if all diagnostic actions are disabled; otherwise `false`. ```csharp public static void SetChannelDiagnosticActions(IDASCommunication unit, IDiagnosticActions[] actions, bool setInDb) ``` Assigns the diagnostic actions array to `unit.ChannelDiagnostics`. If `setInDb` is `true` and the database is connected, clears all existing diagnostic actions for the unit and inserts the new actions into the database. --- ### `DiagnosticsResultActions` (Static Class) **Namespace:** `DTS.DASLib.Service.Classes.Diagnostics` Provides static methods for managing diagnostic results on DAS units. #### Methods ```csharp public static void ClearChannelDiagnosticsResults(IDASCommunication unit, bool bClearDb = true) ``` Clears `unit.ChannelDiagnosticsResults` and `unit.ChannelDiagnostics` by initializing them to empty arrays. If `bClearDb` is `true` and the database is connected, clears existing diagnostics from the database for the unit. ```csharp public static void SetChannelDiagnosticsResults(IDASCommunication unit, IDiagnosticResult[] results, bool setInDb) ``` Assigns `results` to `unit.ChannelDiagnosticsResults`. If `setInDb` is `true` and the database is connected, iterates through results and inserts them into the database based on channel type: - `AnalogInputDASChannel` with `DigitalInputChannel == true` → `InsertDiagnosticsResultDigital` - `AnalogInputDASChannel` with `DigitalInputChannel == false` → `InsertDiagnosticsResultAnalog` - `OutputSquibChannel` → `InsertDiagnosticsResultsSquib` --- ### `DiagnosticsResult` (Class) **Namespace:** `DTS.DASLib.Service` **Implements:** `IDiagnosticResult` Holds diagnostic results for a single DAS channel. #### Key Properties | Property | Type | Default | Description | |----------|------|---------|-------------| | `DASChannelNumber` | `int` | — | The channel number from which diagnostics are returned. | | `EventNumber` | `int` | — | The event number this diagnostic is relevant for. | | `ScalefactorMilliVoltsPerADC` | `double` | `1` | Scale factor to convert raw ADC values to millivolts. | | `ScalefactorEngineeringUnitsPerADC` | `double` | `1` | Scale factor to convert ADC values to engineering units. | | `ExpectedExcitationMilliVolts` | `double` | — | Factory excitation value (mandatory). | | `MeasuredExcitationMilliVolts` | `double?` | — | Measured excitation voltage in mV. | | `NegativeExcitation` | `bool` | — | Flag indicating if measured excitation was negative. | | `MeasuredOffsetMilliVolts` | `double?` | — | Sensor offset from zero in mV. | | `MeasuredInternalOffsetMilliVolts` | `double?` | — | Measured internal offset in mV. | | `AutoZeroPercentDeviation` | `double?` | — | Deviation from zero during auto-zero (stored as absolute value). | | `FinalOffsetADC` | `short?` | — | Offset remaining after offset removal. | | `RemovedOffsetADC` | `int?` | — | Amount of offset removed. | | `RemovedInternalOffsetADC