Показать сообщение отдельно
Старый 11.12.2012, 17:03   #124
Alex_St
Старший Пользователь
 
Аватар для Alex_St
 
Регистрация: 09.04.2008
Возраст: 44
Город: Одесса
Регион: Украина
Машина: Chevrolet Aveo-II LS 2008
Сообщений: 896
Alex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to all
По умолчанию

Поигрался немного с GPS приемником MTK.
Этот чип способен выдавать новые координаты 5 раз в секунду (5Hz), а не 1 раз, как GlobalSat
Управление периодом обмена осуществляется по протоколу nmea, а значит - в текстовом виде. Есть у них своя команда $PMTK220, которая задает период. Для того, чтобы поставить период обновления 5 раз в секунду - достаточно послать в порт команду: "$PMTK220,200*2C\r\n"
Сделать это можно, например, в bat файле таким образом:
Код:
@echo $PMTK220,200*2C > COM2
Теперь надо чтобы этот bat файл запускался при каждом старте компа и выходе из гибернейта. Программа HybernateTrigger работает у меня крайне нестабильно. Но у меня стоит RR. И я использую его средства для этого ))
1. В папочке скина я создал два батника: On.bat и Off.bat. В них прописал что надо делать в случае включения (в том числе из гибернейта), и в случае выключения (в том числе ухода в гибернейт).
Содержимое получилось такое:
On.bat:
Код:
c:\Program Files\Eltima Software\Shared Serial Ports\ss_service.exe enable
inet-on.bat
mtk.bat
Off.bat:
Код:
c:\Program Files\Eltima Software\Shared Serial Ports\ss_service.exe disable
inet-off.bat
mtk.bat:
Код:
@echo $PMTK220,200*2C > COM2
При выключении у меня выключается SerialSharedPorts и отключается инет, чтобы он не блокировал гибернейт.
При старте - наоборот, стартуем SerialSharedPorts, подключаемся к сети, и переводим гпс на частоту обновления данных 5гц.

2. Теперь надо сделать так, чтобы файлы On.bat и Off.bat запускались в нужные моменты.
Для этого идем в активный скин, и правим файл ExecTbl.ini.
Добавляем в него строки:
Код:
"ONSKINSTART", "RUNQ;$skinpath$\on.bat||SETTOPMOST;RR;True||ACTIVATE;RR"
"ONRESUME",    "RUNQ;$skinpath$\on.bat||SETTOPMOST;RR;TRUE||ACTIVATE;RR"
"ONSUSPEND",   "RUNQW;$skinpath$\off.bat"
Теперь наши файлы запускаются автоматически при соответствующих событиях RR )

Кстати, в данном способе повышения частоты обновления GPS приемника есть потенциальный косяк.
Данная команда меняет лишь период выдачи сообщений в шину. Еще есть команда изменения периода определения координат. Я ее пока не трогал. Но по всему вижу, что координаты он меряет достаточно часто. По-крайней мере линия получается гладкая и красивая.

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

На ноуте были те же проблемы с частотой обновления картинки. Но в ноуте две ведеокарты - встроенный интел и внешний GeForce 520. Переключился на внешний видик - СГ стал работать гораздо быстрее.
Вывод - тормоза СГ очень зависят от возможностей графической системы.
Надо поиграться с настройками СГ и графики - может есть способы оптимизации. У меня пока на это не было времени.

Далее - вопрос, может кто-то сталкивался. В собственных командах MTK передает контрольную сумму. Об этом говорится в описании команд, но пока нигде не нашел как эту сумму считать. Если кто-то знает - поделитесь, если я сам к тому времени не найду ).
Так же у МТК есть много сервисных команд, которых нет в даташите. Бум искать.
__________________
Мой журнал: http://www.pccar.ru/showthread.php?p=79335
Alex_St вне форума   Ответить с цитированием