Я пытаюсь разработать пользовательский интерфейс в Qt для проекта Academi c, который отправляет последовательные сообщения в микроконтроллер. Я борюсь с закрытием последовательного порта, хотя: пользовательский интерфейс должен отправить последовательное сообщение в микроконтроллер, прежде чем закрыть последовательный порт. Это часть кода, которая управляет этой операцией:
device->write(QString("ABORT___").toStdString().c_str());
displayMessage("Disconnected");
deviceIsConnected = false;
device->close();
ui->PortComboBox->setEnabled(true);
ui->tabWidget->setEnabled(false);
ui->ConnectButton->setText("Connect");
ui->ConnectionStatus->setText("<span style=\" color:#e1d41f;\">DISCONNECTED</span>");
Проблема состоит в том, что этот код закрывает порт до того, как сообщение фактически отправлено, фактически, если я пытаюсь прокомментировать эту строку device->close();
код работает как положено. Похоже, что порт закрыт до отправки сообщения, даже если после него находится строка, управляющая закрытием порта. Даже если я попытаюсь вложить строку device->close();
в некоторые операторы if, проблема не исчезнет.
Можете ли вы мне помочь?