]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/platforms/tmirws/sensors/AeroVaneReadP.nc
When using a Timer in AeroVaneReadP, we don't need to post a task to read vane.
[tinyos-2.x.git] / tos / platforms / tmirws / sensors / AeroVaneReadP.nc
index 56001dde33f9c5d7a7bda956c1d2091baba2933d..906679b7e89ee22fa9cc74624de64b71ee137e8d 100644 (file)
@@ -62,8 +62,6 @@ implementation {
   int m_vane;
   int m_sum;
 
-  task void readVane();
-
   void init()
   {
     m_count = 0;
@@ -100,18 +98,21 @@ implementation {
   }
 
 #if 0
+  task void readVane();
+
   async event void Alarm.fired()
-#else
-  event void Timer.fired()
-#endif
   {
-    //call Alarm.start(call Alarm.getAlarm() + period);
+    call Alarm.start(call Alarm.getAlarm() + period);
     post readVane();
   }
 
   task void readVane()
   {
     //call Alarm.start(call Alarm.getAlarm() + period);
+#else
+  event void Timer.fired()
+  {
+#endif
     if (!(call State.isIdle()))
       call Read.read();
   }
@@ -141,7 +142,8 @@ implementation {
       norace aerovector_t vector;
 
       /* Get speed average */
-      atomic vector.speed = call Count.get();
+      atomic vector.speed = (call Count.get() * 2.25) / (period * 4 / 1024) +
+       0.5;
 
       /* Complete direction average */
       vector.dir = m_sum / PHYS_PER_READ;