From b32ef64dba793c70bd150a051771cd5b1cb37d69 Mon Sep 17 00:00:00 2001 From: Sergi Hernandez Juan <shernand@iri.upc.edu> Date: Tue, 9 Jul 2019 11:22:54 +0200 Subject: [PATCH] Solved a bug when the first attempt to configure the bus failed (the communications object was not properly handled). --- src/dynamixelserver_serial.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/dynamixelserver_serial.cpp b/src/dynamixelserver_serial.cpp index 26c6587..2d55c3d 100644 --- a/src/dynamixelserver_serial.cpp +++ b/src/dynamixelserver_serial.cpp @@ -41,15 +41,18 @@ void CDynamixelServerSerial::config_bus(const std::string &device, int baudrate) { TRS232_config serial_config; - serial_config.baud=baudrate; - serial_config.num_bits=8; - serial_config.parity=none; - serial_config.stop_bits=1; - this->comm_dev=new CRS232(device); - this->comm_dev->open((void *)&device); - this->comm_dev->config(&serial_config); - this->bus_info.baud_rate=baudrate; - this->bus_info.device=device; + if(this->comm_dev==NULL) + { + serial_config.baud=baudrate; + serial_config.num_bits=8; + serial_config.parity=none; + serial_config.stop_bits=1; + this->comm_dev=new CRS232(device); + this->comm_dev->open((void *)&device); + this->comm_dev->config(&serial_config); + this->bus_info.baud_rate=baudrate; + this->bus_info.device=device; + } } #ifdef _HAVE_XSD -- GitLab