nyk0r

PhoneGap Accelerometer

Jun 3rd, 2013
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 3.04 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="utf-8" />
  5.         <meta name="format-detection" content="telephone=no" />
  6.         <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1" />
  7.         <title>Accelerometer Test</title>
  8.        
  9.         <style type="text/css">
  10.             body {
  11.                 font-family:'HelveticaNeue-Light', 'HelveticaNeue', Helvetica, Arial, sans-serif;
  12.             }
  13.        
  14.             .accel-out {
  15.                 padding: 3em;
  16.                 font-weight: bold;
  17.             }
  18.            
  19.             .accel-out .coord {
  20.                 font-size: 1.2em;
  21.             }
  22.            
  23.             .accel-out .coord.x {
  24.                 color: #F00;
  25.             }
  26.             .accel-out .coord.y {
  27.                 color: #0F0;
  28.             }
  29.             .accel-out .coord.z {
  30.                 color: #00F;
  31.             }
  32.         </style>
  33.        
  34.         <script type="text/javascript" src="cordova-2.7.0.js"></script>
  35.         <script type="text/javascript">
  36.             'use strict'
  37.            
  38.             function $ (el, sl) {
  39.                 if (typeof el === 'string')
  40.                     return document.querySelectorAll(el);
  41.                 if (typeof el === 'object' && typeof sl === 'string')
  42.                    return el.querySelectorAll(sl);
  43.             }
  44.        
  45.             document.addEventListener('deviceready', function () {
  46.                 var accelVals = { x: 0, y: 0, z: 0 },
  47.                     accelNormal = 0.5;
  48.            
  49.                 function showAccel (vals) {
  50.                     var ac = $('.accel-out')[0];
  51.                     for (var k in vals) {
  52.                         if (vals.hasOwnProperty(k))
  53.                             $(ac, '.coord.' + k + ' + .value')[0].innerHTML = vals[k];
  54.                     }
  55.                 }
  56.                
  57.                 function onAccelSeccess (accel) {
  58.                     for (var k in accelVals) {
  59.                         if (accelVals.hasOwnProperty(k) && accelVals[k] !== accel[k]) {
  60.                            // http://en.wikipedia.org/wiki/Low-pass_filter
  61.                            accelVals[k] = accelVals[k] + accelNormal * (accel[k] - accelVals[k]);
  62.                         }
  63.                     }
  64.                     showAccel(accelVals);
  65.                 }
  66.                
  67.                 function onAccelError () {
  68.                     $('body')[0].innerHTML = '<div style="font-weight: bold; font-size: 2em">Accelerometer Error</div>';
  69.                 }
  70.                
  71.                 navigator.accelerometer.watchAcceleration(onAccelSeccess, onAccelError, { frequency: 1000 });
  72.             });
  73.         </script>
  74. </head>
  75.     <body>
  76.         <div class="accel-out">
  77.             <div><span class="coord x">X: </span><span class="value"></span></div>
  78.             <div><span class="coord y">Y: </span><span class="value"></span></div>
  79.             <div><span class="coord z">Z: </span><span class="value"></span></div>
  80.         </div>
  81.     </body>
  82. </html>
Advertisement
Add Comment
Please, Sign In to add comment