1、自动连接
主要是通过开机获取所有的端口名,然后使用定时器,将每个端口都发送来连接命令,查看是否有回应
void MainWindow::GetSerialPortNames()
{
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
nameSerialPort[countPort++] = info.portName();
}
}
void MainWindow::handleTimeout()
{
if(!connectSuccess)
{
my_SerialPort->close();
//m_count是已经连接的端口数,countport是总共的端口数
if(m_count >= countPort)
{
m_pTimer->stop();
ui->label_status->setText("未连接");
QMessageBox::critical(this, tr("Error"), "打开串口失败!");
ui->Btn_Reconnect->setEnabled(true);
return;
}
ui->label_status->setText("正在连接...");
my_SerialPort->setPortName(nameSerialPort[m_count++]);
if(my_SerialPort->open(QIODevice::ReadWrite))
{
sendCommand(connectBuffer);
}
}
else
{
m_count =