From 22148661d2bdb93bf9da20f8299e34aac7b4d495 Mon Sep 17 00:00:00 2001 From: Brad Fisher Date: Mon, 2 May 2016 23:02:11 -0500 Subject: [PATCH 1/2] Adds 'in/lastTappedTime' and 'in/lastShakenTime' for reading the last timestamp when a tapped or shaken event was read from the finch --- .../FinchServlet.java | 8 +++++++ .../FinchServletWrapper.java | 21 +++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/birdbrain/finchandHummingbirdServer/FinchServlet.java b/src/birdbrain/finchandHummingbirdServer/FinchServlet.java index b1f2fb0..9124c66 100644 --- a/src/birdbrain/finchandHummingbirdServer/FinchServlet.java +++ b/src/birdbrain/finchandHummingbirdServer/FinchServlet.java @@ -53,6 +53,8 @@ public void setConnectionState(boolean state) { * in/accelerationY * in/accelerationZ * in/temperature + * in/lastTappedTime + * in/lastShakenTime * */ @@ -217,6 +219,12 @@ else if(urlPath.substring(4).equals("temperature")) { response.getWriter().print(Math.floor(finch.getTemperature()*100)/100); } + else if(urlPath.substring(4).equals("lastTappedTime")) { + response.getWriter().print(finch.getLastTappedTime()); + } + else if(urlPath.substring(4).equals("lastShakenTime")) { + response.getWriter().print(finch.getLastShakenTime()); + } // If the Finch is active and you wrote "in" but the remainder is garbage, send an error message else { response.getWriter().print("Wrong sensor request"); diff --git a/src/birdbrain/finchandHummingbirdServer/FinchServletWrapper.java b/src/birdbrain/finchandHummingbirdServer/FinchServletWrapper.java index c0508af..0823b95 100644 --- a/src/birdbrain/finchandHummingbirdServer/FinchServletWrapper.java +++ b/src/birdbrain/finchandHummingbirdServer/FinchServletWrapper.java @@ -14,6 +14,9 @@ public class FinchServletWrapper { private Double temperature; private boolean[] obstacles; private int[] lights; + // The time when the last tapped and shaken events were recorded + private long lastTappedTime = 0; + private long lastShakenTime = 0; // We poll sensors in a separate thread to minimize the timer doGet has to wait private Thread sensorLoop; @@ -29,6 +32,12 @@ public void run() { { try { // Each finch.get takes 8 ms, then sleep to allow other things to happen + if (finch.isTapped()) + lastTappedTime = System.currentTimeMillis(); + Thread.sleep(12); + if (finch.isShaken()) + lastShakenTime = System.currentTimeMillis(); + Thread.sleep(12); accelerations = finch.getAccelerations(); Thread.sleep(12); temperature = finch.getTemperature(); @@ -144,8 +153,16 @@ public boolean[] getObstacle() { } - - + public long getLastTappedTime() { + return lastTappedTime; + } + + public long getLastShakenTime() { + return lastShakenTime; + } + + + // Parses the Finch output string and sets it public boolean setOutput(String setter) { From 05186bb44d3c9d67d3822690205d3d8828ba3261 Mon Sep 17 00:00:00 2001 From: Brad Fisher Date: Mon, 2 May 2016 23:36:31 -0500 Subject: [PATCH 2/2] Reference finch/in/lastTappedTime and finch/in/lastShakenTime in index.html --- WebContent/index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WebContent/index.html b/WebContent/index.html index 2810777..23dde1b 100644 --- a/WebContent/index.html +++ b/WebContent/index.html @@ -17,6 +17,8 @@
  • finch/in/accelerationX
  • finch/in/accelerationY
  • finch/in/accelerationZ
  • +
  • finch/in/lastTappedTime
  • +
  • finch/in/lastShakenTime
  • finch/in/temperature
  • finch/in/motor (provides current value of motor speeds)
  • finch/in/led (provides current RGB color intensities of LED)