Fixed timeouts in uavcan_linux::BlockingServiceClient

This commit is contained in:
Pavel Kirienko 2014-07-15 14:18:22 +04:00
parent 476d8b8513
commit 9d36eef359

View File

@ -67,9 +67,21 @@ public:
* Returns negative error code.
*/
int blockingCall(uavcan::NodeID server_node_id, const typename DataType::Request& request)
{
return blockingCall(server_node_id, request, Super::getDefaultRequestTimeout());
}
/**
* Performs a blocking service call using the specified timeout. Please consider using default timeout instead.
* Use @ref getResponse() to get the actual response.
* Returns negative error code.
*/
int blockingCall(uavcan::NodeID server_node_id, const typename DataType::Request& request,
uavcan::MonotonicDuration timeout)
{
const auto SpinDuration = uavcan::MonotonicDuration::fromMSec(2);
setup();
Super::setRequestTimeout(timeout);
const int call_res = Super::call(server_node_id, request);
if (call_res >= 0)
{
@ -85,18 +97,6 @@ public:
return call_res;
}
/**
* Performs a blocking service call using the specified timeout. Please consider using default timeout instead.
* Use @ref getResponse() to get the actual response.
* Returns negative error code.
*/
int blockingCall(uavcan::NodeID server_node_id, const typename DataType::Request& request,
uavcan::MonotonicDuration timeout)
{
Super::setRequestTimeout(timeout);
return blockingCall(server_node_id, request);
}
/**
* Whether the last blocking call was successful.
*/