From a5b5cb49b761a50d347f99b9f8f78f0c190b915c Mon Sep 17 00:00:00 2001 From: Robert Kaiser Date: Thu, 29 Jan 2015 03:10:45 +0100 Subject: [PATCH] complete the FOSDEM 2015 slides --- fosdem2015/index.html | 64 +++++- fosdem2015/tricorder-ui.svg | 299 +++++++++++++++++++++++++++ fosdem2015/tricorder_20150124_01.png | Bin 0 -> 27274 bytes 3 files changed, 359 insertions(+), 4 deletions(-) create mode 100644 fosdem2015/tricorder-ui.svg create mode 100644 fosdem2015/tricorder_20150124_01.png diff --git a/fosdem2015/index.html b/fosdem2015/index.html index 1522846..b976577 100755 --- a/fosdem2015/index.html +++ b/fosdem2015/index.html @@ -87,7 +87,7 @@

Firefox OS Tricorder App

-

Displays sensor data

+

Displays data from device sensors as exposed by WebAPIs

marketplace.firefox.com/app/tricorder/

Code: github.com/KaiRo-at/tricorder

@@ -96,7 +96,9 @@

Firefox OS Tricorder UI

-
+
+Tricorder UI description
@@ -131,7 +133,9 @@
   this.watchID = navigator.geolocation.watchPosition(
-    function(position) { ... },
+    function(position) {
+      position.coords.latitude / .longitude / .accuracy / ...
+    },
     function(error) { ... },
     {enableHighAccuracy: true, maximumAge: 10000, timeout: 60000}
   );
@@ -145,7 +149,7 @@
 

Gravity Module

-

Accelerometer, Magnetic Compass

+

Accelerometer, Magnetometer

APIs: deviceorientation, devicemotion events

Permissions: ---

@@ -187,6 +191,23 @@
+  navigator.getUserMedia({ audio: true },
+    function(aLocalMediaStream) {
+      gModSound.mAudio.stream = aLocalMediaStream;
+      gModSound.mAudio.context = new window.AudioContext();
+      gModSound.mAudio.input = gModSound.mAudio.context.createMediaStreamSource(gModSound.mAudio.stream);
+      gModSound.mAudio.analyzer = gModSound.mAudio.context.createAnalyser();
+      gModSound.mAudio.input.connect(gModSound.mAudio.analyzer);
+    },
+    function(err) { ... }
+  );
+
+  // in window.requestAnimationFrame():
+  var data = new Uint8Array(gModSound.mAudio.frequencySlices);
+  gModSound.mAudio.analyzer.getByteFrequencyData(data);
+  // ... do something with data ...
+
+  gModSound.mAudio.stream.stop();
 
@@ -206,6 +227,21 @@
+  window.addEventListener("devicelight", this.lightEvent, true);
+  window.addEventListener("deviceproximity", this.proxEvent, true);
+
+  lightEvent: function(lightData) {
+    lightData.value (in lux)
+  },
+  proxEvent: function(proxData) {
+    proxData.min <= .value <= .max (in cm)
+  },
+
+  window.removeEventListener("devicelight", this.lightEvent, true);
+  window.removeEventListener("deviceproximity", this.proxEvent, true);
+
+  // flash/torch code works via navigator.mozCameras.getCamera
+  // flaky and subject to change, please consult code on github
 
@@ -225,6 +261,26 @@
+  (navigator.battery.level * 100).toFixed(1) + "%";
+
+  if (navigator.battery.charging) {
+    if (navigator.battery.chargingTime == 0 ||
+        navigator.battery.chargingTime == Infinity) {
+      "charging";
+    }
+    else {
+      "charging, " + navigator.battery.chargingTime + "s remaining";
+    }
+  }
+  else {
+    if (navigator.battery.dischargingTime == 0 ||
+        navigator.battery.dischargingTime == Infinity) {
+      "discharging";
+    }
+    else {
+      navigator.battery.dischargingTime + "s usage remaining";
+    }
+  }
 
diff --git a/fosdem2015/tricorder-ui.svg b/fosdem2015/tricorder-ui.svg new file mode 100644 index 0000000..e9d0195 --- /dev/null +++ b/fosdem2015/tricorder-ui.svg @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + Stardate + Title + Full screen + Modules + + + + + + + + diff --git a/fosdem2015/tricorder_20150124_01.png b/fosdem2015/tricorder_20150124_01.png new file mode 100644 index 0000000000000000000000000000000000000000..04cef2d735aaa3926765071eab75dde3ba633ade GIT binary patch literal 27274 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 Ghx``+GZY5^ literal 0 HcmV?d00001 -- 2.43.0