250 lines
8.7 KiB
Markdown
250 lines
8.7 KiB
Markdown
|
|
---
|
||
|
|
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
|