PDA

View Full Version : Joystick Reader



Arpitgarg
6th March 2011, 14:58
I wrote the following code,and getting error::
1. no void MainWindow::joyConnect() member function in class MainWindow.
2. no void MainWindow::updateForm() member function in class MainWindow.
3. btnConnect not declared in scope.

>>>>>>>>>>>>>>>>>>>>>
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTimer>


MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QTimer* timer = new QTimer(this);
new joystick = new Joystick();
connect(timer, SIGNAL(timeout()), this, SLOT(updateForm()));
connect(btnConnect,SIGNAL(clicked()),this, SLOT(joyConnect()));
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::joyConnect()
{
if(joystick->init(joyAccess->text().toAscii()) > -1)
{
ui->btnConnect->setText("Connected");
timer->start();
}

}
void MainWindow::updateForm()
{
ui->lcd1->display(joystick->getAxis(0));
ui->lcd2->display(joystick->getAxis(1));
ui->lcd3->display(joystick->getAxis(2));
ui->lcd4->display(joystick->getAxis(3));


if(joystick->getButton(0) > 0)
ui->label_1->setText("UP");
else
ui->label_1->setText(" Axis1");

if(joystick->getButton(1) > 0)
ui->label_2->setText("Down");
else
ui->label_2->setText(" Axis2");


if(joystick->getButton(2) > 0)
ui->label_3->setText("UP");
else
ui->label_3->setText(" Axis3");


if(joystick->getButton(3) > 0)
ui->label_4->setText("UP");
else
ui->label_4->setText(" Axis4");

}

stampede
6th March 2011, 15:00
Should be:

connect( ui->btnConnect, ... )
( please use [CODE] tags, its easier to read the code )
---
edit: post the header also

Arpitgarg
6th March 2011, 15:35
I sorted out the previous error but having following difficulties:
1. joystick.h: no such file or dirrctory
2. C++ forbids declaration of 'joystick' with no type



[HEADER]
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimer>
#include <joystick.h>


namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
QTimer *timer;
Joystick *joystick;

private:
Ui::MainWindow *ui;
void updateForm();
void joyConnect();
};

#endif


[CODE]
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTimer>


MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QTimer* timer = new QTimer(this);
new joystick = new Joystick();
connect(timer, SIGNAL(timeout()), this, SLOT(updateForm()));
connect(btnConnect,SIGNAL(clicked()),this, SLOT(joyConnect()));
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::joyConnect()
{
if(joystick->init(joyAccess->text().toAscii()) > -1)
{
ui->btnConnect->setText("Connected");
timer->start();
}

}
void MainWindow::updateForm()
{
ui->lcd1->display(joystick->getAxis(0));
ui->lcd2->display(joystick->getAxis(1));
ui->lcd3->display(joystick->getAxis(2));
ui->lcd4->display(joystick->getAxis(3));


if(joystick->getButton(0) > 0)
ui->label_1->setText("UP");
else
ui->label_1->setText(" Axis1");

if(joystick->getButton(1) > 0)
ui->label_2->setText("Down");
else
ui->label_2->setText(" Axis2");


if(joystick->getButton(2) > 0)
ui->label_3->setText("UP");
else
ui->label_3->setText(" Axis3");


if(joystick->getButton(3) > 0)
ui->label_4->setText("UP");
else
ui->label_4->setText(" Axis4");

}

stampede
6th March 2011, 16:43
1. joystick.h: no such file or dirrctory
Where is this file located ? You should add INCLUDEPATH += dir ( where dir contains "joystick.h" ) to your .pro file

C++ forbids declaration of 'joystick' with no type
I don't know where does this one came from, but I assume this line:

new joystick = new Joystick();
should be

this->joystick = new Joystick();
But this is related to C++ in general - are you familiar with C++ ?