解决多台同型号设备连接时连接失败的问题

This commit is contained in:
yangjiaxuan 2024-05-16 13:55:14 +08:00
parent 0eff99b378
commit b5a4dd7fa9
1 changed files with 26 additions and 24 deletions

View File

@ -37,45 +37,45 @@ int Dialog_device_select::getDevId()
void Dialog_device_select::processSameDeviceType()
{
int len = ui->listWidget->count();
for (int i = 0; i < len - 1; ++i)
{
for (int j = i + 1; j < len; ++j)
QString devName = ui->listWidget->item(i)->text();
if (devName.contains(" - "))
{
QString devName = ui->listWidget->item(i)->text();
devName.truncate(devName.lastIndexOf(" - "));
if (devName.contains(" - "))
{
devName.truncate(devName.lastIndexOf(" - "));
if (!devName.contains(" - "))
{
devName = ui->listWidget->item(i)->text();
}
}
}
QString devName2 = ui->listWidget->item(j)->text();
QString devName2;
for (int j = 0; j < len - 1; ++j)
{
if (i == j)
j++;
devName2 = ui->listWidget->item(j)->text();
devName2.truncate(devName2.lastIndexOf(" - "));
if (devName2.contains(" - "))
{
devName2.truncate(devName2.lastIndexOf(" - "));
if (!devName2.contains(" - "))
{
devName2 = ui->listWidget->item(j)->text();
}
}
if (devName == devName2)
{
QString serialNum;
QString serialNum2;
for (int i = 0; i < m_devs.size(); ++i)
{
if (devName == QString::fromStdString(m_devs[i].name))
serialNum = QString::fromStdString(m_devs[i].name);
if (ui->listWidget->item(i)->text() == QString::fromStdString(m_devs[i].name))
serialNum = QString::fromStdString(m_devs[i].sn);
if (ui->listWidget->item(j)->text() == QString::fromStdString(m_devs[j].name))
serialNum2 = QString::fromStdString(m_devs[j].sn);
if (devName2 == QString::fromStdString(m_devs[i].name))
serialNum2 = QString::fromStdString(m_devs[i].name);
}
ui->listWidget->item(i)->setText(ui->listWidget->item(i)->text() + "(" + serialNum + ")");
ui->listWidget->item(j)->setText(ui->listWidget->item(j)->text() + "(" + serialNum2 + ")");
if (!ui->listWidget->item(i)->text().contains(QString::fromStdString(m_devs[i].sn)))
ui->listWidget->item(i)->setText(ui->listWidget->item(i)->text() + "(" + serialNum + ")");
if (!ui->listWidget->item(j)->text().contains(QString::fromStdString(m_devs[j].sn)))
ui->listWidget->item(j)->setText(ui->listWidget->item(j)->text() + "(" + serialNum2 + ")");
}
}
}
@ -89,11 +89,13 @@ void Dialog_device_select::on_pbtn_ok_clicked()
}
else
{
std::string selectDev = ui->listWidget->currentItem()->text().toStdString();
QString selectDev = ui->listWidget->currentItem()->text();
for (int i = 0; i < m_devs.size(); ++i)
{
if (m_devs[i].name == selectDev)
if (selectDev.contains(QString::fromStdString(m_devs[i].sn)))
selectDev.truncate(selectDev.lastIndexOf("("));
if (m_devs[i].name == selectDev.toStdString())
{
m_devId = m_devs[i].id;
break;