ребят, такая тема, заказал GPS модуль, все хорошо данные получаю, но небольшая загвоздка.... не правильно показывает местоположение.. аж в 30 км от места нахождения... его можно как нибудь откалибровать или что ?
После того, как "поймали" спутники и после этого потеряли связь, заставьте модуль "забыть" про список пойманный и др. подав соответствующую команду... Если память не изменяет то протокол TSIP. Иначе корректные данные восстановятся очень не скоро. Вы я понял принимаете данные в NMEA и/или TAIP. Выш модуль скорее всего имеет встроенную батарейку питания и помнит последние корректные данные. И можно проверить корректность данных по сообщению в принимаемом от устройства пакете. Но победить мне удалось только подав команду по TSIP
Не очень понятно зачем ? Igor68, вы хотите сказать, что модуль так быстрее найдется ? ИМХО, в любом случае модулю теперь проводить холодный старт, разве сброс координат к заводским (обычно координаты завода изготовителя) "спасут отца русской демократии" ? Просто нужно обеспечить доступность спутников - вынести модуль на улицу.
Зачем искать модуль, если с ним есть связь. Но вот когда вы отключили его и вновь включили... хотя в моём случае нет(потеряли спутники и вновь поймали) приходилось "чистить"
Вот пакет NMEA $PSRF101,-2686700,-4304200,3851624,96000,497260,921,12,3*1C Последний знак перед чексуммом (перед *, который в примере 3) : 1: Hot Start— All data valid 2: Warm Start—Ephemeris cleared 3: Warm Start (with Init)—Ephemeris cleared, initialization data loaded 4: Cold Start—Clears all data in memory 8: Clear Memory—Clears all data in memory and resets the receiver back to factory defaults И не нужны никакие проприетарные протоколы. Можно и 8 сделать, только смысл мне не понятен.
Под "найдется" , я подразумевал - определит свои координаты Видимо библиотека которой пользуется ТС, не проверяет валидность данных и шарашит старые, либо сам ТС этого не делает. У RMC пакетов, из которых, как правило, берутся координаты, есть поле Mode, которое отражает статус данных, по его значению нужно определять, имеет ли смысл использовать данные или нужно ждать обнаружение спутников.
Дело хозяйское... Ну и решайте сами... Помню только одно - теряем связь с антенной (режим теста перекрытия) потом восстанавливаем связь с антенной, ловим спутники и... ВРЕМЯ НЕ СОВПАДАЕТ С СОСЕДНИМ (У которого не было нарушения связи). А тем не менее информация в пакете считается достоверной... и даже секундный импульс идёт. Прерыватель не синхронизирован с соседним. И это довольно долго, а судя по описанию при приёме GPS обновление данных после списка спутников - данные обновляются до (около 13 минут). А нужны были только часы безо всяких координат. А применялся модуль от trimble. И просьба когда даёте описание NMEA не забывайте по какому протоколу происходит конфигурация выдаваемых устройством пакетов данных из списка (это TSIP). А то я вроде как лгуном выгляжу. В моём случае часы работали не правильно как я сказал и требовалось либо снимать и подавать питание, либо заставить устройство "забыть" всё старое и искать снова. Устройство было с вынутой батарейкой для собственных часов. Кстати устройство сообщало что всё правильно... в то время как соседние устройства работают синхронно, а испытуемое врёт и очень долгое время. Для чего устройства? Для синхронной отработки реле в разных местах с секундным (единицы секунд) циклом. А Вы говорите. Надо только попробовать. А кстати NMEA придуман для флота(кораблей)
C чего вы решили, что я вас лгуном то выставляю ? Бред какой то... NMEA - стандарт дефакто, остальное проприетарщина. Поэтому я просто показал способ в случае с NMEA. Что не так то ?
Дело в том, что упомянутый мной модуль как и другие был настроен тоже на NMEA. И интервал выдачи пакетов и "типы" пакетов определялись начальной настройкой по COM порту с помощью их программы из под Windows. Были выбраны только нужные данные... к сожалению пакетов было несколько, поскольку разные данные: время, количество спутников, достоверность и т.п. нельзя было передавать одним пакетом. Платы были уже готовы, а управление питанием (для сброса) не было предусмотрено. Был поиск решения и был рассмотрен этот самый TSIP... в документации было найдено его описание. Но TSIP срабатывал только как ответ на запрос в отличии от NMEA в котором блок выдавал его циклически согласно настройкам. Но есть ещё и TAIP... он не так часто упоминается, но более компактен... а запрашиваемые данные вообще можно "набрать" исходя из требований. Насколько помню (давно было) только NMEA выдавал в текстовом формате и самостоятельно без запроса с указанным при настройке интервалом. Со стороны контроллера при этом надо было только принимать по SERIAL... ну и фиксировать сихроимпульсы секунд (идут перед началом выдачи пакетов NMEA). Сейчас посмотрел... а там в trimble что-то и модулей не увидел, а только готовые решения.
Дык я и не спорю, что все не просто. Есть модули у которых в прошивке ошибки. Встречаются, которые почему то не все команды понимают или реагируют на них не правильно. По этому на первый взгляд простое общение с модулем выливается в танцы с бубном. Я не претендую на правильность и идеальность , просто считаю, что с протоколами отличными от NMEA можно работать если по NMEA не получается, но повторю, это просто мое мнение.
Да и я т Да я только предлагаю как вариант заставить ловить спутники с начала при включении... многие с батареей и часы встроенные тикают. Да и включить его можно находясь в другом месте пространства... а он (модуль) помнит старые данные благодаря своей внутренней батарейке (если таковая есть). И пока он вновь поймает спутники и обновит список... а если пасмурно то не все "старые" перечитает... а ведь они с его точки зрения правильные. Это как вариант... для модуля.
А как Вы видите, что не правильно? У Вас формат координат совпадает? 55,755831°, 37,617673° — градусы N55.755831°, E37.617673° — градусы (+ доп. буквы) 55°45.35′N, 37°37.06′E — градусы и минуты (+ доп. буквы) 55°45′20.9916″N, 37°37′3.6228″E — градусы, минуты и секунды (+ доп. буквы)