![]() |
Доброго времени суток! Скажите, а как подключить вот этот модуль http://ru.aliexpress.com/item/GPS-UA...865149790.html
к вот этой плате http://mysku.ru/blog/aliexpress/26949.html. По идее задокументирована поддержка GPS, но вот надо ли для этого драйвер и надо ли пересобирать ядро уже установленного андроида. |
Цитата:
echo -n -e "\$PMTK161,0*28\r\n" > /dev/ttyNSC1 28 - это контрольная сумма. Зависит от текста команды. если команда меняется (или любые ее параметры) - надо рассчитывать заново. Расчитать можно на сайте: http://www.hhhh.org/wiml/proj/nmeaxor.html (вставить в поле текст команды между $ и *) Но если ты юзаешь вместо модуля прогу pl2303drv - не заработает. Там напрочь не работает передача данных в обратном направлении. Сегодня-завтра выложу поправленную версию, где это пофиксил. так же у меня не работала скорость 115200, теперь работает. Также на днях выложу свое решение (костыль) для парсинга данных GPS и формирования новых NMEA-сообщений для кривой либы, так, чтобы она понимала их правильно (глонассовские спутники шлются одним пакетом с GPS-ными) и спутники не прыгали. |
Попробуйте новую либу.
gps.odroidxu3.so, где odroidxu3 в названии меняем как и раньше на вашу платформу (например gps.default.so) Выдрал из прошивки для ODROID-XU3, ( 4.4.4_Alpha_1.6_Jan-13-2015) Параметры скорости и путь к gps приемнику задаются через: Можно прописать в ваш /system/build.prop ro.kernel.android.gps=/dev/ttyACM0 ro.kernel.android.gps.speed=9600 или так в скрипт /etc/init.d/ setprop ro.kernel.android.gps ttyACM0 setprop ro.kernel.android.gps.speed 9600 Файлы удалил....не взлетело. |
У меня не заработало - девайс перестал загружаться. Восстановил старую либу через рекавери.
|
Как и обещал, в соответствующей теме выложил поправленную версию проги pl2303drv для работы с приемниками на базе pl2303 без модуля ядра.
Поправлена работа на скорости 115200 и передача данных от хоста к устройству (теперь можно передавать GPS-приемнику спец-комманды для конфигурации). Обещанный костыль для корректной работы либы с GLONASS еще немного подшлифовываю, выложу на днях. |
Цитата:
|
Цитата:
Нужна новая библиотека... Hander Clander поделился исходниками? |
Цитата:
Цитата:
https://github.com/codewalkerster/an...5d1b434bc4d37d |
а таскером через скрипт не получиться подсунуть, я когда выставлял задержку и права в init.d , сразу возрастало время загрузки в двое. Эта проблема исчезла при использовании скрипта запускаемого таскером.
|
Цитата:
Так что отключение не помогает. |
Цитата:
|
Цитата:
Но посмотрев исходники, я предполагаю, что эта либа тоже про Глонасс ничего не знает и вести себя будет так же. Исходники нашей либы раздобыть не удалось. Поэтому вопрос новой либы остается открытым... |
Цитата:
Дело в том, что чип продолжает слать сообщение GPGSV (для GPS) или GLGSV (для GLONASS), но с нулевым количеством спутников. Это сбивает либу с толку. |
Тогда брать свежую либу андройда с поддержкой глонасса и патчить по аналогии на предмет возможности выбора источника и скорости.
В /etc/gps.conf можно еще добавить Код:
XTRA_SERVER_1=http://gllto.glpals.com/7day/glo/v2/latest/lto2.dat https://android.googlesource.com/dev...aster/gps.conf |
Цитата:
|
Вложений: 1
Итак, представляю свое обещанное временное решение проблемы моргания спутников.
Вдохновила меня на это программа pl2303drv автора с 4pda и доработанная уже на данном форуме. Оттуда взял саму идею и пример реализации виртуального "устройства" tty. Моя программа читает NMEA поток от приемника, парсит его и формирует новый "исправленный" (хотя на самом деле наоборот) поток - такой, чтобы либа его правильно переваривала и предоставляла андроиду на выходе по возможности правильные данные. Программа создает виртуальное "устройство" tty и выдает туда сгенерированный поток. Для либы в качестве GPS-приемника нужно указывать уже данное созданное устройство. Название (путь) к входному (настоящему) и выходному (которое она создаст) устройствам программа принимает в качестве аргументов командной строки. Программу условно назовем nmeafix (хотя на самом деле она не fix-ит, а "ломает" NMEA-поток :) ) Соответственно нужно модифицировать скрипт автозапуска GPS, добавив после загрузки модуля ядра виртуального порта (или запуска pl2303drv) и после настройки прав доступа ис корости, но ПЕРЕД командой "setprop ro.kernel.android.gps ttyUSB0" запуск nmeafix, а уже после него сделать setprop ro.kernel.android.gps с другим новым именем устройства (которое задается программе в качестве второго аргумента). На первом этапе целесообразно просто убрать из скрипта setprop, а заупск nmeafix и последующий setprop делать в консоли вручную (в разных окнах). nmeafix можно при необходимости остановить нажатием Ctrl-C. В случае запуска из скрипта нужно в конце команды добавить символ &, чтобы скрипт выполнялся дальше. При запуске без параметров nmeafix выдает краткую справку по использовниаю, при запуске с неверными параметрами - сообщение об ошибке и ту же справку. Запускать так: Код:
nmeafix /dev/ttyUSB0 /dev/ttyNMEA [опции] Без указания данных опций в наивгационных программах будут корректно отображаться видимые спутники GPS+GLONASS, но с отображением активных (использованных для рассчета позиции) спутников будут глюки - могут ложно отмечаться как активные спутники (как GPS, так и GLONASS), которые на самом деле не использованы для расчета. И наоборот - использованные для расчета спутники (особенно Глонасс) могут не отмечаться как активные, из-за ограничения в либе (или используемом либой API андроида) на 12 активных спутников (на самом деле навигационные проги могут показывать и несколько большее число активных спутников из-за вышеописанного глюка с ложной отметкой активных спутников). Причина ложной отметки в том, что для передачи инфы об активных спутниках андроиду используется битовая маска в 32 бита (unsigned int), где каждый бит соответствует спутнику (от 1 до 32). Спутники GPS имеют нумерацию от 1 до 32, Глонасс - от 65 до 96. Спутники Гонасс могут быть помечены активными, только если сместить их нумерацию на 64. Но в таком случает пометится и спутник GPS с таким номером, если он есть в списке видимых. И наоборот. Короче, если в списке видимых спутников, который шлет приемник, пристутсвуют 2 спутника - GPS (с номером N) и Глонасс (с номером N+64), и один из них помечается приемником, как активный, в навигационных прогах оба эти спутника отобразятся как активные. И ничего с этим сделать нельзя, не пересобирая либу (и то я не знаю, что там править надо). Опция --nonzero-snr-only влияет на отображение видимых спутников с нулевым сигналом (столбики с нулевой высотой). Мне показалось, что это слишком громоздко, и я добавил такой фильтр. Неоктрые навигационные проги и так не отображают такие спутники. Использовать или нет - дело вкуса. Может использоваться совместо с опциями --gps-only или --glonass-only. Опция --filter нужна для исключения из NMEA-потока от приемника некоторых сообщений, в которых содержатся вхождения последовательностей символов из спика (от 1 до 10), указанного после --filter. Такие сообщения не обрабатываются и не передаются дальше в созданое виртуальное "устройство". Опция --filter может быть указана только последней в списке опций, после нее может быть только список последовательностей символов для фильтрации (от 1 до 10). Добавил эту опцию для исключения сообщений GLL и RMC. С ними у меня либа глючила - в нави-прогах "моргало" отображение высоты и курса (азимута) - показывались то правильные цифры, то 0. Поскольку данная информация содержится не только в этих сообщениях - их отключение достаточно безвредно и помогает вылечить глюк либы. Единственное что - теряем инофрмацию о текущем времени, поэтому надо спец-коммандой включить в чипе вывод сообщений ZDA (в моем приемнике на базе MTK3333 вывод этого сообщения изначально отключен). Сообщения GLL и RMC тоже можно отключить этой спец-коммандой, я так и сделал, дополнительно для надежности использую опцию --filter в nmeafix. Возможно глюк либы c GLL и RMC будет не у всех, а зависит от приемника и чипа, на базе которого он сделан. Для удобства nmeafix поддерживает также передачу конфигурацонных спец-комманд в GPS-чип, т.е. все символы, отправленные в /dev/ttyNMEA передаются в физическое устройство (например, /dev/ttyUSB0). Прикладываю скомпилированный бинарник вместе с исходниками. Возможно, бинарник у всех не заработает, я не гуру компиляции. Сорри за может быть неидельный стиль кодинга и отстутсвие комментов. |
SanchSanch
Поподробнее, напиши пожалуйста конкретно команду для запуска nmeafix с параметром gps-only. Так будет проще понять что где указывать и менять. И раз пошла такая пьянка, то как думаешь, если взять либу от устройства которое нормально работает одновременно с глонасс и gps и ей подсовывать эти данные. У меня на sony z3 компакт глонасс и гпс отлично вместе работают. Либа тоже находится в lib/hw и называется gps.default.so. Подсовывал в radxa, не работает, но и не виснет. |
Цитата:
Либо убрать ro.kernel.android.gps из файла build.prop, если прописывал туда. Потом перезагрузить устройство. После перезагрузки либа не будет цепляться к GPS приемнику, т.к. не прописан setprop. Дальше делаем все подготовительные операции (грузим модуль ядра, выставляем права, скорость и тд), все как обычно - если это не делает скрипт. Теперь запускаем прогу (под рутом, сначала без скрипта, вручную в терминале): nmeafix /dev/ttyUSB0 /dev/ttyNMEA --gps-only Прога должна выдать приветствие и дальше молча работать, ничего не выводя на экран. Если выдает список опций, примеры команды запуска и сразу завершается - значит неправильно что-то написали в команде. Потом в другом окне терминала (не закрывая старое, где запустили прогу): setprop "ro.kernel.android.gps" "ttyNMEA" Можно еще проверить, идут ли данные: cat /dev/ttyNMEA (посмотрели и остановили нажатием Ctrl-C) И не закрывая окно терминала, где запущен nmeafix идем в навигационную прогу смотреть результат. |
Эх теперь придется скрипт создавать, у меня все вшито было в самосборную прошивку. Спасибо, попробуем...
Может есть какие мысли по созданию новой либы??? Какие интересные ссылки? |
Цитата:
|
я залил в /system/xbin
наверное можно и просто в /data главное, чтобы не внутренняя или внешняя карта памяти (fat32) - т.к. нужно выстаить файлу права на выполение |
Подтверждаю, nmeafix решает проблему моргания спутников на GPS/GLONASS приемниках с чипом MT3333.
Автору респект!!! |
Поидее должно и на дргуих чипах работать, но могут и глюки вылезти, если синтаксис NMEA сообщений отличается.
На всякий случай добавлю еще, что использование опций --glonass-only или --gps-only никак не влияет на точность определения координат, т.к. чип продолжает работать с обеими системами и обсчитывать все спутники. Ни либа, ни nmeafix, координаты сами естественно не вычисляют. Эти опции можно и не использовать вообще, тогда будут отображаться все спутники (без мигания), но вот отображение активных спутников будет глючить, могут быть "лишние" активные спутники, или наоборот, не все активные спутники могут отображаться соответствующим образом. |
Цитата:
Вшиваю в исходники и пробую чтобы запускалась системой. ОДНОЗНАЧНО ПРИКРЕПИТЬ В ШАПКУ ТЕМЫ!!! РЕШАЕТ МНОГИЕ ПРОБЛЕМЫ!!! |
Всем привет!
У меня в build.prop прописано: Код:
ro.kernel.android.gps=ttyUSB4 1. Закинуть nmeafix в папку /system/xbin 2. В build.prop прописать: Код:
ro.kernel.android.gps.speed=4800 |
Небольшой отчет по использованию ГЛОНАСС в связке с nmeafix.
Когда катаешься по городу, где скорости в основном меньше 70км/ч все хорошо работает, иногда замечаешь что карта начинает разворачиваться, но тут же возвращается обратно. А вот когда выезжаешь на трассу, пользоваться навигацией становится НЕВОЗМОЖНО! Когда скорость переваливает за 70км/ч, скорость в навигационных программах начинает скакать (то 0, то 90 - например), в это время начинает постоянно вращаться карта и по несколько секунд показывает что двигаешься задом на 90км/ч. Одновременно с этим, мапкамдроид начинает постоянно орать и выскакивает сообшение о камере которая уже сзади меня, т.к. я еду задом. Как только скорость скакнет на ноль, мапкам дроид сворачивается и через пол секунды скорость 90 и он опять орет и говорит что камера. И все это одновременно с вращением карты. Вобщем отключил nmeafix, оставил с нашей библиотекой, но что удивительно, спутники скачут (то глонасс, то гпс), в навителе показывает 0 спутников, но при этом говорит что связь со спутниками есть и скорость и направление показывает верно без каких либо глюков. И все остальные проги тоже работают правильно. |
Народ помогите. Имеется устройств mk808B с процессором RK3066 на плате написано v4 стоит рутованая прошивка 4.4.2 с ядром 3.0.36+ при попытке запуска команды insmod /system/lib/modules/cp210x.ko или cdc-acm.ko то устройство зависает и уходит в ребут. Файлы скачаны с шапки темы.
|
Цитата:
|
Цитата:
|
Цитата:
Может ttyACM появляется? |
Цитата:
|
Было уже такое...у вас версия ядра новее(как бы номер тот же, но новее сорцы из которых сделано...у рокчипов есть такое :) ) отсель при попытке загрузить модули из шапки получаете ребут.
Нужно поискать, из кастомных прошивок выдернуть например... Вот попробуй эти. Файлы отправил в шапку |
Цитата:
|
Вложений: 1
У кого есть ГЛОНАСС/GPS приемники и есть желание потратить несколько часов или даже дней на тесты с разными настройками, прошу написать мне в личку!!!
Нужно протестировать новую скомпилированную библиотеку, поддерживающую глонасс спутники. Андроид должен быть не ниже 4.0. На моем приемнике Sim68V, соединенном по UART работает примерно как на фото |
Цитата:
Чья работа? |
Цитата:
|
Выкладывай. Будем тестить.
|
Rage2, ваша либа работает на Андроид-x86 или только на армах?
|
А подскажите, что из моделей USB-мышей под андроид для приёма сейчас кашерно брать?
|
Вложений: 1
Здравствуйте. Имеется китай-планшет Chuwi vi8, на intel z3735, дуал бут, win8/And 4.4 и usb gps ublox7 (другое название vk 172).
Вывод cat /dev/ttyACM0 на картинке. Корректные ли подключился gps и можно ли копать дальше? Вложение 39475 |
Часовой пояс GMT +4, время: 05:22. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot