Разработать модуль сенсора
63

«мёртвой зоны», изображенной на рис. 4.3 заштрихованной полосой. Следует также отметить наличие трёх перегибов осциллограммы, в зонах A, B и C. Следовательно отслеживая наличие перегибов осциллограмм мы сможем выделить совершение базового движения Push. Алгоритм выделения Push движений будет выглядеть следующим образом:

  1. Опрос модуля ИС и фильтрация показаний.
  2. Если timeout=0, то переходим к пункту 3, иначе уменьшаем timeout и переходим к пункту 9.
  3. Если есть перегиб осциллограммы, то переходим к пункту 5 иначе к пункту 9.
  4. Добавляем перегиб в стек перегибов.
  5. Если стек перегибов заполнен, то проверяем его показания на предмет совершения базового движения Push. Если движение совершено, то переходим к пункту 6, иначе к пункту 9.
  6. Формируем событие совершения Push.
  7. Устанавливаем timeout
  8. Очищаем стек перегибов.
  9. Передаём управление вызвавшей алгоритм программе.

Данный алгоритм выполняется циклически при опросе инерционным приложением модуля ИС. Схема алгоритма выделения базовых движений приведена на рис. 4.4.