Я изучаю QT и следую видео-уроку для практики.код приведен ниже, если в написанном мною заявлении arduino не найдено, print, arduino не найдено.Но это всегда выдает эту ошибку, в моей программе есть какая-то проблема, но я не могу ее диагностировать, помогите мне.это программа
#include "dialog.h"
#include "ui_dialog.h"
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QDebug>
#include <QtWidgets>
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
arduino_is_available = false;
arduino_port_name = "";
arduino = new QSerialPort;
/*qDebug() << "Number of available ports: " <<QSerialPortInfo::availablePorts().length();
foreach(const QSerialPortInfo &serialPortInfo, QSerialPortInfo::availablePorts()){
qDebug() <<"Has vendorID: " << serialPortInfo.vendorIdentifier();
if(serialPortInfo.hasVendorIdentifier()){
qDebug() <<"Vendor ID:" <<serialPortInfo.vendorIdentifier();
}
qDebug() <<"Has product ID:" <<serialPortInfo.hasProductIdentifier();
if(serialPortInfo.hasProductIdentifier()){
qDebug() <<"Product ID:" <<serialPortInfo.productIdentifier();
}
}
*/
foreach(const QSerialPortInfo &serialPortInfo, QSerialPortInfo::availablePorts()){
if(serialPortInfo.hasVendorIdentifier() && serialPortInfo.hasProductIdentifier()){
if(serialPortInfo.hasVendorIdentifier() == arduino_uno_vendor_id){
if(serialPortInfo.hasProductIdentifier() == arduino_uno_product_id){
arduino_port_name = serialPortInfo.portName();
arduino_is_available = true;
}
}
}
if(arduino_is_available){
//open and configure the serialport
arduino->setPortName(arduino_port_name);
arduino->open(QSerialPort::WriteOnly);
arduino->setBaudRate(QSerialPort::Baud9600);
arduino->setDataBits(QSerialPort::Data8);
arduino->setParity(QSerialPort::NoParity);
arduino->setStopBits(QSerialPort::OneStop);
arduino->setFlowControl(QSerialPort::NoFlowControl);
}else{
//give error message if not available
QMessageBox::warning(this, "port error", "couldn't find the arduino!");
}
}
}
Dialog::~Dialog()
{
if(arduino->isOpen()){
arduino->close();
}
delete ui;
}
void Dialog::on_redslider_valueChanged(int value)
{
ui->redvalue->setText(QString("<span style=\" font-size:18pt; font-weight:600;\">%1</span>").arg(value));
Dialog::updateRGB(QString("r%1").arg(value));
qDebug() <<value;
}
void Dialog::on_greenslider_valueChanged(int value)
{
ui->greenvalue->setText(QString("<span style=\" font-size:18pt; font-weight:600;\">%1</span>").arg(value));
Dialog::updateRGB(QString("g%1").arg(value));
qDebug() <<value;
}
void Dialog::on_blueslider_valueChanged(int value)
{
ui->bluevalue->setText(QString("<span style=\" font-size:18pt; font-weight:600;\">%1</span>").arg(value));
Dialog::updateRGB(QString("b%1").arg(value));
qDebug() <<value;
}
void Dialog::updateRGB(QString command)
{
if(arduino->isWritable()){
arduino->write(command.toStdString().c_str());
} else{
qDebug() << "Couldn't write to serial";
}
}