PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Навигация (http://pccar.ru/forumdisplay.php?f=13)
-   -   Курсор мыши - по координатам GPS (http://pccar.ru/showthread.php?t=15154)

Alex-L 02.06.2011 16:45

Курсор мыши - по координатам GPS
 
Тем, у кого GPS приемник подключается к COM-порту (или для USB интерфейса это тоже справедливо?), наверное знакома ситуация, когда при запуске компьютера, указатель мышки носится по экрану и хаотично "нажимаются кнопки" мышки. Лечится перезагрузкой. Привести рабочий стол в порядок после такой "работы" мыши по координатам GPS, бывает ой как непросто :sad2:
Природу этого явления где-то объяснял Virtual - сейчас не найду. Однако, на тот момент, ни одна из рекомендаций не помогла.

Мне видился такой вариант решения проблемы: подавать питание на GPS приемник после загрузки ОС. Например, вместе с усилителем.

Virtual предложил более изящное решение:
Цитата:

Сообщение от Virtual (Сообщение 185787)
я примерно так и решил проблему, ток красивше.... пока на порт не подан сигнал DTR линия TX GPS-а отрублена :). тот кому нуно данные открывает порт в системе и взводит DTR - и сразу принимает данные ;) (кст. это базовый алгоритм работы асинхронного интерфейса)
http://ru.wikipedia.org/wiki/Сигналы...тельных_портов

Предлагаю в этой теме довести решение проблемы до логического завершения. А то перед дифчонками ниудобна :big:

*******

А кто, когда и откуда должен подавать сигнал на pin4 (распиновка здесь и далее для разъема DB-9) DTR ?

У меня на рабочем компе на этом выводе -10.2в относительно земли.
В момент запуска iGO8 напряжение меняется на -4.7в (это значение сильно плавает - от 2.5 до 9.3в) на долю секунды.
То же самое происходит при закрытии iGO8.

Насколько я понимаю, нужна "защелка" - триггер: словили один импульс (запуск iGO8) - состояние ON, словили другой импульс (закрытие iGO8) - состояние OFF и так далее...
Правильно?

Что будет делать ON/OFF ?
Включать/выключать питание GPS приемника; или замыкать/размыкать цепь TX ком-порта?

Virtual 02.06.2011 17:23

сигналы DTR-DSR RTS-CTS относятся к т.н. аппаратной реализации контроля обмена,

устройство (в нашем случае GPS), согласно спецификации....должно:
.увидев сигнал на DTR выходе порта компа - подготовится :) тоесть ему сообщают что клиентское ПО начинает сессию
.увидев сигнал на RTS выходе порта компа - считает что ему разрешено слать данные!
если RTS сброшен, то устройство обязано ничего не слать!
ибо это грит о том что комп неготов их принять :).

весь вопрос в какой мере это умеет ваше ПО для навигации :(.

ЗЫ рвать питание на GPS не самое лучшее решение, на GPS лучше подавать питание максимально рано, ибо есть существенное время старта.
(если на это забить то по правилам: взвелся DTR= подали питание, взвелся RTS = шлем данные компу)

так что по сигналам DTR и (или) RTS от компа - разрешено слать данные компу :).
(по спецификации конечно оба сигнала должны быт активны, но появление DTR часто говорит что в компе ПО открыло порт - что не позволит зависнуть оному...)

ЗЫЗЫ если ваше ПО позволяет выбрать в настройках порта "аппаратное управление потоком", значит урааа и вам крупно повезло ;).

это все относится только для того чтоб драйвер порта в глюковинде совсем не отвалился., а вот скачки мыши по экрану :).... тут только разрешать прохождение данных с GPS уже после полной загрузки винды и активности проги GPS... каким-нить внешним событием. (напр подачей сигнала с другого RS232 LPT порта :))

Alex-L 02.06.2011 17:40

Проверил: с RTS все точно так же как и с DTR
Поправка: при запуске ИГО напряжение изменяется с 10.2 до 4.7; при закрытии - с 10.2 до 9.3
Эти изменения происходят именно в моменты запуска/закрытия программы, на доли секунды.

"...рвать питание на GPS не самое лучшее решение, на GPS лучше подавать питание максимально рано, ибо есть существенное время старта...." - абсолютно согласен!

Ну то есть подойдет предложенный алгоритм: Нужна "защелка" - триггер: словили один импульс (запуск iGO8) - состояние ON, словили другой импульс (закрытие iGO8) - состояние OFF и так далее...
ON/OFF - замыкаем/размыкаем цепь TX ком-порта?

Угу?

Virtual 02.06.2011 17:54

нет тригер незя!
ибо портом еще и сама винда дергает :(
правильно :
есть RTS даем данные с GPS, нет- не даем.

ЗЫ но может иго анализирует тип соединения.... тогда (да и не только тогда)
нужно:
в компе соединить перемычкой RTS-CTS, и DTR-DSR дабы комп думал что работает полноценно в режиме "аппаратного управления потоком" и вот тут мерять уровни.

ЗЫЗЫ по уму должно: при запуске ИГО уровни меняются на противоположные, при закрытии - обратно. (но однозначно нуно перемычки чтоб у слишком умной (иль наоборот вхлам тупой) ИГО крышу не рвало)

//
сужу по себе :)
Цитата:

Поправка: при запуске ИГО напряжение изменяется с 10.2 до 4.7; при закрытии - с 10.2 до 9.3
Эти изменения происходят именно в моменты запуска/закрытия программы, на доли секунды.
алгоритм проверки аппаратный контроль иль нет я бы сделал именно так. (примерно)

Hamster 02.06.2011 19:39

Фига се у вас проблемы...
Честно говоря ниразу с таким не сталкивался. Ни с USB (BU-353) ни с COM (ET-332).

И вот подумалось мне - я использую GPSGate, навигашки никогда напрямую порт не нюхают, только виртуальный порт, что GPSGate им дает.

Мож в GPSGate дело? Просто программно решить проблему проще, чем городить железное решение.

Stasik 02.06.2011 20:00

Просто у Алекса походу приемник без USB, он хотел как лучше, а вышло ... :blush: Но я думаю, что проблему решит прога Xport, которая стартует сама и сама управляет GPS данными с ком порта, в том числе прога имеет фильтр и по желанию пишет лог сырых данных GPS. А также еще имеет кучу настроек. Прога Xport за 5 лет зарекомендовала себя отлично.

Virtual 02.06.2011 20:13

проблема специфична именно для аппаратного COM порта!. на USB-RS232 преобразователях она значительно более редка.

проблема из 2х частей:
1. если в порт сыпятся данные но никто их не принимает (нет ни одной проги что подключена в винде к порту), то рано иль поздно виснет драйвер serial.sys по переполнению приемного буфера.... и в последствии прога что откроет порт нифига не увидит данных. //криворукий маздай мля.
2. PNP винды открывает порт и видя там данные протокола nmea частенько (но почему-то не всегда), ошибочно их принимает за поток каких-то древних рулителей мыши....и подрубает ентот рулитель = результат мышь скачет по экрану яки бешеный козел ;) (очень прикольно смотрится :))

п2. мне помогало просто обесточив GPS (дабы мыша успокоить), и в диспетчере устройств запретить енто указательное устройство. (после перезагрузки более глюков не проявлялось.)

а вот с п.1 гарантировано повезло бороться только запрет передачи данных с GPS до того как их будет готов принять софт (используя DTR or RTS линии)

ЗЫ п1. реально есть .... проверено многократно и не только мной. данную фхххх ловил начиная с NT4.

ЗЫЗЫ в принципе да если какой-либо софт стартует максимально рано при старте винды, и слушает порт!, то GPS не успевает настолько много нафлудить в порт, что начинаются проблемы.

Diagnose 02.06.2011 20:17

Для меня траблы GPS по ком порту так же актуальны(хоть и по другому проявляются), пока тупо повесил тумблер по питалову.

Virtual 02.06.2011 20:26

Diagnose а у тя как проявляется?.

sdslavi 02.06.2011 20:41

Вложений: 1
Alex-L можно ето тебе поможет
Cursor sometimes jumps all over the screen clicking left/right? Here's the fix: Open Regedit. Navigate to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\SerMouse, and change the value "Start" from 3 to 4. Reboot.Or reg.zip and Open


Часовой пояс GMT +4, время: 02:56.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot