update gpssetup
parent
b63c819a0a
commit
8f9490459c
|
|
@ -1,3 +1,4 @@
|
|||
0.01: First version of GPS Setup app
|
||||
0.02: Created gppsetup module
|
||||
0.03: Added support for Bangle.js2
|
||||
0.04: Added adaptive option for PSMOO with Bangle.js2
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ used. These settings will remain for all apps that use the GPS.
|
|||
|
||||
- fix_req (Bangle.js2 only) - the number of fixes required before the GPS turns off until next search for GPS signal. default is 1.
|
||||
|
||||
- adaptive (Bangle.js2 only) - When a GPS signal is acquired, this can reduce the time in seconds until next scan to generate higher temporal resolution of gps fixes. Off if set to 0.
|
||||
## Module
|
||||
|
||||
A module is provided that'll allow you to set GPS configuration from your own
|
||||
|
|
@ -69,11 +70,13 @@ app. To use it:
|
|||
// needed unless the watch's battery has run down
|
||||
require("gpssetup").setPowerMode();
|
||||
|
||||
// This sets up the PSMOO mode. update/search are optional in seconds
|
||||
// This sets up the PSMOO mode. update/search/adaptive are optional in seconds
|
||||
require("gpssetup").setPowerMode({
|
||||
power_mode:"PSMOO",
|
||||
update:optional (default 120),
|
||||
search:optional (default 5)})
|
||||
search:optional (default 5),
|
||||
adaptive: optional (default 0)
|
||||
});
|
||||
|
||||
// This sets up SuperE
|
||||
require("gpssetup").setPowerMode({power_mode:"SuperE"})
|
||||
|
|
|
|||
|
|
@ -165,9 +165,11 @@ function setupPSMOO(settings) {
|
|||
var gpsTimeout = null;
|
||||
var gpsActive = false;
|
||||
var fix = 0;
|
||||
var lastFix = false;
|
||||
function cb(f){
|
||||
if(parseInt(f.fix) === 1){
|
||||
fix++;
|
||||
lastFix = true;
|
||||
if(fix >= settings.fix_req){
|
||||
fix = 0;
|
||||
turnOffGPS();
|
||||
|
|
@ -180,9 +182,14 @@ function setupPSMOO(settings) {
|
|||
clearTimeout(gpsTimeout);
|
||||
Bangle.setGPSPower(0,settings.appName);
|
||||
Bangle.removeListener('GPS', cb); // cleaning it up
|
||||
var timeout = settings.update * 1000;
|
||||
if(lastFix && settings.adaptive > 0){
|
||||
timeout = settings.adaptive * 1000;
|
||||
}
|
||||
lastFix = false;
|
||||
gpsTimeout = setTimeout(() => {
|
||||
turnOnGPS();
|
||||
}, settings.update * 1000);
|
||||
}, timeout);
|
||||
}
|
||||
function turnOnGPS(){
|
||||
if (gpsActive) return;
|
||||
|
|
@ -213,12 +220,14 @@ exports.setPowerMode = function(options) {
|
|||
if (options) {
|
||||
if (options.update) settings.update = options.update;
|
||||
if (options.search) settings.search = options.search;
|
||||
if (options.adaptive) settings.adaptive = options.adaptive;
|
||||
if (options.fix_req) settings.fix_req = options.fix_req;
|
||||
if (options.power_mode) settings.power_mode = options.power_mode;
|
||||
if (options.appName) settings.appName = options.appName;
|
||||
}
|
||||
settings.update = settings.update||120;
|
||||
settings.search = settings.search||5;
|
||||
settings.adaptive = settings.adaptive||0;
|
||||
settings.fix_req = settings.fix_req||1; //default to just one fix and will turn off
|
||||
settings.power_mode = settings.power_mode||"SuperE";
|
||||
settings.appName = settings.appName||"gpssetup";
|
||||
|
|
|
|||
Loading…
Reference in New Issue