140 lines
11 KiB
Markdown
140 lines
11 KiB
Markdown
---
|
|
source_files:
|
|
- Common/DTS.Common/Interface/DASFactory/IAutoArmed.cs
|
|
- Common/DTS.Common/Interface/DASFactory/ITMATSStreamingDevice.cs
|
|
- Common/DTS.Common/Interface/DASFactory/ITiltSensorCalAware.cs
|
|
- Common/DTS.Common/Interface/DASFactory/IRangeBandwidthLimited.cs
|
|
- Common/DTS.Common/Interface/DASFactory/IAutoArmStatus.cs
|
|
- Common/DTS.Common/Interface/DASFactory/ITimeSynchronization.cs
|
|
- Common/DTS.Common/Interface/DASFactory/IConnectedEthernetDevice.cs
|
|
- Common/DTS.Common/Interface/DASFactory/IDASReconfigure.cs
|
|
- Common/DTS.Common/Interface/DASFactory/IDASConfigurationArg.cs
|
|
- Common/DTS.Common/Interface/DASFactory/IRealtime.cs
|
|
- Common/DTS.Common/Interface/DASFactory/IUDPQATSEntry.cs
|
|
- Common/DTS.Common/Interface/DASFactory/IDASFactory.cs
|
|
- Common/DTS.Common/Interface/DASFactory/ICommunication.cs
|
|
- Common/DTS.Common/Interface/DASFactory/IDiscoveredDevice.cs
|
|
- Common/DTS.Common/Interface/DASFactory/IAnalogInputDASChannel.cs
|
|
- Common/DTS.Common/Interface/DASFactory/IDASCommunication.cs
|
|
generated_at: "2026-04-17T15:29:07.779002+00:00"
|
|
model: "zai-org/GLM-5-FP8"
|
|
schema_version: 1
|
|
sha256: "45ae757e0cac6506"
|
|
---
|
|
|
|
# DASFactory Interfaces Documentation
|
|
|
|
## 1. Purpose
|
|
|
|
This module defines the core abstraction layer for Data Acquisition System (DAS) hardware communication and management. It provides interfaces for device discovery, configuration, real-time data streaming, diagnostics, and channel-level sensor configuration. The interfaces enable polymorphic treatment of different DAS hardware types (SLICE, TDAS, S6, etc.) while exposing hardware-specific capabilities through optional interface implementations. This abstraction allows higher-level services to interact with diverse hardware through a unified API.
|
|
|
|
---
|
|
|
|
## 2. Public Interface
|
|
|
|
### IDASFactory
|
|
The primary factory interface for DAS device lifecycle management.
|
|
|
|
| Member | Signature | Description |
|
|
|--------|-----------|-------------|
|
|
| `StartMulticastAutoDiscovery` | `void StartMulticastAutoDiscovery()` | Initiates multicast device discovery. |
|
|
| `StopMulticastAutoDiscovery` | `void StopMulticastAutoDiscovery()` | Halts multicast device discovery. |
|
|
| `GetDiscoveredDevices` | `IDiscoveredDevice[] GetDiscoveredDevices()` | Returns array of discovered devices. |
|
|
| `PingAll` | `bool PingAll()` | Pings all connected devices. |
|
|
| `Language` | `string Language { get; set; }` | Language setting. |
|
|
| `TakeOwnership` | `void TakeOwnership()` | Takes ownership of devices. |
|
|
| `AllowSDBCommandPort` | `bool AllowSDBCommandPort { get; set; }` | Controls SDB command port usage. |
|
|
| `S6ConnectNewTimeout` | `double S6ConnectNewTimeout { get; set; }` | Connection timeout for S6 devices. |
|
|
| `SliceDBHostNames` | `string[] SliceDBHostNames { get; set; }` | SLICE DB host names. |
|
|
| `GetConnectedDevices` | `string[] GetConnectedDevices()` | Returns connected device identifiers. |
|
|
| `TDASHostNames` | `string[] TDASHostNames { get; set; }` | TDAS host names. |
|
|
| `TDASSerialPortNames` | `string[] TDASSerialPortNames { get; set; }` | TDAS serial port names. |
|
|
| `TDASSerialRackSerialNumber` | `string TDASSerialRackSerialNumber { get; set; }` | TDAS rack serial number. |
|
|
| `GetDASList` | `List<IDASCommunication> GetDASList()` | Returns list of all connected DAS hardware. |
|
|
| `GetSortedDASList` | `List<IDASCommunication> GetSortedDASList()` | Returns sorted list of connected DAS hardware. |
|
|
| `GetDevList` | `List<ICommunication> GetDevList()` | Returns ICommunication objects for all connected hardware. |
|
|
| `DetachAllDevices` | `void DetachAllDevices(bool detachUSB = false)` | Makes factory forget all devices. |
|
|
| `Refresh` | `void Refresh(ActionCompleteDelegate action)` | Initiates refresh; calls action when complete. |
|
|
| `MultiCastAutoDiscoveryDefaultTimeoutMS` | `int MultiCastAutoDiscoveryDefaultTimeoutMS { get; set; }` | Timeout for multicast discovery receive. |
|
|
| `AutoDiscoverMulticast` | `SortableBindingList<IDiscoveredDevice> AutoDiscoverMulticast(CancellationToken cancelToken, bool discoverParents = true)` | Performs multicast auto-discovery. |
|
|
|
|
### IDASCommunication
|
|
The primary interface for interacting with a DAS unit. Extends `IConfiguration`, `IDiagnos`, `ITriggerCheck`, `IRealTime`, `IArmStatus`, `IDownload`, `IInformation`, `IAutoArmStatus`, `IAutoArmed`, `IRangeBandwidthLimited`, `ITimeSynchronization`, `IComparable<IDASCommunication>`, and `IDisposable`.
|
|
|
|
| Member | Signature | Description |
|
|
|--------|-----------|-------------|
|
|
| `ExcitationStatus` | `ExcitationStatus ExcitationStatus { get; set; }` | Excitation status for DAS. |
|
|
| `ReadFirstUseDate` | `void ReadFirstUseDate()` | Populates `IsFirstUseDateSupported` and `FirstUseDate`. |
|
|
| `FirstUseDate` | `DateTime? FirstUseDate { get; set; }` | Date of first use; null if not used since calibration. |
|
|
| `IsFirstUseDateSupported` | `bool IsFirstUseDateSupported { get; set; }` | Whether hardware supports first use date. |
|
|
| `SetIsStreamingSupported` | `void SetIsStreamingSupported(bool supported = false)` | Sets streaming support flag. |
|
|
| `IsStreamingSupported` | `bool IsStreamingSupported { get; set; }` | Whether streaming is supported. |
|
|
| `ConnectionCheck` | `bool ConnectionCheck()` | Quick connection check; returns true if unit is communicable. |
|
|
| `GetHardwareType` | `HardwareTypes GetHardwareType()` | Returns the hardware type. |
|
|
| `GetStackChannelConfigTypes` | `int[] GetStackChannelConfigTypes()` | Returns channel configuration types. |
|
|
| `RecordId` | `int RecordId { get; set; }` | Record identifier. |
|
|
| `GetNominalRanges` | `double[] GetNominalRanges(SensorConstants.BridgeType bridge)` | Returns nominal ranges for given bridge type. |
|
|
| `InputLowVoltage` | `float InputLowVoltage { get; set; }` | Low input voltage threshold. |
|
|
| `InputMediumVoltage` | `float InputMediumVoltage { get; set; }` | Medium input voltage threshold. |
|
|
| `InputHighVoltage` | `float InputHighVoltage { get; set; }` | High input voltage threshold. |
|
|
| `BatteryLowVoltage` | `float BatteryLowVoltage { get; set; }` | Low battery voltage threshold. |
|
|
| `BatteryMediumVoltage` | `float BatteryMediumVoltage { get; set; }` | Medium battery voltage threshold. |
|
|
| `BatteryHighVoltage` | `float BatteryHighVoltage { get; set; }` | High battery voltage threshold. |
|
|
| `MinimumValidInputVoltage` | `double MinimumValidInputVoltage { get; set; }` | Minimum valid input voltage. |
|
|
| `MaximumValidInputVoltage` | `double MaximumValidInputVoltage { get; set; }` | Maximum valid input voltage. |
|
|
| `MinimumValidBatteryVoltage` | `double MinimumValidBatteryVoltage { get; set; }` | Minimum valid battery voltage. |
|
|
| `MaximumValidBatteryVoltage` | `double MaximumValidBatteryVoltage { get; set; }` | Maximum valid battery voltage. |
|
|
| `SerialNumber` | `string SerialNumber { get; set; }` | Serial number of base unit. |
|
|
| `FirmwareVersion` | `string FirmwareVersion { get; }` | Installed firmware version. |
|
|
| `DiagnosticsHasBeenRun` | `bool DiagnosticsHasBeenRun { get; set; }` | Flag indicating if arm attributes should be defaulted. |
|
|
| `ConfigureHasBeenRun` | `bool ConfigureHasBeenRun { get; set; }` | Flag indicating if configure has been run. |
|
|
| `NumberOfConfiguredChannels` | `int NumberOfConfiguredChannels()` | Count of configured channels. |
|
|
| `NumberOfChannels` | `int NumberOfChannels()` | Total channel count. |
|
|
| `MaxMemory` | `long MaxMemory()` | Maximum memory for DAS. |
|
|
| `MaxModules` | `int MaxModules { get; set; }` | Maximum module count. |
|
|
| `MinSampleRate` | `uint MinSampleRate()` | Minimum sample rate. |
|
|
| `MaxSampleRate` | `uint MaxSampleRate(int numberOfConfiguredChannels)` | Maximum sample rate given channel count. |
|
|
| `MaxAAFilterRate` | `uint MaxAAFilterRate()` | Maximum anti-alias filter rate. |
|
|
| `SupportsAutoArm` | `bool SupportsAutoArm()` | Whether auto-arm is supported. |
|
|
| `SupportsMultipleConfigurations` | `bool SupportsMultipleConfigurations()` | Whether multiple configurations supported. |
|
|
| `SupportsLevelTrigger` | `bool SupportsLevelTrigger()` | Whether level trigger supported. |
|
|
| `SupportsRealtime` | `bool SupportsRealtime()` | Whether realtime streaming supported. |
|
|
| `SupportsMultipleEvents` | `bool SupportsMultipleEvents()` | Whether multiple events supported. |
|
|
| `SupportsTriggerInversion` | `bool SupportsTriggerInversion()` | Whether trigger completion inversion supported. |
|
|
| `InvertTrigger` | `bool InvertTrigger { set; }` | Sets trigger inversion. |
|
|
| `SupportsStartInversion` | `bool SupportsStartInversion()` | Whether start completion inversion supported. |
|
|
| `InvertStart` | `bool InvertStart { get; set; }` | Start inversion setting. |
|
|
| `IgnoreShortedStart` | `bool IgnoreShortedStart { get; set; }` | Ignore shorted start line. |
|
|
| `IgnoreShortedTrigger` | `bool IgnoreShortedTrigger { get; set; }` | Ignore shorted trigger line. |
|
|
| `SupportsHardwareInputCheck` | `bool SupportsHardwareInputCheck()` | Whether hardware supports checking input status. |
|
|
| `SupportsMultipleSampleRealtime` | `bool SupportsMultipleSampleRealtime()` | Whether multiple sample realtime supported. |
|
|
| `ControlsDAQ` | `bool ControlsDAQ()` | Whether DAS base controls DAQ for modules. |
|
|
| `CheckAAF` | `bool CheckAAF(float rate)` | Checks if new AAF rate is acceptable. |
|
|
| `RequireDiagnosticRateMatchSampleRate` | `bool RequireDiagnosticRateMatchSampleRate()` | Whether diagnostic rate must match sample rate. |
|
|
| `GetPhaseShiftSamples` | `ulong GetPhaseShiftSamples(uint ModuleIndex, double ActualSampleRate, uint HardwareAAF, ulong originalT0)` | Returns phase delay in samples. |
|
|
| `IsEthernetDistributor` | `bool IsEthernetDistributor()` | Whether device is an ethernet distributor. |
|
|
| `GetCanCheckArmStatus` | `bool GetCanCheckArmStatus()` | Whether unit can read arm status. |
|
|
| `IsSlice6Distributor` | `bool IsSlice6Distributor()` | Whether device is SLICE6DB. |
|
|
| `IsBattery` | `bool IsBattery()` | Whether device is battery-powered. |
|
|
| `IsTSRAIR` | `bool IsTSRAIR()` | Whether device is TSR AIR. |
|
|
| `IsSlice6Air` | `bool IsSlice6Air()` | Whether device is SLICE6 AIR. |
|
|
| `IsSlice6AirTc` | `bool IsSlice6AirTc()` | Whether device is SLICE6 AIR TC. |
|
|
| `IsScheduleEventCountSupported` | `bool IsScheduleEventCountSupported()` | Whether scheduled event count supported. |
|
|
| `MACAddress` | `string MACAddress { get; set; }` | MAC address. |
|
|
| `DownstreamMACAddresses` | `string[] DownstreamMACAddresses { get; set; }` | Downstream MAC addresses. |
|
|
| `SupportsIndividualChannelRealtimeStreaming` | `bool SupportsIndividualChannelRealtimeStreaming { get; }` | Whether selectable channel realtime streaming supported. |
|
|
|
|
### ICommunication
|
|
Interface for low-level hardware communication. Extends `IComparable<ICommunication>` and `IComparable<string>`.
|
|
|
|
| Member | Signature | Description |
|
|
|--------|-----------|-------------|
|
|
| `ErrorInSetup` | `bool ErrorInSetup { get; set; }` | Indicates error during setup. |
|
|
| `Transport` | `IConnection Transport { get; set; }` | Transport connection. |
|
|
| `SetupReader` | `void SetupReader()` | Sets up receive buffer and callback. |
|
|
| `ReceiveBufferSize` | `int ReceiveBufferSize { get; set; }` | Receive buffer size. |
|
|
| `SerialNumber` | `string SerialNumber { get; set; }` | Device serial number. |
|
|
| `FirmwareVersion` | `string FirmwareVersion { get; set; }` | Firmware version. |
|
|
| `ProtocolVersion` | `byte ProtocolVersion { get; set; }` | Protocol version. |
|
|
| `DASInfo` | `ICommunication_DASInfo DASInfo { get; set; }` | DAS information. |
|
|
| `MinimumProtocols` | `Dictionary<DFConstantsAndEnums.ProtocolLimitedCommands, byte> MinimumProtocols { get; set |