X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=blobdiff_plain;f=tos%2Fplatforms%2Ftmirws%2Fsensors%2FAveragePolarP.nc;h=4031078d052b77012a551429ac16393326b5b50e;hp=cf49de690e72c20ceff8e07689914c3b462c644c;hb=31c5577e7d049bcb6dfc5e3d0a2c8bfd324ef25c;hpb=f54520e9a604b832eb3498102975f50f1494d1c3 diff --git a/tos/platforms/tmirws/sensors/AveragePolarP.nc b/tos/platforms/tmirws/sensors/AveragePolarP.nc index cf49de69..4031078d 100644 --- a/tos/platforms/tmirws/sensors/AveragePolarP.nc +++ b/tos/platforms/tmirws/sensors/AveragePolarP.nc @@ -40,13 +40,12 @@ generic module AveragePolarC(uint16_t samples) { provides interface Average; uses { - interface Average as AverageAngle; + interface Average as AverageAngle; interface Average as AverageSpeed; } } implementation { int m_count; - aerovector_t vector; command void Average.reset() { @@ -54,29 +53,24 @@ implementation { AverageSpeed.init(); } - event void AverageAngle.average(uint16_t angle) + command uint16_t Average.submit(aerovector_t vector) { - vector.dir = angle; - if (++m_count == 2) - signal Average.average(vector); + call AverageAngle.submit(vector.dir); + call AverageSpeed.submit(vector.speed); } - event void AverageSpeed.average(uint16_t speed) + command aerovector_t Average.average() { - vector.speed = speed; - if (++m_count == 2) - signal Average.average(vector); - } + aerovector_t vector; - command void Average.submit(aerovector_t vector) - { - call AverageAngle.submit(vector.dir); - call AverageSpeed.submit(vector.speed); + vector.dir = call AverageAngle.average(); + vector.speed = call AverageSpeed.average(); + init(); + return vector; } - command void Average.null() + command uint16_t Average.count() { - call AverageAngle.submit(vector.dir); - call AverageSpeed.submit(vector.speed); + return call AverageAngle.count(); } }