From dc26f8d02207cbf5b2ee11a7902d5eee30e27257 Mon Sep 17 00:00:00 2001 From: "sungmin82.ha" Date: Tue, 14 Feb 2012 20:40:43 +0900 Subject: [PATCH] [Title]modified for support orientation sensor [Type]Feature [Module]eventinjector-eplugin [Priority]Major [Jira#] // Jira Issue Number [Redmine#]#3314, #3316, #4182 [Problem] [Cause]Orientation sensor was not supported. [Solution]add calculation logic of orientation [TestCase]test bubble level app in emulator Change-Id: I51ee052309500c4da038e4ded7a9c5602bba57d0 Change-ID: I197cba9efb36af704d5e23f78437c8b31bdfb7a7 --- .../tizen/sensor/accelerometer/page/MobilePanel.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/org.tizen.sensor.accelerometer/src/org/tizen/sensor/accelerometer/page/MobilePanel.java b/org.tizen.sensor.accelerometer/src/org/tizen/sensor/accelerometer/page/MobilePanel.java index 0ad024d..d0061bd 100644 --- a/org.tizen.sensor.accelerometer/src/org/tizen/sensor/accelerometer/page/MobilePanel.java +++ b/org.tizen.sensor.accelerometer/src/org/tizen/sensor/accelerometer/page/MobilePanel.java @@ -435,8 +435,21 @@ public class MobilePanel extends JPanel implements ISelectionListener { magnetic.updateSensorPhysics(rollDegree, pitchDegree, yawDegree); magnetic.updateSensorReadoutValues(); magnetic.updateUserSettings(); - magnetic.setAzimuth(); - mPage.sendMessage(Magnetic.sensorNumber, magnetic.getAzimuth(), 0, 0 , 4, magnetic.getReadCompassX(), magnetic.getReadCompassY(), magnetic.getReadCompassZ()); + //magnetic.setAzimuth(); + + /* orientation logic via accelerometer value */ + int orient_yaw, orient_pitch, orient_roll; + orient_yaw = (int)(Math.atan2(-read_accelx, -read_accely) * (180.0/3.14) + 360) % 360; + orient_pitch = (int)(Math.atan2(-read_accely, -read_accelz) * (180.0/3.14)) % 180; + orient_roll = (int)(Math.atan2(read_accelx, read_accelz) * (180.0/3.14)) % 180; + + if(orient_roll > 90) + orient_roll = 180 - orient_roll; + else if(orient_roll < -90) + orient_roll = -180 - orient_roll; + + mPage.sendMessage(Magnetic.sensorNumber, orient_yaw, -orient_pitch, orient_roll , 4, magnetic.getReadCompassX(), magnetic.getReadCompassY(), magnetic.getReadCompassZ()); + //mPage.sendMessage(Magnetic.sensorNumber, magnetic.getAzimuth(), 0, 0 , 4, magnetic.getReadCompassX(), magnetic.getReadCompassY(), magnetic.getReadCompassZ()); //System.out.println("geomagnetic : X " + magnetic.getReadCompassX() + " Y : " + magnetic.getReadCompassY() + " Z : " + magnetic.getReadCompassZ()); } }); -- 2.7.4