Advertisement
Guest User

Untitled

a guest
Jun 17th, 2023
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. print("autosoftoff.boot.js");
  2. function dotProduct(x1, y1, z1, x2, y2, z2) {
  3.   const vectorA = [x1, y1, z1];
  4.   const vectorB = [x2, y2, z2];
  5.  
  6.   let result = 0;
  7.   for (let i = 0; i < vectorA.length; i++) {
  8.     result += vectorA[i] * vectorB[i];
  9.   }
  10.  
  11.   return result;
  12. }
  13. let interval = 300000;
  14. let compassOnTime = 1100;
  15.  
  16. function compassProm() {
  17.   return new Promise((resolve,reject) => {
  18.     Bangle.setCompassPower(1);
  19.     let h;
  20.     setTimeout(()=> {
  21.       h = Bangle.getCompass().heading;
  22.       //print("READING: " + h);
  23.       Bangle.setCompassPower(0);
  24.       resolve(h);
  25.     },compassOnTime);
  26.   });
  27. }
  28. let accelOld = Bangle.getAccel();
  29. let compassOld = compassProm().then(mag=>{
  30.   setInterval(()=>{
  31.   let compassNow = compassProm().then(mag2=> {
  32.    
  33.     let accelNow = Bangle.getAccel();
  34.     const dotp = dotProduct(accelOld.x, accelOld.y, accelOld.z, accelNow.x, accelNow.y, accelNow.z);
  35.  
  36.     //print(dotp);
  37.     let magDiff = Math.abs(mag2 - compassOld);
  38.     magDiff = Math.min(magDiff,360-magDiff);
  39.     //print(magDiff);
  40.    
  41.     return new Promise((resolve,reject)=>{
  42.       if ( dotp > 1 && dotp <= 1.036 && !isNaN(magDiff) && magDiff < 4 )
  43.       {
  44.         //print("Stationary");
  45.         let buzzDur = 2000;
  46.         Bangle.buzz(buzzDur);
  47.         Bangle.beep(buzzDur).then(x=>resolve(true));
  48.       } else {
  49.         resolve(false);
  50.       }
  51.       accelOld = accelNow;
  52.       compassOld = mag2;
  53.     });
  54.    
  55.    
  56.   }).then(still=>{
  57.       if ( still ) {
  58.         //Going to sleep
  59.         Bangle.softOff();
  60.       }
  61.   });
  62. },interval);
  63.  
  64. });
  65.  
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement