Skip to content

M2.17-G: exact DataSet MX schema fallback and truthful q/t evidence status - #612

Draft
masarray wants to merge 5 commits into
fix/m217f-inline-goose-stream-browser-20261016from
fix/m217g-dataset-mx-structure-and-typed-evidence-20261016
Draft

masarray wants to merge 5 commits into
fix/m217f-inline-goose-stream-browser-20261016from
fix/m217g-dataset-mx-structure-and-typed-evidence-20261016

Conversation

@masarray

Copy link
Copy Markdown
Owner

M2.17-G — DataSet MX schema completeness and truthful q/t evidence status

Stacked base: draft #611 at exact SHA 80bc2dab2d807c5636f86ffe244337daf97b93d9. Retain the prior PR chain and pinned engines; no main merge.

Audited correctness gaps

  • Existing IedBrowserStructuredDetails.Member could use selected-IED SCL as a schema-only fallback for some compound ST members, but not for MX DataSet members when live discovery provided the DataSet reference without an exact typed DA hierarchy. This left declared phasor magnitudes, angles and q/t expansion unavailable even when a verified selected-IED SCL described them. The consumer was not missing a second decoder or cache: it lacked a consistent schema projection.
  • A q/t leaf could be received while its exact raw bit evidence was not decoded; its expanded flag UI could display Not exposed, conflating a verified received leaf with an unavailable typed expansion.

Changes

  1. Reuse existing IedBrowserEngineeringObjects.GroupExact and phase/vector presentation with a stateless exact-reference, exact-FC presentation owner resolver. Live schema always takes priority when it declares the requested member FC. Only in the absence of live FC declarations, the selected-IED SCL can provide the shape of MX member and lazy child rows. Different IED, FC, owner prefix or ambiguous owners fail closed. No SCL scalar is published and no MMS Read target is derived from SCL.
  2. The existing Member and DataSetMemberChildren share that one resolver. Consistent triplet/quality/time child structure can now be drawn without a shadow Live Model, while the actual value is still fetched from the original existing per-IED Read/Report ledger. UI provenance explicitly says "SCL structure only" when appropriate.
  3. If a typed Quality/timeQuality child field is requested for an actually received q/t observation but bit provenance is unavailable, the UI says Not decoded and gives the precise reason instead of claiming the IEC attribute was not exposed. This does not generate bit flags or change the existing engine decoder.
  4. Five regression tests cover actual partial Report magnitude, missing phases, stale association, live-schema precedence, wrong FC / wrong IED, zero extra MMS target promotion, and the q/t display contract.

Explicit boundaries / later field acceptance

This is a schema/presentation correctness slice for DataSet evidence reliability, not a claim that all BCUGE Not read and Not exposed cells have vanished. If a live DataSet has no value in Read/Report ledger or a selected model cannot provide exact FCDA identity, the UI correctly remains unavailable. The next physical evidence gate must inspect actual MMS read failure/reference and semantic Report mapping; the purpose is to diagnose protocol absence rather than synthesize defaults.

No new value cache, consumer decoder, background scan, GOOSE subscriber or engine repin. Keep PR draft until exact-head Windows compilation and regression suite pass.

This branch has not been deployed

No deployments
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