equal
deleted
inserted
replaced
|
1 #include "inputcontroller.h" |
|
2 #include "rotationcontroller.h" |
|
3 #include <QTime> |
|
4 #include <QDebug> |
|
5 #include <math.h> |
|
6 |
|
7 |
|
8 RotationController::RotationController( ): TimedController(), m_factor(0.5){} |
|
9 |
|
10 void RotationController::startSensor() |
|
11 { |
|
12 m_rotationSensor.connectToBackend(); |
|
13 m_rotationSensor.start(); |
|
14 connect(&m_rotationSensor, SIGNAL(readingChanged()), this, SLOT(update())); |
|
15 |
|
16 int dataRate = m_rotationSensor.dataRate(); |
|
17 m_interval = dataRate>0?1000/m_rotationSensor.dataRate():20; |
|
18 } |
|
19 |
|
20 void RotationController::stopSensor(){ m_rotationSensor.stop();} |
|
21 |
|
22 |
|
23 void RotationController::update() |
|
24 { |
|
25 qreal pitch = m_rotationSensor.reading()->x(); |
|
26 qreal roll= m_rotationSensor.reading()->y(); |
|
27 |
|
28 m_dx = - m_factor* roll; |
|
29 m_dy = - m_factor * pitch; |
|
30 |
|
31 updateCoordinates(); |
|
32 } |
|
33 |
|
34 |
|
35 void RotationController::updateCoordinates(){ |
|
36 m_x +=m_dx * m_delay / m_interval; |
|
37 m_y +=m_dy * m_delay / m_interval; |
|
38 } |
|
39 |
|
40 |