Skip to content

fix: recover offline static DataSet members in Signal Selection - #183

Merged
masarray merged 6 commits into
mainfrom
fix/offline-dataset-signal-selection-p0
Aug 15, 2026
Merged

fix: recover offline static DataSet members in Signal Selection#183
masarray merged 6 commits into
mainfrom
fix/offline-dataset-signal-selection-p0

Conversation

@masarray

Copy link
Copy Markdown
Owner

Problem

Field validation on Siemens CID AA1C1F13R4 showed ARIEC parsed 2 static DataSets / 58 FCDA members, but ARSAS reported Signal Selection: 0/58 represented.

The Signal Selection recovery path only used LiveDiscoveryModel. For an offline SCL/CID workspace that model is intentionally null, so recovery returned empty even though SclWorkspace.DesignModel was authoritative and complete. Newly recovered rows could also have their static FCDA DisplayReference overwritten from the runtime ObjectReference.

Fix

  • use LiveDiscoveryModel ?? SclWorkspace.DesignModel as DataSet authority for device-level recovery
  • preserve engine-authoritative static FCDA/FCD DisplayReference in Signal Selection
  • improve DataSet diagnostics with per-DataSet represented/missing counts and balanced missing samples across Analog/Digital instead of only the first DataSet
  • rename diagnostic Mandatory inventory presentation to Semantic descriptors so descriptor count is not confused with FCDA member count
  • capture full Exception.ToString() for dispatcher UI errors so Sequence contains more than one element includes stack trace
  • add regression contracts for offline SCL fallback, static identity preservation, balanced diagnostic evidence, and full UI exception routing

Expected field result

For the supplied Siemens CID, after opening Signal Selection the completeness report should move from 0/58 toward 58/58 if all 58 engine-owned static member identities are successfully recovered. No .stVal is invented for unresolved object-level FCD members.

Physical IED validation is still required after merge; CI only validates the software regression contracts.

@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 147c664 into main Aug 15, 2026
2 checks 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