提示:本文为学习记录,若有错误,请联系作者。
前言
生活在阴沟里,也要记得仰望星空。
一、目的
在程序运行过程中(串口已打开的情况下),人为的误操作,导致串口断开,避免出现未知的异常,所以在程序中添加此代码,实时检测串口是否断开。
二、代码
1.连接
qRegisterMetaType<QSerialPort::SerialPortError>("CRunThread");
connect(&m_DAQpro.m_serial, &QSerialPort::errorOccurred,this, &CRunThread::handleSerialError);
2.槽函数
void CRunThread::handleSerialError(QSerialPort::SerialPortError)
{
if(m_DAQpro.m_serial.error() == QSerialPort::ResourceError && m_DAQpro.m_serial.isOpen())
{
emit sig_ShowMsg("请检查串口连接",false);
}
}
错误类型包括:
QSerialPort::NoError:没有错误。
QSerialPort::DeviceNotFoundError:找不到设备。
QSerialPort::PermissionError:没有足够的权限。
QSerialPort::OpenError:打开设备时出错。
QSerialPort::ParityError:奇偶校验错误。
QSerialPort::FramingError:帧错误。
QSerialPort::BreakConditionError:断线条件错误。
QSerialPort::WriteError:写数据时出错。
QSerialPort::ReadError:读数据时出错。
QSerialPort::ResourceError:设备被意外移除或系统资源不足。
QSerialPort::UnsupportedOperationError:不支持的操作。
QSerialPort::UnknownError:未知错误。
QSerialPort::TimeoutError:操作超时。
QSerialPort::NotOpenError:尝试操作一个未打开的设备。
总结
善于总结,多进一步。