Files

46 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.Common/Events/DTS.Viewer/Reports/PowerSpectralDensity/PSDReportSettingsChangedEvent.cs
- Common/DTS.Common/Events/DTS.Viewer/Reports/PowerSpectralDensity/PSDReportGRMSValuesUpdatedEvent.cs
generated_at: "2026-04-17T16:26:51.849481+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "59c47482ba063f01"
---
# PowerSpectralDensity
### Purpose
This module defines Prism event types for broadcasting Power Spectral Density (PSD) report-related changes within the DTS Viewer application. It enables loose coupling between components that produce PSD report updates (settings changes, GRMS value recalculations) and consumers that need to react to those updates, using the event aggregation pattern.
### Public Interface
**`PSDReportSettingsChangedEvent`** (class, inherits `PubSubEvent<PSDReportSettingsChangedEventArg>`)
- Event type for publishing/subscribing to PSD report settings changes.
- Payload type: `PSDReportSettingsChangedEventArg`
**`PSDReportSettingsChangedEventArg`** (class)
- `IPSDReportSettingsModel Model { get; set; }` — The updated PSD report settings model.
- `IBaseViewModel ParentVM { get; set; }` — Reference to the parent view model originating the change.
**`PSDReportGRMSValuesUpdatedEvent`** (class, inherits `PubSubEvent<PSDReportGRMSValuesUpdatedEventArg>`)
- Event type for publishing/subscribing to GRMS (Root Mean Square) value updates in PSD reports.
- Payload type: `PSDReportGRMSValuesUpdatedEventArg`
**`PSDReportGRMSValuesUpdatedEventArg`** (class)
- `IChannelGRMSSummary[] Values { get; set; }` — Array of channel GRMS summary values.
- `IBaseViewModel ParentVM { get; set; }` — Reference to the parent view model associated with the update.
### Invariants
- Both event types inherit from `PubSubEvent<T>` from Prism, requiring the event aggregator pattern for publication/subscription.
- The `ParentVM` property in both event args is intended to identify the source context of the event (nullability is not enforced at compile time).
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseViewModel`), `DTS.Common.Interface` (for `IPSDReportSettingsModel`, `IChannelGRMSSummary`), `Prism.Events` (for `PubSubEvent<T>`).
- **Depended on by**: Unclear from source alone—likely PSD report view models, view components, or services that subscribe to or publish these events.
### Gotchas
- The `ParentVM` property could be `null` if not set by the publisher; subscribers should handle this possibility.
- The event args classes use mutable auto-properties; event payloads can be modified after publication if references are retained.
---