You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by an...@apache.org on 2012/04/28 02:27:55 UTC
[16/17] bada-wac commit: adding initial compass support
adding initial compass support
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-bada-wac/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-bada-wac/commit/628e8ea6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-bada-wac/tree/628e8ea6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-bada-wac/diff/628e8ea6
Branch: refs/heads/master
Commit: 628e8ea626b5b24eba56f03c483fcd48dd32e177
Parents: c0b0889
Author: Anis Kadri <an...@gmail.com>
Authored: Tue Apr 3 16:41:29 2012 -0700
Committer: Anis Kadri <an...@gmail.com>
Committed: Tue Apr 3 16:41:29 2012 -0700
----------------------------------------------------------------------
Res/index.html | 13 +++++++++
Res/js/accelerometer.js | 7 ++---
Res/js/compass.js | 49 +++++++++++++++++++++++----------
Res/js/sample.js | 61 ++++++++++++++++++++++++++++++++++++++++++
4 files changed, 111 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-bada-wac/blob/628e8ea6/Res/index.html
----------------------------------------------------------------------
diff --git a/Res/index.html b/Res/index.html
index 4c8b5a8..750f182 100644
--- a/Res/index.html
+++ b/Res/index.html
@@ -58,8 +58,21 @@ button.btn {
<span id="geolocation"></span>
</div>
</li>
+ <li>
+ <h3>Compass</h3>
+ <div>
+ <button type="button" class="btn" onclick="getCurrentHeading();">getCurrentHeading</button>
+ </div>
+ <div>
+ <button type="button" class="btn" id="compassBtn" onclick="toggleCompass();">watchHeading</button>
+ </div>
+ <div>
+ <span id="heading"></span>
+ </div>
+ </li>
</ul>
<script type="text/javascript" src="./js/accelerometer.js"></script>
+<script type="text/javascript" src="./js/compass.js"></script>
<script type="text/javascript" src="./js/device.js"></script>
<script type="text/javascript" src="./js/sample.js"></script>
</body>
http://git-wip-us.apache.org/repos/asf/incubator-cordova-bada-wac/blob/628e8ea6/Res/js/accelerometer.js
----------------------------------------------------------------------
diff --git a/Res/js/accelerometer.js b/Res/js/accelerometer.js
index 692a5b4..1f729be 100644
--- a/Res/js/accelerometer.js
+++ b/Res/js/accelerometer.js
@@ -39,10 +39,9 @@ navigator.accelerometer = {
errorCallback(err);
};
- var watchID = deviceapis.accelerometer.watchAcceleration(success, error);
- return watchID;
+ return deviceapis.accelerometer.watchAcceleration(success, error);
},
- clearWatch: function(watchId) {
- deviceapis.accelerometer.clearWatch(watchId);
+ clearWatch: function(watchID) {
+ deviceapis.accelerometer.clearWatch(watchID);
}
};
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-cordova-bada-wac/blob/628e8ea6/Res/js/compass.js
----------------------------------------------------------------------
diff --git a/Res/js/compass.js b/Res/js/compass.js
index 2bac4cc..599f01d 100644
--- a/Res/js/compass.js
+++ b/Res/js/compass.js
@@ -1,34 +1,53 @@
-function CompassHeading(magneticHeading, trueHeading, headingAccuracy, timestamp) {
+function CompassHeading(magneticHeading, trueHeading, headingAccuracy) {
this.magneticHeading = magneticHeading;
this.trueHeading = trueHeading;
this.headingAccuracy = headingAccuracy;
- this.timestamp = timestamp;
+ this.timestamp = new Date();
}
navigator.compass = {
getCurrentHeading: function(compassSuccess, compassError, compassOptions) {
+ if(deviceapis.orientation == undefined) {
+ console.log("navigator.compass.getCurrentHeading", "Operation not supported!")
+ return -1;
+ }
var success = function(orientation) {
- var compassHeading = new CompassHeading(orientation.alpha);
+ var compassHeading = new CompassHeading(orientation.alpha, orientation.alpha, 0);
+ compassSuccess(compassHeading);
};
- var error = function(orientation) {
-
+ var error = function(error) {
+ compassError(error);
};
- if(deviceapis.orientation) {
- deviceapis.orientation.getCurrentOrientation(success);
- } else {
- console.log("navigator.compass.getCurrentHeading", "Orientation not supported!");
- }
+ deviceapis.orientation.getCurrentOrientation(success, error);
},
- watchHeading: function() {
+ watchHeading: function(compassSuccess, compassError, compassOptions) {
+ if(deviceapis.orientation == undefined) {
+ console.log("navigator.compass.watchHeading", "Operation not supported!")
+ return -1;
+ }
+ var success = function(orientation) {
+ var compassHeading = new CompassHeading(orientation.alpha, orientation.alpha, 0);
+ compassSuccess(compassHeading);
+ };
+ var error = function(error) {
+ compassError(error);
+ };
+ var orientationOptions = null;
+ if (compassOptions != undefined) {
+ orientationOptions = {
+ minNotificationInterval: compassOptions.frequency || 100
+ };
+ }
+ return deviceapis.orientation.watchOrientation(success, error, orientationOptions);
},
- clearWatch : function() {
-
+ clearWatch : function(watchID) {
+ deviceapis.orientation.clearWatch(watchID);
},
watchHeadingFilter: function() {
-
+ console.log("navigator.compass.watchHeadingFilter", "Operation not supported!");
},
clearWatchFilter: function() {
-
+ console.log("navigator.compass.clearWatchFilter", "Operation not supported!");
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-cordova-bada-wac/blob/628e8ea6/Res/js/sample.js
----------------------------------------------------------------------
diff --git a/Res/js/sample.js b/Res/js/sample.js
index 639b3af..f8774dc 100644
--- a/Res/js/sample.js
+++ b/Res/js/sample.js
@@ -104,4 +104,65 @@ function clearPositionWatch() {
document.getElementById("geolocation").innerHTML = "";
console.log("clearPositionWatch");
}
+}
+
+/*
+ * Compass
+ */
+
+var compassWatchID = null;
+
+function getCurrentHeading() {
+ var successCallback = function(heading) {
+ var headingEm = document.getElementById("heading");
+ headingEm.innerHTML = "magnetic Heading: "+ heading.magneticHeading +
+ " true Heading: " + heading.trueHeading +
+ " heading accuracy: " + heading.headingAccuracy +
+ " heading timestamp " + heading.timestamp;
+ };
+
+ var errorCallback = function(error) {
+ console.log(error);
+ var headingEm = document.getElementById("heading");
+ headingEm.innerHTML = "ERROR";
+ };
+ navigator.compass.getCurrentHeading(successCallback, errorCallback);
+}
+
+function toggleCompass() {
+ var geoBtn = document.getElementById("compassBtn");
+ if(geoBtn.innerHTML == "watchHeading") {
+ watchHeading();
+ compassBtn.innerHTML = "clearWatch";
+ } else {
+ clearHeadingWatch();
+ compassBtn.innerHTML = "watchHeading";
+ }
+}
+
+function watchHeading() {
+ var successCallback = function(heading) {
+ console.log("watchHeading::successCallback");
+ var headingEm = document.getElementById("heading");
+ headingEm.innerHTML = "magnetic Heading: "+ heading.magneticHeading +
+ " true Heading: " + heading.trueHeading +
+ " heading accuracy: " + heading.headingAccuracy +
+ " heading timestamp " + heading.timestamp;
+ };
+
+ var errorCallback = function(error) {
+ console.log(error);
+ var headingEm = document.getElementById("heading");
+ headingEm.innerHTML = "ERROR";
+ };
+ compassWatchID = navigator.compass.watchHeading(successCallback, errorCallback);
+ console.log("watchHeading "+compassWatchID);
+}
+function clearHeadingWatch() {
+ if(compassWatchID != null) {
+ navigator.compass.clearWatch(compassWatchID);
+ compassWatchID = null;
+ document.getElementById("heading").innerHTML = "";
+ console.log("clearHeadingWatch");
+ }
}
\ No newline at end of file