Files
DP44/docs/ai/Common/DTS.Common/Interface/DASFactory/Config.md
2026-04-17 14:55:32 -04:00

8.7 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
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
2026-04-17T15:31:50.629398+00:00 zai-org/GLM-5-FP8 1 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:

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:

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:

public interface IVoltageInsertionEnabled
{
    bool VoltageInsertionEnabled { get; }
}

Behavior: Read-only indicator that voltage insertion was detected as enabled on the hardware.


IInformation

Signature:

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:

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:

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:

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:

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:

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:

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