Files

102 lines
7.4 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- DataPRO/IService/Classes/TDAS Service/TDAS Service.cs
- DataPRO/IService/Classes/TDAS Service/Public.cs
- DataPRO/IService/Classes/TDAS Service/TriggerCheck.cs
generated_at: "2026-04-17T15:33:04.937990+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "cace7bc59e68c7cc"
---
# TDAS Service Documentation
## 1. Purpose
The `TDAS<T>` class is a generic data acquisition system (DAS) service implementation that provides communication, configuration, diagnostics, trigger checking, real-time operations, arming, and download functionality for TDAS hardware devices. It serves as an abstraction layer between the application and physical TDAS hardware, supporting both Ethernet and Serial connections through its generic type parameter. The class implements multiple action interfaces to provide a unified API for interacting with various TDAS hardware types (G5, TDAS Pro Rack, SIM, TOM, LabRack) identified by their serial number prefixes.
## 2. Public Interface
### Class Declaration
```csharp
public partial class TDAS<T> : Communication<T>,
IDASCommunication,
IConfigurationActions,
IDiagnosticsActions,
ITriggerCheckActions,
IRealTimeActions,
IArmActions,
IDownloadActions where T : IConnection, new()
```
### Hardware Identification Methods
| Method | Signature | Behavior |
|--------|-----------|----------|
| `GetHardwareType()` | `public HardwareTypes GetHardwareType()` | Returns hardware type based on `SerialNumber` prefix: "5M" → G5 variants, "DR" → TDAS_Pro_Rack, "SM" → SIM, "TOM" → TOM, "LR" → TDAS_LabRack. Defaults to `TDAS_Pro_Rack` for unrecognized prefixes. |
| `IsEthernetDistributor()` | `public bool IsEthernetDistributor()` | Always returns `false`. |
| `IsSlice6Distributor()` | `public bool IsSlice6Distributor()` | Always returns `false`. |
| `IsBattery()` | `public bool IsBattery()` | Always returns `false`. |
| `IsTSRAIR()` | `public bool IsTSRAIR()` | Always returns `false`. |
| `IsSlice6Air()` | `public bool IsSlice6Air()` | Always returns `false`. |
| `IsSlice6AirTc()` | `public bool IsSlice6AirTc()` | Always returns `false`. |
| `IsScheduleEventCountSupported()` | `public bool IsScheduleEventCountSupported()` | Always returns `false`. |
### Configuration Properties & Methods
| Member | Signature | Behavior |
|--------|-----------|----------|
| `ConfigData` | `public IConfigurationData ConfigData { get; set; }` | Holds configuration data for the DAS. |
| `NumberOfConfiguredChannels()` | `public int NumberOfConfiguredChannels()` | Returns `ConfigData.NumberOfConfiguredChannels()` or 0 if `ConfigData` is null. |
| `NumberOfChannels()` | `public int NumberOfChannels()` | Returns `ConfigData.NumberOfChannels()` or 0 if `ConfigData` is null. |
| `ConfigureHasBeenRun` | `public bool ConfigureHasBeenRun { get; set; }` | Tracks whether configuration has been executed. |
### Diagnostics Properties & Methods
| Member | Signature | Behavior |
|--------|-----------|----------|
| `ChannelDiagnostics` | `public IDiagnosticActions[] ChannelDiagnostics { get; set; }` | Array of channel diagnostic actions. |
| `ChannelDiagnosticsResults` | `public IDiagnosticResult[] ChannelDiagnosticsResults { get; set; }` | Array of channel diagnostic results. |
| `SetChannelDiagnosticActions()` | `public void SetChannelDiagnosticActions(IDiagnosticActions[] actions, bool setInDb = true)` | Delegates to `DiagnosticsActions.SetChannelDiagnosticActions()`. |
| `ClearChannelDiagnosticsResults()` | `public void ClearChannelDiagnosticsResults(bool bClearDb = true)` | Delegates to `DiagnosticsResultActions.ClearChannelDiagnosticsResults()`. |
| `SetChannelDiagnosticsResults()` | `public void SetChannelDiagnosticsResults(IDiagnosticResult[] results, bool setInDb)` | Delegates to `DiagnosticsResultActions.SetChannelDiagnosticsResults()`. |
| `DiagnosticsHasBeenRun` | `public bool DiagnosticsHasBeenRun { get; set; }` | Tracks whether diagnostics have been executed. |
### Arm Status Properties & Methods
| Member | Signature | Behavior |
|--------|-----------|----------|
| `DASArmStatus` | `public IArmStatusData DASArmStatus { get; set; }` | Current arm status of the DAS. |
| `AutoArmStatus` | `public DFConstantsAndEnums.CommandStatus AutoArmStatus { get; set; }` | Status of auto-arm operation. |
| `GetIsInArm()` | `public bool GetIsInArm()` | Returns `DASArmStatus.IsArmed` or `false` if `DASArmStatus` is null. |
| `GetIsInRealtime()` | `public bool GetIsInRealtime()` | Returns `DASArmStatus.IsInRealtime` or `false` if `DASArmStatus` is null. |
| `GetIsStreaming()` | `public bool GetIsStreaming()` | Always returns `false`. |
| `SetInArm()` | `public void SetInArm(bool WriteToDb)` | Sets `DASArmStatus.IsArmed = true`. |
| `SetInRealtime()` | `public void SetInRealtime(bool WriteToDb, bool ExitRealtimeIfPossible)` | Sets `DASArmStatus.IsInRealtime = true`. |
| `SetDASArmStatus()` | `public void SetDASArmStatus()` | Overload that persists current `DASArmStatus` to database. |
| `SetDASArmStatus()` | `public void SetDASArmStatus(IArmStatusData status, bool bSetInDb)` | Delegates to `ArmStatus.SetArmStatus()`. |
### Trigger Check Methods (ITriggerCheckActions)
| Method | Signature | Behavior |
|--------|-----------|----------|
| `PreStartTriggerCheck()` | `void ITriggerCheckActions.PreStartTriggerCheck(ServiceCallback callback, object userData)` | Immediately invokes success callback. No hardware interaction. |
| `PostStartTriggerCheck()` | `void ITriggerCheckActions.PostStartTriggerCheck(ServiceCallback callback, object userData)` | Immediately invokes success callback. No hardware interaction. |
| `StartTriggerCheck()` | `void ITriggerCheckActions.StartTriggerCheck(ServiceCallback callback, object userData)` | Asynchronously arms the device using `TestTrigger` or `TestTriggerBroadcast` commands depending on G5 mode. |
| `DoTriggerCheck()` | `void ITriggerCheckActions.DoTriggerCheck(ServiceCallback callback, object userData)` | Asynchronously checks trigger status using `TestAll` command with `PREV` mode. |
| `DoStartCheck()` | `void ITriggerCheckActions.DoStartCheck(ServiceCallback callback, object userData)` | Asynchronously checks if recording has started using `TestAll` command. |
| `DoTriggerCheckSync()` | `void ITriggerCheckActions.DoTriggerCheckSync()` | Throws `NotImplementedException`. |
| `CancelTriggerCheck()` | `void ITriggerCheckActions.CancelTriggerCheck(ServiceCallback callback, object userData)` | Asynchronously cancels trigger check by sending `TestTrigger.SubCommandValues.OFF` to modules. |
### Download Properties & Methods
| Member | Signature | Behavior |
|--------|-----------|----------|
| `WhatToDownload` | `public IDownloadRequest WhatToDownload { get; set; }` | Download request configuration. |
| `EventInfo` | `public IDownloadReport EventInfo { get; set; }` | Event information for download. |
| `EventDownloadedStatus` | `public bool[] EventDownloadedStatus { get; set; }` | Array tracking download status per event. |
| `EventGuids` | `public Guid[] EventGuids { get; set; }` | GUIDs for events. |
| `FaultFlags` | `public ushort[] FaultFlags { get; set; }` | Fault flags for events. |
| `ArmAttempts` | `public byte[] ArmAttempts { get; set; }` | Arm attempt counts. |
| `SetWhatToDownload()` | `public void SetWhatToDownload(IDownloadRequest request, bool bSetInDb = true)` | Delegates to `DownloadRequest.SetWhatToDownload()`. |
| `SetEventInfo()` | `public void SetEventInfo(IDownloadReport eventInfo, bool bSetInDb = true)` | Delegates to `DownloadReport.Set