Добрый день! Программирую программу с динамическими добавления соединения с ком портами(на случай если, много устройств).
Необходимо сделать вывод принятых данных с каждого порта на свое окно, после нажатия кнопки "терминал";
Вот так выглядит вид:
//подключение сигнала нажатия кнопки "СТАРТ"
//создаем подключение к ком портам
connect(ui->pushStart,SIGNAL(clicked()),this, SLOT(connectSerialPort()));
void MainWindow::connectSerialPort()
{
static int i=0;
terminal=new Terminal();
QString portName;
portName=ui->comboBox->currentText();
serial=new SerialPortClass();
serial->port=portName;
serial->openConnection();
btn_terminal=new QPushButton("Терминал",this);
btn_stop=new QPushButton("Стоп",this);
item = new QStandardItem(portName);
model->setItem(i, 0, item);
item = new QStandardItem(QString("Device " + QString(i)));
model->setItem(i, 1, item);
item = new QStandardItem(QString("Сoeдинен"));
model->setItem(i, 2, item);
item = new QStandardItem(QString("Доступен"));
ui->tableListSerial->setIndexWidget(ui->tableListSerial->model()->index(i, 3),btn_terminal);
ui->tableListSerial->setIndexWidget(ui->tableListSerial->model()->index(i, 4),btn_stop);
ui->tableListSerial->setModel(model);
connect(btn_stop,&QPushButton::clicked,serial,&SerialPortClass::closeConnection);
//соединяю объект serial с окном отображения данных Terminal
connect(serial, &SerialPortClass::recieveDataTerminal,terminal,&Terminal::showData);
terminal->setWindowTitle(portName);
terminal->show();
i++;
}
Сейчас каждое окно соединения создается сразу после нажатия кнопки "Старт";
Если я вывожу код открытия окна терминала в отдельный слот и произвожу коннект, тогда данные идут только с последнего соединенного порта, так как передается только последний объект serial.
Как можно сделать, чтобы только после нажатия кнопки "Терминал", открывалось окно и шли данные со каждого порта в свое окно ?