Add bounded two-cycle Sampled Values snapshot proof - #106
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f066607e4a
ℹ️ 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".
| public bool HasCounterAnomaly => GapTransitions > 0 || DuplicateTransitions > 0 || OutOfOrderTransitions > 0; | ||
| public bool IsComplete => CapturedSamples >= TargetSamples; | ||
| public bool IsCleanProof => IsComplete && !HasCounterAnomaly; |
There was a problem hiding this comment.
Treat sample-counter restarts as anomalies
When the tracker classifies a counter transition as Restart, RestartTransitions is incremented but HasCounterAnomaly remains false. A snapshot containing only a publisher restart therefore satisfies IsCleanProof and is presented as PASS with “continuous smpCnt,” despite the counter discontinuity; include restarts in the anomaly decision and its displayed evidence.
Useful? React with 👍 / 👎.
| CaptureButton.IsEnabled = !capturing && AdapterOptions.Count > 0; | ||
| CancelButton.IsEnabled = capturing; | ||
| AdapterCombo.IsEnabled = !capturing; | ||
| FrequencyCombo.IsEnabled = !capturing; |
There was a problem hiding this comment.
Lock the selected stream while capture is active
During an active capture, the adapter and frequency controls are disabled but the stream grid remains editable. If the operator selects stream B while the request for stream A is running, the setter resets the presentation, but completion subsequently applies A's snapshot while SelectedStreamDetail describes B, misassociating the proof with the currently selected stream; disable stream selection for the capture duration or cancel the request when it changes.
Useful? React with 👍 / 👎.
| git clone --quiet --depth 1 --branch $env:ARIEC61850_REF https://github.com/masarray/ARIEC61850.git ARIEC61850 | ||
| $actual = (git -C .\ARIEC61850 rev-parse HEAD).Trim() | ||
| if ($actual -ne $env:ARIEC61850_COMMIT) { | ||
| throw "ARIEC61850 pin mismatch. Expected $env:ARIEC61850_COMMIT, got $actual." |
There was a problem hiding this comment.
Fetch the pinned engine commit independently of the branch
This checkout depends on the temporary agent/sv-core-unification branch still existing and still pointing at the expected commit, so deleting or advancing that branch makes every build fail before the commit validation can provide a reproducible checkout. As git clone -h documents, --branch “checkout[s] instead of the remote's HEAD”; fetch or check out the pinned hash directly, or reference the stable integration commit on main, rather than coupling the pin to a mutable feature branch.
Useful? React with 👍 / 👎.
Purpose
Add a passive, non-realtime IEC 61850-9-2 snapshot workflow so an engineer can prove that one selected Sampled Values stream is visible, parsed, structurally stable, and sample-counter observable without running a continuous oscilloscope.
Workflow
Snapshot evidence
0x88BAreceptionsvIDfiltering when identities are availableseqOfDatastructuresmpCntcontinuity, wrap, gap, missing-sample, duplicate, and out-of-order evidenceSemantic boundary
Without trusted ordered SCL mapping, lanes remain raw structural words. ARSAS does not invent phase names, current/voltage meaning, engineering units, or IEC quality semantics. This is reception/parsing evidence, not calibrated measurement or formal conformance certification.
Dependency
The required reusable SV core was merged through
masarray/ARIEC61850#45. ARSAS builds against the validated engine content represented by commitfcc05de1f4b11560195e2589aa032e1d4c4b95f7, now integrated intoARIEC61850/mainby squash commit0f8453182957900bc6d91287fb8177c8d9762188.Validation
Build ARSAS run 679 completed successfully:
No unresolved review thread remains.
Post-merge field acceptance
The following remain acceptance tests before broader interoperability or measurement claims:
nofASDU=1and multi-ASDU replayThe feature remains passive and transmits no process-bus frame.