-
-
Notifications
You must be signed in to change notification settings - Fork 194
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
Improve RPC Client Response RX pipeline #228
Comments
The The removal of the constraint that a new transfer must arrive from the same interface as the previous one (the same can be achieved by removing the A possible solution that does not introduce undesirable side effects is to add a new acceptance condition: const bool restartable = (same_transport && tid_new) || // unchanged
(same_transport && tid_timeout) || // unchanged
(tid_timeout && tid_new) || // unchanged
(tid_timeout && tid_match && idle); // new where: const bool tid_match = rxs->transfer_id == frame->transfer_id;
const bool idle = 0U == rxs->total_payload_size; The purpose of Can you please check this? |
added one more case when it's allowed to "restart" transfer reassembly with different transport interface see #228 --------- Co-authored-by: Pavel Kirienko <[email protected]>
… some todos. (#384) - Addressed several TODOs: - // TODO: Switch to `transport::PayloadFragments`. - // TODO: Move `tryDeserialize` method to some common place - Added new `TestCanSvcRxSessions::receive_multiple_tids_frames` - reproduces exactly what is described at the OpenCyphal/libcanard#228 - Added new `example_1_presentation_3_hb_getinfo_ping_linux_can.cpp` example app - it's similar to `example_1_presentation_1_ping_user_service_udp.cpp` but with CAN transport.
Currently I observe RPC client response timeouts b/c of periodic drops of incoming RX frames. Here is PDF diagram build on
candump
analysis (attached as well).Zubax_LibCyphal_CanTraffic.pdf
candump13-2024-09-11_163217.log
candump02-2024-09-11_163221.log
I'm not sure whether it is correct fix or not but the following patch makes such timeouts go away:
The text was updated successfully, but these errors were encountered: