Use serialport-rs overlapped-io for better windows io.[CPP-801] #744
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.
serialport-rs moved to github so most of the comments are still on gitlab. This PR incorporates a serialport-rs PR in flight, hopefully will merge soon, unfortunately the behavior they abstract for COMMTIMEOUTS is still not ideal for our setup.
Here is the gitlab PR:
https://gitlab.com/susurrus/serialport-rs/-/merge_requests/91
And now the new github PR:
serialport/serialport-rs#55
Here is the additional commit I threw ontop of the overlapping-io fork:
swift-nav/serialport-rs@64ccc6f
I tried the combination of #1, Polling Read, and #3, Blocking Read, but #1 was not working well at all. It says #3 is similar to Linux but with a small delay. The console appears to run fine with this option.
https://gitlab.com/susurrus/serialport-rs/-/merge_requests/78#note_343695538
This PR (USB) and serial is comparable < 2 seconds :
Screen.Recording.2022-09-20.at.11.41.25.AM.mov
main branch (USB) and serial is terrible < 15 seconds :
Screen.Recording.2022-09-20.at.11.42.16.AM.mov