Repository navigation
M2.17-C Data Model: bounded priority MMS hydration on full live discovery - #605
Draft
masarray wants to merge 4 commits into
Conversation
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.
M2.17-C — bounded, evidence-first initial MMS hydration for full LIVE discovery
Base: stacked draft #604 (exact SHA
5a83f4510bf7159c8534e5deb32bf41516ff563e). Do not merge upstream drafts or repin ARIEC without review. This follows the verified SCL-assisted initial observation reuse in #604, but fixes the distinct IP/full live discovery gap: discovery produces the canonical schema while priority leaf values have not been admitted to the shared per-IED observation ledger, so Browser Data Model can legitimately show manyNot readrows.Architecture-preserving patch
IedBrowserReadPlanwithBuildInitialPriorityand an explicit finite target budget (max 32). Only real live-discovery declarations with exact case-sensitive reference+FC are eligible. Rank LLN0/LPHD Mod/Beh/Health, schema-proven XCBR/XSWI/CSWI.Pos.stVal, LLN0/LPHD NamPlt DC leaves, remaining LN status, switch q/t and remaining NamPlt leaves. Reject ambiguous duplicates, unsupported FC CO/control, vendor guesses, and previously observed current-association values.Iec61850MonitorRuntime.ReadBrowserValuesAsyncas-is, sequential on the pinned ARIEC MMS gate, with existing 5s per-target timeout and a 10s whole-hydration envelope. No unbounded traversal/read, new transport, thread, poll loop, decoder, cache, new RCB subscription, write or command.IedBrowserReadResultInbox; publish only accepted values todevice.LiveValues.PublishForAssociationwith typed Quality/UTC evidence if actually present. Fence by exact runtime session, IED, live model object, association, and monitoring state. Timeout may leave remaining attributesNot read; never fabricate them.IedBrowserReadFailureEvidence, anchored to the accepted live model for auto hydration (not to the subsequently replaced WPF signal catalog); show attempted failed leaves asUnavailablewith reason, without adding another value owner. Explicit manual Read keeps the prior strict UI projection-epoch fencing.IedBrowserReadBindingIndexfor a one-time read-only re-projection of verified initial Read evidence when newSignalDefinitionrows are actually attached on the UI thread. This is an existing presentation mirror, not an extra observation channel or event generator. Report authority remains independent and wins when monitoring.Focused regression
Eight tests for station health/status/typed DPS priority; skip already accepted Read/Report; wrong FC/type/CDC and ambiguous declarations; deterministic 400-object model bounded to 24 targets; model+association-bound failure provenance; manual Read UI epoch invalidation; catalog reattachment/monitoring guard; and source-level verification of the actual bounded serial runtime seam.
Limitations and BCUGE gates
field endpointphysical acceptance; verify actual values, timestamps, error reasons and reference engineering application comparison from a live session.036e2c00d83a0815b6160147b14ea05975057965and ArdIrec locks untouched; base PR chain stays draft.Validation
Changes staged and diff/ancestry reviewed prior to PR. No local .NET SDK available in agent runtime; one GitHub Actions exact-SHA run is the executable compile/regression/build proof. Keep draft until green CI; field acceptance is separate.