Разработать модуль сенсора
59
подсчёт времени суммирования углов осциллограммы, которые принадлежат данной сумме. Время подсчёта измеряется в количестве опросов модуля ИС. Суммы считаются отдельно для каждого из 6 сенсоров. Как только осциллограмма ещё раз пересекает нулевую точку, то все текущие показания площадей и времён подсчёта сверяются с эталонными. Сравнение производится отдельно для показаний акселерометров и показаний магнитных сенсоров. Если обнаруживается совпадение с определёнными допусками, то генерируется событие, и обнуляются все показатели площади и времени. Иначе обнуляется только показатель той площади, где было пересечение нуля. Построенный на такой методике алгоритм действует следующим образом:
- Снимаются показания с модуля.
- Если timeout не равен нулю, то уменьшаем его на единицу и переходим к пункту 9. Иначе переходим к пункту 3
- Вычисляются углы отклонения ax, ay, az , mx, my, и mz
- Прибавляются значения углов к площадям Sax, Say, Saz, Smx, Smy и Smz соответственно.
- Проверяется наличие пересечений по каждому из углов, и если пересечения есть, переходим к пункту 6 иначе к пункту 9.
- Проверяем текущие показания площадей и времени их замера с эталонными, отдельно для акселерометров и отдельно для магнитных сенсоров и если есть совпадения переходим к пункту 7, иначе к пункту 9.
- Генерируем событие совершения базового движения.
- Обнуляем площадь и время всех показателей и переходим к пункту 10.
- Обнуляем площадь и время показателя, который перешел через ноль. И выставляем timeout выделения базовых движений.
- Передаём управление вызвавшей алгоритм программе.