Показать сообщение отдельно
Старый 14.08.2015, 01:23   #805
omega2008
Новый Пользователь
 
Регистрация: 13.08.2015
Возраст: 38
Регион: 70
Сообщений: 3
omega2008 is a jewel in the roughomega2008 is a jewel in the roughomega2008 is a jewel in the rough
По умолчанию

Ребята у меня адаптер gps/glonass, с либой из шапки происходит постоянное мигание, то gps то glonass и так покругу.

К сожалению либа от DaveMF у меня не заработала вообще, все приложения перебрасывают в системные настройки жпс.

Я решил разобраться в чем дело, взял за основу вот этот проект:
https://github.com/kconger/android-serial-gps-driver скомпилил его используя android NDK и получил точно тот же результат - мигание.

Так вот согласно исходникам обновление операется на GSV, и делается проверка:
Код:
if (num_messages==msg_number)
            update_gps_svstatus(&r->sv_status);
Вобщем сделал дамп NMEA сообщений которые приходят на последовательный порт увидел что:
Код:
$GPGSV,3,1,10,01,10,057,24,02,19,241,21,03,37,062,23,06,55,242,41*75
$GPGSV,3,2,10,12,14,320,31,17,77,044,34,23,02,096,13,24,17,290,39*72
$GPGSV,3,3,10,28,36,163,39,32,08,034,20*75
$GLGSV,3,1,09,65,39,110,19,66,09,159,36,72,30,045,17,78,30,227,20*66
$GLGSV,3,2,09,79,41,286,34,80,09,342,17,81,52,308,28,87,20,076,24*6A
$GLGSV,3,3,09,88,60,032,14*5E
видно что идет GPGSV (gps) несколько сообщений, и когда num_messages==msg_number выполняется update_gps_svstatus

затем GLGSV (glonass) и снова num_messages==msg_number и снова обновление update_gps_svstatus что неправильно, обновлять нужно все один раз за цикл

Вобщем подковырял я исходники чтобы сделать сквозную нумерацию, и обновление по приходу нового GPGSV с msg_number == 1

Также подправил чтобы использовалось ro.kernel.android.gps и ro.kernel.android.gps.speed По идее библиотека сама выставит скорость и no_echo для этого порта.

Короче поставил вроде работает но нужно тестирование.
Скачать:
gps.default.zip
omega2008 вне форума   Ответить с цитированием