Разработать модуль сенсора
63
«мёртвой зоны», изображенной на рис. 4.3 заштрихованной полосой. Следует также отметить наличие трёх перегибов осциллограммы, в зонах A, B и C. Следовательно отслеживая наличие перегибов осциллограмм мы сможем выделить совершение базового движения Push. Алгоритм выделения Push движений будет выглядеть следующим образом:
- Опрос модуля ИС и фильтрация показаний.
- Если timeout=0, то переходим к пункту 3, иначе уменьшаем timeout и переходим к пункту 9.
- Если есть перегиб осциллограммы, то переходим к пункту 5 иначе к пункту 9.
- Добавляем перегиб в стек перегибов.
- Если стек перегибов заполнен, то проверяем его показания на предмет совершения базового движения Push. Если движение совершено, то переходим к пункту 6, иначе к пункту 9.
- Формируем событие совершения Push.
- Устанавливаем timeout
- Очищаем стек перегибов.
- Передаём управление вызвавшей алгоритм программе.
Данный алгоритм выполняется циклически при опросе инерционным приложением модуля ИС. Схема алгоритма выделения базовых движений приведена на рис. 4.4.