Jon*_*ley 7 mapping gps geolocation google-latitude
是否有可能以其他软件作为GPS设备显示的格式从Google Gears,Google Gelocation API或任何其他网站位置API(例如Fire Eagle)获取位置数据?
在我看到关于WiFi位置查找的问题的答案时,我发现,如果我可以模拟GPS单元,那么这些网络服务中的许多可以充当"穷人"GPS而不需要其他有用的软件.它.
是的GPSD一个选择吗?
最好是OSX和Python,但我会对任何实现感兴趣.
Python 邮件列表上有一个非常相似的线程,其中提到了 Windows虚拟 COM 端口并讨论了 Unix 的伪 tty 功能。如果您要使用的应用程序允许您输入特定的 tty 设备文件,这可能是最简单的途径。(不需要要求作者为你想要做的事情提供一个插件 API,或者给自己买一个20 美元的蓝牙 GPS 鼠标。)
您使用的是 OS X 吗?
Google 代码上有一个项目macosxvirtualserialport ,它提供了一个名为socat的实用程序的一些功能的图形包装器。如果您看到伪 tty 路线的潜力,我建议您看看 socat。我相信您可以使用 socat 将管道从 Python 程序链接到伪 tty。
大多数本机 Mac 应用程序将查询 IOServiceMatching 以查找具有 kIOSerialBSDRS232Type 的设备,并且我怀疑伪 tty 是否会显示为 IOKit 服务。
在这种情况下,除非您能找到一个已经实现了此类功能的项目,否则您将需要实现一个驱动程序,如如何创建虚拟 COM 端口线程中所述。如果您要麻烦地创建一个设备驱动程序,您可能会希望将其基于 IOKit,因为可能存在 IOServiceMatching 查询。您可以在Apple 开源代码列表的顶部找到该文章中提到的 Apple16X50Serial 项目(如果您想要针对 10.6 之前的版本,请转到主页并选择较旧的操作系统版本)。
如果您的应用程序对实时数据最有用(例如,Python 邮件列表线程中提到的 RouteBuddy 应用程序可以记录当前位置),那么您将需要从网络源获取更新(希望它们支持长轮询)并将其转换为基本NMEA RMC 句子。您不想从驱动程序代码内部执行此操作。相反,将您的工作划分为可以通信的内核态和用户态部分,并将尽可能少的代码放入内核部分。
如果您想让应用程序读取和写入这些 Web 服务,最好的选择可能是模拟 Garmin 设备。Garmin 在其设备接口 SDK附带的 IntfSpec.pdf 文件中或多或少地记录了其协议。同样,您希望将尽可能多的代码拆分为用户空间代码。
我无法找到一个项目或实用程序来实现基于 IOKit 的虚拟串行接口的内核端,但如果没有一个项目或实用程序隐藏在那里,我会感到惊讶。不幸的是,我发现这个问题的大多数答案都是这样的,开发人员被告知要忙着编写 kext。
| 归档时间: |
|
| 查看次数: |
3761 次 |
| 最近记录: |