QT Serial Port Communication Нет такого слота - PullRequest
0 голосов
/ 29 октября 2018

Цель Я пытался отправить данные из Arduino на мой компьютер через COM-порт, и я хочу увидеть значения в консоли отладчика.

Задача Я не могу получить и напечатать значения, хотя раньше я мог делать их с той же структурой кода.

QObject :: connect: такого слота нет MainWindow :: serialData ()

QObject :: connect: (имя получателя: 'MainWindow')

файл mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QDebug>

namespace Ui {
  class MainWindow;
}

 class MainWindow : public QMainWindow
{
   Q_OBJECT

public:
  explicit MainWindow(QWidget *parent = nullptr);
  ~MainWindow();
  void serialData();

  private:
  Ui::MainWindow *ui;
  QSerialPort *arduino;
  QSerialPortInfo port;
};

   #endif // MAINWINDOW_H

файл mainwindow.cpp

        #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QtSerialPort/QSerialPort>
    #include <QtSerialPort/QSerialPortInfo>
    #include <QDebug>
    #include <string>



    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);

        /*List available ports with a combo box*/
        Q_FOREACH(port, QSerialPortInfo::availablePorts())
        {
            ui->comboBox->addItem(port.portName());
        }

        arduino = new QSerialPort(this);
        arduino->setPortName("COM10");
        arduino->open(QIODevice::ReadOnly);
        arduino->setBaudRate(QSerialPort::Baud9600);
        arduino->setDataBits(QSerialPort::Data8);
        arduino->setParity(QSerialPort::NoParity);
        arduino->setStopBits(QSerialPort::OneStop);
        arduino->setFlowControl(QSerialPort::NoFlowControl);


        connect(arduino, SIGNAL(readyRead()), this, SLOT(serialData()));

    }



    MainWindow::~MainWindow()
    {
        delete ui;
        arduino->close();
    }


    void MainWindow::serialData()
    {
        QByteArray data;
        data = arduino->readAll();
        qDebug()<<data;
    }

Заранее спасибо.

...