mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-22 19:43:34 +08:00
Fixed timeouts in uavcan_linux::BlockingServiceClient
This commit is contained in:
@@ -67,9 +67,21 @@ public:
|
|||||||
* Returns negative error code.
|
* Returns negative error code.
|
||||||
*/
|
*/
|
||||||
int blockingCall(uavcan::NodeID server_node_id, const typename DataType::Request& request)
|
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);
|
const auto SpinDuration = uavcan::MonotonicDuration::fromMSec(2);
|
||||||
setup();
|
setup();
|
||||||
|
Super::setRequestTimeout(timeout);
|
||||||
const int call_res = Super::call(server_node_id, request);
|
const int call_res = Super::call(server_node_id, request);
|
||||||
if (call_res >= 0)
|
if (call_res >= 0)
|
||||||
{
|
{
|
||||||
@@ -85,18 +97,6 @@ public:
|
|||||||
return call_res;
|
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.
|
* Whether the last blocking call was successful.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user