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)
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)
{