Доступ к данным с GPS-чипа из Linux на устройствах с Android?

Имеем устройство с Android. Можно ли не из явы, а из нативного линукса на устройстве читать данные приёмника GPS?
  • Вопрос задан
  • 6220 просмотров
Пригласить эксперта
Ответы на вопрос 4
Infra_HDC
@Infra_HDC
R2AMO
Если позволите, начну ответ с исторической преамбулы.
По старой памяти погуглил на предмет связи GPS с COM-портом: на память, чипсет самого GPS-модуля, который меня интересовал, был SiRF-Star III, работавший через COM2: на скорости 4800 bps на моём ASUS P535 под управлением WM5/WM6.
И вот смотрите, какие прекрасные вещи нашёл.
  1. Упоминание вот тут что-то про GPS через COM-порт (программный, разумеется, если это монолитный гаджет). Бросившийся в глаза кусок лога:
    18:08:44.178 GpsHalPlatfTTYOpen("/dev/ttyS2",115200)

    По моему скромному мнению, в терминологии стандарта RS232, основная част гаджета будет называться DTE, а модуль GPRS будет называться DCE.
    С этим разобрались: модуль GPS может работать через последовательное терминальное устройство — например, как обычный модем.
  2. Теперь о протоколе обмена, пример его описания можно посмотреть например в man 8 gpsd
    Там недвусмысленно написано, что для разных программных моделей различного железа протокол низкого уровня — разный, но gpsd умеет скрывать различия, предоставляя унифицированный протокол для общения с приёмником спутникового сигнала. Здесь же упоминается, что для связи с модемом могут использоваться не только COM-порты, но и шина USB.
  3. Убеждаетмся, что этот самый gpsd работает в Android, и нам не надо шаманить с байтами и битами, ни изучать внутренности конкретного нашего GPS-приёмника.
    Вот тут есть косвенное подтверждение нашей гипотезы: что gpsd работает не только на настольном Ubuntu, но и на гаджетном Android.

Под рукой нет железа, чтобы проверить, но я бы копал в этом направлении.
Практически. я бы начал с того, что подключился бы телнетом к localhost на TCP-порт, номер которого по умолчанию упомянут в вышеупомянутом man-е
-S Set TCP/IP port on which to listen for GPSD clients (default is
2947).

и из того же man-а погонял бы командочки
Every gpsd reply will start with the string «GPSD» followed by the
replies. Examples:

query: «p\n»
reply: «GPSD,P=36.000000 123.000000\r\n»

query: «d\n»
reply: «GPSD,D=2002-11-16T02:45:05.12Z\r\n»

query: «va\n»
reply: «GPSD,V=0.000000,A=37.900000\r\n»

Надеюсь, вы рассмотрите мой ответ не как готовое решение проблемы, а как некий намёк, куда, с точки зрения обычной логики, вполне можно рыть.
Спасибо за внимание.
Ответ написан
Комментировать
noonv
@noonv
обычно — приёмник GPS просто льёт обычные текстовые данные в последовательный порт (со скоростью 4800 или 9600) см. NMEA
Ответ написан
Комментировать
LeoCcoder
@LeoCcoder
можно
Ответ написан
Комментировать
fdv
@fdv Автор вопроса
Всё написанное выше понятно и не ново. Спасибо.
Какое устройство для этого читать?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы