Всем привет как организовать однвременный прием данных с двух ком портов. Вроде соединение делаю,
и оба ком порта соединяются, но данные в debug идут только последнему порту, который подключил.
делаю коннекты актионов:
connect(ui->actionSwelab_Alfa_1, SIGNAL(triggered()), this, SLOT(ComPortConnection()));
connect(ui->actionSwelab_Alfa_2, SIGNAL(triggered()), this, SLOT(ComPortConnection()));
connect(ui->actionMeldonic_1, SIGNAL(triggered()), this, SLOT(ComPortConnection()));
connect(ui->actionUrit_3020, SIGNAL(triggered()), this, SLOT(ComPortConnection()));
Слот COmPOrtConnect:
sPort=new ConnectionCom(); //класс соединения с ком портом
if(sPort->OpenConCom(port, 9600, 8,"none", 1, "none", false)==true){
ui->terminal->append(port+" соединение открыто");
if(QObject::sender()->objectName()=="actionSwelab_Alfa_1"){
ui->actionSwelab_Alfa_1->setEnabled(false);
}
//выводим сообщение
QMessageBox::information(this, "Внимание","Соединение с "+port+" установлено успешно");
connect(sPort->serialPort,SIGNAL(readyRead()),this,SLOT(ReadDataSerial()));
ui->terminal->append("Получение данных с анализатора " + analizator+ " по порту " + sPort->serialPort->portName());
qDebug()<<"Получение данных с анализатора " + analizator+ " по порту " + sPort->serialPort->portName();
}else{
QMessageBox::warning(this, "Внимание","Порт "+port+" не доступен!");
ui->terminal->append(port+"соединение не доступно");
}
Класс соединения с корм портом:
bool ConnectionCom::OpenConCom(QString port, int baudrate, int bits, QString parity, int stopBits, QString flowControl, bool CTS_RTS){
serialPort=new QSerialPort();
serialPort->setPortName(port);
serialPort->setBaudRate(baudrate);
serialPort->setDataBits(QSerialPort::Data8);
serialPort->setParity(QSerialPort::NoParity);
serialPort->setStopBits(QSerialPort::OneStop);
serialPort->setFlowControl(QSerialPort::NoFlowControl);
if(CTS_RTS==true){
serialPort->setRequestToSend(true);
serialPort->setDataTerminalReady(true);
}
serialPort->open(QIODevice::ReadOnly);
if(serialPort->isOpen()){
return true;
}else{
return false;
}
}
Чтение данных:
void MainWindow::ReadDataSerial(){
QString byte;
byte = sPort->serialPort->readAll();
ui->terminal->append("Принятые данные по порту"+sPort->serialPort->portName()+"\n" + byte);
qDebug()<<byte;
}
}
В чем проблема, подскажите плиз. Прием данных идет только по порту, к которому подключился последним, по первому порту только пустые значения в дебаге.