Можно ещё подумать и, возможно, не тратить время на обработку подъёма. Т.е. примерно прикинуть скорости подъёма-опускания и пока перемещение не упадёт ниже порога не обсчитывать процесс. Ну это так, мало ли вдруг ещё будет на это время.
Так а оно там очень быстро все обсчитывается, современные компьютеры циферки молотят вообще шустро. при добавлении нового чанка данных (ну то есть одного измерения, объект json объект в терминах явы) просто автоматом пересчитываются все отклонения и кеши для усреднения сдвигаются на одну позицию. GUI работает в отдельном потоке и примерно 20 раз в секунду просто просит текущий результат, на обработку данных это никак не влияет. ну уж как, что и при каких условиях отображать, какие пороги выставить - задача gui части приложения.
кстати, есть мысль (пока гипотетическая), как чисто механически сильно поднять надежность результатов в лучших традициях советской инженерной школы и принципа "лучше один хороший гвоздь, чем 10 микросхем" =)
Идея сама по себе проста, как 3 копейки: поскольку это тренажер, никто не обязывает упираться в габариты пистолета, которые ограниченны мерным ящиком. размещаем акселерометры как на рисунке, то есть, таким образом, чтобы акселерометр B был ближе к плечу, чем лучезапястный сустав. Таким образом,
- при вращении пистолета в плече оба акселерометра показывают отклонения одного знака;
- при вращении в ЛЗС отклонения будут разных знаков
По-моему, это гораздо более надежный отличительный признак. Но надо проверять, гладко как обычно только на бумаге =)