Homepage GitHub

ServiceClient timeot



I am performing a client service call to a service server with default timeout settings.
When I look in gui tool I see that the call and response looks normal, no long delay in between. However, I get a timeout on the client side (looking in uavcan::ServiceCallResult& result.getStatus() when callback is fired).

I am performing other client calls to the same server with good results (no timeout), but those responses are smaller in size.

I am using the performBlockingServiceCall() method described in tutorials to perform the calls.

Am I missing something?

Kind regards

EDIT: The other call I am doing is GetNodeInfo
Setup: Client app — Beaglebone (Debian) — LAWICEL dongle (slcan) — PC running Ubuntu as VM — Server app
The GUI is running in Ubuntu on PC


I just noticed that if I reduce the amount of data in the response from server, it works!

Can it be a buffering issue in LAWICEL CANUSB dongle?
Has someone encountered similar issues?


After further investigation, I notices that one server response CAN frame is missing on client side.
In the screendump: candump tool on client side is telling me that one frame is missing (red arrow).

(Pavel Kirienko) #4

Looks like your SLCAN adapter is losing frames. Which is unfortunate but I can’t immediately find a robust solution, the only thing that comes to mind is to somehow throttle the data that is sent to the adapter. Consider either adding a throttling option to the PyUAVCAN SLCAN driver (a PR would be useful for people with similar issues), or just complaining to the vendor of your adapter.


Yes it looks like so… I will replace my PC node with another embedded device to confirm it. Perhaps you suggested adapter works better? The one from 8…something…

Thanks for the reply!

(Pavel Kirienko) #6

Off the top of my head I can suggest 8devices USB2CAN and of course Zubax Babel.


Thanks! :+1: