1 |
1 |
2 |
2 |
3 #include "inputcontroller.h" |
3 #include "inputcontroller.h" |
4 #include "accelerometercontroller.h" |
4 #include "accelerometercontroller.h" |
5 #include <QTime> |
|
6 #include <QDebug> |
|
7 |
5 |
8 AccelerometerController::AccelerometerController( ): TimedController(){} |
6 AccelerometerController::AccelerometerController(): InputController(){ |
9 |
|
10 void AccelerometerController::startSensor() |
|
11 { |
|
12 m_accelerometer.connectToBackend(); |
7 m_accelerometer.connectToBackend(); |
13 m_accelerometer.start(); |
8 m_accelerometer.start(); |
14 connect(&m_accelerometer, SIGNAL(readingChanged()), this, SLOT(update())); |
9 connect(&m_accelerometer, SIGNAL(readingChanged()), this, SLOT(update())); |
15 int dataRate = m_accelerometer.dataRate(); |
|
16 m_interval = dataRate>0?1000/m_accelerometer.dataRate():20; |
|
17 } |
10 } |
18 |
11 |
19 void AccelerometerController::stopSensor(){ m_accelerometer.stop();} |
12 AccelerometerController::~AccelerometerController(){ |
|
13 m_accelerometer.stop(); |
|
14 disconnect(&m_accelerometer); |
|
15 } |
|
16 |
20 |
17 |
21 void AccelerometerController::update() |
18 void AccelerometerController::update() |
22 { |
19 { |
23 qreal accX = m_accelerometer.reading()->x(); |
20 qreal accX = m_accelerometer.reading()->x(); |
24 qreal accY= m_accelerometer.reading()->y(); |
21 qreal accY= m_accelerometer.reading()->y(); |
25 m_dx = (int)(2*accX); |
22 m_dx = accX*3; |
26 m_dy= (int)(-2*accY); |
23 m_dy= -accY*3; |
27 updateCoordinates(); |
24 updateCoordinates(); |
|
25 |
28 } |
26 } |
29 |
27 |
30 |
28 |
31 void AccelerometerController::updateCoordinates(){ |
29 void AccelerometerController::updateCoordinates(){ |
32 m_x +=m_dx * m_delay / m_interval; |
30 m_x +=m_dx; |
33 m_y +=m_dy * m_delay / m_interval; |
31 m_y +=m_dy; |
|
32 |
34 } |
33 } |
35 |
34 |