In i2c_read() check endTransmission() and requestFrom() to ensure data returned is valid #11
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.
I believe this change addresses issues like #10 and maaad/RadSens1v2/issues/3 where i2c communications issues were not detected and therefore erroneous values were returned to the caller.
As documented here Arduino Wire endTransmission() documentation
endTransmission() returns 0 on success and other values on error.
In the case of an error i2c_read() now returns false so callers do
not try to interpret invalid data.
As documented here Arduino Wire requestFrom() documentation
requestFrom() returns the number of bytes returned from the peripheral.
In the case of fewer bytes returned than the number requested in
i2c_read() return false to callers so they do not try to interpret
invalid data.