bool open() { bool device_opened = false; if (is_open()) { if (debug) std::cout << "serial already opened" << std::endl; } else { m_serial.setPort(m_device_port); m_serial.setBaudrate(115200); //serial::Timeout t(1000, 1000); m_serial.setTimeout(serial::Timeout::simpleTimeout(2000)); m_serial.open(); // Open port if (m_serial.isOpen()) { m_serial.flush(); // Check if the device is well a Wattsup if (identify()) { m_serial.flush(); device_opened = true; } else { m_serial.close(); } } } return device_opened; }
void close() { if (m_closing) return; m_closing = true; if (is_open()) { // Internal logging 600s Packet p; WattsupCommand::SetupInternalLogging600s(p); write(p); m_serial.flush(); } m_serial.close(); m_buf_len = 0; m_commands.clear(); m_closing = false; //this->fileLog("Device closed ! [" + m_device_port + "]"); }