242 lines
16 KiB
Markdown
242 lines
16 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- DataPRO/IService/Interfaces/IAutoArmStatus.cs
|
||
|
|
- DataPRO/IService/Interfaces/ITimeActions.cs
|
||
|
|
- DataPRO/IService/Interfaces/IService.cs
|
||
|
|
- DataPRO/IService/Interfaces/IRealtime.cs
|
||
|
|
- DataPRO/IService/Interfaces/IDiagnos.cs
|
||
|
|
- DataPRO/IService/Interfaces/IDASCommunicationComparer.cs
|
||
|
|
- DataPRO/IService/Interfaces/IDASCommunicationEqComparer.cs
|
||
|
|
- DataPRO/IService/Interfaces/IUARTDownloadActions.cs
|
||
|
|
- DataPRO/IService/Interfaces/ITriggerCheckActions.cs
|
||
|
|
- DataPRO/IService/Interfaces/IRealTimeActions.cs
|
||
|
|
- DataPRO/IService/Interfaces/IDownloadActions.cs
|
||
|
|
- DataPRO/IService/Interfaces/IClockSyncActions.cs
|
||
|
|
- DataPRO/IService/Interfaces/IDiagnosticsActions.cs
|
||
|
|
- DataPRO/IService/Interfaces/IConfigurationActions.cs
|
||
|
|
- DataPRO/IService/Interfaces/IArmActions.cs
|
||
|
|
- DataPRO/IService/Interfaces/IDASCommunication.cs
|
||
|
|
generated_at: "2026-04-17T15:29:43.501644+00:00"
|
||
|
|
model: "zai-org/GLM-5-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "ddda8c0520405fd5"
|
||
|
|
---
|
||
|
|
|
||
|
|
# DTS.DASLib.Service Interfaces Documentation
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module defines the core service interfaces for communicating with Data Acquisition System (DAS) hardware units. It provides abstractions for configuration, diagnostics, arming/disarming, real-time data streaming, download operations, trigger checking, clock synchronization, and time actions. The primary interface `IDASCommunication` serves as the central contract representing a physical DAS unit, aggregating multiple capability interfaces. These interfaces enable a service-oriented architecture where operations are performed asynchronously via callbacks.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
### Delegates
|
||
|
|
|
||
|
|
#### `ServiceCallback`
|
||
|
|
**Signature:** `delegate void ServiceCallback(ServiceCallbackData data)`
|
||
|
|
- **Description:** The delegate type used for asynchronous service callbacks. All service methods accept this callback to return results.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Interfaces
|
||
|
|
|
||
|
|
#### `IDASCommunication`
|
||
|
|
**Namespace:** `DTS.DASLib.Service`
|
||
|
|
|
||
|
|
The primary interface representing a DAS hardware unit. Inherits from: `IConfiguration`, `IDiagnos`, `ITriggerCheck`, `IRealTime`, `IArmStatus`, `IDownload`, `IInformation`, `IComparable<IDASCommunication>`, `IDisposable`, `IAutoArmStatus`, `IAutoArmed`, `IRangeBandwidthLimited`, `ITimeSynchronization`.
|
||
|
|
|
||
|
|
**Properties:**
|
||
|
|
| Property | Type | Description |
|
||
|
|
|----------|------|-------------|
|
||
|
|
| `RecordId` | `int` | Record identifier. |
|
||
|
|
| `SerialNumber` | `string` | Serial number of the base unit. |
|
||
|
|
| `FirmwareVersion` | `string` | Currently installed firmware version. |
|
||
|
|
| `InputLowVoltage`, `InputMediumVoltage`, `InputHighVoltage` | `float` | Input voltage thresholds. |
|
||
|
|
| `BatteryLowVoltage`, `BatteryMediumVoltage`, `BatteryHighVoltage` | `float` | Battery voltage thresholds. |
|
||
|
|
| `MinimumValidInputVoltage`, `MaximumValidInputVoltage` | `double` | Valid input voltage range. |
|
||
|
|
| `MinimumValidBatteryVoltage`, `MaximumValidBatteryVoltage` | `double` | Valid battery voltage range. |
|
||
|
|
| `DiagnosticsHasBeenRun` | `bool` | Indicates if diagnostics have been run; also signals if arm attributes should be defaulted. |
|
||
|
|
| `ConfigureHasBeenRun` | `bool` | Indicates if configuration has been applied. |
|
||
|
|
| `MaxModules` | `int` | Maximum number of modules supported. |
|
||
|
|
| `InvertTrigger` | `bool` | Sets trigger inversion (write-only). |
|
||
|
|
| `InvertStart` | `bool` | Gets/sets start line inversion. |
|
||
|
|
| `IgnoreShortedStart`, `IgnoreShortedTrigger` | `bool` | Flags for ignoring shorted lines. |
|
||
|
|
| `MACAddress` | `string` | Device MAC address. |
|
||
|
|
| `DownstreamMACAddresses` | `string[]` | MAC addresses of downstream devices. |
|
||
|
|
| `SupportsIndividualChannelRealtimeStreaming` | `bool` | Indicates support for selectable channel realtime streaming. |
|
||
|
|
| `AutoArmUDPSetting` | `string` | UDP settings for auto arm status broadcast. |
|
||
|
|
|
||
|
|
**Methods:**
|
||
|
|
| Method | Return Type | Description |
|
||
|
|
|--------|-------------|-------------|
|
||
|
|
| `GetNominalRanges(SensorConstants.BridgeType bridge)` | `double[]` | Returns nominal ranges for given bridge type. |
|
||
|
|
| `NumberOfConfiguredChannels()` | `int` | Count of configured channels. |
|
||
|
|
| `NumberOfChannels()` | `int` | Total channel count. |
|
||
|
|
| `MaxMemory()` | `long` | Maximum memory capacity. |
|
||
|
|
| `MinSampleRate()` | `uint` | Minimum sample rate. |
|
||
|
|
| `MaxSampleRate()` | `uint` | Maximum sample rate. |
|
||
|
|
| `SupportsAutoArm()` | `bool` | Auto-arm capability check. |
|
||
|
|
| `SupportsLevelTrigger()` | `bool` | Level trigger capability check. |
|
||
|
|
| `SupportsRealtime()` | `bool` | Realtime streaming capability check. |
|
||
|
|
| `SupportsMultipleEvents()` | `bool` | Multiple event support check. |
|
||
|
|
| `SupportsTriggerInversion()` | `bool` | Trigger inversion capability check. |
|
||
|
|
| `SupportsStartInversion()` | `bool` | Start inversion capability check. |
|
||
|
|
| `SupportsHardwareInputCheck()` | `bool` | Hardware input status check capability. |
|
||
|
|
| `SupportsMultipleSampleRealtime()` | `bool` | Multiple sample realtime capability check. |
|
||
|
|
| `ControlsDAQ()` | `bool` | Returns true if base unit controls DAQ for modules. |
|
||
|
|
| `CheckAAF(float rate)` | `bool` | Validates new AAF rate against configured rate. |
|
||
|
|
| `RequireDiagnosticRateMatchSampleRate()` | `bool` | Checks if diagnostic rate must match sample rate. |
|
||
|
|
| `GetPhaseShiftSamples(uint ModuleIndex, double ActualSampleRate, uint HardwareAAF, ulong originalT0)` | `ulong` | Returns phase delay in samples. |
|
||
|
|
| `IsEthernetDistributor()` | `bool` | Returns true for ethernet distributor devices (SLICEDb, SLICE ECM, SLICE6DB). |
|
||
|
|
| `IsSlice6Distributor()` | `bool` | Returns true for SLICE6DB devices. |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
#### `IConfigurationActions`
|
||
|
|
**Namespace:** `DTS.DASLib.Service`
|
||
|
|
|
||
|
|
**Methods:**
|
||
|
|
| Method | Description |
|
||
|
|
|--------|-------------|
|
||
|
|
| `AutoDetect(bool bQueryConfiguration, ServiceCallback callback, object userData)` | Sets channels to auto-detect configuration and queries sensor types. |
|
||
|
|
| `VerifyConfig(bool DoStrictCheck)` / `VerifyConfig(bool DoStrictCheck, ErrorCallback FailedChallengeFunc)` | Validates ConfigData property. |
|
||
|
|
| `SetFirstUseDate(DateTime firstUseDate, ServiceCallback callback, object userData)` | Sets user attribute for first use date. |
|
||
|
|
| `StoreTestSetupXML(ServiceCallback callback, object userData, string testSetupXML)` | Stores test setup XML. |
|
||
|
|
| `ResetHardwareLines(ServiceCallback callback, object userData)` | Resets trigger/start lines. |
|
||
|
|
| `CheckAAFilterRate(ServiceCallback callback, object userData)` | Validates AA filter rate. |
|
||
|
|
| `QueryTestSetup(ServiceCallback callback, object userData)` | Queries test setup. |
|
||
|
|
| `Configure(ServiceCallback callback, object userData, bool bEventConfig, bool DummyConfig, double[] MaxAAF, bool configureDigitalOutputs, uint crc, bool turnOffAAFRealtime, IStreamingFilterProfile dspFilterType, bool discardDiagnostics, ...)` | Applies ConfigData to DAS hardware. |
|
||
|
|
| `ApplyLevelTriggers(ServiceCallback callback, object userData)` | Applies level triggers only. |
|
||
|
|
| `QueryConfiguration(ServiceCallback callback, object userData, uint crc, string strConfig, bool bReadIds, bool bDeviceScaleFactors, bool sourceDASStorageList)` | Retrieves configuration from DAS. |
|
||
|
|
| `UpdateConfigurationFromFile(ServiceCallback callback, object userData, string filePath)` | Updates configuration from file. |
|
||
|
|
| `UpdateIDs(ServiceCallback callback, object userData)` | Retrieves and stores EIDs. |
|
||
|
|
| `UpdateId(ServiceCallback callback, object userData, DASModule module, DASChannel channel)` | Updates single ID. |
|
||
|
|
| `CheckSafetyState(bool bArmed, ServiceCallback callback, object userData)` | Checks safety state. |
|
||
|
|
| `Reboot(ServiceCallback callback, object userData)` | Reboots the device. |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
#### `IDiagnosticsActions`
|
||
|
|
**Namespace:** `DTS.DASLib.Service`
|
||
|
|
|
||
|
|
**Methods:**
|
||
|
|
| Method | Description |
|
||
|
|
|--------|-------------|
|
||
|
|
| `ClearTriggerOut(ServiceCallback callback, object userData)` | Clears trigger out line via SetSwitchImmediate. |
|
||
|
|
| `ClearLatches(ServiceCallback callback, object userData)` | Clears latched FPGA via QATS call. |
|
||
|
|
| `PerformVoltageCheck(ServiceCallback callback, object userData)` | Performs voltage check. |
|
||
|
|
| `PerformVoltageCheckTAOnly(ServiceCallback callback, object userData)` | Voltage check for TA only. |
|
||
|
|
| `PerformArmChecks(ServiceCallback callback, object userData)` | Performs arm checks. |
|
||
|
|
| `SaveTiltSensorDataPre(ServiceCallback callback, object userData)` | Saves tilt sensor data. |
|
||
|
|
| `SaveTemperaturesPre(ServiceCallback callback, object userData)` | Saves temperatures. |
|
||
|
|
| `PrepareForBridgeResistanceMeasurement(UInt32 DiagnosticsSampleRateHz, float DiagnosticsAAFilterFrequencyHz, ServiceCallback callback, object userData)` | Prepares for bridge resistance measurement; required if units were in low power mode. |
|
||
|
|
| `PrepareForDiagnostics(UInt32 DiagnosticsSampleRateHz, float DiagnosticsAAFilterFrequencyHz, PrePostResults WhichResult, ServiceCallback callback, object userData)` | Prepares for diagnostics. |
|
||
|
|
| `SetStatusIndicator(DiagnosticsStatusIndicatorState state, ServiceCallback callback, object userData)` | Sets status indicator. |
|
||
|
|
| `DiagnosAndGetResults(int EventNumber, PrePostResults WhichResult, ServiceCallback callback, object userData)` | Performs diagnostics and stores results. |
|
||
|
|
| `GetEventDiagnosticsResults(int EventNumber, PrePostResults WhichResult, ServiceCallback callback, object userData)` | Retrieves pre/post event diagnostic results. |
|
||
|
|
| `ClearDASTriggerLine(ServiceCallback callback, object userData)` | Clears trigger lines for any DAS. |
|
||
|
|
| `SquibFireCheckArm(double delay, double duration, ServiceCallback callback, object userData)` | Squib fire check arm. |
|
||
|
|
| `TriggerCheckTrigger(ServiceCallback callback, object userData)` | Trigger check trigger. |
|
||
|
|
| `TriggerCheckDownload(double delay, double duration, float diagnosticsAAFilterFrequencyHz, uint diagnosticsSampleRateHz, ServiceCallback callback, object userData)` | Trigger check download. |
|
||
|
|
| `GetBridgeMeasurement(ServiceCallback callback, object userData)` | Gets bridge measurement. |
|
||
|
|
| `MeasureTransferSpeed(ServiceCallback callback, object userData)` | Measures transfer speed. |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
#### `IDownloadActions` (internal)
|
||
|
|
**Namespace:** `DTS.DASLib.Service`
|
||
|
|
|
||
|
|
**Methods:**
|
||
|
|
| Method | Description |
|
||
|
|
|--------|-------------|
|
||
|
|
| `Download(ServiceCallback callback, object userData)` | Downloads data specified in WhatToDownload property. |
|
||
|
|
| `Cancel()` | Cancels current operation. |
|
||
|
|
| `ForceCancel()` | Cancels with smaller clear cancel time. |
|
||
|
|
| `ClearCancel()` | Clears cancel flag. |
|
||
|
|
| `QueryDownload(ServiceCallback callback, object userData, int eventIndex, TDASServiceSetupInfo setupInfo)` | Retrieves info about available events. |
|
||
|
|
| `QueryDownloadedStatus(ServiceCallback callback, object userData)` | Checks if events have been downloaded. |
|
||
|
|
| `SetTriggerSampleNumbers(ServiceCallback callback, object userData)` | Updates recorded trigger sample numbers in HW. |
|
||
|
|
| `SetDownloaded(ServiceCallback callback, object userData)` | Sets event status to downloaded (when no data to download). |
|
||
|
|
| `SetEventInfo(int eventIndex, string id, Guid guid, ulong totalSamples, ulong[] triggerSamples, ulong startRecordSample, UInt32 eventHasDownloaded, ServiceCallback callback, object userData)` | Updates event with new information. |
|
||
|
|
| `CorrectT0s(ServiceCallback callback, object userData)` | Corrects T0 and total samples recorded; searches ADC for rails and peaks/troughs. |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
#### `IArmActions` (internal)
|
||
|
|
**Namespace:** `DTS.DASLib.Service`
|
||
|
|
|
||
|
|
**Methods:**
|
||
|
|
| Method | Description |
|
||
|
|
|--------|-------------|
|
||
|
|
| `TurnOffT0Lights(ServiceCallback callback, object userData)` | Turns off T0 lights. |
|
||
|
|
| `BeginBackgroundFlashErase(ServiceCallback callback, object userData)` | Initiates background flash erase (returns immediately). |
|
||
|
|
| `BeginFlashErase(ServiceCallback callback, object userData, bool DummyArm)` | Starts asynchronous flash erase. |
|
||
|
|
| `QueryFlashEraseStatus(ServiceCallback callback, object userData)` | Queries flash erase progress and errors. |
|
||
|
|
| `ReadyForArming(ServiceCallback callback, object userData, Guid eventGuid, int armNowTimeout, bool testingMode, int maxNumberEvents, bool DummyArm, bool SysMode)` | Prepares for arming. |
|
||
|
|
| `ArmNow(ServiceCallback callback, object userData, Guid eventGuid, int armNowTimeout, bool testingMode, int maxNumberEvents, bool SysMode)` | Arms a single DAS immediately. |
|
||
|
|
| `PrepareForArmNow(...)` | Prepares for immediate arm. |
|
||
|
|
| `PreparedArmNow(...)` | Executes prepared arm. |
|
||
|
|
| `ReArm(ServiceCallback callback, object userData, bool autoArm, bool arm, bool repeatEnable)` | Re-arms all units with optional flags. |
|
||
|
|
| `AutoArmNow(ServiceCallback callback, object userData, Guid eventGuid, int armNowTimeout, bool testingMode, UInt32 diagnosticsDelayMs, int MaxEventCount, bool repeatEnable, bool preserveDiagnostics)` | Auto-arms a single DAS. |
|
||
|
|
| `EnableFaultChecking(ServiceCallback callback, object userData)` | Enables fault checking for chained DAS. |
|
||
|
|
| `CheckAlreadyLevelTriggered(ServiceCallback callback, object userData)` | Checks if channels are level triggered. |
|
||
|
|
| `Disarm(ServiceCallback callback, object userData)` | Disarms the DAS. |
|
||
|
|
| `DisAutoArm(ServiceCallback callback, object userData)` | Disables auto-arm. |
|
||
|
|
| `GetArmStatus(ServiceCallback callback, object userData, uint inputVoltageCutoff, int maxTimeout)` | Retrieves current arm status. |
|
||
|
|
| `GetAutoArmStatus(ServiceCallback callback, object userData)` | Retrieves current auto-arm status. |
|
||
|
|
| `EnterLowPowerMode(ServiceCallback callback, object userData)` | Sets DAS to low power mode. |
|
||
|
|
| `StartRecord(ServiceCallback callback, object userData)` | Tells DAS to start recording. |
|
||
|
|
| `Trigger(ServiceCallback callback, object userData)` | Sends trigger signal to hardware. |
|
||
|
|
| `GetExtendedFaultIds(ServiceCallback callback, object userData)` | Queries extended fault IDs from hardware. |
|
||
|
|
|
||
|
|
**Properties:**
|
||
|
|
| Property | Type | Description |
|
||
|
|
|----------|------|-------------|
|
||
|
|
| `SupportsBackgroundFlashErase` | `bool` | Whether unit supports flash erase. |
|
||
|
|
| `BackgroundFlashEraseStarted` | `bool` | Whether flash erase has started. |
|
||
|
|
| `BackgroundFlashEraseStartTime` | `DateTime?` | Start time of background flash erase. |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
#### `IRealTimeActions` (internal)
|
||
|
|
**Namespace:** `DTS.DASLib.Service`
|
||
|
|
|
||
|
|
**Methods:**
|
||
|
|
| Method | Description |
|
||
|
|
|--------|-------------|
|
||
|
|
| `RealTime(int samplesPerSec, int msBetweenSamples, ServiceCallback callback, object userData, bool allowMultipleSampleRealtime, int moduleIndex, ManualResetEvent stopEvent, byte[] channels, double aaf, int minCallbackUpdateTimeMs, bool UseUDPStreaming, string HostIPAddress)` | Starts realtime data streaming at specified rate. |
|
||
|
|
| `RealTimePolling(ServiceCallback callback, object userData, ManualResetEvent stopEvent, byte[] channels)` | Realtime via active polling for sample averages. |
|
||
|
|
| `ExitRealTimeMode(ServiceCallback callback, object userData)` | Stops realtime data streaming. |
|
||
|
|
| `RealTimeTiltPolling(ServiceCallback callback, object userData, ManualResetEvent stopEvent)` | Realtime tilt data polling. |
|
||
|
|
| `SetUDPStreamProfile(ServiceCallback callback, object userData, UDPStreamProfile streamProfile, string udpAddress, ushort timeChannelId, ushort dataChannelId, uint[] tmnsConfig, ushort irigTimeDataPacketIntervalMs)` | Configures UDP streaming profile. |
|
||
|
|
| `GetUDPStreamProfile(ServiceCallback callback, object userData)` | Retrieves UDP stream profile. |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
#### `ITriggerCheckActions` (internal)
|
||
|
|
**Namespace:** `DTS.DASLib.Service`
|
||
|
|
|
||
|
|
**Methods:**
|
||
|
|
| Method | Description |
|
||
|
|
|--------|-------------|
|
||
|
|
| `PreStartTriggerCheck(ServiceCallback callback, object userData)` | Preparation before StartTriggerCheck; called explicitly by StartTriggerCheck service. |
|
||
|
|
| `PostStartTriggerCheck(ServiceCallback callback, object userData)` | Actions after StartTriggerCheck; called explicitly by StartTriggerCheck service. |
|
||
|
|
| `StartTriggerCheck(ServiceCallback callback, object userData)` | Changes DAS mode to latch signal lines. |
|
||
|
|
| `DoTriggerCheck(ServiceCallback callback, object userData)` | Performs trigger check (async); stores result in TriggerResult property. |
|
||
|
|
| `DoTriggerCheckSync()` | Synchronous version of DoTriggerCheck. |
|
||
|
|
| `DoStartCheck(ServiceCallback callback, object userData)` | Performs start check; stores result in StartResult property. |
|
||
|
|
| `CancelTriggerCheck(ServiceCallback callback, object userData)` | Sets latching mechanism back to normal. |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
#### `IClockSyncActions`
|
||
|
|
**Namespace:** `DTS.DASLib.Service.Interfaces`
|
||
|
|
|
||
|
|
**Methods:**
|
||
|
|
| Method | Description |
|
||
|
|
|--------|-------------|
|
||
|
|
| `GetClockSyncStatus(ServiceCallback callback, object userData)` | Retrieves clock source and sync status. Response includes input/output sync sources, sync status bits, arm state, and PTP timestamps. |
|
||
|
|
| `SetClockSyncConfig(ServiceCallback callback, object userData, ClockSyncProfile profile)` | Sets input/output clock configuration. Supports PTP, IRIG-B122, GPS, and 1PPS inputs. |
|
||
|
|
| `GetPTP
|