aboutsummaryrefslogtreecommitdiff
path: root/assets/js/pedometer.js
diff options
context:
space:
mode:
authorhellekin <hellekin@cepheide.org>2018-04-25 22:59:37 +0200
committerhellekin <hellekin@cepheide.org>2018-04-25 22:59:37 +0200
commit6477a32b4a98fec45723e355a4bab8756d6d0f16 (patch)
tree7aea3f7f6704c4020fe4c15df7afe8d3b0e50117 /assets/js/pedometer.js
parentdbfde3e367fd564679afb659475e7f2348edb337 (diff)
downloadqw.lesoiseaux.io-6477a32b4a98fec45723e355a4bab8756d6d0f16.tar.gz
Woooojajajjaa
Diffstat (limited to 'assets/js/pedometer.js')
-rw-r--r--assets/js/pedometer.js134
1 files changed, 77 insertions, 57 deletions
diff --git a/assets/js/pedometer.js b/assets/js/pedometer.js
index 53079a9..af3d240 100644
--- a/assets/js/pedometer.js
+++ b/assets/js/pedometer.js
@@ -1,73 +1,93 @@
$(document).ready(function(){
-console.log("print");
+ var has_accel = false
-//on déclare l'ensemble des variables ax et ay sont les données d'acceleration, n c'est la norme, maxn et minn les valeurs max et min de la norme, et pas le nombre de pas
-var n=0, maxn = 0, minn = 0, pas = 0,
+ $('#left-bits').css({ width: '50vw', height: '50vh', background: '#fff' })
+
+ console.log("-- ready --");
+
+ //on déclare l'ensemble des variables ax et ay sont les données d'acceleration, n c'est la norme, maxn et minn les valeurs max et min de la norme, et pas le nombre de pas
+ var n=0, maxn = 0, minn = 0, pas = 0,
ax = 0, ay = 0, az = 0, pass=0;
-//programme d'alberto desarullo qui va chercher les données de l'accelerometre
-if (window.DeviceMotionEvent != undefined) {
- window.ondevicemotion = function(e) {
- ax = event.accelerationIncludingGravity.x ;
- ay = event.accelerationIncludingGravity.y ;
- az = event.accelerationIncludingGravity.z ;
-// et les affiche dans la page html
- document.getElementById("accelerationX").innerHTML = e.accelerationIncludingGravity.x;
- document.getElementById("accelerationY").innerHTML = e.accelerationIncludingGravity.y;
- document.getElementById("accelerationZ").innerHTML = e.accelerationIncludingGravity.z;
-// on affiche également la norme sa valeur max et le nombre de pas
- document.getElementById("n").innerHTML = n;
- document.getElementById("pas").innerHTML = pas;
- document.getElementById("maxn").innerHTML = maxn;
-
- }
-
+ function report_status() {
+// console.log('ax', ax, 'ay', ay, 'az', az)
+ // et les affiche dans la page html
+ document.getElementById("accelerationX").innerHTML = ax;
+ document.getElementById("accelerationY").innerHTML = ay;
+ document.getElementById("accelerationZ").innerHTML = az;
+ // on affiche également la norme sa valeur max et le nombre de pas
+ document.getElementById("n").innerHTML = n;
+ document.getElementById("pas").innerHTML = pas;
+ document.getElementById("maxn").innerHTML = maxn;
+ }
- var ev = new Event("requestMove");
+ function odmHandler(e) {
- function pollAccelerometer() {
- setInterval( function() {
-
- // on calcule la norme c'est à dire la taille du vecteur qui est défini par les points d'accélération ax ay et az
- n0 = n;
- n=Math.sqrt (ax*ax + ay*ay + az*az);
- // console.log(n);
-
- //on calcule un min et max pour la norme
- if (n < n0) { minn = n ;
- }else if (n > n0) { maxn = n ;
- }
-
- // console.log(maxn);
+ has_accel = true
+
+ ax = event.accelerationIncludingGravity.x ;
+ ay = event.accelerationIncludingGravity.y ;
+ az = event.accelerationIncludingGravity.z ;
+
+ report_status()
+ }
- //on défini un seuil qui correspond à un pas
- if ((maxn - minn) > 10) {pas = pas+1;
-
- }
+ function fakeAccel() {
+ var min = -12, max = 12
+ return Math.random() * (max - min) + min;
+ }
+
+ function mockAccelerometer() {
+
+ has_accel = false
+ ax = fakeAccel()
+ ay = fakeAccel()
+ az = fakeAccel()
+
+ report_status()
+ }
- if (pas>10) {
- // console.log(pas);
- document.dispatchEvent(ev);
- }
- pas++;
- // on vérifie cela chaque 250 milisecondes
- }, 350);
+ function accel_norm(ax, ay, az) {
+ return Math.sqrt (ax*ax + ay*ay + az*az);
}
-//function mockAccelerometer() {
-// setInterval( function() {
-// console.log(pas);
-// if (pas===100) {
-// document.dispatchEvent(ev);
-// }
-// pas++;
-// },1000);
-//}
+ //programme d'alberto desarullo qui va chercher les données de l'accelerometre
+ if (window.DeviceMotionEvent != undefined) {
+ window.ondevicemotion = odmHandler
+ var ev = new Event("requestMove");
+
+ function pollAccelerometer() {
+ setInterval(makeStep, 250)
+ }
+
+ function makeStep() {
+ if (!has_accel) {
+ mockAccelerometer()
+ }
+ // on calcule la norme c'est à dire la taille du
+ // vecteur qui est défini par les points
+ // d'accélération ax ay et az
+ n0 = n;
+ n = accel_norm(ax,ay,az)
+
+ // on calcule un min et max pour la norme
+ if (n < n0) {
+ minn = n ;
+ } else if (n > n0) {
+ maxn = n ;
+ }
+
+ // on définit un seuil qui correspond à un pas
+ if ((maxn - minn) > 10) {
+ pas = pas+1;
+ document.dispatchEvent(ev);
+ }
+ }
-pollAccelerometer();
-}
+ pollAccelerometer();
+ }
});