halmodule: fix inverted success check in port read() and peek() - #4593
Merged
Merged
Conversation
hal_port_read() and hal_port_peek() return true when the bytes were copied. The check was inverted, so a successful read or peek returned False, and read() had already consumed the data. Add tests/halmodule/port covering write, peek, peek_commit and read.
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.
hal_port_read()andhal_port_peek()return true when the bytes were copied, butpyhal_port_read_peek()treated true as failure. A successfulread()/peek()on a port pin returnedFalse, andread()had already consumed the data, so reading a port from Python never worked. Introduced in da53107 (#4061); master only.The fix inverts the check, giving the behavior the docs describe ("Returns a bytes buffer upon success or
Falseon failure", python-hal-interface.adoc) and the old pyhal module had. The newtests/halmodule/portwrites to a port and checkspeek,peek_commitandread. It fails without the fix and passes with it.Found while adding port pins to #4251.