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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Навигация (http://pccar.ru/forumdisplay.php?f=176)
-   -   USB GPS for Android (http://pccar.ru/showthread.php?t=18871)

mendisabal 14.06.2016 13:11

Цитата:

Сообщение от sandr2010 (Сообщение 358956)
Для интел атома z3735f и u-blox 7 под андроид - http://4pda.ru/forum/index.php?showt...ost&p=49022089 пока что временное решение.

вау , тык так же можно попробовать и в эмулятор послать данные ... от души , не знал .

0617 14.06.2016 16:23

Цитата:

Сообщение от Redial1 (Сообщение 362622)
Приемник определяется как ttyACM0 а ты настраиваешь его как ttyUSB ?
Спутники видит в GPStest ?

Прошу прощения. У меня VK-172 (маленький белый). Настраиваю как ttyACM0. Проблема в том, что не могу настроить автозагрузку init.gps.sh - если запускать руками в терминале или через Automate, то всё отлично работает (насколько оно вообще "отлично" в этом ублюдочном gps-ресивере) - все программы навигации видят спутники.


Параллельно развлекаюсь с android-x86 5.-чего-то-там на Intel Nuc N2820 (тот же атом).
В нём уже есть почти всё, что нужно для работы GPS - потребовалось добавить только
ro.kernel.android.gps=ttyACM0
ro.kernel.android.gpsttybaud=9600 - именно в таком виде.
Библиотеки, выдранные из установленного андроида, во вложенном архиве.

sandr2010 14.06.2016 20:37

Цитата:

Сообщение от kostya740 (Сообщение 362742)
Там только выбор один - WiFi

в файле android.hardware.location.gps.xml
было изначально






Помогите.

Посмотрел на своем - все тоже самое,но у меня есть изначально выбор: по сетям,по gps и всё сразу,хотя самого gps нет.

sandr2010 14.06.2016 20:43

Цитата:

Сообщение от 0617 (Сообщение 362758)
Параллельно развлекаюсь с android-x86 5.-чего-то-там на Intel Nuc N2820 (тот же атом).
В нём уже есть почти всё, что нужно для работы GPS - потребовалось добавить только
ro.kernel.android.gps=ttyACM0
ro.kernel.android.gpsttybaud=9600 - именно в таком виде.
Библиотеки, выдранные из установленного андроида, во вложенном архиве.

Ну интел интелу рознь - у вас на целероне,а это далеко не атом. Да и 5 андроид х86 из темы с 4pda не на все планшеты ставится.

kostya740 15.06.2016 12:51

фух. удалось подключить к Chuwi HI12 внешний GPS.

awtoap 15.06.2016 13:33

Так рассказывай как что где почему )))

kostya740 15.06.2016 16:47

Цитата:

Сообщение от awtoap (Сообщение 362817)
Так рассказывай как что где почему )))

http://4pda.ru/forum/index.php?s=&sh...ost&p=50415046

sandr2010 15.06.2016 17:04

Цитата:

Сообщение от kostya740 (Сообщение 362830)

Высоту показывает или постоянно моргает? Время кажет правильно?

0617 15.06.2016 18:48

Ура!
 
На своём тронсмарте (AmLogic S905, Android 5.1.1) сделал автозапуск GPS и перезапуск при отключении/подключении ресивера, также сделал синхронизацию времени с GPS (в приставке отсутствует батарейка, поэтому при каждом запуске время ставится 01.01.2015; при проводном подключении время синхронизируется с ntp-серером в сети, а при наличии только Wi-Fi приставка не подключается к сети из-за слишком большой разницы во времени).
Автозапуск работает только из
install-recovery-2.sh
Код:

#!/system/bin/sh

/system/etc/init.gps.sh
/system/etc/init.date.sh

init.gps.sh
Код:

#!/system/bin/sh

# gps device settings
GPSTTYdefault="ttyACM0"
SPEEDdefault="9600"
# time zone shift:  3 for MSK
TimeZone=3
# ################################################ #
# set 1 for logging, 0 for work
LOG=0
# path to log file
LOGFILE=/sdcard/gps.init.log.txt
# ################################################ #

GPSinit() {
        FOUND=""
        SLEEPTIME=1
        while [ 1 = 1 ]
        do
                if [ -c /dev/$GPSTTY ];
                then
                        SET666=$(ls /dev/$GPSTTY -l | grep rw-rw-rw)
                        if [[ $FOUND = "" ]] || [[ $SET666 = "" ]]
                        then
log "$GPSTTY found!"
                                chown root:system /dev/$GPSTTY
                                chmod 666 /dev/$GPSTTY
                                busybox stty -F /dev/$GPSTTY ispeed $SPEED
                                FOUND="found"
                                SLEEPTIME=10
                                GPStimesync
                        fi
                else
log "... no $GPSTTY found for one more second ..."
                        FOUND=""
                        SLEEPTIME=1
                fi
                sleep $SLEEPTIME
        done
}

GPStimesync() {
        sleep 2
        # wait for full RMC packet (no matter if it is V or A)
log "... GPS $GPSTTY time sync started"
        GPRMC=$(cat /dev/$GPSTTY | grep -m 1 -e '$GPRMC,[0-9]\{6\}.[0-9]*,\(.*,\)\{7\}[0-9]\{6\}')
log "... GPRMC=$GPRMC"
        D=$(echo $GPRMC | cut -d , -f 10)
        T=$(echo $GPRMC | cut -d , -f 2)
        Dy=$(expr substr $D 5 2)
        Dm=$(expr substr $D 3 2)
        Dd=$(expr substr $D 1 2)
        T=$(expr substr $T 1 6)
log "... time to set 20$Dy$Dm$Dd.$T"
        date -s 20$Dy$Dm$Dd.$T
        T0=$(date +%s)
        # add double time shift for local time
        TZ=$(($T0+2*TimeZone*3600))
        date -u $TZ
}

log() {
# LOG: 1 = logging on
# LOGFILE: log file name
# no parameters: clear log file
        if [ "$LOG" = 1 ]
        then
                if [ "$1" ]
                then
                        echo $1 >> $LOGFILE
                else
                        echo Start logging > $LOGFILE
                fi
        fi
}

log
log "Start logging $GPSTTY init"

GPSTTY=$(getprop ro.kernel.android.gps)
SPEED=$(getprop ro.kernel.android.gps.speed)
if [ "$GPSTTY" == "" ];
        then
                GPSTTY=$GPSTTYdefault
                SPEED=$SPEEDdefault
                setprop  ro.kernel.android.gps $GPSTTY
                setprop ro.kernel.android.gps.speed $SPEED
fi
GPSinit &
exit

init.date.sh
Код:

#!/system/bin/sh

# reads last known date (LKD) from saved file, sets it as current date, updates every hour

SaveDateEveryHour() {
        while [ 1 = 1 ]
        do
                sleep 600
                date +%Y%m%d.%H%M%S > /sdcard/lastdate.txt
                sleep 3000
        done
}

if [ -f  /sdcard/lastdate.txt ]
then
        LKD=$(cat /sdcard/lastdate.txt)
        date -s $LKD
else
        date -s 20160701.010101
fi;

SaveDateEveryHour &
exit

По окончании загрузки оба скрипта продолжают выполняться в фоновом режиме.
init.gps каждые 10 секунд определяет наличие и доступность устройства /dev/ttyACM0 (или что там прописано в ро.кернел.адроид.гпс). Если устройство отсутствует, задержка опроса уменьшается до 1 секунды. Как только устройство появляется, на него повторно раздаются права, и оно становится опять доступно программам навигации. Таким образом, при отключении и повторном подключении ресивера он станет доступен не более, чем через 10 секунд. При каждой инициализации GPS (автозапуск или перезапуск) скрипт ожидает первый пакет GPRMC, в котором полностью заполнены поля даты и времени, и выставляет соответствующее время с учётом пояса.
За процессом загрузки можно проследить в логфайле (LOG=1)
Начальная установка времени делается следующим образом:
init.date.sh при запуске считывает содержимое файла с /sdcard/ и устанавливает время из него, а затем через 10 минут и потом каждый час обновляет файл. Т.о. при отсутствии синхронизации при следующем запуске будет установлено время незадолго перед последним отключением. Т.е. сразу после загрузки - 01.01.2015, через несколько секунд - время перед последним выключением, затем, после получения пакета GPRMC с GPS, - точное время.

kostya740 15.06.2016 22:43

Цитата:

Сообщение от sandr2010 (Сообщение 362832)
Высоту показывает или постоянно моргает? Время кажет правильно?

как бы моргает в GPS Test.


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

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