Настройка GPS на WB6 через UART

Или лыжи, или я.
Имеем GPS модуль на WB6 /dev/ttyMOD3
Пытаемся ему хоть что-то послать из конфигурационных команд. Например:
echo -e “$PMTK314,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*35\r\n” > /dev/ttyMOD3
По идее эта команда должна изрядно урезать количество выводимых от GPS в порт данных.
Но ничего не происходит. GPS не видит конфигурационных команд, и продолжает пулять в меня кучей не нужных данных.
Я что-то не так делаю?
Источники моих идей:
Дока по командам:
http://mt-system.ru/sites/default/files/documents/sim68xsim33ela_appnotes_zip_arhiv_0_0_0.zip
(документ MT3333 Platform NMEA Message Specification V1.07.pdf)
CRC калькулятор:
http://www.hhhh.org/wiml/proj/nmeaxor.html

lrwxrwxrwx 1 root root 7 Oct 31 12:28 ttyMOD3 -> ttymxc6
crw-rw-rw- 1 root ntp 207, 22 Oct 31 12:49 ttymxc6

Сделайте просто

, сразу увидите ошибку.

Ещё можно вывод отправить в xxd.

Правильно:

  • Одинарные кавычки, чтобы шелл не жрал доллар как переменную
  • -n , чтобы echo не добавлял ещё один перенос строки
1 Like

Одинарные кавычки!!! Ненавижу! =) Но я же и через миником пытался команду отправить… Там видимо проблемы с отправкой \r\n были.
И во всех примерах, что попадались, был именно такой синтаксис. И как у них только это работало?
Заработало!
А можно эту документацию в Вики залить и к статье по GPS модулю привязать?
Кстати, по итогу, после всех настроек, GPSD стал кушать не 10% а 0.5% CPU.

И еще вопрос. А куда правильнее вставить команды инициализации GPS, что бы они автоматически при перезапуске контроллера выполнялись?

в rc.local не получается. Похоже еще не инициализирован порт. Может сделать сервис, штатный для WB, который будет запускаться самым последним, и запускать пользовательские скрипты в папочке какой нибудь?

Так скрипты в папочку кидать - это не проще, чем написать свой systemd-юнит. Тоже один файлик в папочку кинуть. systemd-это новая реальность, придётся учится.

Постараемся добавить какой-нибудь простой пример в документацию.