mirror of
https://gitlab.com/obbart/universal_robots_ros_driver.git
synced 2026-04-12 11:00:47 +02:00
added exceptions for problems in rtde client handshake
This commit is contained in:
@@ -53,7 +53,8 @@ bool RTDEClient::init()
|
|||||||
size = RequestProtocolVersionRequest::generateSerializedRequest(buffer, protocol_version);
|
size = RequestProtocolVersionRequest::generateSerializedRequest(buffer, protocol_version);
|
||||||
stream_.write(buffer, size, written);
|
stream_.write(buffer, size, written);
|
||||||
std::unique_ptr<comm::URPackage<PackageHeader>> package;
|
std::unique_ptr<comm::URPackage<PackageHeader>> package;
|
||||||
pipeline_.getLatestProduct(package, std::chrono::milliseconds(1000));
|
if (!pipeline_.getLatestProduct(package, std::chrono::milliseconds(1000)))
|
||||||
|
throw UrException("Could not get urcontrol version from robot. This should not happen!");
|
||||||
rtde_interface::RequestProtocolVersion* tmp_version =
|
rtde_interface::RequestProtocolVersion* tmp_version =
|
||||||
dynamic_cast<rtde_interface::RequestProtocolVersion*>(package.get());
|
dynamic_cast<rtde_interface::RequestProtocolVersion*>(package.get());
|
||||||
if (!tmp_version->accepted_)
|
if (!tmp_version->accepted_)
|
||||||
@@ -61,12 +62,12 @@ bool RTDEClient::init()
|
|||||||
protocol_version = 1;
|
protocol_version = 1;
|
||||||
size = RequestProtocolVersionRequest::generateSerializedRequest(buffer, protocol_version);
|
size = RequestProtocolVersionRequest::generateSerializedRequest(buffer, protocol_version);
|
||||||
stream_.write(buffer, size, written);
|
stream_.write(buffer, size, written);
|
||||||
pipeline_.getLatestProduct(package, std::chrono::milliseconds(1000));
|
if (!pipeline_.getLatestProduct(package, std::chrono::milliseconds(1000)))
|
||||||
|
throw UrException("Could not get urcontrol version from robot. This should not happen!");
|
||||||
tmp_version = dynamic_cast<rtde_interface::RequestProtocolVersion*>(package.get());
|
tmp_version = dynamic_cast<rtde_interface::RequestProtocolVersion*>(package.get());
|
||||||
if (!tmp_version->accepted_)
|
if (!tmp_version->accepted_)
|
||||||
{
|
{
|
||||||
LOG_ERROR("Could not negotiate protocol version");
|
throw UrException("Neither protocol version 1 nor 2 were accepted by the robot. This should not happen!");
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,7 +109,8 @@ bool RTDEClient::start()
|
|||||||
size = ControlPackageStartRequest::generateSerializedRequest(buffer);
|
size = ControlPackageStartRequest::generateSerializedRequest(buffer);
|
||||||
std::unique_ptr<comm::URPackage<PackageHeader>> package;
|
std::unique_ptr<comm::URPackage<PackageHeader>> package;
|
||||||
stream_.write(buffer, size, written);
|
stream_.write(buffer, size, written);
|
||||||
pipeline_.getLatestProduct(package, std::chrono::milliseconds(1000));
|
if (!pipeline_.getLatestProduct(package, std::chrono::milliseconds(1000)))
|
||||||
|
throw UrException("Could not get respone to rtde communication start request from robot. This should not happen!");
|
||||||
rtde_interface::ControlPackageStart* tmp = dynamic_cast<rtde_interface::ControlPackageStart*>(package.get());
|
rtde_interface::ControlPackageStart* tmp = dynamic_cast<rtde_interface::ControlPackageStart*>(package.get());
|
||||||
return tmp->accepted_;
|
return tmp->accepted_;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user