Repository navigation
M2.17-I: exact FCDA SCL projection and bounded phasor q/t+angle acquisition - #616
Draft
masarray wants to merge 13 commits into
Conversation
…, no invented value
…al finite MMS Read budget
…tude arrived by Report
…, bounded reads and FC isolation
…S failure in association-scoped evidence
…deferred not MMS failures
…sleading MMS failure
…tempt, never mistake for unattempted
…ng deferred and wire failure
…han failed/deferred
…erred, and association fenced
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope / baseline
Stacked on draft PR #614 (HEAD
35caaddd7a60d3d7d312ac900640bad42129107e, 13/13 workflows green), which includes drafts #613 and #612. No merge, no protocol engine pin changes.Verified gaps and implementation
MMXU1.PhV.phsA.qcould remain invisible despite exact SCL schema. Allow exact match only when the selected-IED owner and FC match; never supply a value or authorize a read from SCL.cVal.ang.f,q,t. Add at most 9 live FCDA companions for the original, at most 6 coherently selected MMXU magnitudes. Only exact same-owner companions, nonduplicate live declarations, exact FC=MX, real DataSet membership, and current-association unobserved leaves qualify. Already received magnitude from Report remains a valid schema seed for its missing companions. Never derive values/bits.Test / acceptance
Physical acceptance
BCUGE live discovery and DataSet phasor: confirm exact MMS Read requests/responses for A/B/C
mag,ang,q,t; verify that raw quality/time bits only display when actually decoded, Data Model & DataSet rows use same live association ledger; record unexposed schema/failure reasons; reconnect and confirm no stale values. Never run Command on energized equipment without switching authorization.Observation absence classification
Failedfor actual attempted MMS Read failures;Deferredfor a selected target that was never attempted because the finite initial sweep ended (especially the 10-second budget).Not read/Initial read deferredfor deferred targets, while true protocol errors remainUnavailable/MMS Read failed. Details are placed in row tooltips, not additional noisy overlays.Read DO/ DataSet read is the operator-driven follow-up.Outstanding: a canceled native MMS Read is not proof of wire cancellation. Per-leaf cancellation is bounded by a 5-second token, but if pinned engine ignores it the transport lifetime needs separately proven recovery. Physical BCUGE/IED acceptance remains required; do not call all Not read/Not exposed resolved.
Correctness follow-up: in-flight budget expiry
Initial hydration tracks attempted vs completed MMS Read targets synchronously at the producer boundary. A target whose Read started but did not return by cancellation/budget is
Interrupted/ wire outcome UNKNOWN, neverDeferred/ NotAttempted. Only genuinely untouched targets receiveDeferred. The UI keeps the distinction in an existing row source/tooltip, without creating a process-value cache or launching a retry. The typed evidence store preserves actual wire failures over both kinds and rejects old association/model epochs. Deterministic tests cover the priority rules.The existing 10-second initial sweep remains a cancellation-token budget. If the pinned native engine does not honor cancellation, end-to-end wall-clock boundedness and MMS receive-pump cleanup remain an explicit next milestone, not claimed fixed here.