Недавно я узнал о файле gps.conf
в каталоге /system/etc/
.
Кажется, что настройка значений NTP_SERVER для серверов NTP ближе к обычному местоположению улучшает TTFF.
Чтение исходного кода в классе LocationProvider
, кажется, что при загрузке время извлекается с сервера NTP и "впрыскивается" в вычислениях.
AFAIK каждый GPS-сит имеет очень точные атомные часы, и каждый в созвездии синхронизируется с так называемым "временем GPS". Когда приемник имеет 4 или более спутника, он решает (каким-то способом) уравнение, в котором есть четыре неизвестных: x, y, z, b; где (x, y, z) - местоположение приемника, а b - разность во времени между внутренними часами приемника и (правильным) временем GPS. Как только у него есть исправление, часы приемника синхронизируются с правильным временем. (Пожалуйста, поправьте меня, если я ошибаюсь).
До сих пор у меня есть некоторые вопросы относительно того, как работает инъекция времени NTP:
- Время GPS примерно равно TAI (International Atomic Time) плюс смещение. Эти два раза не зависят от вращения Земли, однако UTC делает это. Учитывая, что серверы NTP возвращают время UTC, можно определить время GPS от UTC?
- Как восстановить время NTP от более близкого сервера, улучшить "качество" приближения GPS-времени?
- Предполагая, что у нас есть начальное значение GPS-времени (как это было сделано из времени NTP), что такое инъекция? Правильно ли это значение времени для решения уравнения только с x, y, z как неизвестными? Если это так, то первое исправление также является просто приближением, не так ли?
- Как более качественное начальное приближение для времени GPS улучшает TTFF? Это потому, что при более низком качестве NTP-времени первые исправления считаются неприемлемыми и отбрасываются?
- Имеет ли приблизительное начальное положение получение следующего правильного исправления (например, прослушивание только подмножества сатов)?