Fix command reliability, fast IED liveness, and event-first monitoring - #11
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d618388594
ℹ️ 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".
| return (liveArmed || testMode) && supportsOperate && !busy; | ||
| var current = values.ElementAtOrDefault(4)?.ToString() ?? string.Empty; | ||
| var command = parameter?.ToString() ?? string.Empty; | ||
| return (liveArmed || testMode) && supportsOperate && !busy && !AlreadyActive(command, current); |
There was a problem hiding this comment.
Allow test commands for the active state
When CommandTestMode is checked and the current feedback already matches the button, this binding still disables that button because AlreadyActive(...) is always applied. ExecuteQuickControlAsync explicitly skips duplicate suppression in test mode (!CommandTestMode), so the UI prevents a valid test Open/Close/True/False command from ever reaching that path whenever the device is already in the requested state.
Useful? React with 👍 / 👎.
Root cause from the field debug output
The apparent two-click command problem is not a lost WPF click. The diagnostic report shows rejected redundant SBO commands where process feedback was already at the requested state, followed by a successful command to the opposite state. The UI also floods the debugger with an invalid implicit
DataGridRowbinding toIsRecentlyChangedonSignalDefinition, creating avoidable UI work and hiding useful exceptions.The delayed green-to-red connection state came from two runtime issues: the monitor loop reset session-error counters on every otherwise successful pass, and the device view-model was not marked offline until reconnect processing had progressed.
Commands
SBO • Enhanced securityandSBO • Normal security.Fast connection health
Event-first and lightweight acquisition
Layout and debugger cleanup
IsRecentlyChangedtrigger while retaining explicit flash styling on live monitor grids.Validation
GitHub Actions completed successfully:
The field-test document covers single-sequence Open/Close, rapid offline indication, automatic reconnect, report-primary acquisition, and debugger binding-noise verification.