Files
DP44/docs/ai/Common/DTS.Common/Interface/DASFactory/Config.md

250 lines
8.7 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
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