16 KiB
16 KiB
source_files, generated_at, model, schema_version, sha256
| source_files | generated_at | model | schema_version | sha256 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
2026-04-16T03:10:42.932137+00:00 | Qwen/Qwen3-Coder-Next-FP8 | 1 | f73b754208bf94f9 |
Documentation: DTS.Common.Interface.DASFactory.Config Interfaces
1. Purpose
This module defines a set of interfaces that collectively represent the configuration, metadata, and operational state of a Data Acquisition System (DAS) unit. These interfaces serve as the contract layer between the DAS hardware abstraction and higher-level services (e.g., ConfigurationService), enabling structured configuration management, serialization, channel/module metadata retrieval, and system-wide state introspection. They are used primarily during setup, pre-test configuration, and post-test data analysis to expose hardware capabilities, channel configurations, calibration data, and synchronization settings in a type-safe and testable manner.
2. Public Interface
IAlignUDPToPPSAware
bool AlignUDPToPPS { get; set; }
Gets or sets a flag indicating whether UDP packet timestamps should be aligned to the PPS (Pulse Per Second) signal.
IEID
string ID { get; set; }
Gets or sets the EID (Event Identifier) string (e.g., sensor serial or identifier).byte[] Blob { get; set; }
Gets or sets a binary blob associated with the EID (e.g., sensor calibration data).bool IsValid()
Returnstrueif the EID data is considered valid (e.g., non-null/non-empty ID and Blob).
IVoltageInsertionEnabled
bool VoltageInsertionEnabled { get; }
Gets a read-only flag indicating whether voltage insertion (a hardware feature) is currently enabled on the DAS unit.
IInformation
IInfoResult DASInfo { get; set; }
Gets or sets theIInfoResultobject containing hardware metadata (e.g., module list, calibration, channel mapping).void SetDASInfo(IInfoResult dasInfo, bool bSetInDb = true)
Sets theDASInfoproperty and optionally persists it to a database.void SetDASInfo()
Overload ofSetDASInfothat calls the above withbSetInDb = true.
IConfigurationData
IDASModule[] Modules { get; set; }
Gets or sets the array of modules in the DAS.IEID[] IDs { get; set; }
Gets or sets the array of EIDs for the entire DAS.string TestID { get; set; }
Gets or sets the ID of the current test/event.string TestSetupUniqueId { get; set; }
Gets or sets a unique identifier for the test setup instance.string InstanceID { get; set; }
Gets or sets the ID of a test run instance (used to locate downloaded data).string Description { get; set; }
Gets or sets a human-readable description of the current test/event.bool ClearSetup { get; set; }
Gets or sets a flag indicating whether to clear the current setup before applying new configuration.int NumberOfConfiguredChannels()
Returns the count of channels whereIsConfigured()returnstrue.int NumberOfChannels()
Returns the total number of channels (configured or not).int NumberOfDownloadChannels()
Returns the number of channels that are downloadable (i.e., not UART or StreamOut).int[] DisplayOrder { get; set; }
Gets or sets the per-channel display order array.int DasDisplayOrder { get; set; }
Gets or sets the DAS-wide display order.int GetDisplayOrder(uint channelIdx)
Returns the display order for the channel at indexchannelIdx.string UDPReceiveAddress { get; set; }
Gets or sets the UDP receive address used to control the OBR-DDR.- Serialization methods
void WriteXml(XmlWriter writer)void ReadXml(XmlReader reader)XmlSchema GetSchema()
Standard XML serialization interface methods.
IConfiguration
string TestDirectory { get; set; }
Gets or sets the local path where the DAS stores test information.bool SupportsAutoDetect { get; }
Gets a read-only flag indicating whether the unit supports auto-detection of channel types (e.g., bridge/IEPE).void QueryConnectedDevices()
Directly queries the hardware to detect connected devices (if supported).IConfigurationData ConfigData { get; set; }
Gets or sets theIConfigurationDataobject containing the pre-test configuration.ClockSyncProfile DASClockSyncProfile { get; set; }
Gets or sets the clock synchronization profile (applied only to units that support it).int GetDASDisplayOrder()
Returns the DAS display order (default-1).int[] GetChannelDisplayOrder()
Returns the per-channel display order array.void SetDASDisplayOrder(int order)
Sets the DAS display order (intended for use by FWTU only).void SetChannelDisplayOrder(int[] order)
Sets the per-channel display order array (intended for use by FWTU only).
IInfoResultModule
string SerialNumber { get; set; }
Serial number of the module.string FirmwareVersion { get; set; }
Firmware version string.int ModuleArrayIndex { get; set; }
Index of this module in the module array (0-based).uint NumberOfChannels { get; set; }
Number of channels attached to this module.uint[] SupportedSampleRates { get; set; }
Array of supported sample rates (in Hz).Dictionary<uint, float> SampleRate2AAFrequency { get; set; }
Mapping from sample rate to corresponding anti-aliasing filter frequency.ulong? MaxEventStorageSpaceInBytes { get; set; }
Maximum event storage space (bytes) for this module (nullif DAS-level).uint? NumberOfBytesPerSampleClock { get; set; }
Bytes stored per sample clock for all channels (nullif DAS-level).double MaxRecordingSamples { get; set; }
Maximum number of samples this module can record.DateTime? CalibrationDate { get; set; }
Last calibration date/time (nullif unknown/invalid).bool RackIsUnreadable { get; set; }
trueif a TDAS rack is armed and unresponsive to queries.DFConstantsAndEnums.ModuleType TypeOfModule { get; set; }
Module type (e.g., analog input, clock, etc.).DFConstantsAndEnums.RecordingMode[] SupportedModes { get; set; }
Supported recording modes.bool IsProgrammable { get; set; }
Indicates whether the module is programmable.
IDASChannel
DFConstantsAndEnums.ConfigMode ConfigurationMode { get; set; }
Configuration mode of the channel.bool DiagnosticsMode { get; set; }
Whether the channel is in diagnostics mode.int ModuleChannelNumber { get; set; }
Channel number relative to its owning module.int AbsoluteDisplayOrder { get; set; }
Absolute display order index across all channels.double UnitConverision { get; set; }
Conversion factor for unit scaling (note: typo in source; likely intendedUnitConversion).bool AtCapacity { get; set; }
Whether the channel is at full-scale capacity.double CapacityOutputIsBasedOn { get; set; }
Reference value for capacity calculation.SensorConstants.SensUnits SensitivityUnits { get; set; }
Units of the sensor sensitivity (e.g., mV/V, pC).byte Number { get; }
Absolute channel number within the DAS (0-based).IEID[] IDs { get; set; }
Array of EIDs associated with this channel.DateTime EventStartTime { get; set; }
Timestamp of the event start for this channel.bool LevelTriggerSeen { get; set; }
Whether a level trigger was detected on this channel.string IsoChannelName { get; set; }
ISO-standard channel name.string ChannelGroupName { get; set; }
Name of the group this channel belongs to.string UserCode { get; set; }
User-defined code.string UserChannelName { get; set; }
User-defined channel name.string LinearSensorCalibration { get; set; }
Linear calibration coefficients (e.g., slope/offset).int QualificationSamples { get; set; }
Number of samples used for trigger qualification.int? LevelTriggerT0AdjustmentSamples { get; set; }
Sample shift applied to align T0 with this channel’s trigger (if not directly triggered,null).bool IsConfigured()
Returnstrueif the channel is considered configured (sensor connected, config present).- Serialization methods
void WriteElementStart(XmlWriter writer)void WriteElementEnd(XmlWriter writer)void WriteXmlCRC32(XmlWriter writer)void WriteXml(XmlWriter writer)void ReadXml(XmlReader reader)XmlSchema GetSchema()
int IdType { get; set; }
Type identifier for the EID (e.g., sensor type).string UserValue1 { get; set; },UserValue2,UserValue3
User-defined string fields.
IInfoResult
string MACAddress { get; set; }
MAC address of the DAS unit.IInfoResultModule[] Modules { get; set; }
Array of modules in the DAS.List<Common.Classes.Hardware.ExternalTilt> ActiveExternalTilts { get; set; }
List of active external tilt sensors.uint MaxNumberOfModules { get; set; }
Maximum number of modules supported by the DAS.ulong? MaxEventStorageSpaceInBytes { get; set; }
Total event storage space (bytes) for the DAS (nullif per-module).uint? NumberOfBytesPerSampleClock { get; set; }
Total bytes per sample clock for all channels (nullif per-module).bool? DeviceStreamingOnly { get; set; }
trueif the device is hardware-configured for streaming-only (nullif unsupported).int NumberOfBridgeChannels { get; set; }
Hardcoded count of bridge channels (temporary constant).IEID BatteryID { get; set; }
EID for the battery module.bool HasBattery { get; }
trueif a battery is physically present.- Channel mapping methods
byte MapDASChannelNumber2RealtimeChannelNumber(int channelNumber)byte MapDASChannelNumber2ModuleArrayIndex(int channelNumber)byte MapDASChannelNumber2ModuleDeviceID(int channelNumber)byte MapDASChannelNumber2ModuleChannelNumber(int channelNumber)byte MapModuleArrayIndexAndChannelNum2DASChannel(int moduleArrayIdx, int channelNumber)
Bidirectional mappings between DAS-wide channel numbers, module indices, and device IDs.
DateTime? CalibrationDate { get; set; }
DAS calibration date (1970-01-01if invalid/NA).
IDASModule
IDASChannel[] Channels { get; set; }
Array of channels attached to this module (indexed byModuleChannelNumber).IEID[] IDs { get; set; }
EIDs for sensors on each channel.int ModuleArrayIndex { get; set; }
Index of this module in the module array.double RequestedPreTriggerSeconds { get; set; },double RequestedPostTriggerSeconds { get; set; }
Requested pre/post trigger durations (seconds).double PreTriggerSeconds { get; set; },double PostTriggerSeconds { get; set; }
Actual pre/post trigger durations (seconds) after configuration.int NumberOfEvents { get; set; }
Number of events to collect before disarming.int WakeUpMotionTimeout { get; set; }
Seconds of inactivity before entering sleep mode.string FirmwareVersion { get; set; }
Firmware version string.string Description { get; set; }
Module description (e.g., for Slice6 Distributor).ulong? MaxEventStorageSpaceInBytes { get; set; }
Storage space for this module.ulong NumberOfSamples { get; set; }
Total samples captured in last recording session.ulong[] TriggerSampleNumbers { get; set; }
Array of sample numbers where triggers occurred.int GetLevelTriggerT0AdjustmentSamplesAutoApplied()
Returns the auto-applied T0 adjustment (in samples).ulong StartRecordSampleNumber { get; set; }
Sample number where recording started.uint StartRecordTimestampSec,uint TriggerTimestampSec,uint StartRecordTimestampNanoSec,uint TriggerTimestampNanoSec
Timestamps (seconds + nanoseconds) for start and trigger events.bool PTPMasterSync { get; set; }
Whether PTP master synchronization is enabled.- Tilt sensor properties (pre/post)
double TiltSensorAxisX/Y/ZDegreesPre/Post { get; set; }float TemperatureLocation1/2/3/4Pre/Post { get; set; }
uint SampleRateHz { get; set; },uint ActualSampleRateHz { get; set; }
Requested and actual sample rates (Hz).float AAFilterRateHz { get; set; }
Hardware anti-aliasing filter rate.DFConstantsAndEnums.RecordingMode RecordingMode { get; set; }
Current recording mode.DateTime ScheduledStartTime { get; set; },int RecordingInterval { get; set; }
Scheduled start time and recording interval.UDPStreamProfile StreamProfile { get; set; }
UDP streaming profile.- Slice 6 Tilt feature properties
TiltAxes,TargetAxisOne/Two,TargetAngleAxisX/Y/Z,MountOffsetAxisOne/Two,SystemLocation,SystemID,AxisIgnored,LevelTolerance,UseForTiltCalculation,InputVoltage,BatteryVoltage,TiltID,TiltSerialNumber.
int NumberOfConfiguredChannels(),int NumberOfConfiguredTOMChannels()
Returns count of configured channels or TOM channels.bool IsDummyArmed()
Returnstrueif the module is in dummy-armed state.int NumberOfChannels()
Total number of channels on this module.string SerialNumber(),DFConstantsAndEnums.ModuleType ModuleType()
Retrieves module serial number and type.bool IsStreamIn(),IsStreamOut(),IsUart(),IsClock(),IsEmbedded(),IsThermocoupler()
Type-check helpers based onModuleType().- Serialization methods
void WriteXmlCRC32(XmlWriter writer)void WriteXml(XmlWriter writer)void ReadXml(XmlReader reader)XmlSchema GetSchema()ushort GetCRC32()
3. Invariants
- Channel numbering:
IDASChannel.Numberis a 0-based absolute channel index within the DAS (0..29 implied byMapDASChannelNumber2*methods). - Module indexing:
IDASModule.ModuleArrayIndexis 0-based and corresponds to position inIConfigurationData.ModulesandIInfoResult.Modules. - Channel mapping consistency: The mapping functions in
IInfoResultmust be consistent and invertible (e.g.,MapModuleArrayIndexAndChannelNum2DASChannelis the inverse ofMapDASChannelNumber2ModuleArrayIndexandMapDASChannelNumber2ModuleChannelNumber). IsConfigured()semantics: A channel is considered "configured" only if a sensor is connected and/or configuration data exists (set viaConfigurationService.Configure(...)).DASInfoinitialization:IInformation.DASInfomust be set before callingSetDASInfo(...); otherwise, behavior is undefined.NumberOfDownloadChannels()excludes UART/StreamOut: Only channels capable of data download (e.g., analog inputs) are counted.CalibrationDateinvalidity: A value of1970-01-01indicates invalid/NA calibration date (perIInfoResult.CalibrationDatedocumentation).DisplayOrderarrays:DisplayOrder(per-channel) and `DasDisplayOrder