Цель
Я пытался отправить данные из 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;
}
Заранее спасибо.