Skip to content

P5.4: project structured report members to semantic scalar leaves - #106

Draft
masarray wants to merge 13 commits into
mainfrom
feat/p5-4-structured-report-projection
Draft

P5.4: project structured report members to semantic scalar leaves#106
masarray wants to merge 13 commits into
mainfrom
feat/p5-4-structured-report-projection

Conversation

@masarray

@masarray masarray commented Sep 1, 2026

Copy link
Copy Markdown
Owner

P5.4 — semantic structured report projection

Physical FAT validation exposed structured DataSet members such as I_MHAI1.ThdA and V_MHAI1.ThdPPV that arrive as structured InformationReport values. The baseline projector intentionally left these values raw, so scalar phase descendants did not reach the application live-point path.

This change keeps static DataSet membership identity immutable and adds a fail-closed semantic overlay:

  • consumes the existing LiveIedModelDiscoveryDocument / DataSet semantic binding authority; no second SCL parser;
  • preserves exact static DataSet member identity and member index;
  • maps positional MMS structure only below that exact member boundary using model attribute declaration order;
  • fans out every schema-proven scalar descendant instead of selecting a sibling phase;
  • keeps whole multi-phase membership ambiguous (PrimaryValue == null) when no unique scalar primary exists;
  • on schema/value shape mismatch, preserves baseline raw projection and emits semantic fallback instead of guessing;
  • leaves existing known CDC projection unchanged.

Physical evidence

Physical-proven engine head before consolidation:

b9ee5fc9650b72e69bc81287a1e1b047ad19b054

ARSAS physical retest on AA1E1F03R5 / 192.168.81.114 proved the six scalar THD children live-bound without forcing IED quality:

  • ThdA.phsA
  • ThdA.phsB
  • ThdA.phsC
  • ThdPPV.phsAB
  • ThdPPV.phsBC
  • ThdPPV.phsCA

The structured parents remain non-scalar by design.

Consolidation with current main

Current G2.7 main at consolidation time:

c979206988ebcbaf79e62b784895e19547184369

Consolidated PR head:

9fba1cff11c475519d829956d82e7bd5f2b541cf

The consolidation is a merge commit with the physical-proven P5.4 head as first parent and current G2.7 main as second parent. The five P5.4 semantic source/regression files are carried with the exact blob contents from the physical-proven head; all other repository content comes from current main.

Compared with current main, this PR still changes exactly five files:

  • src/AR.Iec61850/Discovery/Iec61850DataSetSemanticBindingResolver.cs
  • src/AR.Iec61850/Discovery/Iec61850DataSetSignalInventoryProjection.cs
  • src/AR.Iec61850/Mms/MmsSemanticReportValueProjector.cs
  • tests/AR.Iec61850.Tests/Discovery/Iec61850StructuredDataSetMemberBindingTests.cs
  • tests/AR.Iec61850.Tests/Mms/MmsSemanticReportValueProjectorTests.cs

Gate

PR remains DRAFT + UNMERGED until:

  1. exact consolidated-head .NET CI is green;
  2. ARSAS is re-pinned to the consolidated engine SHA;
  3. a targeted matching-relay/CID regression confirms the physical THD behavior remains intact on the consolidated head.

The old b9ee5fc... physical proof is retained as provenance; it is not automatically transferred to the new consolidated SHA.

@masarray
masarray changed the base branch from fix/dataset-structured-primary-binding to main September 1, 2026 08:42

masarray commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

Consolidation completed without merging to main.

  • physical-proven P5.4 parent: b9ee5fc9650b72e69bc81287a1e1b047ad19b054
  • current G2.7 main parent: c979206988ebcbaf79e62b784895e19547184369
  • consolidated head: 9fba1cff11c475519d829956d82e7bd5f2b541cf
  • diff versus current main: still exactly the five P5.4 semantic source/regression files
  • .NET CI #437 / run 33702213047: currently in progress

The PR remains DRAFT + UNMERGED. The old physical proof is retained as provenance; exact consolidated-head physical GO is not claimed until ARSAS is repinned and the matching relay/CID receives a targeted regression.

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