mirror of
https://gitlab.com/obbart/universal_robots_ros_driver.git
synced 2026-04-10 10:00:48 +02:00
Fixed set_io service to work with 3.x
This commit is contained in:
@@ -49,6 +49,7 @@ private:
|
|||||||
bool reverse_connected_;
|
bool reverse_connected_;
|
||||||
double servoj_time_;
|
double servoj_time_;
|
||||||
bool executing_traj_;
|
bool executing_traj_;
|
||||||
|
double firmware_version_;
|
||||||
public:
|
public:
|
||||||
UrRealtimeCommunication* rt_interface_;
|
UrRealtimeCommunication* rt_interface_;
|
||||||
UrCommunication* sec_interface_;
|
UrCommunication* sec_interface_;
|
||||||
|
|||||||
@@ -181,7 +181,8 @@ bool UrDriver::uploadProg() {
|
|||||||
cmd_str += "\t\t\telif state == SERVO_RUNNING:\n";
|
cmd_str += "\t\t\telif state == SERVO_RUNNING:\n";
|
||||||
|
|
||||||
if (sec_interface_->robot_state_->getVersion() >= 3.1)
|
if (sec_interface_->robot_state_->getVersion() >= 3.1)
|
||||||
sprintf(buf, "\t\t\t\tservoj(q, t=%.4f, lookahead_time=0.03)\n", servoj_time_);
|
sprintf(buf, "\t\t\t\tservoj(q, t=%.4f, lookahead_time=0.03)\n",
|
||||||
|
servoj_time_);
|
||||||
else
|
else
|
||||||
sprintf(buf, "\t\t\t\tservoj(q, t=%.4f)\n", servoj_time_);
|
sprintf(buf, "\t\t\t\tservoj(q, t=%.4f)\n", servoj_time_);
|
||||||
cmd_str += buf;
|
cmd_str += buf;
|
||||||
@@ -246,8 +247,8 @@ void UrDriver::closeServo(std::vector<double> positions) {
|
|||||||
bool UrDriver::start() {
|
bool UrDriver::start() {
|
||||||
if (!sec_interface_->start())
|
if (!sec_interface_->start())
|
||||||
return false;
|
return false;
|
||||||
rt_interface_->robot_state_->setVersion(
|
firmware_version_ = sec_interface_->robot_state_->getVersion();
|
||||||
sec_interface_->robot_state_->getVersion());
|
rt_interface_->robot_state_->setVersion(firmware_version_);
|
||||||
if (!rt_interface_->start())
|
if (!rt_interface_->start())
|
||||||
return false;
|
return false;
|
||||||
ip_addr_ = rt_interface_->getLocalIp();
|
ip_addr_ = rt_interface_->getLocalIp();
|
||||||
@@ -295,15 +296,34 @@ void UrDriver::setFlag(unsigned int n, bool b) {
|
|||||||
}
|
}
|
||||||
void UrDriver::setDigitalOut(unsigned int n, bool b) {
|
void UrDriver::setDigitalOut(unsigned int n, bool b) {
|
||||||
char buf[256];
|
char buf[256];
|
||||||
sprintf(buf, "sec setOut():\n\tset_digital_out(%d, %s)\nend\n", n,
|
if (firmware_version_ < 2) {
|
||||||
b ? "True" : "False");
|
sprintf(buf, "sec setOut():\n\tset_digital_out(%d, %s)\nend\n", n,
|
||||||
|
b ? "True" : "False");
|
||||||
|
} else if (n > 9) {
|
||||||
|
sprintf(buf,
|
||||||
|
"sec setOut():\n\tset_configurable_digital_out(%d, %s)\nend\n",
|
||||||
|
n - 10, b ? "True" : "False");
|
||||||
|
} else if (n > 7) {
|
||||||
|
sprintf(buf, "sec setOut():\n\tset_tool_digital_out(%d, %s)\nend\n",
|
||||||
|
n - 8, b ? "True" : "False");
|
||||||
|
|
||||||
|
} else {
|
||||||
|
sprintf(buf, "sec setOut():\n\tset_standard_digital_out(%d, %s)\nend\n",
|
||||||
|
n, b ? "True" : "False");
|
||||||
|
|
||||||
|
}
|
||||||
rt_interface_->addCommandToQueue(buf);
|
rt_interface_->addCommandToQueue(buf);
|
||||||
print_debug(buf);
|
print_debug(buf);
|
||||||
|
|
||||||
}
|
}
|
||||||
void UrDriver::setAnalogOut(unsigned int n, double f) {
|
void UrDriver::setAnalogOut(unsigned int n, double f) {
|
||||||
char buf[256];
|
char buf[256];
|
||||||
sprintf(buf, "sec setOut():\n\tset_analog_out(%d, %1.4f)\nend\n", n, f);
|
if (firmware_version_ < 2) {
|
||||||
|
sprintf(buf, "sec setOut():\n\tset_analog_out(%d, %1.4f)\nend\n", n, f);
|
||||||
|
} else {
|
||||||
|
sprintf(buf, "sec setOut():\n\tset_standard_analog_out(%d, %1.4f)\nend\n", n, f);
|
||||||
|
}
|
||||||
|
|
||||||
rt_interface_->addCommandToQueue(buf);
|
rt_interface_->addCommandToQueue(buf);
|
||||||
print_debug(buf);
|
print_debug(buf);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user