1

我目前正在开发一个需要跟踪我们位置的 .NET 应用程序。我使用外部 GPS 设备通过 COM 端口连接到我的笔记本电脑作为位置跟踪器。我的设备可以正常工作,但是我找不到伪造 GPS 信号的方法。我不知道是否有能够通过 COM 端口输入 GPS 信号的 GPS 模拟器。

如果有人有这方面的经验,请给我一些指导。我将不胜感激。谢谢

4

4 回答 4

2

这是有关如何创建测试用例以实现您想要做的事情的链接。http://geoloqal.com/support/geotargeting-geolocation-documentation/apis/test-cases/createtestcase/

它不会通过 COM 端口执行此操作,而是基于 REST API。

于 2013-06-22T19:23:50.957 回答
1

如果您使用的是设备附带的自定义 SDK/API,则很难通过 com 端口发送虚假信号并正确解释它们。

如果您可以证明一些额外的代码是合理的,您可以考虑通过创建一个类似的接口来将您的应用程序代码与 GPS 设备特定代码分离,从而实现更简洁的方法。

public interface ILocationInformationServices {
    LocationInfo GetLocationInfromation { get; }
}

然后你可以有上述接口的两个实现,一个将通过 com 端口调用 GPS 模块,另一个将返回一些随机值(假 GPS 模块)

一旦你有了这两个实现,你就可以在你的应用程序中针对ILocationInformationServices进行编码。

当您想使用实际的 GPS 模块时,您将实例化调用 com 端口的类

ILocationInformationServices locationInfoSvc = new MyGPSModule(“com1”);

而当你想测试时,你会使用假的

ILocationInformationServices locationInfoSvc = new MyFakeGPSModule();

希望这可以帮助你

于 2013-06-21T02:28:04.407 回答
1

在过去从事 GPS 应用程序的工作时,我经常以此为借口,带着我的笔记本电脑到树林中央,在 GPS 信号良好的地方编写代码。

如果您无法做到这一点,或者您所在地区有大量蚊子,我建议您使用 Franson GPSGate。它可以通过虚拟 COM 端口模拟 GPS,还可以做一些方便的事情,例如将 GPS 信号拆分到多个端口,或回放记录的 GPS 日志。

http://gpsgate.com/products/gpsgate_client

于 2013-06-21T15:48:23.170 回答
1

Chintanas 解决方案很好,应该足够了。如果您仍然想要外部 gps 模拟:
编写一个简单的 peogramm 读取预先记录的 NMEA 文件,可以解析 2-3 条重要的 NMEA 消息(GPRMC,GPGGA),设置一个计时器(1s)并写出 2-3带有新时间戳(和新校验和)的句子到特定的 COM 端口。

您的应用程序从该端口照常读取 nmea。

于 2013-06-21T09:51:10.743 回答