diff --git a/src/dynamixelserver_serial.cpp b/src/dynamixelserver_serial.cpp index 26c6587457aaef4cec887181cf47b5408186548a..2d55c3d434b451d771fb43f33b30a9123e7b1b3c 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