14.03.2014, 14:29 | #481 | |
Пользователь
Регистрация: 22.02.2013
Возраст: 40
Город: Тернополь
Регион: Украина
Машина: Renault Logan MCV 1.5dci
Сообщений: 37
|
Цитата:
После запуска команды Код:
busybox date -D %H%M%S%d%m%y -s "$(cat /dev/ttyUSB0 |busybox grep -m1 GPRMC | busybox cut -f2,10 -d, | busybox sed -e 's/.000,//')" Немножко разобрался с командами и выяснил что команда ищет в посылках NMEA текст GPRMC. Командой Код:
cat /dev/ttyUSB0 Код:
busybox date -D %H%M%S%d%m%y -s "$(cat /dev/ttyUSB0 |busybox grep -m1 GNRMC | busybox cut -f2,10 -d, | busybox sed -e 's/.000,//')" Код:
sh: cat: <stdout>: Broken pipe date: invalid date '083541.600,140314' |
|
14.03.2014, 14:45 | #482 | ||
Пользователь
Регистрация: 26.12.2013
Возраст: 43
Город: Москва
Регион: 77, 97, 99, 177
Машина: Mercury Mariner 2.5 2011
Сообщений: 99
|
Цитата:
Цитата:
А вообще это всего-навсего означает, что ваш GPS не выдает сообщения GPRMC. GPRMC - это сообщения которые есть в NMEA 2.0, предполагаю, что у вас приемник NMEA 4.0, в котором есть сообщения GNRMC. Дабы не делать наобум неосмыленных действий, просто подменяя строки - для начала почитайте что-нибудь типа нижеследующего про 2.0 и про 4.0 По поводу ошибок - первая это ок, означает, что grep нашел нужную строку и вышел. Может быть подавлена при помощи Код:
> /dev/null 2>&1 Путем нехитрых преобразований получаем, что новый код будет выглядеть как Код:
busybox date -D %H%M%S%d%m%y -s "$(cat /dev/ttyUSB0 |busybox grep -m1 GNRMC | busybox cut -f2,10 -d, | busybox sed -e 's/.600,//')" Код:
busybox date -D %H%M%S%d%m%y -s "$(cat /dev/ttyUSB0 |busybox grep -m1 GNRMC | busybox cut -f2,10 -d, | busybox sed -e 's/\.[0-9][0-9][0-9],//')" Код:
cat /dev/ttyUSB0 |busybox grep -m20 GNRMC Последний раз редактировалось pine; 14.03.2014 в 15:17. |
||
14.03.2014, 15:50 | #483 | |
Пользователь
Регистрация: 22.02.2013
Возраст: 40
Город: Тернополь
Регион: Украина
Машина: Renault Logan MCV 1.5dci
Сообщений: 37
|
Ничего не имею против. Я в Unix (и подобным) вообще не работал так что учусь помаленьку по надобности.
Спасибо что откликнулись! После написания предыдущего поста появилась мысля и я пошел ее проверить. И вот что получилось: Цитата:
В результате нашел решение: добавил до скрипта который запускает сам GPS следующий код: Код:
sleep 5 busybox date -D %H%M%S%d%m%y -s "$(cat /dev/ttyUSB0 |busybox grep -m1 GNRMC | busybox cut -f2,10 -d, | busybox sed -e 's/.000,//')" sleep 0.2 busybox date -D %H%M%S%d%m%y -s "$(cat /dev/ttyUSB0 |busybox grep -m1 GNRMC | busybox cut -f2,10 -d, | busybox sed -e 's/.000,//')" sleep 0.2 busybox date -D %H%M%S%d%m%y -s "$(cat /dev/ttyUSB0 |busybox grep -m1 GNRMC | busybox cut -f2,10 -d, | busybox sed -e 's/.000,//')" sleep 0.2 busybox date -D %H%M%S%d%m%y -s "$(cat /dev/ttyUSB0 |busybox grep -m1 GNRMC | busybox cut -f2,10 -d, | busybox sed -e 's/.000,//')" sleep 0.2 busybox date -D %H%M%S%d%m%y -s "$(cat /dev/ttyUSB0 |busybox grep -m1 GNRMC | busybox cut -f2,10 -d, | busybox sed -e 's/.000,//')" Спасибо за оптимизацию! Код:
's/\.[0-9][0-9][0-9],//' |
|
14.03.2014, 16:16 | #484 | |
Пользователь
Регистрация: 26.12.2013
Возраст: 43
Город: Москва
Регион: 77, 97, 99, 177
Машина: Mercury Mariner 2.5 2011
Сообщений: 99
|
Цитата:
Избыточно, имхо. То, что ниже работает? Писал "из головы". На самом деле еще хочу вас попросить понаблюдать, стабильно ли выставляется дата-время, если добавлять вызов этого скрипта в /etc/install-recovery.sh? У меня есть ощущение, что на моем приемнике в случае, если спутники еще не найдены, то выдается "начало времен" 1 января 1970 года. Но проявляется это не каждый раз. |
|
14.03.2014, 16:23 | #485 |
Пользователь
Регистрация: 26.12.2013
Возраст: 43
Город: Москва
Регион: 77, 97, 99, 177
Машина: Mercury Mariner 2.5 2011
Сообщений: 99
|
Кстати, вот такой код должен работать и с 2.0 и с 4.0
Код:
busybox date -D %H%M%S%d%m%y -s "$(cat /dev/ttyUSB0 |busybox grep -e -m1 "G[NP]RMC" | busybox cut -f2,10 -d, | busybox sed -e 's/\.[0-9][0-9][0-9],//')" |
14.03.2014, 17:08 | #486 | |
Пользователь
Регистрация: 22.02.2013
Возраст: 40
Город: Тернополь
Регион: Украина
Машина: Renault Logan MCV 1.5dci
Сообщений: 37
|
работает, правда немножко сократил из-за ненадобности
Код:
's/\.[0-9]00,//' Цитата:
п.с. пересмотрел Ваши ссылки по документации на NMEA и увидел там что есть флаг который отвечает за валидность информации о времени. Можно доработать скрипт на проверку этого флага и установка часов будет только тогда когда данные будут правильными. |
|
15.03.2014, 23:25 | #487 |
Banned
Регистрация: 26.06.2010
Регион: 52
Машина: duster
Сообщений: 113
|
Добрый день!
подскажите пожалуйста, железо rk3188 + bu-353s4 когда в командной строке выполняю: echo -n "1-1.2:1.0" > /sys/bus/usb/drivers/option/unbind insmod /system/lib/modules/pl2303.ko busybox stty -F /dev/ttyUSB0 ispeed 4800 busybox chmod 666 /dev/ttyUSB0 setprop ro.kernel.android.gps ttyUSB0 по команде cat /dev/ttyUSB0", побежали NMEA данные. Но когда я все добавляю по инструкции в автозагрузку и перезагружаю устройство, то скорость сама не меняется. Может кто знает почему? Последний раз редактировалось DaveMF; 16.03.2014 в 11:47. |
16.03.2014, 11:51 | #488 |
Banned
Регистрация: 26.06.2010
Регион: 52
Машина: duster
Сообщений: 113
|
После перезагрузки, по команде busybox stty -F /dev/ttyUSB0 показывает 9600, т.е. автозагрузка не выполнилась.
Кто знает почему? |
16.03.2014, 12:49 | #489 |
Banned
Регистрация: 06.11.2009
Возраст: 38
Город: Nizhniy Novgorod
Регион: 52
Машина: Ford Focus III
Сообщений: 1,776
|
Ну может автозагрузка (init.d) у вас не пашет или криво ее пытались поднять....попобуйте другой вариант. (install-recovery)
Смотрите логи командной dmesg, может все работает, а только скорость не выставляется.... |
16.03.2014, 13:15 | #490 | ||
Banned
Регистрация: 26.06.2010
Регион: 52
Машина: duster
Сообщений: 113
|
Цитата:
install-recovery.sh c содержимым: Цитата:
и назначил права busybox chmod 755 /system/etc/install-recovery.sh и все, данные пошли, автозагрузка заработала!!! Спасибо, Rage2! |
||
Здесь присутствуют: 4 (пользователей: 0 , гостей: 4) | |
|
|