ПРОБЛЕМЫАкселерометр данные смешивают с гироскопом, когда несколько слушателей зарегистрированы
Я разрабатываю приложение, которое посылает несколько данных датчиков через UDP. Я заметил, что когда я регистрировал несколько прослушивателей одновременно (ускорение и гироскоп), данные, которые я читаю с любого из датчиков, представляют собой сочетание двух показаний датчика (при отображении данных ускорения он перескакивает между значениями ускорения и гироскопа, а не просто отображение значений ускорения).
ЧТО Я Пытался
Я попытался положить каждый sensorlistener в отдельном потоке, и играть вокруг с различными параметрами слушателя, но ничего не сделало разницу.
ВАЖНЫЕ ПРИМЕЧАНИЯ
Когда я передать мои данные через другую функцию (фильтра нижних частот в данном случае), данные становится гораздо более стабильным, но до сих пор прыгает между датчиками время от времени (но нигде почти так же часто). Это происходит не из-за фильтрации - если я установил альфа фильтра нижних частот равным 1 (без фильтрации), результат будет еще более стабильным. Возможно, это из-за дополнительной задержки от прохождения функции?
Когда я регистрирую только акселерометр (без гироскопа), данные идеальны. На выходе акселерометра нет данных гироскопа.
Это не проблема с оборудованием. Я загрузил другие приложения для тестирования датчиков, которые отображают данные датчиков, и у них нет никаких проблем с чтением данных датчика с моего телефона.
Любые идеи относительно того, что я сделал неправильно? Это что-то с тем, как я интерпретирую событие onSensorChanged для обработки нескольких датчиков?
// Код опущен
Ваш код датчика кажется правильным. Возникает ли проблема локально (например, при отображении значений датчика в текстовом виде) или при чтении потоковых данных? – foibs
@foibs Он отображается как в отображаемых значениях, так и в значениях потока – pwee92
Посмотрите на ответ Растикана. Он прав. Я полностью пропустил это – foibs