-
Notifications
You must be signed in to change notification settings - Fork 181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue #25 fix #33
Issue #25 fix #33
Conversation
…ecuted in parallel with colliding on the same ports
…strial_core into issue25_recv_bytes
…to receive all desired bytes
I may need you to help talk me through this. A few questions:
It seems like you've addressed split-packet concerns (repeated READ calls until expected # of bytes received), but there is still no way for high-level users to specify an overall timeout on a read. To higher-level code, it will still appear as if the code is blocking "forever" until the requested data has been read. This is okay, but we should log a new enhancement issue to track this need. Ideally, I would like to see this fix include the API changes required to implement a true read-timeout, specified by the user during a call to receiveBytes(). This could be propagated through the existing code base using parameters that default to wait-forever, so as to not break existing code. There may be some higher-level concerns, though, as I don't think the simple_message protocol will gracefully handle the case where only part of a message is read. It will probably require the user to drop/re-establish connection to reset the simple_message data stream. |
@JeremyZoss, I had a long response typed out, but then github lost it. So in short, I made some modifications to address your concerns. As far as a read timeout, I think we should submit a new issue to address that. |
…ipulation_crashes_in_eigen_calls - Issue ros-industrial#31 demo manipulation crashes in eigen calls
These changes address split packet issues associated with the tcp socket read command (issue #25).
The read command was changed to utilize the socket select function to query the socket buffer state. This allows the read to poll the socket for new data in a "interrupt-able" way. This means that "Control-C" will break out of the program as expected. The previous approach of simply reading or performing a blocking read did not seem to work this way.
Unit tests were performed that demonstrated the problem and verified the fix.
Minor changes were made to allow parallel test execution (default under catkin).