.. module:: l76 ********** L76 Module ********** This module implements the Zerynth driver for the Quectel L76 GNSS chip (`Product page `_). The following functionalities are implemented: * retrieve the current location fix if present * retrieve the current UTC time The driver starts a background thread continuously tracking the last available location fix. The frequency of fixes can be customized. The driver support serial mode only. Location fixes are obtained by parsing NMEA sentences of type RMC and GGA. Obtaining a fix or UTC time are thread safe operations. .. class:: L76(ifc, mode=SERIAL, baud=9600,clock=400000, addr=0x00, reset=None, reset_on=0) Create an instance of the L76 class. :param ifc: serial interface to use (for example :samp:`SERIAL1`, :samp:`SERIAL2`, etc...) :param mode: one of SERIAL or I2C. Only SERIAL mode supported at the moment. :param baud: serial port baudrate :param clock: I2C clock frequency (not supported) :param addr: I2C address (not supported) :param reset: optional reset pin :param reset_on: reset pin active level Example: :: from quectel.l76 import l76 ... gnss = l76.L76(SERIAL1) gnss.start() mpl.init() alt = mpl.get_alt() pres = mpl.get_pres() .. method:: start() Start the L76 and the receiver thread. :returns: *True* if receiver thread has been started, *False* if already active. .. method:: stop() Stop the L76 by using the lowest power consumption mode and terminates the receiver thread. It can be restarted by calling :ref:`start`. :returns: *True* if receiver thread has been stopped, *False* if already inactive. .. method:: pause() Pause the L76 by putting it into standby mode. It can be restarted by calling :ref:`resume`. Refer to the L76 documentation for details `here `_ .. method:: resume() Wake up the L76 from standby mode entered by calling :ref:`resume`. Refer to the L76 documentation for details `here `_ .. method:: set_rate(rate=1000) Set the frequency for location fix (100-10000 milliseconds is the available range). ---- NMEA ---- Additional methods from the base class :any:`nmea.NMEA_Receiver`. .. method:: fix() Return the current fix or *None* if not available. A fix is a tuple with the following elements: * latitude in decimal format (-89.9999 - 89.9999) * longitude in decimal format (-179.9999 - 179.9999) * altitude in meters * speed in Km/h * course over ground as degrees from true north * number of satellites for this fix * horizontal dilution of precision (0.5 - 99.9) * vertical dilution of precision (0.5 - 99.9) * positional dilution of precision (0.5 - 99.9) * UTC time as a tuple (yyyy,MM,dd,hh,mm,ss,microseconds) .. method:: has_fix() Return *True* if a fix is available .. method:: utc() Return the current UTC time or *None* if not available. A UTC time is a tuple of (yyyy,MM,dd,hh,mm,ss,microseconds). UTC time can be wrong if no fix has ever been obtained. .. method:: has_utc() Return *True* if a UTC time is available