从Web页面上的Web服务器程序更新实时输出

时间:2016-04-07 18:45:44

标签: javascript jquery html gpsd

更具体地说,我希望从我的网络服务器(Linux / Raspberry Pi)上运行的GPSd进程中获取当前/最新输出,并显示实时lat / lon,速度和航线。

我尝试过编写一个我可以调用的CGI脚本(jquery),它可以输出gpspipe的输出并获取最新的数据,但这有点慢 - 每次调用最多5秒。

类似于调用运行的CGI脚本" top -b -n 1"每隔几秒钟,解析您要查找的数据的输出。

我认为有人会有更高效的方式。

2 个答案:

答案 0 :(得分:0)

取决于GPS单位转换数值所需的时间(通常约为一秒左右) 您可以执行一个小程序,连续读取GPS并将值存储在共享内存或文件中,并在调用Rasp时获取这些值。所以你会得到[时间+地理位置],它可以帮助你,具体取决于你的应用程序。

如果您需要更具响应性的内容,则可以在进行GPS转换后使用long polling。这样你就可以注册多个客户端或服务来收听GPS转换网络服务。

答案 1 :(得分:0)

a Python 2.7-3.5 gpsd client可能适合您。它有一个线程适配器,用于获取数据的方式和时间。分四行:

for i in (0...-1).reverse()

然后参与三人组合,

for i in (0..<stationsByOldestArray.count).reverse()

四行代码,可让您连接,沟通和控制gpsd所期望的大部分内容。

from agps3threaded import AGPS3mechanism

括号之间没有参数,线程客户端默认为agps_thread = AGPS3mechanism() # This instantiate the mechanism, as I believe it's called. agps_thread.stream_data() # Stream the data from host, port, devicepath. agps_thread.run_thread() # Iterate stream as a thread with throttle control for empty look ups. while True: # All data is available via instantiated thread data_stream attributes. Confur # lines #140-ff of the client /usr/local/lib/python3.5/dist-packages/gps3/agps.py print('----------------') print( agps_thread.data_stream.time) print('Lat:{} '.format(agps_thread.data_stream.lat)) print('Lon:{} '.format(agps_thread.data_stream.lon)) print('Speed:{} '.format(agps_thread.data_stream.speed)) print('Course:{}'.format(agps_thread.data_stream.track)) print('----------------') sleep(60) # Sleep, or do other things for as long as you like. host='127.0.01'port=2947,默认值为2/10秒每次空套接字查找后小睡。 项目的其余部分位于DESCRIPTION.rst,或记录在the files themselves中。

如果您正在寻找a Python interface to gpsd's shared memory segment,也可以使用