Как вывести местоположение GPS на стандартный вывод (Ubuntu 16.04/18.04)?

Я полный новичок с GPS-устройствами в Linux.

У меня есть GlobalSat G-STAR IV USB-устройство, и я просто хочу, чтобы местоположение GPS (широта, долгота) выводилось на стандартный вывод. Как я могу этого добиться? Я читаю о gpsd, но не знаю, как получить фактическое местоположение. Документация кажется старой.

Любые общие инструменты и т.д. для этого?

Кажется, что с

$ sudo stty -F /dev/ttyUSB0 4800
$ sudo cat /dev/ttyUSB0

Я могу прочитать некоторые данные NMEA (?) с устройства:

$GPGGA,113935.199,,,,,0,00,,,M,0.0,M,,0000*5B

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

$GPRMC,113935.199,V,,,,,,,100918,,,N*41

$GPGGA,113936.186,,,,,0,00,,,M,0.0,M,,0000*56

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

$GPRMC,113936.186,V,,,,,,,100918,,,N*4C

$GPGGA,113937.185,,,,,0,00,,,M,0.0,M,,0000*54

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

$GPRMC,113937.185,V,,,,,,,100918,,,N*4E

$GPGGA,113938.200,,,,,0,00,,,M,0.0,M,,0000*55

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

Я все еще не вижу $GPGLL, который должен содержать местоположение..?

Изменить: я также получаю это:

$ sudo gpsd /dev/ttyUSB0 -N
gpsd:ERROR: can't bind to IPv4 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:ERROR: can't bind to IPv6 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!

Я убил все экземпляры gpsd и удалил сокет, но все еще получаю это.


person juzzlin    schedule 10.09.2018    source источник


Ответы (2)


Вывод, который вы опубликовали из sudo cat /dev/ttyUSB0, - это то, что вы ожидаете от модуля GPS, у которого (пока) нет исправления, т. Е. У него недостаточно информации для расчета его текущего положения (+другая информация).

Единственная информация, предоставляемая сообщениями, — это текущее время суток, 11:39:35 и т. д. Из сообщений, которые вы получаете от своего GPS-модуля, не только сообщение $GPGLL может сообщить вам о вашем местоположении, но также сообщения $GPGGA и $GPRMC, которые вы получить. Если бы в вашем модуле было исправление, вы бы не увидели несколько запятых подряд, а фактические значения между ними.
Более подробную информацию о формате различных сообщений можно найти в этом обзор.

Какова вероятная основная причина отсутствия исправления GPS (при условии, что ваше оборудование и антенна в порядке)?

  • Вы только что начали использовать этот модуль, только что с завода, и ему нужно некоторое время, чтобы получить его координаты. время до первого исправления для такого совершенно нового устройства может составлять до 15 минут.
  • Уровень сигнала GPS недостаточно силен в месте расположения вашего модуля.

Поэтому мой совет:

  • Убедитесь, что в вашем местоположении сигнал GPS со спутников достаточно сильный. В идеале, выйдя на улицу.
  • Если для вашего модуля никогда раньше не было исправлений, дайте ему некоторое время. Подождите до 20 минут.

GPSD:

GPSD, если он установлен, обычно запускается автоматически при подключении модуля GPS. Вы можете проверить текущий статус с помощью

systemctl status gpsd.service
systemctl status gpsd.socket

Если демон gpsd активен, он считывает GPS-данные, поступающие через последовательный интерфейс, и предоставляет их другим приложениям через сокет на определенном порту (по умолчанию: порт 2947). В этом случае последовательный порт больше не доступен для последовательных мониторов.

person oh.dae.su    schedule 11.09.2018

Шаги, чтобы заставить это устройство работать:

# Switch the device to NMEA mode
sudo gpsctl -f -n /dev/ttyUSB0

# Set baudrate to 4800
sudo stty -F /dev/ttyUSB0 4800

# Start gpsd 
gpsd -S 4000 /dev/ttyUSB0

Теперь создайте соединение сокета TCP/IP с localhost:4000 и скажите ?WATCH={"enable":true,"json":true}; или используйте libgps и т. д.:

http://www.catb.org/gpsd/client-howto.html

person juzzlin    schedule 02.10.2018
comment
извините за фрагментарный комментарий. Просто для уточнения: тот же GPS, данные получены с sudo stty -F /dev/ttyUSB0 4800, но sudo gpsctl... не работает, как показано выше. - person joaquin; 10.09.2020
comment
Проверьте, не запущен ли уже gpsd на этом устройстве..? - person juzzlin; 10.09.2020
comment
Это было остановлено. Я побежал sudo killall gpsd. Кстати, это Ubuntu 20.04 - person joaquin; 10.09.2020
comment
Сделано, если бежать после двух дней боев. Спасибо за помощь. Просто а) запустите Ubuntu б) подключите GPS в) выполните указанные в ответе шаги. - person joaquin; 10.09.2020
comment
Да, это было ужасом, чтобы понять. Хорошо то, что установка работает очень надежно, как только вам удалось запустить ее в первую очередь. - person juzzlin; 10.09.2020