Pull Request Description: Add Support for Quectel-specific NMEA Sentences in pynmea2
Description
This PR introduces support for Quectel-specific NMEA sentences by adding new proprietary sentence classes under the QTM namespace. These classes enable parsing and handling of device-specific messages, such as GNSS status, configuration settings, geofencing, and more. This extends the library's capabilities for devices like Quectel's LC29H GNSS module.
Changes Introduced
New Classes:
QTM: Base class for Quectel proprietary sentences.
Specific message types:
QTMVERNO: GNSS module version information.
QTMSAVEPAR: Save receiver parameters.
QTMRESTOREPAR: Restore receiver parameters.
QTMEPE: Outputs estimated positioning error.
QTMCFGGEOFENCE: Configure geofences.
QTMGEOFENCESTATUS: Geofence status.
QTMCFGSVIN: Survey-in mode configuration.
QTMSVINSTATUS: Survey-in status.
QTMCFGRCVRMODE: Receiver mode configuration.
QTMDOP: DOP values for GNSS accuracy.
QTMPL: GNSS protection levels.
QTMCFGSBAS: SBAS configuration.
QTMCFGCNST: GNSS constellation configuration.
QTMCFGFIXRATE: Configure GNSS fix rate.
QTMVEL: Velocity information.
QTMCFGODO: Configure the odometer feature.
QTMODO: Odometer status.
Tests Added:
Unit tests for each newly implemented proprietary message.
Located in tests/test_qtm.py.
Ensures accurate parsing and handling of valid and edge-case data.
How it Works
Dynamic Message Mapping: The QTM base class dynamically assigns the appropriate subclass based on the first data element (manufacturer + data[0]).
Custom Parsers: Each proprietary message class extracts and validates specific fields, such as build_date, epe_north, geofence state, and others.
Enhanced Repr Methods: Custom __repr__ implementations for better debugging and logging outputs.
coverage: 98.124% (+0.2%) from 97.972%
when pulling 9cd131d476a4cfecbc4cded4f7fc0f932366dae8 on adedolapoadegboye:master
into f298742f27922780f311ccd22fc28ac93ab0a90f on Knio:master.
Pull Request Description: Add Support for Quectel-specific NMEA Sentences in
pynmea2
Description
This PR introduces support for Quectel-specific NMEA sentences by adding new proprietary sentence classes under the
QTM
namespace. These classes enable parsing and handling of device-specific messages, such as GNSS status, configuration settings, geofencing, and more. This extends the library's capabilities for devices like Quectel's LC29H GNSS module.Changes Introduced
New Classes:
QTM
: Base class for Quectel proprietary sentences.QTMVERNO
: GNSS module version information.QTMSAVEPAR
: Save receiver parameters.QTMRESTOREPAR
: Restore receiver parameters.QTMEPE
: Outputs estimated positioning error.QTMCFGGEOFENCE
: Configure geofences.QTMGEOFENCESTATUS
: Geofence status.QTMCFGSVIN
: Survey-in mode configuration.QTMSVINSTATUS
: Survey-in status.QTMCFGRCVRMODE
: Receiver mode configuration.QTMDOP
: DOP values for GNSS accuracy.QTMPL
: GNSS protection levels.QTMCFGSBAS
: SBAS configuration.QTMCFGCNST
: GNSS constellation configuration.QTMCFGFIXRATE
: Configure GNSS fix rate.QTMVEL
: Velocity information.QTMCFGODO
: Configure the odometer feature.QTMODO
: Odometer status.Tests Added:
tests/test_qtm.py
.How it Works
QTM
base class dynamically assigns the appropriate subclass based on the first data element (manufacturer + data[0]
).build_date
,epe_north
,geofence state
, and others.__repr__
implementations for better debugging and logging outputs.Checklist
pytest
.