[Title]modified for support orientation sensor
authorsungmin82.ha <sungmin82.ha@samsung.com>
Tue, 14 Feb 2012 11:40:43 +0000 (20:40 +0900)
committerTaeyoung Son <taeyoung2.son@samsung.com>
Thu, 16 Feb 2012 06:20:20 +0000 (15:20 +0900)
[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

org.tizen.sensor.accelerometer/src/org/tizen/sensor/accelerometer/page/MobilePanel.java

index 0ad024d..d0061bd 100644 (file)
@@ -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());
                        }
         });