fixed event connection

master
Bernhard Trinnes 2018-06-13 23:36:32 +02:00 committed by Michael Zanetti
parent ac6318a10d
commit 12ea438ef7
2 changed files with 7 additions and 10 deletions

View File

@ -55,7 +55,6 @@ DeviceManager::DeviceSetupStatus DevicePluginSerialPortCommander::setupDevice(De
qCDebug(dcSerialPortCommander()) << "Setup successfully serial port" << interface;
SerialPortCommander *serialPortCommander = new SerialPortCommander(serialPort, this);
connect(serialPortCommander, &SerialPortCommander::commandReceived, this, &DevicePluginSerialPortCommander::onCommandReceived);
m_serialPortCommanders.insert(interface, serialPortCommander);
} else {
@ -85,17 +84,15 @@ DeviceManager::DeviceSetupStatus DevicePluginSerialPortCommander::setupDevice(De
qCWarning(dcSerialPortCommander()) << "Could not open serial port" << interface << serialPort->errorString();
return DeviceManager::DeviceSetupStatusFailure;
}
qCDebug(dcSerialPortCommander()) << "Setup successfully serial port" << interface;
connect(serialPort, SIGNAL(error(QSerialPort::SerialPortError)), this, SLOT(onSerialError(QSerialPort::SerialPortError)));
connect(serialPort, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
SerialPortCommander *serialPortCommander = new SerialPortCommander(serialPort, this);
connect(serialPortCommander, SIGNAL(commandReceived(Device *)), this, SLOT(onCommandReceived(Device *)));
serialPortCommander->addInputDevice(device);
m_serialPortCommanders.insert(interface, serialPortCommander);
} else {
SerialPortCommander *serialPortCommander = m_serialPortCommanders.value(interface);
//connect(serialPortCommander, SIGNAL(commandReceived(Device *), this, SLOT(onCommandReceived(Device *));
connect(serialPortCommander, SIGNAL(commandReceived(Device *)), this, SLOT(onCommandReceived(Device *)));
serialPortCommander->addInputDevice(device);
}
return DeviceManager::DeviceSetupStatusSuccess;
@ -138,8 +135,8 @@ DeviceManager::DeviceError DevicePluginSerialPortCommander::discoverDevices(cons
deviceDescriptors.append(descriptor);
} else {
qCDebug(dcSerialPortCommander()) << "Found Serial interface:" << port.portName();
QString description = port.manufacturer() + " | " + port.description();
qCDebug(dcSerialPortCommander()) << "Found serial port:" << port.portName();
QString description = port.manufacturer() + " " + port.description();
DeviceDescriptor descriptor(deviceClassId, port.portName(), description);
ParamList parameters;
@ -190,6 +187,7 @@ void DevicePluginSerialPortCommander::deviceRemoved(Device *device)
serialPortCommander->removeInputDevice(device);
if (serialPortCommander->isEmpty()) {
m_serialPortCommanders.remove(interface);
serialPortCommander->serialPort()->close();
serialPortCommander->deleteLater();
}
}
@ -200,6 +198,7 @@ void DevicePluginSerialPortCommander::deviceRemoved(Device *device)
serialPortCommander->removeOutputDevice();
if (serialPortCommander->isEmpty()) {
m_serialPortCommanders.remove(interface);
serialPortCommander->serialPort()->close();
serialPortCommander->deleteLater();
}
}

View File

@ -45,8 +45,6 @@ public:
void init() override;
private:
//QHash<Device *, QSerialPort *> m_outputSerialPorts;
//QHash<Device *, QSerialPort *> m_inputSerialPorts;
QHash<QString, SerialPortCommander *> m_serialPortCommanders;
private slots: