Conversation
BanjoR
marked this pull request as ready for review
August 17, 2026 09:32
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary Refresh the TCP EX-IOExpander client work from preliminary PR #502 in the context of issue #372. ## Scope and related work - Reconcile poll-response framing with the separate EX-IOExpander TCP server PR #65, accepting tagged payloads while retaining raw-payload compatibility. - Retry partial Client::write results so frames cannot be truncated. - Add a dependency-free PowerShell loopback harness for fragmented frames, tagged/raw polls, error responses, reconnect after disconnect, and two independent client sessions. - Personal integration code and unrelated protocol behavior are explicitly out of scope. ## Validation evidence - pwsh -NoProfile -File test/tcp_client_protocol.tests.ps1 passed all 5 cases. - git diff --check and the scoped source/path audit passed. - PASS - Exact default
python -m platformio runin a clean task checkout with an isolated PlatformIO core completed for all five configured environments:mega2560,ESP32,Nucleo-F411RE,Nucleo-F446RE, andNucleo-F429ZI. - No superseded BanjoR PR was identified; PR #502 is the linked preliminary contribution being refreshed.87d8c817fc17b8424f8558de54030576e243adf4; the available CommandStation fork CI is push-triggered and did not record a run for this head.action_requiredwith no firmware jobs; neither is build validation. ## Hardware validation Hardware validation: Not run—no hardware available. Maintainer bench criteria: connect a CommandStation and EX-IOExpander TCP server, exercise fragmented and complete tagged/raw poll frames, malformed/error responses, disconnect/reconnect, partial writes, and two independent client sessions; verify no truncation or cross-session state leakage. This PR is ready for maintainer review; network/hardware bench validation remains outstanding; local five-environment compilation is complete.Current exact-head CI status
N/A — No BanjoR fork Actions run exists for exact head
87d8c817fc17b8424f8558de54030576e243adf4; no hosted code-test result is claimed. Local validation above is the available evidence.