Files

117 lines
8.2 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.Common.DataModel/Classes/TSRAIRGo/TSRAIRGoStatus.cs
generated_at: "2026-04-16T03:32:34.714926+00:00"
model: "Qwen/Qwen3-Coder-Next-FP8"
schema_version: 1
sha256: "7a39c7d31659462f"
---
# TSRAIRGo
## Documentation Page: `TSRAIRGoStatus` Class
---
### 1. **Purpose**
The `TSRAIRGoStatus` class defines a comprehensive enumeration of status states for the TSRAIRGo hardware discovery, configuration, arming, and streaming lifecycle within the DTS data model. It serves as a canonical source of status type identifiers used across the system to represent the current state of a TSRAIRGo device or subsystem (e.g., during auto-detection, connection, hardware validation, arming, recording, streaming, and download operations). The enum values are annotated with `Description` attributes referencing localized string keys, indicating this status is intended for UI display and logging purposes.
---
### 2. **Public Interface**
#### `enum TSRAIRGoStatus.StatusTypes`
A public nested enum defined inside `TSRAIRGoStatus`, decorated with `[TypeConverter(typeof(EnumDescriptionTypeConverterShared))]`. Each member represents a discrete status state.
| Member | Description Key (from `[Description]`) | Brief Behavior |
|--------|----------------------------------------|----------------|
| `UNKNOWN` | `"Table_NA"` | Initial or indeterminate state. |
| `PING_FAILED` | `"HardwareDiscoveryControl_PingFailed"` | Ping attempt to device failed. |
| `PINGING` | `"AutoDetectDASControl_Pinging"` | Actively pinging device. |
| `PING_SUCCESS` | `"AutoDetectDASControl_Ping_Good"` | Ping succeeded; device reachable. |
| `CONNECT_FAILED` | `"HardwareDiscoveryControl_FailedToConnect"` | Connection attempt failed. |
| `CONNECTING` | `"AutoDetectDASControl_Connecting"` | Establishing connection. |
| `QUERY_FAILED` | `"AutoDetectDASControl_QueryFailed"` | Query to device failed. |
| `QUERY_TIMEDOUT` | `"HardwareDiscoveryControl_QueryTimedOut"` | Query timed out. |
| `DONE` | `"AutoDetectDASControl_Done"` | Auto-detection complete. |
| `QUERYING` | `"AutoDetectDASControl_Querying"` | Querying device for information. |
| `UPDATED` | `"AutoDetectDASControl_Updated"` | Device information updated. |
| `ADDED` | `"AutoDetectDASControl_Added"` | Device added to system. |
| `ONLINE` | `"HardwareDiscoveryControl_Online"` | Device is online. |
| `CONNECTED` | `"HardwareDiscoveryControl_Connected"` | Device is connected. |
| `UNEXPECTED_MAX_MEMORY` | `"CheckHardware_UnexpectedMaxMemory"` | Hardware memory exceeds expected value. |
| `UNEXPECTED_FIRMWARE_VERSION` | `"CheckHardware_FirmwareMismatch"` | Firmware version mismatch detected. |
| `PASSED` | `"CheckHardwareStatus_Passed"` | Hardware check passed. |
| `EXPIRED_CAL_DATE` | `"CheckHardware_CalDateOverdue"` | Calibration date is overdue. |
| `CHANNEL_COUNT_MISMATCH` | `"CheckHardware_ChannelCountMismatch"` | Channel count mismatch. |
| `MISSING_MODULES` | `"Table_NA"` | Required hardware modules missing. |
| `CANCELED` | *(none)* | Operation canceled by user/system. |
| `NO_MEMORY` | `"CheckHardware_NoMemory"` | Insufficient memory available. |
| `ARMED` | `"ArmSystem_Armed"` | System armed and ready. |
| `AUTOARMED` | `"AutoArmed"` | System auto-armed. |
| `REALTIME` | `"Admin_SystemSettings_Page_Realtime"` | System in real-time mode. |
| `READYTOSTREAM` | `"ReadyToStream"` | System ready to begin streaming. |
| `STREAMING` | `"ArmSystem_CurrentlyStreaming"` | Data streaming is active. |
| `LOST_DOCK` | `"LostDock"` | Dock connection lost. |
| `REBOOTING` | `"Status_Rebooting"` | Device is rebooting. |
| `SETTING_CLOCK` | `"CheckHardwareStatus_SettingClockSources"` | Clock sources are being configured. |
| `UNEXPECTED_FIRSTUSE_DATE` | `"CheckHardware_UnexpectedFirstUseDate"` | First-use date unexpected (e.g., in future/past). |
| `INVALID_RECORDING_MODE` | `"InvalidRecordingMode"` | Recording mode configuration invalid. |
| `INVALID_STREAMING_MODE` | `"InvalidStreamMode"` | Streaming mode configuration invalid. |
| `STREAMING_NOT_AVAILABLE` | `"StreamingNotAvailable"` | Streaming functionality unavailable. |
| `ARMING` | *(none)* | Arming process in progress. |
| `DISARMING` | *(none)* | Disarming process in progress. |
| `DISARMED` | `"ArmSystem_Disarmed"` | System disarmed. |
| `ARM_FAILED` | `"ArmSystem_ArmFailed"` | Arming operation failed. |
| `UPDATING_DAS_CONFIG` | `"ArmSystem_SettingConfiguration"` | DAS configuration is being applied. |
| `PREPARING_DATA_MEMORY` | `"ArmSystem_ClearingFlash"` | Data memory (e.g., flash) is being cleared. |
| `REARMING` | `"ArmSystem_Rearming"` | Re-arming process in progress. |
| `PREPARING_FOR_ARMING` | `"ArmSystem_PreparingForArming"` | Preparing for arming (e.g., final checks). |
| `WAITING_FOR_INTERVAL` | `"ArmSystem_WaitingForInterval"` | Waiting for scheduled interval to start. |
| `WAITING_FOR_TRIGGER` | `"ArmSystem_WaitingForTrigger"` | Waiting for external trigger. |
| `WAITING_FOR_SCHEDULE` | `"ArmSystem_WaitingForScheduleStartTime"` | Waiting for scheduled start time. |
| `RECORDING` | `"ArmSystem_Recording"` | Data recording is active. |
| `OFFLINE` | `"Offline"` | Device is offline. |
| `DOWNLOADING` | `"Downloading"` | Data download in progress. |
| `GETTINGEVENTDATA` | `"Download_StatusTypes_GettingEventData"` | Downloading event metadata. |
> **Note**: Enum members without a `[Description]` attribute (`CANCELED`, `ARMING`, `DISARMING`, `DISARMED`, `ARM_FAILED`, `RECORDING`, `OFFLINE`, `DOWNLOADING`, `GETTINGEVENTDATA`) are assumed to use their literal name or a fallback display mechanism.
---
### 3. **Invariants**
- **All enum values are mutually exclusive**: At any given time, a device or subsystem should be in exactly one `StatusTypes` state.
- **State transitions are sequential and context-dependent**: While not enforced by this class, the enum is designed to reflect logical progression (e.g., `PINGING``PING_SUCCESS``CONNECTING``CONNECTED``QUERYING``DONE`).
- **`[Description]` attributes map to localized string resources**: Keys (e.g., `"AutoDetectDASControl_Pinging"`) are resource identifiers, not literal display strings. The actual UI text is resolved at runtime via `EnumDescriptionTypeConverterShared`.
- **No validation or state machine logic resides in this class**: This is a *data model* enum only; state transitions and validity are handled elsewhere.
---
### 4. **Dependencies**
- **Imports**:
- `DTS.Common.Converters.EnumDescriptionTypeConverterShared` — Used for UI localization of enum values.
- `DTS.Common.SharedResource.Strings` — Source of localized string resources (keys referenced in `[Description]`).
- `System.ComponentModel` — Provides `DescriptionAttribute` and `TypeConverterAttribute`.
- **Consumers (inferred)**:
- UI layers (WPF/XAML) using `EnumDescriptionTypeConverterShared` for binding.
- Hardware discovery, arming, and streaming services that set/report status.
- Logging and diagnostics modules that consume status for audit trails.
- Serialization/deserialization logic (e.g., JSON, XML) likely uses the enums underlying integer or string representation.
---
### 5. **Gotchas**
- **Mixed localization key patterns**: Some descriptions use `"Table_NA"` (generic placeholder), while others reference specific control names (e.g., `"AutoDetectDASControl_Pinging"`). This suggests inconsistent naming conventions or legacy resource keys.
- **Missing `[Description]` attributes**: Several enum values (`CANCELED`, `ARMING`, `DISARMING`, `DISARMED`, `ARM_FAILED`, `RECORDING`, `OFFLINE`, `DOWNLOADING`, `GETTINGEVENTDATA`) lack `[Description]`. These may fall back to the enum name or cause runtime issues if `EnumDescriptionTypeConverterShared` is strictly enforced.
- **Ambiguous semantics**: Some states (e.g., `ONLINE`, `CONNECTED`, `READYTOSTREAM`, `ARMED`) overlap in meaning and may require context (e.g., device type, mode) to disambiguate.
- **No explicit ordering or hierarchy**: The enum is unordered; developers must not assume `PASSED < FAILED` or similar ordering semantics.
- **Historical artifacts**: Values like `AUTOARMED` and `REALTIME` suggest legacy or specialized modes that may be deprecated or rarely used.
> **None identified from source alone.**
> *(Note: While above points are inferred from the source, they are not explicit bugs—just observations.)*