PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > AndroidCar > Навигация

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2015, 15:52   #651
DaveMF
Banned
 
Регистрация: 26.06.2010
Регион: 52
Машина: duster
Сообщений: 113
DaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to all
По умолчанию

Цитата:
Сообщение от Rage2 Посмотреть сообщение
Х.м...значит не повезло...тогда нужно компилить из сорцов.

https://github.com/codewalkerster/an...5d1b434bc4d37d
это да, но только в них каждая вторая строка под одроид и менять почти все надо.
DaveMF вне форума   Ответить с цитированием
Старый 26.02.2015, 16:02   #652
SanchSanch
Новый Пользователь
 
Регистрация: 15.05.2014
Город: Москва
Регион: 77, 97, 99, 177
Машина: Opel Astra H
Сообщений: 12
SanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of light
По умолчанию

Цитата:
Сообщение от Rage2 Посмотреть сообщение
Х.м...значит не повезло...тогда нужно компилить из сорцов.

https://github.com/codewalkerster/an...5d1b434bc4d37d
Более правильная ссылка (на весь набор файлов исходников): https://github.com/codewalkerster/an.../libodroid-gps

Но посмотрев исходники, я предполагаю, что эта либа тоже про Глонасс ничего не знает и вести себя будет так же.

Исходники нашей либы раздобыть не удалось. Поэтому вопрос новой либы остается открытым...
SanchSanch вне форума   Ответить с цитированием
Старый 26.02.2015, 16:04   #653
SanchSanch
Новый Пользователь
 
Регистрация: 15.05.2014
Город: Москва
Регион: 77, 97, 99, 177
Машина: Opel Astra H
Сообщений: 12
SanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of light
По умолчанию

Цитата:
Сообщение от DaveMF Посмотреть сообщение
Команда проходит и отключает данные GLONASS, но спутники как моргали так и моргают, и навител показывает ноль, хотя в спутниках показывает нормально.

Так что отключение не помогает.
Да, я тоже пробовал и подтверждаю - моргание продолжается, даже при отключенном GPS или GLONASS.
Дело в том, что чип продолжает слать сообщение GPGSV (для GPS) или GLGSV (для GLONASS), но с нулевым количеством спутников. Это сбивает либу с толку.
SanchSanch вне форума   Ответить с цитированием
Старый 26.02.2015, 16:51   #654
Rage2
Banned
 
Регистрация: 06.11.2009
Возраст: 38
Город: Nizhniy Novgorod
Регион: 52
Машина: Ford Focus III
Сообщений: 1,776
Rage2 has a brilliant futureRage2 has a brilliant futureRage2 has a brilliant futureRage2 has a brilliant futureRage2 has a brilliant futureRage2 has a brilliant futureRage2 has a brilliant futureRage2 has a brilliant futureRage2 has a brilliant futureRage2 has a brilliant futureRage2 has a brilliant future
По умолчанию

Тогда брать свежую либу андройда с поддержкой глонасса и патчить по аналогии на предмет возможности выбора источника и скорости.

В /etc/gps.conf можно еще добавить

Код:
XTRA_SERVER_1=http://gllto.glpals.com/7day/glo/v2/latest/lto2.dat
XTRA_SERVER_2=http://gllto.glpals.com/4day/glo/v2/latest/lto2.dat
XTRA_SERVER_3=http://gllto.glpals.com/2day/glo/v2/latest/lto2.dat
SUPL_HOST=supl.google.com
SUPL_PORT=7276
И еще куча всякой хрени можно настроить
https://android.googlesource.com/dev...aster/gps.conf
Rage2 вне форума   Ответить с цитированием
Старый 26.02.2015, 17:03   #655
DaveMF
Banned
 
Регистрация: 26.06.2010
Регион: 52
Машина: duster
Сообщений: 113
DaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to all
По умолчанию

Цитата:
Сообщение от Rage2 Посмотреть сообщение
Тогда брать свежую либу андройда с поддержкой глонасса и патчить по аналогии на предмет возможности выбора источника и скорости.
А где ее взять? Я порылся и чтото не нашел.
DaveMF вне форума   Ответить с цитированием
Старый 26.02.2015, 17:08   #656
SanchSanch
Новый Пользователь
 
Регистрация: 15.05.2014
Город: Москва
Регион: 77, 97, 99, 177
Машина: Opel Astra H
Сообщений: 12
SanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of light
По умолчанию

Итак, представляю свое обещанное временное решение проблемы моргания спутников.
Вдохновила меня на это программа 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 [опции]
где
    /dev/ttyUSB0 - физическое устройство
    /dev/ttyNMEA (виртуальное "устройство", создается программой)
Допустимые опции такие:
    --gps-only                          обрабатывать только GSV и GSA сообщения со спутниками GPS (нельзя испольсовать совместно с --glonass-only)
    --glonass-only                      обрабатывать только GSV и GSA сообщения со спутниками GLONASS (нельзя испольсовать совместно с --gps-only)
    --nonzero-snr-only                  убрать спутники с нулевым сигналом (SNR) из сообщений GSV
    --filter TXT1 [TXT2] ... [TXT10]    убрать из NMEA-потока сообщения, в которых встречаются вхождения любого текста из TXT1 ... TXT10 (фильтр)
Наиболее корректный результат достигается с опциями --gps-only или --glonass-only. В этом случае в навигационых программах показывается правильный набор видимых спутников GPS или GLONASS (но только либо то, либо то) и правильно отмечаются спользованные для рассчета позиции спутники (это не обязательно все видимые, лишь некоторая их часть).
Без указания данных опций в наивгационных программах будут корректно отображаться видимые спутники 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).

Прикладываю скомпилированный бинарник вместе с исходниками.
Возможно, бинарник у всех не заработает, я не гуру компиляции.
Сорри за может быть неидельный стиль кодинга и отстутсвие комментов.
Вложения
Тип файла: zip nmeafix.zip (11.6 Кб, 579 просмотров)
SanchSanch вне форума   Ответить с цитированием
Старый 26.02.2015, 18:09   #657
DaveMF
Banned
 
Регистрация: 26.06.2010
Регион: 52
Машина: duster
Сообщений: 113
DaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to all
По умолчанию

SanchSanch
Поподробнее, напиши пожалуйста конкретно команду для запуска nmeafix с параметром gps-only. Так будет проще понять что где указывать и менять.

И раз пошла такая пьянка, то как думаешь, если взять либу от устройства которое нормально работает одновременно с глонасс и gps и ей подсовывать эти данные.
У меня на sony z3 компакт глонасс и гпс отлично вместе работают. Либа тоже находится в lib/hw и называется gps.default.so. Подсовывал в radxa, не работает, но и не виснет.
DaveMF вне форума   Ответить с цитированием
Старый 26.02.2015, 18:44   #658
SanchSanch
Новый Пользователь
 
Регистрация: 15.05.2014
Город: Москва
Регион: 77, 97, 99, 177
Машина: Opel Astra H
Сообщений: 12
SanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of lightSanchSanch is a glorious beacon of light
По умолчанию

Цитата:
Сообщение от DaveMF Посмотреть сообщение
SanchSanch
Поподробнее, напиши пожалуйста конкретно команду для запуска nmeafix с параметром gps-only. Так будет проще понять что где указывать и менять.
Сначала нужно убрать setprop "ro.kernel.android.gps" из твоего скрипта автозапуска, если такой скрипт есть.
Либо убрать 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 идем в навигационную прогу смотреть результат.
SanchSanch вне форума   Ответить с цитированием
Старый 26.02.2015, 20:19   #659
DaveMF
Banned
 
Регистрация: 26.06.2010
Регион: 52
Машина: duster
Сообщений: 113
DaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to all
По умолчанию

Эх теперь придется скрипт создавать, у меня все вшито было в самосборную прошивку. Спасибо, попробуем...

Может есть какие мысли по созданию новой либы??? Какие интересные ссылки?
DaveMF вне форума   Ответить с цитированием
Старый 26.02.2015, 20:24   #660
DaveMF
Banned
 
Регистрация: 26.06.2010
Регион: 52
Машина: duster
Сообщений: 113
DaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to allDaveMF is a name known to all
По умолчанию

Цитата:
Сообщение от SanchSanch Посмотреть сообщение
Теперь запускаем прогу (под рутом, сначала без скрипта, вручную в терминале):
nmeafix /dev/ttyUSB0 /dev/ttyNMEA --gps-only
Где должен лежать файл nmeafix???
DaveMF вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 9 (пользователей: 0 , гостей: 9)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 13:19.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot