parent
2a0cf8e44e
commit
cc8a606fd5
|
|
@ -1,2 +1,3 @@
|
||||||
0.01: New app!
|
0.01: New app!
|
||||||
0.02: Make Bangle.js 2 compatible
|
0.02: Make Bangle.js 2 compatible
|
||||||
|
0.03: Silently use built in heading when no magnav calibration file is present
|
||||||
|
|
|
||||||
|
|
@ -74,11 +74,14 @@ function newHeading(m,h){
|
||||||
return hd;
|
return hd;
|
||||||
}
|
}
|
||||||
|
|
||||||
var CALIBDATA = require("Storage").readJSON("magnav.json",1)||null;
|
var CALIBDATA = require("Storage").readJSON("magnav.json",1) || {};
|
||||||
|
|
||||||
function tiltfixread(O,S){
|
function tiltfixread(O,S){
|
||||||
var start = Date.now();
|
|
||||||
var m = Bangle.getCompass();
|
var m = Bangle.getCompass();
|
||||||
|
if (O === undefined || S === undefined) {
|
||||||
|
// no valid calibration from magnav, use built in
|
||||||
|
return 360-m.heading;
|
||||||
|
}
|
||||||
var g = Bangle.getAccel();
|
var g = Bangle.getAccel();
|
||||||
m.dx =(m.x-O.x)*S.x; m.dy=(m.y-O.y)*S.y; m.dz=(m.z-O.z)*S.z;
|
m.dx =(m.x-O.x)*S.x; m.dy=(m.y-O.y)*S.y; m.dz=(m.z-O.z)*S.z;
|
||||||
var d = Math.atan2(-m.dx,m.dy)*180/Math.PI;
|
var d = Math.atan2(-m.dx,m.dy)*180/Math.PI;
|
||||||
|
|
@ -97,6 +100,7 @@ function tiltfixread(O,S){
|
||||||
// Note actual mag is 360-m, error in firmware
|
// Note actual mag is 360-m, error in firmware
|
||||||
function read_compass() {
|
function read_compass() {
|
||||||
var d = tiltfixread(CALIBDATA.offset,CALIBDATA.scale);
|
var d = tiltfixread(CALIBDATA.offset,CALIBDATA.scale);
|
||||||
|
if (isNaN(d)) return; // built in compass heading can return NaN when uncalibrated
|
||||||
heading = newHeading(d,heading);
|
heading = newHeading(d,heading);
|
||||||
direction = wp_bearing - heading;
|
direction = wp_bearing - heading;
|
||||||
if (direction < 0) direction += 360;
|
if (direction < 0) direction += 360;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "waypointer",
|
"id": "waypointer",
|
||||||
"name": "Way Pointer",
|
"name": "Way Pointer",
|
||||||
"version": "0.02",
|
"version": "0.03",
|
||||||
"description": "Navigate to a waypoint using the GPS for bearing and compass to point way, uses the same waypoint interface as GPS Navigation",
|
"description": "Navigate to a waypoint using the GPS for bearing and compass to point way, uses the same waypoint interface as GPS Navigation",
|
||||||
"icon": "waypointer.png",
|
"icon": "waypointer.png",
|
||||||
"tags": "tool,outdoors,gps",
|
"tags": "tool,outdoors,gps",
|
||||||
|
|
|
||||||
|
|
@ -73,8 +73,8 @@
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
var name = $name.value.trim()
|
var name = $name.value.trim()
|
||||||
if(!name) return;
|
if(!name) return;
|
||||||
var lat = parseFloat($latitude.value).toPrecision(5);
|
var lat = parseFloat($latitude.value);
|
||||||
var lon = parseFloat($longtitude.value).toPrecision(5);
|
var lon = parseFloat($longtitude.value);
|
||||||
|
|
||||||
waypoints.push({
|
waypoints.push({
|
||||||
name, lat,lon,
|
name, lat,lon,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue