This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
---
source_files:
- Common/DTS.Common/Interface/DASFactory/ARM/IArmStatus.cs
- Common/DTS.Common/Interface/DASFactory/ARM/IArmStatusData.cs
generated_at: "2026-04-17T16:37:47.130184+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "18c4557d1a49adee"
---
# Documentation: DTS.Common.Interface.DASFactory.ARM
## 1. Purpose
This module defines two interfaces for managing and representing the ARM (armed/realtime) status of DAS (Data Acquisition System) units. `IArmStatus` provides the operational interface for transitioning between arm and realtime states, querying cached status flags, and optionally persisting status to a database. `IArmStatusData` serves as the data model holding detailed state information including trigger status, recording progress, hardware metrics, and fault conditions. Together, they enable the system to track and control DAS unit operational modes throughout test execution.
---
## 2. Public Interface
### IArmStatus
| Member | Signature | Description |
|--------|-----------|-------------|
| `SetInArm` | `void SetInArm(bool WriteToDb)` | Marks the unit as being in arm mode. Optionally writes status to database based on `WriteToDb` parameter. |
| `SetInRealtime` | `void SetInRealtime(bool WriteToDb, bool ExitRealtimeIfPossible)` | Marks the unit as being in realtime mode. Optionally writes to database and can conditionally exit realtime mode. |
| `GetIsInArm` | `bool GetIsInArm()` | Returns `true` if the unit is known to be in arm state. **Does not query hardware**—returns cached flag only. |
| `GetIsInRealtime` | `bool GetIsInRealtime()` | Returns `true` if the unit is known to be in realtime state. **Does not query hardware**—returns cached flag only. |
| `GetIsStreaming` | `bool GetIsStreaming()` | Returns `true` if the unit is known to be streaming. **Does not query hardware**—returns cached flag only. |
| `DASArmStatus` | `IArmStatusData DASArmStatus { get; set; }` | Property to get or set the detailed arm status data object. |
| `SetDASArmStatus` | `void SetDASArmStatus(IArmStatusData status, bool bSetInDb)` | Sets `DASArmStatus` property and optionally persists to database. |
| `SetDASArmStatus` | `void SetDASArmStatus

View File

@@ -0,0 +1,250 @@
---
source_files:
- Common/DTS.Common/Interface/DASFactory/Config/IAlignUDPToPPSAware.cs
- Common/DTS.Common/Interface/DASFactory/Config/IEID.cs
- Common/DTS.Common/Interface/DASFactory/Config/IVoltageInsertionEnabled.cs
- Common/DTS.Common/Interface/DASFactory/Config/IInformation.cs
- Common/DTS.Common/Interface/DASFactory/Config/IConfigurationData.cs
- Common/DTS.Common/Interface/DASFactory/Config/IConfiguration.cs
- Common/DTS.Common/Interface/DASFactory/Config/IInfoResultModule.cs
- Common/DTS.Common/Interface/DASFactory/Config/IDASChannel.cs
- Common/DTS.Common/Interface/DASFactory/Config/IInfoResult.cs
- Common/DTS.Common/Interface/DASFactory/Config/IDASModule.cs
generated_at: "2026-04-17T15:31:50.629398+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "621789ad0fb1ddef"
---
# DTS.Common.Interface.DASFactory.Config Documentation
## 1. Purpose
This module defines the core configuration interfaces for a Data Acquisition System (DAS). It provides abstractions for managing hardware modules, channels, test configurations, and device metadata. The interfaces support XML serialization for persistence, channel-to-module mapping, trigger configuration, and hardware identification (EIDs). This serves as the contract layer between DAS hardware communication components and higher-level configuration services.
---
## 2. Public Interface
### IAlignUDPToPPSAware
**Signature:**
```csharp
public interface IAlignUDPToPPSAware
{
bool AlignUDPToPPS { get; set; }
}
```
**Behavior:** Marker interface exposing a boolean flag indicating whether UDP data should be aligned to PPS (Pulse Per Second) timing signals.
---
### IEID
**Signature:**
```csharp
public interface IEID
{
string ID { get; set; }
byte[] Blob { get; set; }
bool IsValid();
}
```
**Behavior:** Represents an Electronic ID with a string identifier, binary blob data, and a validation method.
---
### IVoltageInsertionEnabled
**Signature:**
```csharp
public interface IVoltageInsertionEnabled
{
bool VoltageInsertionEnabled { get; }
}
```
**Behavior:** Read-only indicator that voltage insertion was detected as enabled on the hardware.
---
### IInformation
**Signature:**
```csharp
public interface IInformation
{
IInfoResult DASInfo { get; set; }
void SetDASInfo(IInfoResult dasInfo, bool bSetInDb = true);
void SetDASInfo();
}
```
**Behavior:** Provides access to DAS hardware information. `SetDASInfo` accepts an `IInfoResult` with an optional flag to persist to database (defaults to `true`). The parameterless overload implies a refresh or default initialization.
---
### IConfigurationData
**Signature:**
```csharp
public interface IConfigurationData
{
IDASModule[] Modules { get; set; }
IEID[] IDs { get; set; }
string TestID { get; set; }
string TestSetupUniqueId { get; set; }
string InstanceID { get; set; }
string Description { get; set; }
bool ClearSetup { get; set; }
int[] DisplayOrder { get; set; }
int DasDisplayOrder { get; set; }
string UDPReceiveAddress { get; set; }
int NumberOfConfiguredChannels();
int NumberOfChannels();
int NumberOfDownloadChannels();
int GetDisplayOrder(uint channelIdx);
void WriteXml(XmlWriter writer);
void ReadXml(XmlReader reader);
XmlSchema GetSchema();
}
```
**Behavior:** Central configuration container for a DAS setup. Manages module array, EIDs, test identification, and channel counts. Supports XML serialization via `WriteXml`/`ReadXml`. `NumberOfDownloadChannels` excludes UART and StreamOut channels.
---
### IConfiguration
**Signature:**
```csharp
public interface IConfiguration
{
string TestDirectory { get; set; }
bool SupportsAutoDetect { get; }
IConfigurationData ConfigData { get; set; }
ClockSyncProfile DASClockSyncProfile { get; set; }
void QueryConnectedDevices();
int GetDASDisplayOrder();
int[] GetChannelDisplayOrder();
void SetDASDisplayOrder(int order);
void SetChannelDisplayOrder(int[] order);
}
```
**Behavior:** High-level configuration interface. `QueryConnectedDevices` performs hardware discovery. Display order methods control UI ordering of DAS units and channels. `SupportsAutoDetect` indicates bridge/IEPE channel type auto-detection capability.
---
### IInfoResultModule
**Signature:**
```csharp
public interface IInfoResultModule
{
string SerialNumber { get; set; }
string FirmwareVersion { get; set; }
int ModuleArrayIndex { get; set; }
uint NumberOfChannels { get; set; }
uint[] SupportedSampleRates { get; set; }
Dictionary<uint, float> SampleRate2AAFrequency { get; set; }
ulong? MaxEventStorageSpaceInBytes { get; set; }
uint? NumberOfBytesPerSampleClock { get; set; }
double MaxRecordingSamples { get; set; }
DateTime? CalibrationDate { get; set; }
bool RackIsUnreadable { get; set; }
DFConstantsAndEnums.ModuleType TypeOfModule { get; set; }
DFConstantsAndEnums.RecordingMode[] SupportedModes { get; set; }
bool IsProgrammable { get; set; }
}
```
**Behavior:** Hardware metadata for a single module. Includes sample rate to anti-aliasing filter frequency mapping. `RackIsUnreadable` indicates armed TDAS rack state. Storage properties may be null if specified at DAS level instead.
---
### IDASChannel
**Signature:**
```csharp
public interface IDASChannel
{
DFConstantsAndEnums.ConfigMode ConfigurationMode { get; set; }
bool DiagnosticsMode { get; set; }
int ModuleChannelNumber { get; set; }
int AbsoluteDisplayOrder { get; set; }
double UnitConverision { get; set; } // Note: typo in source
bool AtCapacity { get; set; }
double CapacityOutputIsBasedOn { get; set; }
SensorConstants.SensUnits SensitivityUnits { get; set; }
byte Number { get; }
IEID[] IDs { get; set; }
DateTime EventStartTime { get; set; }
bool LevelTriggerSeen { get; set; }
int? LevelTriggerT0AdjustmentSamples { get; set; }
int QualificationSamples { get; set; }
string IsoChannelName { get; set; }
string ChannelGroupName { get; set; }
string UserCode { get; set; }
string UserChannelName { get; set; }
string LinearSensorCalibration { get; set; }
string UserValue1 { get; set; }
string UserValue2 { get; set; }
string UserValue3 { get; set; }
int IdType { get; set; }
bool IsConfigured();
void WriteElementStart(XmlWriter writer);
void WriteElementEnd(XmlWriter writer);
void WriteXmlCRC32(XmlWriter writer);
void WriteXml(XmlWriter writer);
void ReadXml(XmlReader reader);
XmlSchema GetSchema();
}
```
**Behavior:** Represents a single data acquisition channel. `Number` is the stack channel number (0-based, read-only). `LevelTriggerT0AdjustmentSamples` is null if channel did not directly receive a level trigger. Supports CRC32-included XML serialization via `WriteXmlCRC32`.
---
### IInfoResult
**Signature:**
```csharp
public interface IInfoResult
{
string MACAddress { get; set; }
IInfoResultModule[] Modules { get; set; }
List<Common.Classes.Hardware.ExternalTilt> ActiveExternalTilts { get; set; }
uint MaxNumberOfModules { get; set; }
ulong? MaxEventStorageSpaceInBytes { get; set; }
uint? NumberOfBytesPerSampleClock { get; set; }
bool? DeviceStreamingOnly { get; set; }
int NumberOfBridgeChannels { get; set; }
IEID BatteryID { get; set; }
bool HasBattery { get; }
DateTime? CalibrationDate { get; set; }
byte MapDASChannelNumber2RealtimeChannelNumber(int channelNumber);
byte MapDASChannelNumber2ModuleArrayIndex(int channelNumber);
byte MapDASChannelNumber2ModuleDeviceID(int channelNumber);
byte MapDASChannelNumber2ModuleChannelNumber(int channelNumber);
byte MapModuleArrayIndexAndChannelNum2DASChannel(int moduleArrayIdx, int channelNumber);
}
```
**Behavior:** Aggregated hardware info for an entire DAS unit. Provides channel number mapping functions between DAS-global and module-local addressing. `CalibrationDate` returns `1970-01-01` if invalid/NA. `DeviceStreamingOnly` is null if hardware doesn't support streaming-only configuration.
---
### IDASModule
**Signature:**
```csharp
public interface IDASModule
{
IDASChannel[] Channels { get; set; }
IEID[] IDs { get; set; }
int ModuleArrayIndex { get; set; }
double RequestedPreTriggerSeconds { get; set; }
double RequestedPostTriggerSeconds { get; set; }
double PreTriggerSeconds { get; set; }
double PostTriggerSeconds { get; set; }
int NumberOfEvents { get; set; }
int WakeUpMotionTimeout { get; set; }
string FirmwareVersion { get; set; }
string Description { get; set; }
ulong? MaxEventStorageSpaceInBytes { get; set; }
ulong NumberOfSamples { get; set; }
ulong[] TriggerSampleNumbers { get; set; }
ulong Start

View File

@@ -0,0 +1,120 @@
---
source_files:
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ITriggerCheck.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IOptimizationValues.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ITCDiagnosticResults.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ICanDiagnosticResults.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IDiagnosticMessagesDevice.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ICanDiagnosticResult.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IArmCheckActions.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IModuleDiagnosticsResult.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ITriggerCheckResult.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/ITCDiagnosticResult.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IArmCheckResults.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IDiagnos.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IDiagnosticActions.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IBaseInputValues.cs
- Common/DTS.Common/Interface/DASFactory/Diagnostics/IDiagnosticResult.cs
generated_at: "2026-04-17T15:29:33.942610+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "2fd64d6b1583117e"
---
# Diagnostics Interface Module Documentation
## 1. Purpose
This module defines the contract interfaces for the Data Acquisition System (DAS) diagnostics subsystem within the DTS framework. It provides abstractions for configuring, executing, and storing results of diagnostic operations including channel calibration, sensor verification, arm checks, trigger monitoring, CAN bus diagnostics, and thermocouple (TC) diagnostics. These interfaces enable a decoupled architecture where concrete implementations can vary across different DAS hardware platforms (e.g., TDAS Pro, SLICE Pro) while maintaining consistent diagnostic capabilities.
---
## 2. Public Interface
### `ITriggerCheck`
Simple container interface for trigger check results.
```csharp
ITriggerCheckResult TriggerCheckResult { get; set; }
```
### `ITriggerCheckResult`
Represents the state of trigger and start-record lines on a DAS unit.
| Property | Type | Description |
|----------|------|-------------|
| `IsStatusGood` | `bool` | Indicates if DAS status is good |
| `IsStartRecordActive` | `bool` | Indicates if start record line is currently active |
| `HasStartRecordBeenActive` | `bool` | Indicates if start record line was active at any point after arm |
| `IsTriggered` | `bool` | Indicates if trigger is currently active |
| `HasTriggered` | `bool` | Indicates if trigger line was active at any point after arm |
### `IOptimizationValues`
Stores optimization settings for real-time optimization (FB 6416).
```csharp
float TransferSpeed { get; set; }
```
### `IDiagnos`
The primary aggregating interface for all diagnostic operations and results.
| Property | Type | Description |
|----------|------|-------------|
| `ChannelDiagnostics` | `IDiagnosticActions[]` | Array of diagnostic action configurations per channel |
| `ChannelDiagnosticsResults` | `IDiagnosticResult[]` | Array of diagnostic results per channel |
| `ModuleDiagnosticsResults` | `IModuleDiagnosticsResult[]` | Module-level temperature diagnostics |
| `BaseInput` | `IBaseInputValues` | Base unit input/power values |
| `DASClockSyncStatus` | `IDictionary<InputClockSource, bool>` | Clock synchronization status per source |
| `ClockSyncInUTC` | `bool` | Whether clock sync is in UTC |
| `PTPDomainID` | `byte` | PTP domain identifier |
| `ArmCheckActions` | `IArmCheckActions` | Configuration of which arm checks to perform |
| `ArmCheckResults` | `IArmCheckResults` | Results from arm check operations |
| `OptimizationValues` | `IOptimizationValues` | Real-time optimization settings |
| Method | Description |
|--------|-------------|
| `void SetChannelDiagnosticActions(IDiagnosticActions[] actions, bool setInDb = true)` | Sets diagnostic action configurations |
| `void ClearChannelDiagnosticsResults(bool bClearDb = true)` | Clears all channel diagnostic results |
| `void SetChannelDiagnosticsResults(IDiagnosticResult[] results, bool setInDb)` | Sets channel diagnostic results |
### `IDiagnosticActions`
Configures which diagnostic tests to perform on a specific DAS channel.
| Property | Type | Description |
|----------|------|-------------|
| `DASChannelNumber` | `int` | Target channel number |
| `MeasureExcitation` | `bool` | Measure excitation voltage applied to sensor |
| `MeasureOffset` | `bool` | Measure sensor offset from zero |
| `CheckDigitalState` | `bool` | Check open/closed/low/high state of digital input |
| `MeasureInternalOffset` | `bool` | Measure internal offset |
| `RemoveOffset` | `bool` | Have firmware compensate for sensor offset |
| `MeasureNoise` | `bool` | Measure noise floor as percentage of full scale |
| `PerformShuntCheck` | `bool` | Perform emulated shunt check |
| `SquibFireCheck` | `bool` | Run squib fire check on channel |
| `PerformVoltageInsertCheck` | `bool` | Perform voltage insertion gain check (SLICE Pro) |
| `PerformCalSignalCheck` | `bool` | Perform calibration signal check |
| `MeasureBridgeResistance` | `bool` | Measure bridge resistance |
| Method | Description |
|--------|-------------|
| `bool AllActionsDisabled()` | Returns true if all diagnostic actions are disabled |
### `IDiagnosticResult`
Contains results from diagnostic operations on a single channel.
| Property | Type | Description |
|----------|------|-------------|
| `DASChannelNumber` | `int` | Source channel number |
| `EventNumber` | `int` | Associated event number |
| `ScalefactorMilliVoltsPerADC` | `double` | Scale factor for raw ADC to millivolts |
| `ScalefactorEngineeringUnitsPerADC` | `double` | Scale factor for raw ADC to engineering units |
| `ExpectedExcitationMilliVolts` | `double` | Factory excitation value |
| `MeasuredExcitationMilliVolts` | `double?` | Measured excitation voltage (null if not measured) |
| `NegativeExcitation` | `bool` | Flag for negative excitation reading (legacy TDC/TDAS compatibility) |
| `MeasuredOffsetMilliVolts` | `double?` | Measured sensor offset in mV |
| `MeasuredInternalOffsetMilliVolts` | `double?` | Measured internal offset in mV |
| `MeasuredOffsetEngineeringUnits` | `double?` | Measured offset in engineering units |
| `AutoZeroPercentDeviation` | `double?` | Deviation from zero during auto-zero |
| `FinalOffsetADC` | `short?` | Remaining offset after offset removal |
| `RemovedOffsetADC` | `int?` | Amount of offset removed |
| `RemovedInternalOffsetADC` | `int?` | Amount of internal offset removed |
| `NoisePercentFullScale` | `double?` | Noise as percentage of full scale |
| `ShuntDeflectionFailed` | `bool` | Whether shunt check failed |
| `CalSignalCheckFailed` | `bool` | Whether cal signal check failed |
| `MeasuredShuntDeflectionMv` | `double?` | Measured shunt deflection in mV |
| `TargetShuntDeflection

View File

@@ -0,0 +1,65 @@
---
source_files:
- Common/DTS.Common/Interface/DASFactory/Download/IDownloadReport.cs
- Common/DTS.Common/Interface/DASFactory/Download/IEventInfoAggregate.cs
- Common/DTS.Common/Interface/DASFactory/Download/IUARTDownload.cs
- Common/DTS.Common/Interface/DASFactory/Download/IUARTDownloadRequest.cs
- Common/DTS.Common/Interface/DASFactory/Download/IUARTEventInfo.cs
- Common/DTS.Common/Interface/DASFactory/Download/IDownloadRequest.cs
- Common/DTS.Common/Interface/DASFactory/Download/IEventInfo.cs
- Common/DTS.Common/Interface/DASFactory/Download/IDownload.cs
generated_at: "2026-04-17T15:33:30.204926+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "d5a65959da002319"
---
# Documentation: DTS.Common.Interface.DASFactory.Download
## 1. Purpose
This module defines the data contract interfaces for downloading event data from a Data Acquisition System (DAS). It provides abstractions for requesting data downloads (both standard and UART-based), reporting on stored events, managing event metadata including fault flags, and handling UART serial communication parameters. The interfaces serve as the boundary between the DASFactory implementation and consumers needing to retrieve recorded event data from hardware.
---
## 2. Public Interface
### IDownloadReport
Container interface for event metadata retrieved from a DAS.
| Member | Type | Description |
|--------|------|-------------|
| `Events` | `IEventInfo[]` | Array of all events stored on the DAS. |
| `UARTEvents` | `IUARTEventInfo[]` | Array of all UART events stored on the DAS. |
---
### IEventInfoAggregate
Aggregates multiple event info instances with summary statistics.
| Member | Type | Description |
|--------|------|-------------|
| `EventId` | `string` | Identifier for the event. |
| `EventDescription` | `string` | Text description of the event. |
| `DurationSeconds` | `double` | Duration of the event in seconds. |
| `GUID` | `string` | Globally unique identifier. |
| `HasBeenDownloaded` | `bool` | Whether the event has been downloaded. |
| `WasTriggered` | `bool` | Whether the event was triggered. |
| `NumberOfChannels` | `int` | Count of channels in the event. |
| `NumberOfSamples` | `ulong` | Total sample count. |
| `NumberOfBytes` | `ulong` | Total byte count. |
| `Faulted` | `bool` | Whether a fault occurred. |
| `EventNumber` | `int` | The event number. |
| `Add(IEventInfo newEvent)` | `void` | Adds an `IEventInfo` instance to the aggregate. |
---
### IDownloadRequest
Specifies parameters for a standard (non-UART) data download request.
| Member | Type | Description |
|--------|------|-------------|
| `EventNumber` | `ushort` | Target event number for download. |
| `DASChannelNumber` | `byte` | Channel number; use `ALL_CHANNELS` constant for all channels. |
| `StartSample` | `ulong` | First sample to download. |
| `