LINUX.ORG.RU

История изменений

Исправление dhampire, (текущая версия) :

void ComPort:writeDataSlot(const QByteArray& data)
{
        qint64 bytesWritten = m_serial->write(data);
        if (bytesWritten == -1) {
                output_to_log(QString("Failed to write the data to port %1, error: %2").arg(m_serial->portName()).arg(m_serial->errorString()));
        } else if (bytesWritten != data.size()) {
                output_to_log(QString("Failed to write all the data to port %1, error: %2").arg(m_serial->portName()).arg(m_serial->errorString()));
        } else if (!m_serial->waitForBytesWritten(5000)) {
                output_to_log(QString("Operation timed out or an error occurred for port %1, error: %2").arg(m_serial->portName()).arg(m_serial->errorString()));
        }
}

как минимум ты не проверяешь код возврата из write .... про сигнал-слоты уже написали

Исходная версия dhampire, :

/// Write data
void ComPort::slotWriteData(const QByteArray& data)
{
        qint64 bytesWritten = m_serial->write(data);
        //m_serial->flush();
        if (bytesWritten == -1) {
                output_to_log(QString("Failed to write the data to port %1, error: %2").arg(m_serial->portName()).arg(m_serial->errorString()));
        } else if (bytesWritten != data.size()) {
                output_to_log(QString("Failed to write all the data to port %1, error: %2").arg(m_serial->portName()).arg(m_serial->errorString()));
        } else if (!m_serial->waitForBytesWritten(5000)) {
                output_to_log(QString("Operation timed out or an error occurred for port %1, error: %2").arg(m_serial->portName()).arg(m_serial->errorString()));
        }
}

как минимум ты не проверяешь код возврата из write .... про сигнал-слоты уже написали