Отставание прорисовки при работе с GPS

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модераторы: Tolik, zed

Отставание прорисовки при работе с GPS

Сообщение sergbrother » 13 май 2012, 09:15

Добрый день.
SAS планета версия типа от 260412.

После успешного подключения к Garmin GPS USB приемнику 18x (видно несколько спутников, правильно определяются координаты и скорость) при попытке заставить SAS отслеживать перемещение по картам (любым, везде ведет себя одинаково) наблюдается следующая картина:
1. Сразу после начала движения машины в окне параметров передвижения показываются правильные текущие данные о скорости и правильно устанавливается текущее положение, показываются правильные снимки.
2. Далее при перемещении машины со скоростью около 60 км в час или более перемещение по снимкам начиает медленно, но верно отставать от действительности.
3. Если остановить машину, движение по карте не останавливается, пытаясь догнать действительность.
4. Если выключить и снова включить GPS, текущая позиция устанавливается правильно. Так и делаю с определенной периодичностью - это как-то решает проблему.

Возникает ощущение, что у SAS создается очередь из полученных координат, которые он не успевает отображать.
В чем может быть проблема?

Масштаб типа 18. Используется только кеш. Переключение между спутниками (Goggle и Yandex) при этом происходит мгновенно.
Слабый ноутбук Panasonic CF-29
Windows XP
Pentium M 1.6 GHz
1.5 RAM
правда диск с картами SSD 250 Гбайт из последних.
Буду признателен за любую информацию.
sergbrother
Новичок
 
Сообщения: 18
Зарегистрирован: 13 май 2012, 08:57
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Отставание прорисовки при работе с GPS

Сообщение Papazol » 13 май 2012, 12:00

Если такой эффект наблюдается только при использовании Гарминовского приёмника, это одно, и с этим следует обратиться в багтрекер. Если то же самое будет наблюдаться и при подключении обычного NMEA приёмника, то это проблема оборудования, а не программы, так как с обычными приёмниками она проверялась немеряное количество раз. Если нет возможности позаимствовать у кого-нибудь приёмник, можно воспользоваться симулятором NMEA из GPSGate.
Аватара пользователя
Papazol
Гуру
 
Сообщения: 1210
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 29 раз.
Поблагодарили: 147 раз.

Re: Отставание прорисовки при работе с GPS

Сообщение DJ VK » 13 май 2012, 12:32

sergbrother писал(а):Возникает ощущение, что у SAS создается очередь из полученных координат, которые он не успевает отображать.

Надо обрабатывать изменение координат аналогично обработчику мыши, если в очереди (защищенной крит. секцией) уже есть задание на обработку (сдвиг на сколько то пикселей), надо подменить это задание с учетом вновь полученных данных. То есть не три раза плюс 1, а один раз плюс 3. Тогда обработчик всегда будет пытаться точно догнать истинное положение , имея фиксированное отставание на отрисовку.
Аватара пользователя
DJ VK
Специалист
 
Сообщения: 821
Зарегистрирован: 16 апр 2009, 13:57
Благодарил (а): 51 раз.
Поблагодарили: 80 раз.

Re: Отставание прорисовки при работе с GPS

Сообщение garl » 13 май 2012, 14:29

где то я такое уже видел.
будут жалобы аля:
ехал быстро, резко остановился, а курсор некоторое время движется.
я повернул под углом 90 градусов, а трек плавно.
Russian NDN Team
QIP NightlyTester
Аватара пользователя
garl
Специалист
 
Сообщения: 941
ICQ: 275245033
Зарегистрирован: 16 июл 2008, 14:40
Откуда: Краснодар
Благодарил (а): 30 раз.
Поблагодарили: 100 раз.

Re: Отставание прорисовки при работе с GPS

Сообщение sergbrother » 13 май 2012, 16:08

Моя главная мысль - начинает отставать, отставание НАРАСТАЕТ в геометрической прогрессии (после отставания приблизительно в километр, я понял, что мне такая навигация не подходит...)
sergbrother
Новичок
 
Сообщения: 18
Зарегистрирован: 13 май 2012, 08:57
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Отставание прорисовки при работе с GPS

Сообщение Papazol » 13 май 2012, 17:54

И всё же, это только при Гарминовском приёмнике или при любом? Раньше такого не наблюдалось.
Аватара пользователя
Papazol
Гуру
 
Сообщения: 1210
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 29 раз.
Поблагодарили: 147 раз.

Re: Отставание прорисовки при работе с GPS

Сообщение vdemidov » 14 май 2012, 09:29

В первую очередь нужно проверять с другим софтом этот же приемник. Что бы определить баг в САС.Планете или в дровах устройства.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1166
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 92 раз.
Поблагодарили: 52 раз.

Re: Отставание прорисовки при работе с GPS

Сообщение sergbrother » 14 май 2012, 17:16

Сегодня проверил с USB навигатором Garmin 478. Все в порядке, работает по Москве без каких-либо оставаний на скорости до 100 км в час (больше не пробывал).
Видимо тема в USB Garmin 18x.
sergbrother
Новичок
 
Сообщения: 18
Зарегистрирован: 13 май 2012, 08:57
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Отставание прорисовки при работе с GPS

Сообщение CreatorCray » 09 сен 2012, 13:32

Такое же поведение наблюдалось с Garmin GPS20x
В SASPlanet трек уверенно отставал.
При этом Garmin Mobile PC показывал правильно.
Несколько улучшить ситуацию получилось уменьшив refresh rate до 100 мс. При этом визуально скорость появления новых точек заметно не изменилась. Если и стало быстрее то точно не в 10 раз (менял 1000ms -> 100 ms)
Действительно похоже на какой то затык в flow обработки координат, поступающих с Garmin USB.
Жаль что код на дельфи, так бы сам залез и попытался бы подебажить и прислать патч.

Кстати скорость от этого GPS показывает какую то нереальную. Где то в районе 10**18.
От eTrex - нормальную.
CreatorCray
Новичок
 
Сообщения: 1
Зарегистрирован: 09 сен 2012, 13:22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Отставание прорисовки при работе с GPS

Сообщение vasketsov » 10 сен 2012, 14:37

CreatorCray писал(а):Если и стало быстрее то точно не в 10 раз (менял 1000ms -> 100 ms)

А как бы и не должно было стать быстрее в 10 раз ))))))).
Приёмник выплёвывает данные раз в секунду.
Указанный параметр фактически означает время реакции на это "выплёвывание".

DJ VK писал(а):То есть не три раза плюс 1, а один раз плюс 3

Что-то типа того. Новые координаты (и данные вообще) от приёмника попадают в буфер, в отдельном потоке, независимо ни от чего, и уж тем более всяких рисований.
Если по какой-либо причине отрисовка замедлится, то это приведёт к тому, что "читалка" координат вычитает сразу всю "пачку" за несколько циклов работы (несколько секунд), так как она тащит из буфера данные, покуда они там есть, то есть все до конца.
vasketsov
Специалист
 
Сообщения: 727
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 153 раз.


Вернуться в SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9