Skip to content

P8 BCUGE: readable GOOSE quality, semantic event coalescing, inspector UX and persistent SNTP - #506

Closed
masarray wants to merge 1 commit into
fix/505-goose-samehost-exact-nicfrom
fix/506-goose-quality-events-sntp-persistence
Closed

masarray wants to merge 1 commit into
fix/505-goose-samehost-exact-nicfrom
fix/506-goose-quality-events-sntp-persistence

Conversation

@masarray

Copy link
Copy Markdown
Owner

Field-driven code fix, one atomic commit, no manual CI reruns

Parent: exact ARSAS #505 head 5e55fa2022bf3f79f1d747a176e75365306bdcd9. The user tested exact merged source 95dcb825a806f72f565198100f7b28d74c7b66dc (merge of #505 into #504) with immutable engine 8b0c0f7e695b016834e40a6f068994dcc945cb1a. No engine changes here.

Real BCUGE evidence: same-PC KM_Test capture 180/180 GOOSE frames, 3 publishers, typed CSWI6 value change, known quality bits; 67/67 static report values with 6/6 exact RCB ingress and zero cyclic MMS process polling. This is the new acceptance base and disproves an ongoing adapter/capture failure.

Changes

  • GooseTimelineEventPolicy: event-display diagnostic categories coalesce repeated numeric GOOSE Gap/TAL variations; keep raw per-frame diagnostics, actual capture counts, payload/stNum changes, and explicit Show retransmissions. Initial publisher detection remains one per actual stream. No protocol decoder changes.
  • GooseCanonicalLeafProjection: only exact same full LD+LN+DO FCDA owner permits folding adjacent or non-adjacent .q into .stVal engineering row; normalize optional MMS $ST$ notation and preserve independent raw ordered DataSet values. Orphan/ambiguous q is kept visible rather than guessed; explicit 14→7 existing regression remains, with additional F650-shaped fixture.
  • GooseSubscriberLiteView: widen inspector column 360→420, Value and Quality grids, compact stable event rows, legible Quality tones and tooltips; no large cards or rearchitecture.
  • SntpUserSettingsStore: user-local atomic sntp-server.json, persist exact interface ID+IP and last successful enabled toggle. Restore only when same live local NIC/IP exists; never silently bind another adapter, never persist per-packet telemetry or overwrite closing state. Retain previous explicit startup ON only with exact match; otherwise off. Existing standalone SNTP and heartbeat unchanged.
  • Synthetic regression tests for normal/retransmission semantic coalescing, exact FCDA pairing across MMS notation, safe SNTP persistence/corrupt input.

CI/performance: one commit fda92c6b1869c29b0382e25f1dbbe2bab7c68140 triggers natural PR CI once; no workflow dispatch/retries. Do not merge to main or release until Windows build, visual UX at 100/125/150% DPI and same-PC BCUGE event/quality/NTP restart acceptance. R10 physical mainline gate unchanged.

Known scope: this does not claim all diagnostic warnings are false, nor suppress evidence of genuine repeated state transitions. SCL metadata for an unrelated C264 publisher may remain unbound; require the correct publisher CID/SCL. Quality is only joined when exact source identity exists. P2 typed FCD report issue remains ARIEC61850 #159.

Copy link
Copy Markdown
Owner Author

BCUGE field acceptance basis: 180 captured / 180 GOOSE / 0 other / 3 streams; one CSWI action also appeared on multiple publisher streams. Raw wire retransmissions/test/supervision diagnostics must remain, but numeric Gap/TAL changes must not flood the operator event grid. Quality must be assigned only by exact same full FCDA owner; raw ordered members stay intact. BCUGE MMS static path showed 67/67 values, 6/6 exact RCB ingress, zero cyclic polling. SNTP restore must require same NIC ID + IPv4. Validate 100/125/150% DPI and application portable EXE before merge/release. Source: user's local screenshots and diagnostic; no customer raw captures committed.

Copy link
Copy Markdown
Owner Author

Exact-head CI qualification — 2026-10-10

Field acceptance still outstanding

  1. Exact same-PC KM-TEST capture: 3 stream identities, actual frame count continues to increment and raw retransmissions remain decoded.
  2. With Show retransmissions OFF, numeric Gap/TAL changes alone do not append new event rows; real stNum/payload changes are retained, stream-specific test/supervision evidence remains in Inspector.
  3. Check GOOSE1/GOOSE2: exact companion CSWI.Pos.stVal + CSWI.Pos.q collapses to one engineering row with readable Quality while raw 4 wire entries remain accessible; unknown C264 publisher does not acquire false labels.
  4. Inspector value/quality columns readable at 100/125/150% DPI.
  5. Select PC IP, toggle NTP ON/OFF, restart ARSAS; the same interface/IP and last valid enabled state restore correctly; if IP is removed, no arbitrary NIC is chosen. Must not claim relay time synchronization from SNTP serving.
  6. Preserve 67/67 report display, six exact static RCB ingress streams and zero cyclic MMS polling on BCUGE.

Remain DRAFT until those operator tests are accepted.

Copy link
Copy Markdown
Owner Author

New BCUGE follow-up implementation is isolated in draft PR #507 (#507), exact one-commit base #506 HEAD fda92c6. Field build of #506 showed remaining lexicographic CSWI1/10 sorting, q still separate/Quality blank, duplicate per-stream GOOSE events and stale historical first-frame inspector. #507 implements natural view sorting, strict full+typed adjacent q pairing with LD conflict rejection, per-stream process change with conservative cross-stream correlation, and live-follow/historical pause. No engine pin, static DataSet, NTP transport, command path or mainline gate changed.

Copy link
Copy Markdown
Owner Author

Disposition: Superseded — verified stacked milestone consolidation; no mainline merge and no physical acceptance.

Canonical replacement: #543, open staged tip at 6285867780b8ea79c231d72a3819e9e5f99748d2. This PR HEAD fda92c6b1869c29b0382e25f1dbbe2bab7c68140 is a commit ancestor (verified GitHub compare: ahead=231, behind=0). Later changes in the stack can intentionally revise UI behavior; keep the canonical tip OPEN.

Unique delta: GOOSE timeline quality/event coalescing and persistent SNTP settings. Audited PR patch: 9-file patch contains GooseTimelineEventPolicyTests.cs, GooseCanonicalEngineeringTests.cs and SntpUserSettingsStoreTests.cs. Original changes and tests remain in reachable commit history of #543; no commit from this PR is orphaned. Historical ancestry alone does not certify current semantics, which remain subject to final exact-file and field validation at integration.

Safety: Only close the obsolete intermediate PR tracking record. The PR source branch, original commits, test/evidence history, engine lock, main, stable v1.6.42 and CI/physical gates are untouched. No release/engine authority claimed.

Follow-up: Later GOOSE PRs correct presentation choices; preserve raw-wire provenance and test SNTP persistence on consolidated candidate. Canonical integration/qualification remains explicitly unfinished in #543 and successor release-gated workstreams.

@masarray masarray closed this Oct 25, 2026
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