/gps3

Python 2.7 - 3.5 interface to gpsd

Primary LanguagePythonMIT LicenseMIT

README

The threading adaptor is a recent addition. The simple and efficient Python2.7-3.5 client, is pre-packaged as a threaded client,

from agps3threaded import AGPS3mechanism

Then engage the thread triumvirate,

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.

Four lines of code that lets you connect, communicate and control most of what you expect a gpsd to do.

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.

Without arguments between the parentheses, the threaded client defaults to host='127.0.01', port=2947, gpsd_protocol='json', and usnap=0.2, for a respectable default of 2/10th of a second micro nap after each empty socket lookup.

The rest of the project is in DESCRIPTION.rst, or documented in the files themselves.