GPS Driver Interface API

Header File

Source: include/gpsdriver.h

#include <gpsdriver.h>

Functions

int gps_set_driver_casic(void)

Set GPS driver for chipset with CASIC GNSS recevier protocol e.g. AT6558.

This driver is used in following GNSS modules or as integrated GNSS

  1. Neoway N58 LTE Cat.1

  2. Neoway G2

  3. Neoway G7A

  4. AT6558

Returns:

0 on success

int gps_set_driver_l89ha(void)

Set GPS driver to Quectel L89HA R2.0 GNSS/IRNSS Module.

Returns:

0 on success

int gps_set_driver_mt333x(void)

Set GPS driver to module using MT3333 or MT3339 chipset.

This driver can be used for following GNSS/GSM Modules

  1. Quectel L86

  2. Quectel MC60

  3. Quectel MC20

Returns:

0 on success

int gps_set_driver_sirf3(void)

GPS driver for SIRF III chipset.

Returns:

0 on success

int gps_set_driver_stirnss(void)

GPS driver for STA8090 chipset.

This driver can be used for Quectel L89 IRNSS module.

Note

Please do not confuse with L89 and L89R2, check datasheet before using correct driver.

Returns:

int

int gps_set_driver_uc622x(void)

GPS Driver for uc6226 uc6228 chipset.

This driver can be used for following modules:

  1. Quectel L76C

  2. Quectel L26C

  3. Quectel BC20 (NB-IoT)

  4. Quectel EC200UCN-AA LTE Cat.1 Module

Returns:

0 on success

int gps_set_driver(const struct gpsdriver_t *driver)

Set custom defined GPS driver.

Parameters:

driver – GPS module driver structure

Returns:

0 on success, negative on failure

Structures

struct gpsdriver_t

GPS Driver Structure.

Public Members

const char *name

Driver Name

int command_checksum

Command require checksum? 1 - yes, 0 - no

const char **const response_ident

callback function for module specific reponse identifiers NULL if not implemented

List of module specific response identifier

Param msg:

response (without checksum)

Return:

status, 0 for success

int response_ident_count

count of response_ident

int (*restart)(int type)

Perform software reset, NULL if not implemented.

Param type:

reset type gnssreset_e

Return:

status, 0 for success

int (*config)(unsigned int msg_type, unsigned int rate_ms, int op_mode)

Configure GNSS module, NULL if not implemented.

Param msg_type:

bitwise ORed value of gnssmsg_e, for messages to be enabled

Param rate_ms:

output datarate in ms, currently unused (1000ms default)

Param op_mode:

Operation mode to configure GNSS module for Normal or slow motion operation

Return:

status, 0 for success

int (*setup_baud)(unsigned int baud)

Setup/change baudrate, called from gpsbaud command handler, NULL if not implemented.

Param baud:

baudrate to set

Return:

status, 0 for success

Enumerations

enum gnssmsg_e

GNSS message to enable.

Values:

enumerator NMEA_GGA
enumerator NMEA_GLL
enumerator NMEA_GSA
enumerator NMEA_GSV
enumerator NMEA_RMC
enumerator NMEA_VTG
enum gnssopmode_e

Module operation mode (if supported)

Values:

enumerator OPMODE_NORMAL
enumerator OPMODE_SLOW
enum gnssreset_e

GNSS software reset type.

Values:

enumerator RESET_HOT
enumerator RESET_WARM
enumerator RESET_COLD