Repository navigation
feat(M4-P0A): compile 3 SCD Merging Unit SV profiles with bounded common 4kHz roster - #334
Conversation
… full-roster rollback
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d05e15ab6c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } | ||
| } | ||
| } | ||
| if (result.errors.empty()) result.roster = std::move(candidate); |
There was a problem hiding this comment.
Reject duplicate IED conflicts before accepting the roster
When the SCD contains duplicate IED@name declarations with different control-block names, this compiler returns a successful roster despite the parser reporting an IED conflict. Reproduced by renaming the fixture's second IED to MU01_4I_4V_1 and its control/binding to MSVCB02: document.conflicts reports the duplicate IED, but compile().ok() is true. The pairwise control-reference check does not catch this, allowing profiles compiled from ambiguous IED/DataSet namespaces through the validation boundary. Preserve the deliberate repeated-APPID exception, but reject duplicate-IED conflicts before publishing the roster.
AGENTS.md reference: AGENTS.md:L152-L152
Useful? React with 👍 / 👎.
M4-P0A — Three SCD-derived SV profiles on one common PTP sample grid (host foundation)
Implements the FIRST shippable coding slice of M4 ARD / #333.
This PR actually implements
m4-three-9-2le-reference.scdwith 3 IEDs, exact MAC/APPID/svID identity mapping, SCL 4000/s, 16 leaves per MU and explicitSmvOpts.Follow-up PRs before user-visible M4
M4-P0B: V2 aggregate record/CRC and transactional 3-slot firmware staging. M4-P0C: single GPTimer/PTP-grid -> three preallocated TX contexts. M4-P0D: per-stream setpoints/readback. M4-P0E: one Studio with 3 synchronized Table/Waveform/Phasor pages. M4-P0F: paired firmware/Studio builds and bench testing.
Test gate
C++ CI:
ariec61850_m4_three_sv_roster_testsand existingariec61850_scl_tests. Merge only when C++ CI is green.