Repository navigation
P8 C264: schema-verified structured FCD report projection and rejection evidence #159
Description
Field-derived protocol job (planning gate, no engine modification yet)
Consumer ARSAS #502/#503 handoff; active GUI/NIC fix #505. This issue owns the separate engine P2 structured-FCD report projection problem and must not be conflated with GOOSE Ethernet capture or with field acceptance.
A same-computer IEC 61850 C264 simulator exposes a static report-only model. Sanitized aggregate evidence: 207 monitor points, 73 values pending at one snapshot, 29 RCB targets with only 4 exact live ingress confirmations. Some REPORT_RAW_STRUCT / REPORT_VALUE_REJECTED entries concern received structured members (e.g. Mod/PhyHealth); others may simply lack report ingress. These are different causes and neither authorizes cyclic MMS polling or made-up quality.
Current source facts (ARIEC61850 #157 baseline 8b0c0f7e695b016834e40a6f068994dcc945cb1a)
MmsReportSemanticProjectionContext.Createbuilds a typed leaf hierarchy from canonical model/DataSet member references and projected attribute paths.TryExpandresolves exact member ref or index, requires unique schema and child-count equality, and flattens matching MMSStructure/Array.MmsSemanticReportValueProjectorretains the generic fail-closed fallback if schema is incomplete/ambiguous; it does not unconditionally coerce structured values into a scalar.- The current child hierarchy uses model attribute enumeration to construct order. This is an evidence question, not proof of a bug: ensure authoritative MMS/SCL child ordering is preserved and verified before accepting a positional structure mapping.
Required investigation and acceptance
- Build project-owned synthetic 4-child Mod and multi-LN prefix model/report fixtures; do NOT commit customer IID, raw diagnostic or captures.
- Reproduce distinct outcomes: no RCB ingress, received-but-unprojectable structure, missing q/t, schema ambiguity, exact valid typed expansion, and malformed/wrong-order frames.
- Correlate exact DataSet identity + member ordinal + LD/LN prefix/class/instance + FC + DO/DA path + wire MMS type; reject ambiguous schemas and mismatch. Preserve an explicit reason for failure.
- Demonstrate no wrong scalar, no fabricated
Goodquality/timestamp, no sibling LN collision, no loss of original report evidence. Confirm q/t companion attribution and type checking. - Keep report-only static DataSet authority; no cyclic MMS process fallback, no dynamic DataSet writes. Preserve GOOSE, discovery, and safe command paths.
- Produce isolated engine PR based on currently verified engine stack with deterministic tests; update ARSAS immutable engine lock only after engine and combined consumer CI pass.
- Distinguish
implemented,unit tested, andphysical simulator validatedgates. No release/mainline merge without field evidence.
Current status: investigation scoped only; not fixed, and no additional GitHub Actions run requested for this issue.
Activity