Показать сообщение отдельно
Старый 24.02.2015, 20:56   #642
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
По умолчанию

Цитата:
Сообщение от nrgizer79 Посмотреть сообщение
В общем проблема однозначно в либе для GPS, т.к. не умеет она одновременно парсить GPS и GLONASS.
Как временное решение хочу включить на чипе режим GPS only, а может GLONASS.
Чип MTK3333.
Вот, что нашел на просторах:
Модулем GPS можно управлять с помощью отправки в порт проприетарных команд чипсета MT3333.
Код:
Пример для перевода чипа в standby
echo -e "\$PMTK161,0*28\r" > /dev/ttyNSC1
Из описания чипа:
Код:
Packet Type: 353 PMTK_API_SET_GNSS_SEARCH_MODE
Support Chip Type:
MT3333
Packet Meaning:
This command is used to configure the receive to start searching of which satellite system
Data Field:
PMTK353,GPS_Enabled,GLONASS_Enabled
GPS_Enabled: ‘0’=disable (DO NOT search GPS satellite)
 ‘1’ or non-ZERO value=search GPS satellite
GLONASS_Enabled: ‘0’=disable (DO NOT search GLONASS satellite)
 ‘1’ or non-ZERO value=search GLONASS satellite
Example:
$PMTK353,0,1*36<CR><LF> Search GLONASS satellite only
$PMTK353,1,0*36<CR><LF> Search GPS satellite only
$PMTK353,1,1*37<CR><LF> Search GPS and GLONASS satellite only
Т.е. мне нужно в чип отправить команду:
Код:
$PMTK353,1,0*36<CR><LF>
Видимо в Андроиде через терминал надо вводить:
Код:
echo -e "\$PMTK353,1,0*36\r" > /dev/ttyUSB4
Знатоки Андроида (Линукса), а также протоколов GPS подскажите:
1. Что такое <CR><LF> (из описания команды чипа) ?
2. Что такое "r" после цифры 36 ?
3. Как выбирается значение "36" (видно, что бывает и 37 и 28...) ?
Попробуй вот так:
echo -n -e "\$PMTK161,0*28\r\n" > /dev/ttyNSC1

28 - это контрольная сумма. Зависит от текста команды. если команда меняется (или любые ее параметры) - надо рассчитывать заново.
Расчитать можно на сайте:
http://www.hhhh.org/wiml/proj/nmeaxor.html
(вставить в поле текст команды между $ и *)
<CR> - это символ возврата каретки. Для команды echo эквивалентно \r
<LF> - это символ перевода строки, эквивалентно \n

Но если ты юзаешь вместо модуля прогу pl2303drv - не заработает. Там напрочь не работает передача данных в обратном направлении.
Сегодня-завтра выложу поправленную версию, где это пофиксил. так же у меня не работала скорость 115200, теперь работает.

Также на днях выложу свое решение (костыль) для парсинга данных GPS и формирования новых NMEA-сообщений для кривой либы, так, чтобы она понимала их правильно (глонассовские спутники шлются одним пакетом с GPS-ными) и спутники не прыгали.

Последний раз редактировалось SanchSanch; 25.02.2015 в 13:34.
SanchSanch вне форума   Ответить с цитированием