GPS-эмулятор для.NET-трекинга
В настоящее время я работаю над приложением.NET, которое требует отслеживания местоположения нашей позиции. Я использую внешнее устройство GPS, подключается к моему latop через COM-порт в качестве трекера местоположения. У меня работает мое устройство, однако я не смог найти способ подделать сигнал GPS. Я не знаю, есть ли эмулятор GPS, который может подавать сигнал GPS через COM-порт.
Если у кого-то есть опыт в этой области, пожалуйста, дайте мне несколько советов. Я был бы очень признателен. Спасибо
4 ответа
Вот ссылка на то, как создавать контрольные примеры для достижения того, что вы пытаетесь сделать. http://geoloqal.com/support/geotargeting-geolocation-documentation/apis/test-cases/createtestcase/
Он не делает это через COM-порт, но основан на REST API.
Решение Chintanas в порядке, должно быть достаточно. если вы все еще хотите внешнее моделирование GPS:
написать простую программу, которая считывает предварительно записанные файлы NMEA, которая может анализировать 2-3 важных сообщения NMEA (GPRMC, GPGGA), установить таймер (1 с) и записать 2-3 предложения с новыми метками времени (и новыми контрольная сумма), для конкретного COM-порта.
из этого порта ваше приложение читает nmea как обычно.
Работая над приложениями GPS в прошлом, я часто использовал это в качестве предлога для того, чтобы выходить в середину леса с ноутбуком и писать код там, где у меня был хороший сигнал GPS.
Если вы не можете сделать это, или у вас есть большая популяция комаров в вашем районе, я рекомендую Franson GPSGate. Он может имитировать GPS через виртуальный COM-порт, а также может делать такие удобные вещи, как разделение сигнала GPS на несколько портов или воспроизведение записанных журналов GPS.
Если вы используете пользовательский SDK/API, поставляемый с устройством, было бы трудно отправлять поддельные сигналы через com-порт и правильно их интерпретировать.
Если бы вы могли оправдать немного лишнего кода, вы можете стремиться к более чистому подходу, рассмотрев возможность отделения кода вашего приложения от кода, специфичного для устройства GPS, путем создания интерфейса, подобного
public interface ILocationInformationServices {
LocationInfo GetLocationInfromation { get; }
}
Тогда у вас может быть две реализации вышеуказанного интерфейса, одна из которых будет вызывать модуль GPS через ком-порт, а другая будет возвращать некоторые случайные значения (поддельный модуль GPS).
Если у вас есть две реализации, в вашем приложении вы можете кодировать ILocationInformationServices.
Если вы хотите использовать настоящий модуль GPS, вы должны создать класс, который вызывает COM-порт
ILocationInformationServices locationInfoSvc = new MyGPSModule(“com1”);
И когда вы хотите проверить, вы будете использовать подделку
ILocationInformationServices locationInfoSvc = new MyFakeGPSModule();
Надеюсь, это поможет вам