Страница 1 из 1

Эмуляция GPS приёмника

СообщениеДобавлено: 08 янв 2011, 19:06
Kaspersky89
Вобщем вопрос встал такой, мне нужно из моей программы передавать данные(широту, долготу) в SASPlanet, вместо приёмника GPS, как это можно сделать ? :?
Заморачиваться с COM портом, но как?

Re: Эмуляция GPS приёмника

СообщениеДобавлено: 08 янв 2011, 22:51
DJ VK
Kaspersky89 писал(а):Вобщем вопрос встал такой, мне нужно из моей программы передавать данные(широту, долготу) в SASPlanet, вместо приёмника GPS, как это можно сделать ? :?
Заморачиваться с COM портом, но как?

1. Как вариант соединить кабелем 2 ком порта и слать данные во второй, первый же скормить планете.
2. использовать виртуальный мост. в поиске нашел например http://sourceforge.net/projects/com0com/ - может подойдет...
Код: Выделить всё
The Null-modem emulator (com0com) is a kernel-mode virtual serial port driver for Windows. You can create an unlimited number of virtual COM port pairs and use any pair to connect one COM port based application to another.

Re: Эмуляция GPS приёмника

СообщениеДобавлено: 09 янв 2011, 01:12
Kaspersky89
DJ VK Хорошая программа, главное бесплатная и реально работающая, проверял на терминале.
Но тут ещё одна проблемка, как не старался слать данные формата NMEA в порт планеты, ноль реакции :(
Пробовал разные строки:
Код: Выделить всё
$GPRMC,183729,A,3907.356,N,12102.482,W,000.0,360.0,080301,015.5,E*6F
$GPRMB,A,,,,,,,,,,,,V*71
$GPGGA,183730,3907.356,N,12102.482,W,1,05,1.6,646.4,M,-24.1,M,,*75
$GPGSA,A,3,02,,,07,,09,24,26,,,,,1.6,1.6,1.0*3D
$GPGSV,2,1,08,02,43,088,38,04,42,145,00,05,11,291,00,07,60,043,35*71
$GPGSV,2,2,08,08,02,145,00,09,46,303,47,24,16,178,32,26,18,231,43*77


Что я делаю не так, ведь данные на порт "планеты" точно отправляются.
P.S. Там рядом с настройкой порта знак вопроса на кнопке, а нажав по ней "не могу найти GPS приёмник" может в этом дело?

Re: Эмуляция GPS приёмника

СообщениеДобавлено: 09 янв 2011, 07:02
Parasite
Kaspersky89 писал(а):Что я делаю не так, ведь данные на порт "планеты" точно отправляются.

Кроме данных, для успешного соединения ко КОМ-порту нужны и сигналы (например RTS- Ready To Send, итд). Без них железо контроллера порта просто поставит данные в очередь до факта соединения, а по таймауту - сбросит. В вышеупомянутой программе они настраиваются - придется "попереключать" несколько цепей для эмуляции не только логического, но также и физического подключения девайса на порт.
Ну и соответственно если эмулируемый GPS-приемник посылает какие-то сигналы готовности после инициализации порта или его самого - то эти сигналы тоже надо будет отдавать эмулирующей программой.

Re: Эмуляция GPS приёмника

СообщениеДобавлено: 09 янв 2011, 11:50
Papazol
Пары COM портов можно создавать и программой vspd (Virtual Serial Port Driver) от Eltima. Маленький "недостаток" - прога платная. Достоинство - эмулируемые порты система считает физическими, что в некоторых случаях имеет решающее значение.

Re: Эмуляция GPS приёмника

СообщениеДобавлено: 09 янв 2011, 12:45
Kaspersky89
Танцы с бубном результата не принесли. :(
Посоветуйте к кому тут за помощью обратиться, кто разработчик программы?
У меня есть мысль написать небольшую прогу(С++ Builder, Delphi) для эмуляции сигналов приёмника.
Только нужен сам алгоритм работы, инициализации порта, в какой момент какие сигналы поступают, как идёт определение в "планете" что прёмник присутствует, всё что может пригодиться.
Неплохо бы конечно часть исходников которая за всё это отвечает, было бы куда проще, чем гадать на кофейной гуще :lol:

Re: Эмуляция GPS приёмника

СообщениеДобавлено: 09 янв 2011, 18:43
vdemidov
Kaspersky89 писал(а):Только нужен сам алгоритм работы, инициализации порта, в какой момент какие сигналы поступают, как идёт определение в "планете" что прёмник присутствует, всё что может пригодиться.
Неплохо бы конечно часть исходников которая за всё это отвечает, было бы куда проще, чем гадать на кофейной гуще :lol:

Берете компоненты ZylGPSReciver и экспериментируете сколько угодно.

Re: Эмуляция GPS приёмника

СообщениеДобавлено: 09 янв 2011, 21:41
Kaspersky89
Ну, я, не знал пока всех нюансов. Теперь разобрался. В основном неучёл CRC в конце NMEA строки. Скачал прогу "Avangardo GPS generator" всё сразу стало ясно. И через эмуляцию COM-портов всё прекрасно работает. 8-) Спасибо всем за помощь. :)