Skip to content

fix: make static DataSet inventory member-centric - #78

Merged
masarray merged 2 commits into
mainfrom
fix/member-centric-dataset-inventory
Aug 15, 2026
Merged

fix: make static DataSet inventory member-centric#78
masarray merged 2 commits into
mainfrom
fix/member-centric-dataset-inventory

Conversation

@masarray

Copy link
Copy Markdown
Owner

Field failure

A real Siemens CID contains exactly 58 static FCDA/FCD members (22 Analog + 36 Digital), while Iec61850DataSetSignalInventoryProjection.GetMandatorySignals() exposed 68 semantic descriptors. ARSAS consequently could not maintain a one-to-one Signal Selection inventory and field diagnostics only represented 5/58 members.

Fix

  • make mandatory DataSet inventory one descriptor per (DataSetReference, MemberIndex)
  • preserve the exact static FCD/FCDA member identity in DataSetMemberships
  • keep a unique primary DataAttribute only as runtime binding metadata
  • when more than one primary runtime candidate exists, preserve the static member without guessing a leaf
  • add regression coverage for 58/58 cardinality, resolved SPS static-vs-runtime identity, and ambiguous MV primary candidates

This changes the inventory contract from descriptor-centric to protocol-member-centric while leaving the broader signal catalog unchanged.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@masarray
masarray merged commit 761fa0d into main Aug 15, 2026
1 check passed
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