Skip to content

P1D.2D: bring Phasor workstation to ArdIrec parity - #299

Draft
masarray wants to merge 6 commits into
feat/p1d2c-time-signals-parityfrom
feat/p1d2d-phasor-workstation-parity
Draft

P1D.2D: bring Phasor workstation to ArdIrec parity#299
masarray wants to merge 6 commits into
feat/p1d2c-time-signals-parityfrom
feat/p1d2d-phasor-workstation-parity

Conversation

@masarray

@masarray masarray commented Sep 10, 2026

Copy link
Copy Markdown
Owner

Stacked on P1D.2C PR #298. Keep this draft and unmerged until the lower P1D stack is rebased onto merged engine/application heads and field validation is complete.

P1D.2D is the Phasor workstation-parity slice. It ports ArdIrec's mature record-level phasor workflow into the native WPF COMTRADE workspace without duplicating DFT math in managed code.

Implemented here:

  • Phasor is now record-level rather than selected-row-dependent;
  • Voltage and Current phasor diagrams render simultaneously with independent radial scales, avoiding dimensional comparison between V and A;
  • both diagrams use the same global C1/C2 investigation reference and the same native one-cycle ArdIrec phasor export;
  • compact C1/C2 selector is shown only in Phasor mode; Time Signals remains the cursor-position authority;
  • reference header reports the actual source frame and trigger-relative time;
  • channel selection uses ArdIrec P1D.2A role/phase semantics when available;
  • one coherent same-circuit + same-unit phase family is chosen per Voltage/Current panel, with dimension-safe same-unit fallback for sparse circuit metadata;
  • phase ordering is L1/L2/L3/E and duplicate channels for one phase are not mixed into the diagram;
  • Phasor stays available even when the selected signal row is digital, because the view is record-level;
  • Harmonics remains selected-channel/C1 behavior and is intentionally not redesigned in this slice;
  • pure tests cover phase ordering, Voltage/Current separation, coherent circuit selection, unit safety, duplicate-phase handling, and canonical phase mapping.

P1D.2B Measurement Panel / global representation UI remains separate. This slice consumes the global C1/C2 timeline established by P1D.2C but does not duplicate the pending measurement presentation layer.

Exact-head validation

Qualified head: eb4b35c31f367d829ff4e6115e2753182f932521

  • Build ARSAS #2376 — SUCCESS (solution build/regressions, portable publish and smoke)
  • Validate SV evidence bundles #1386 — SUCCESS
  • Validate COMTRADE viewer integration Add production attestation and consent-first privacy controls #85 — SUCCESS (pinned ArdIrec build/test/stage + native bridge/runtime verification)
  • Validate ARSAS Windows installer #807 — SUCCESS (solution build/test, pinned ArdIrec staging, real managed bridge fixture, installer compile, silent install/uninstall smoke, checksum/artifact)
  • Installer artifact: ARSAS-1.6.35-win-x64-installer, artifact 10133514606, SHA-256 8daa2ae1f6e038f11c2d4d34f7f64eb92c82769ae30d124fc942838b6e1ade68
  • Pinned P1D.2A ArdIrec head b611a6c6ab9262d0e1cc50fdf6fc76910d90d298 is independently green on CI, CodeQL and Windows Build.

PR remains DRAFT + UNMERGED because it is stacked on #298/#297/#295 and the temporary ArdIrec P1D.2A pin must be replaced with merged engine main before landing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant