我目前正在开发一个需要跟踪我们位置的 .NET 应用程序。我使用外部 GPS 设备通过 COM 端口连接到我的笔记本电脑作为位置跟踪器。我的设备可以正常工作,但是我找不到伪造 GPS 信号的方法。我不知道是否有能够通过 COM 端口输入 GPS 信号的 GPS 模拟器。
如果有人有这方面的经验,请给我一些指导。我将不胜感激。谢谢
我目前正在开发一个需要跟踪我们位置的 .NET 应用程序。我使用外部 GPS 设备通过 COM 端口连接到我的笔记本电脑作为位置跟踪器。我的设备可以正常工作,但是我找不到伪造 GPS 信号的方法。我不知道是否有能够通过 COM 端口输入 GPS 信号的 GPS 模拟器。
如果有人有这方面的经验,请给我一些指导。我将不胜感激。谢谢
这是有关如何创建测试用例以实现您想要做的事情的链接。http://geoloqal.com/support/geotargeting-geolocation-documentation/apis/test-cases/createtestcase/
它不会通过 COM 端口执行此操作,而是基于 REST API。
如果您使用的是设备附带的自定义 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();
希望这可以帮助你
在过去从事 GPS 应用程序的工作时,我经常以此为借口,带着我的笔记本电脑到树林中央,在 GPS 信号良好的地方编写代码。
如果您无法做到这一点,或者您所在地区有大量蚊子,我建议您使用 Franson GPSGate。它可以通过虚拟 COM 端口模拟 GPS,还可以做一些方便的事情,例如将 GPS 信号拆分到多个端口,或回放记录的 GPS 日志。
Chintanas 解决方案很好,应该足够了。如果您仍然想要外部 gps 模拟:
编写一个简单的 peogramm 读取预先记录的 NMEA 文件,可以解析 2-3 条重要的 NMEA 消息(GPRMC,GPGGA),设置一个计时器(1s)并写出 2-3带有新时间戳(和新校验和)的句子到特定的 COM 端口。
您的应用程序从该端口照常读取 nmea。