Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更新网页上Web服务器程序的实时输出_Javascript_Jquery_Html_Gpsd - Fatal编程技术网

Javascript 更新网页上Web服务器程序的实时输出

Javascript 更新网页上Web服务器程序的实时输出,javascript,jquery,html,gpsd,Javascript,Jquery,Html,Gpsd,更具体地说,我想从运行在Web服务器(Linux/Raspberry Pi)上的GPSd进程中获取当前/最新的输出,并显示实时的lat/lon、速度和航向 我试着编写一个可以调用的CGI脚本(jquery),它跟踪gpspipe的输出并获取最新数据,但这有点慢——每次调用最多5秒 有点类似于调用一个CGI脚本,它每隔几秒钟运行一次“top-b-n1”,并解析您要查找的数据的输出 我认为有人会有一种更有效的方法。取决于GPS单位转换值所需的时间(通常大约一秒左右) 您可以执行一个小程序,不断读取G

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

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

有点类似于调用一个CGI脚本,它每隔几秒钟运行一次“top-b-n1”,并解析您要查找的数据的输出


我认为有人会有一种更有效的方法。

取决于GPS单位转换值所需的时间(通常大约一秒左右) 您可以执行一个小程序,不断读取GPS,并将值存储在共享内存或文件中,然后在调用Rasp时获取这些值。因此,您将获得[时间+地理位置],这将根据您的应用程序有所帮助

如果你想要更灵敏的东西,你可以在GPS转换完成后使用。这样,您就可以注册多个客户端或服务来收听GPS转换web服务。

有适合您的服务。它有一个线程适配器,您可以使用它在需要时以何种方式获取数据。分四行:

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.
四行代码,用于连接、通信和控制gpsd的大部分功能

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
gpsd_protocol='json'
、和
usnap=0.2
,在每次空套接字查找后,默认值为2/10秒的微nap。 项目的其余部分在中,或记录在中


如果您正在寻找,也可以使用

我想打电话获取您的地理坐标几乎是即时的。你有没有发现是什么在消耗你的5秒钟?考虑到良好的网络质量,我不明白为什么不能在不到一秒的时间内进行多个调用。GPSpipe连接到gpsd端口,等待数据并打印数据。然后我必须等待包含我需要的数据的正确句子类型,然后解析该行。也许有一种比使用gpspipe和shell脚本更快的方法,比如像这样编写python客户端。。。但这又如何呢:我已经运行了一个MQTT服务来分发传感器数据。我可以编写一个gps客户端(Python),将gps数据发布到MQTT主题,然后使用javascript MQTT客户端侦听更新。我已经在我的网页上显示了来自MQTT的传感器数据,所以这将是一个简单的添加,使用我当前的技术。谢谢!这可能是一个更好的解决方案。现在我正在读串口,得到原始的GPS语句。