Как можно решить проблему передачи параметра слоту на QT c++?

Пишу программу для получения и и парсинга данных по ком порту. Столкнулся с такой проблемой. При соединений с ком портом необходимо, чтобы запускался класс обработчика принятых данных. Но параметры в слот передать нельзя.
через QObject::sender тоже нельзя, так как сперва идет сигнал на коннект с ком портом, потом сигнал на чтение данных с ком порта.
Вот как выглядит алгоритм:
с Action menu - >коннект с ком->коннект на чтение данных.
Вот код:
В mainwindow    
connect(ui->actionSwelab_Alfa_1, SIGNAL(triggered()), this, SLOT(ConnCom());
connect(ui->actionSwelab_Alfa_2, SIGNAL(triggered()), this, SLOT(ConnCom());

void MainWindow::ConnCom()(QString port,int baudrate,QString analizator){
 
             serialPort=new QSerialPort(this);
             serialPort->setPortName(port);
             serialPort->setBaudRate(baudrate);
             serialPort->setDataBits(QSerialPort::Data8);
             serialPort->setParity(QSerialPort::NoParity);
             serialPort->setStopBits(QSerialPort::OneStop);
             serialPort->setFlowControl(QSerialPort::NoFlowControl);
            //настройки для CTS/RTS
            //serialPort->setRequestToSend(true);
            //serialPort->setDataTerminalReady(true);
             serialPort->open(QIODevice::ReadOnly);
      
##Сигнал на чтение данных с ком порта
            QObject::connect(serialPort,SIGNAL(readyRead()),this,SLOT(ReadDataSerial()));

             if(serialPort->isOpen()){
                 QMessageBox::about(this,"title","Соединение установлено успешно");
                 dialogSettCom->close();
                 //запускаем чтение данных с порта
             }else{
                  QMessageBox::warning(this,"title","Соединение не установлено");
             }

}

void MainWindow::ReadDataSerial(){
  QString byte;
  byte = serialPort->readAll();
  ui->terminal->append("send sample \n"+ byte);
//класс обработчик для каждого устройства свой?
 SweelabAlfa *Alfa;
 Alfa=new SweelabAlfa();

//я хочу чтобы приходил какой нить параметр, который  определял бы какой класс подключать
если бы QObjet::sender()  был бы , я бы просто использовал бы if().

}

Подскажите как решить данную проблему.
  • Вопрос задан
  • 314 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы