Skip to content

P7.1 #446: collapse duplicate SCL cards and harden diagnostics - #459

Draft
masarray wants to merge 7 commits into
feat/446-unified-static-acquisition-consumerfrom
fix/446-p7-1-scl-workspace-diagnostics
Draft

masarray wants to merge 7 commits into
feat/446-unified-static-acquisition-consumerfrom
fix/446-p7-1-scl-workspace-diagnostics

Conversation

@masarray

@masarray masarray commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Stacked field-fix milestone for #446 based on PR #454.

Field defects reproduced from 7SX85 SCD test

  1. one physical/logical IED appeared as two Engineering cards because ARSAS projected every SCL AccessPoint workspace as a separate IED card;
  2. an SCL with no direct ConnectedAP MMS IP produced "No endpoint" even when ARSAS had a previously successful endpoint for the exact IEDName;
  3. Copy Diagnostic threw ArgumentException: An item with the same key has already been added. Key: No endpoint because TCP probe evidence was keyed by display endpoint text.

Fix

  • collapse SCL AccessPoint workspaces to one primary Engineering card per IEDName;
  • choose the primary AP deterministically: usable MMS endpoint, Server-bearing AP, report/DataSet authority, model coverage;
  • reuse an existing same-IED card when safe instead of creating a second card;
  • preserve current proven endpoint identity when SCL is offline-only;
  • when the SCL has no direct MMS endpoint, restore the most recent successful exact-IEDName endpoint from local preferences, while explicitly requiring a fresh association before live use;
  • remove redundant inactive SCL cards from the same source/IED identity;
  • key diagnostic TCP probe evidence by DeviceId rather than endpoint text;
  • add a probe-free emergency diagnostic fallback so malformed workspace state cannot make support diagnostics fail a second time.

Safety

  • nested GSE/SMV addresses are still not promoted to MMS endpoints;
  • no endpoint is fabricated from SCL when no direct MMS address exists;
  • remembered endpoint evidence is local history for the exact IEDName and is revalidated through a fresh MMS association;
  • connected/monitoring cards are never removed by duplicate cleanup;
  • this patch does not change reporting/RCB acquisition semantics from P7.

Regression

  • two offline cards sharing No endpoint can build a diagnostic report;
  • emergency diagnostics preserve evidence without probes;
  • source guard locks one-card-per-IED SCL projection and remembered-endpoint restoration;
  • Copy Diagnostic guard prevents endpoint-text dictionary identity from returning.

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