Я пытаюсь создать объект своего класса ArduinoControl в качестве переменной класса в моем классе QT QMainWindow. Я включил файл заголовка ArduinoControl в файл заголовка главного окна.
Я хочу объявить объект Arduino без его инициализации, это будет сделано в конструкторе объекта MainWindow, чтобы все функции могли получить доступ объект Arduino.
Это мой QMainWindowClass:
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_laserbasictestfunctions.h"
#include <QTextEdit>
#include <QLineEdit>
#include <QLabel>
#include "PrintBlock.h"
#include <stdio.h>
#include "ArduinoCommunication.h"
#include <QThread>
#include <QtTest/QtTest>
class LaserBasicTestFunctions : public QMainWindow
{
Q_OBJECT
public:
LaserBasicTestFunctions(QWidget *parent = Q_NULLPTR);
void checkActivity();
private:
Ui::LaserBasicTestFunctionsClass ui;
int programNumber;
bool ok;
bool rotate;
char portName[11];
ArduinoCommunication tableControl;
private slots:
//Tab#1 Laser Test Functions
void on_coordinateSystemButton_clicked();
void on_rectangleButton_clicked();
void on_pointButton_clicked();
void on_stopLaserButton_clicked();
void on_startButton_clicked();
//Tab#2 Print Block Functions
void on_stopLaserButton_2_clicked();
void on_startPrintBlockButton_clicked();
//Tab#3 Arduino Functions
void on_arduinoLEDButton_clicked();
}
Это заголовок Arduino Communication:
#pragma once
#include <iostream>
#include "SerialPort.h"
#include "ui_laserbasictestfunctions.h"
#include "laserbasictestfunctions.h"
#include <stdio.h>
#include <string.h>
#include <string>
class ArduinoCommunication {
private:
Ui::LaserBasicTestFunctionsClass& ui_;
int pin_piston1_;
int pin_suction_cup_;
int pin_led_;
char incomingData_[MAX_DATA_LENGTH];
SerialPort* arduino_;
char* portname_;
void connect_to();
void receiveData();
public:
ArduinoCommunication(char portname[], int pin_piston1, int pin_suction_cup, int pin_led, Ui::LaserBasicTestFunctionsClass& ui);
ArduinoCommunication();
void set_pin(int pin, bool high);
void actuate_pistons(bool actuate);
void actuate_suction_cup(bool actuate);
void actuate_led(bool actuate);
};
Я получаю следующие сообщения об ошибках: 1. 'ArduinoCommunication' не подходит доступен конструктор по умолчанию 2. 'tableControl': неизвестный спецификатор переопределения 3. Отсутствующий описатель типа - предполагается int
Я попытался создать объект ArduinoCommunication в конструкторе QMainWindow, но затем мне не удалось получить к нему доступ через частный функции слота.
Любая помощь приветствуется!