Поигрался немного с 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 передает контрольную сумму. Об этом говорится в описании команд, но пока нигде не нашел как эту сумму считать. Если кто-то знает - поделитесь, если я сам к тому времени не найду ).
Так же у МТК есть много сервисных команд, которых нет в даташите. Бум искать.