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.