- aerovector_t vector;
-
- vector.speed = m_speed;
- if (m_sum > 0)
- vector.dir = (m_sum + (PHYS_PER_READ / 2)) / PHYS_PER_READ;
- else
- vector.dir = (m_sum - (PHYS_PER_READ / 2)) / PHYS_PER_READ + 1024;
- vector.dir &= 0x03ff; /* %= 1024 */
- init();
-
- /* Inform the consumer of the vector */
- if (!(call State.isIdle()))
+ if (call State.isIdle()) {
+ /* Avoid notifying if the user has disabled */
+ init();
+ } else {
+ aerovector_t vector;
+
+ vector.dir = call Average.average();
+ vector.speed = m_speed;
+ init();