Fix problem on SerialPort ReadBufferAsync #132
Merged
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.
Description
This fixes a problem which caused the ReadBufferAsync etc to get in a tight loop. Trying to read data but finding the device handle is invalid which creates an exception. The calling code will try to connect again but picks up invalid handle as it thinks it still connected then tries to do a read again.
The original problem is that LoadAsync(32) initially only returns 19 bytes when the ESP32 is rebooting after a deploy.
Because it created a buffer of 32 bytes the ReadBytes tries to read 32 bytes from stream but there are only 19 available so we get an exception, data out of range.
This never ending loop also causes the Visual Studio to not close properly and processes are left in the background using lots of CPU time.
Types of changes
Checklist:
Signed-off-by: adriansoundyadriansoundy@gmail.com