Skip to content

Release Update#23

Merged
clackner-gpa merged 10 commits into
masterfrom
development
Jun 9, 2026
Merged

Release Update#23
clackner-gpa merged 10 commits into
masterfrom
development

Conversation

@gsfbuildbot

Copy link
Copy Markdown
Contributor

This PR was Generated by a release of openHistorian

ritchiecarroll and others added 10 commits May 19, 2026 10:16
Lets users choose, via SEL CWS connection parameters, between the rolling
sliding DFT estimator (optional EMA smoothing, default) and the IEEE
C37.118-2018 Annex D filter-based estimator (P/M class); brings Gemstone
back in sync with the GSF implementation.

- Shared PhaseEstimate/PhaseEstimateHandler + IPhaseEstimator; new
  PhaseEstimationAlgorithm { SlidingDft, IEEEC37_118 } enum
- SlidingDftPhaseEstimator + IEEEC37_118PhaseEstimator replace
  RollingPhaseEstimator; both use VA,VB,VC,IA,IB,IC order (completes the
  voltage/current alignment, fixing the IEEE positive-sequence indexing)
- ConnectionParameters: Algorithm selector + sliding-DFT options grouped
  into General / Sliding DFT / IEEE C37.118 property categories
- FrameParser builds the selected estimator, rebuilding on parameter change
- Replaced the console demo with MSTest unit tests (9 sliding DFT + 6 IEEE)
…tructor or destructor'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
The initial CWS data frame spans 48 bytes: 16-byte common header + 8-byte
nanosecond timestamp + first 24-byte sample. ParseFrame advanced only 32
(timestamp + first sample) before parsing the remaining 49 samples, omitting
the common header. This read samples 1-49 of every packet 16 bytes (4 analog
channels) too early, scrambling channel/sample alignment -- only the first
sample of each 50-sample packet was correct -- and corrupting derived phase
estimates.

Advance offset/length by 48 instead of 32 so all 50 samples align and sample
49 ends exactly at the 1224-byte frame boundary. On-wire framing and the
voltage-first channel order (VA,VB,VC,IA,IB,IC) were already correct.
SEL CWS: user-selectable sliding-DFT and IEEE C37.118 phase estimation
Comment thread src/Gemstone.PhasorProtocols/SelCWS/ConfigurationCell.cs Dismissed
@clackner-gpa clackner-gpa merged commit 1d5eaa9 into master Jun 9, 2026
3 checks passed
@clackner-gpa clackner-gpa deleted the development branch June 9, 2026 19:42
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.

4 participants