- 创建
需要在子线程的 run() 里创建。如:
void SerialPortThread::run()
{
QSerialPort m_serial;
}
- 串口设置 / 关闭 / 打开
也需要在子线程的 run() 里操作。如:
void SerialPortThread::run()
{
QSerialPort m_serial;
while (!m_quit)
{
m_serial.close();
m_serial.setPortName(serialPortSet.name);
m_serial.setBaudRate(serialPortSet.baudRate);
m_serial.setDataBits(serialPortSet.dataBits);
m_serial.setParity(serialPortSet.parity);
m_serial.setStopBits(serialPortSet.stopBits);
m_serial.setFlowControl(serialPortSet.flowControl);
if (m_serial.open(QIODevice::ReadWrite)) {
emit this->status("SerialPort open is successful\n");
isConnect = true;
m_quit = false;
}
else{
QString errorStr = tr("Can't open %1, errorCode %2\n").arg(serialPortSet.name).arg(m_serial.error());
emit this->status(errorStr.toUtf8());
isConnect = false;
return;
}
}
}