GpsModDriver 260+regS Твики реестра GPS : Правим ветку реестра: HKLM\SYSTEM\CurrentControlSet\GPS Intermediate Driver\ Настойка скорости обмена данными с приёмником, может избавить от запаздывания вашей координаты: - Drivers\GpsOneDevice\PollInterval -> 100 (по умолчанию 1000) - Drivers\InputBufferSize -> 512 (по умолчанию 4096) - Drivers\OutputBufferSize -> 512 (по умолчанию 4096) - Drivers\SleepOnNoData -> 100 (по умолчанию 1000) - Multiplexer\MaxBufferSize -> 512 (по умолчанию не существует, создайте её) Отключение записи логов низкого уровня в файл, может немного расслабить нагрузку на девайс: - CurrentLogFile -> "" - OldLogFile -> "" - MaxLogFileSize -> 0 Плюс ставим прогу/драйвер GpsModDriver 260 (от HD2, кстати удалить её потом проблематично!) ...ну прям летает и спутников ловит не 5-9 как обычно, а 8-12...и даже в комнатах пару-тройку видит... Вот мой скрин девайса с Навител, делал в комнате лёжа на диване:
Раньше ловил только три и только уткнувшись носом в окно... Проверял на HTC Touch HD, в архиве прога выключающая драйвер.
ВНИМАНИЕ!!! При установке GPSModDriver вы возлагаете на себя всю ответственность за любое физическое или программное повреждение вашего устройства. Устанавливайте GPSModDriver только, если вы знаете, что делаете. В противном случае это может привести к неработоспособности GPS на вашем аппарате до HardReset. Не забывайте делать backup. После установки драйвер сам определяет свободный COM-порт и занимает его, о чем и сообщает вам. То есть, тот порт, который сообщил драйвер и нужно указывать как основной в программах GPS навигации.
* Устанавливать в основную память * Без необходимости не меняйте выбранный самой программой COM порт - чаще всего это приводит к подвисанию устройства Отдельно Твики реестра в РЕГ-файле:
Дата: Воскресенье, 13.02.2011, 19:07 | Сообщение # 7
КОТ
Группа: Сlub
Сообщений: 867
Статус:
GpsModDriver 3.20 3.20
Code
- Added Quiet setting - Fixed Altitude and seperation value when using msapi as input and gpsid as output - Fixed false "loss of fix" on some msapi inputs (caused extra beeps all the time) - Misc... Try it and see for yourself
Этот драйвер устанавливается между вашим GPS-приложением и драйвером GPSID (системный драйвер от Microsoft), который читает аппаратные GPS-данные. Задержка определения местоположения компенсируется путем угадывания вашей позиции на некоторое количество миллисекунд вперед, т.е. драйвер пытается предсказать в какой точке вы будете через несколько миллисекунд. Текущее направление движения и скорость учитывается при расчете этого "предполагаемого" местоположения. Также драйвер пытается исправить неверные (ошибочные) значения в данных, получаемых от GPS-приемника: - Данные вне диапазона (DOP) - Не число (NaN) и т.д. При этом позиция, курс и скорость все равно посылаются в программу, если пройденное расстояние менее 30 метров (т.е. если больше, то драйвер уже не будет отдавать "угадываемые" данные в программу, ибо вы уже можете поменять как курс, так и скорость). Вот именно эта фишка может помочь нам избавится от временных пропаданий связи со спутником - ибо они кратковременные!
Установка
Установите CAB-файл - При установке, программа сообщит на какой порт она настроилась (обычно - COM2) - Запустите GpsModSetup, зайдите в Menu/Ports, там проверьте, что напротив MSAPI стоят обе галочки. Другие галочки можно снять. (да, при запуске GpsModSetup вы увидите реальные данные, которые посылает GpsModDriver в навигационную программу. для смены режима - тапните по экрану). - Теперь можно пользоваться. Для этого в своей программе укажите, что нужно использовать не MSAPI (или оригинальный COM7), а COM2 (как это сделать - спрашивайте в соответствующих ветках по вашим программам). - Если вас что-то неустроило - всегда можно сменить настройки - обратно на MSAPI/COM7 и не использовать (или удалить) драйвер. Более того, для разных программ можно использовать оригинальный или этот проксирующий драйвер. - Для использования авторских предустановок, зайдите в Menu/Profile, выберите профиль и скажите Save. Драйвер будет использовать новый профиль.
Описание настроек:
Menu/System: для смены значений, которые будут использоваться GpsModDriver-ом - Log File: Создать отладочный лог в \Mach2003 на кмк. - Extended: Расширенная информация в логах - Track Log: Создавать GPX и CSV файлы на Карта Памяти\Mach2003 которые могут быть открыты в Google Earth и во многих других программах - Raw Data: Создавать дополнительные GPX и CSV файлы для настоящих (а не предсказанных драйвером - как в предыдущем пункте) данных которые напрямую приходят из GPS-приемника - Smooth: Разрешить драйверу вставлять дополнительные данные (между получениями реальных данных), что приводит (в некоторых приложениях) к более плавному перемещению по карте (меньше "прыжки").
Секция GpsModDriver: - Sleep Time: Количество времени, которое драйвер будет ждать для приема реальных данных от GPS (GPSID.DLL). По-умолчанию 1000 мс (1 секунда). - ComTimeOut: Значение, передаваемое в Windows COM-driver когда используем чтение из COM-порта: количество времени для ожидания реальных данных, которые придут в порт. - Keep Alive: Драйвер будет продолжать читать данные указанное количество миллисекунд даже после закрытия порта. Позволяет переключаться между приложениями без потери FIX-а (связи со спутниками) Будьте очень аккуратны со сменой нижеследующего значения (Номера COM-порта)! Можно даже нарваться на Hard Reset! - Com Port: Какой COM-порт использовать драйверу для посылки "угадываемых" значений. По-умолчанию, у нас, на Acer e101 - COM2. - Enable: Разрешить (или запретить) все функции Mod Driver-а.
Секция Internal GPS Device: Эти значения будут (могут быть) использованы реальным драйвером GPS (gpsdriver.dll) - Sleep Time: Время ожидания данных, когда данные недоступны - Poll Rate: Как часто проверять данные с порта GPS - Input Buffer: Размер буфера памяти для чтения данных из GPS-порта (COM4:) - Output Buffer: Размер буфера памяти для записи в порт GPSID (COM7:) Будьте очень аккуратны со сменой нижеследующего значения (Номера COM-порта)! Можно даже нарваться на Hard Reset! - Com Port: COM-порт для GPSID, тоже самое, что и 'Внешний GPS' в контрольной панели. - Enable: Разрешить (или запретить) внетренний GPS, тоже самое что "Разрешить Windows управлять устройствами" в контрольной панели в настройках GPS.
Секция Menu/Ports: Чтобы разрешить Mod Driver-у использовать разные порты (не трогайте сие лучше). Port Scan Mode - Scan On Power Only - сканировать порты когда включен GPS - Scan on Battery Too - сканировать всегда - Never Scan - никогда не сканировать - Scan Only Once - просканировать прямо сейчас и перейти в предыдущий режим (Never Scan).
Эта фишка - если у вас несколько GPS-приемников - скажем внутренний, внешний (bluetooth) и т.д. Вообщем, определяет на каком порту появились данные.
Секция Input Port: - Port (MSAPI, or Com Ports from 1 to 9) - порты, MS API (автоматически взять данные от Windows - это "наш" вариант) или прямое указание порта (у нас не работает, ни COM7 ни COM4) - Enable - галочка разрешающая использовать данный порт - Fix - разрешить модифицировать данные (если галку не поставить - данные будут в неизменном виде идти дальше). - Order - порядок использования портов. Чем меньше - тем "первее".
Вообщем, тут тоже лучше ничего не трогать. Поставили MS API, рядом с ней поставили Enable и Fix, остальные сняли и сюды не заходим.
На всех экранах настройки есть 2 кнопки: - Undo - отменяет настройки, сделанные сейчас и возвращает прежние значения. - Save - сохраняет настройки и передает их в драйвер (немедленно заставляет драйвер использовать их).
Важные значения: PollRate и SleepOnNoData. Коротко: хорошие значения 500 для PollRate и 1000 для SleepOnNoData
Вначале - перевод поста от автора GpsModDriver: "Все ниженаписанное является спекуляцией, так как я не знаю как именно HTC_GPSID.DLL использует эти значения. Более того, разные версии могут их трактовать по разному. Эти значения могут даже передаваться далее в GpsOne-драйвер (реальный драйвер GPS).
Поскольку данные с ГПС-приемника формируются каждую секунду, то частота опроса приемника по-идее должна быть 1000 мс (1 секунда). Если мы установим ее в 600 мс, то на первом запросе мы получим ничего, на втором запросе в 1200 мс мы получим данные от 1000, на третьем запросе 1800 мы опять ничего не получим, на четверном в 2400 мс мы получим данные от 2000 и т.д. Подумайте, если данные сформировались не на 1000, а с некоторым запозданием, например t+1025 или t+1100 мс, вместо положенных t+1000). Если у вас стоит PollRate 600, а SleepOnNoData в 500, то первым запросом (600+500) вы получите данные, сформированные на 1000 (и даже и на 1025 и на 1100), вторым запросом (1200+500) - ничего, третьим (1800+500) получите на 2000 и т.д.
Если PollRate == Sleep Time, то данные вернуться как можно скорее. Когда Sleep = Poll Rate / 2, то возможно простаивание равное времени сна."
Вообщем, все это мужик делает (уменьшает), чтобы уменьшить задержку между получением реальных данных и текущей позицией. Ежу понятно, что чем чаще мы опрашиваем железку, тем быстрее получим позицию. НО для НАШЕГО зверька есть одна большая специфика! Поскольку программисты из Acer-а самые "программистые программисты", то уменьшение PollRate/SleepOnNoData ведет к тому, что приемник начинает очень часто терять связь со спутниками. (на тех значения, что он предлагает по-умолчанию - 50/100 - мы как раз очень часто теряем связь!).
И поэтому вместо улучшения и отсутствия "потеряна связь со спутниками" мы имеем "вы ушли с маршрута". Сегодня ставил эксперименты. И _в_моем_ случае - наилучшие значения - по-умолчанию. То есть, PollInterval = 500, SleepOnNoData=1000. Что это означает. Что опрос приемника идет каждые 500 мс, т.е. 2 раза в секунду. При этом, после начала опроса мы ждем 1000 мс (1 секунду) пока придут данные. Если они пришли раньше, то следующий запрос будет через 500 мс после начала предыдущего.
Я пересмотрел настройки HTC HD2 и Toshiba TG01 - т.е. тех девайсов, у которых такой же в точности GPS-приемник. У тошибы настройки Poll/Sleep как у нас - 500/1000. У HTC HD2 - 1000/1000. При этом странно, что и у HD2 и у TG01: [HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers\GPSOneDevice] "FixMode"=dword:00000002
в то время как у нас этот параметр = 3. он вроде бы отвечает за A-GPS. если он равен 2, то а-гпс используется, если = 0, то нет. что значит 3 - неясно.
в любом случае, рекомендую сначала _без_ этого драйвера найти оптимальные значения для PollInterval/SleepOnNoData - когда ваша навигационная программа будет _минимально_ терять спутники и только потом ставить драйвер и в нем уже выставлять эти параметры такими же. в этом случае вы будете почти всегда иметь реальные данные, а в те редкие моменты, когда идет потеря соединения со спутниками - GpsModDriver будет подставлять свой "прогноз".
если проще: GPSMod setup в меnu\system найти Sleep time исправить на 500 и Poll Rate на 1000 и нажать Save по умолчанию GPS встает на СОМ 2