MRTKLIB 0.7.14
Modernized GNSS Positioning Library
Loading...
Searching...
No Matches
mrtk_rcv_ublox.c File Reference
#include <ctype.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mrtklib/mrtk_bits.h"
#include "mrtklib/mrtk_eph.h"
#include "mrtklib/mrtk_madoca.h"
#include "mrtklib/mrtk_mat.h"
#include "mrtklib/mrtk_nav.h"
#include "mrtklib/mrtk_obs.h"
#include "mrtklib/mrtk_rcvraw.h"
#include "mrtklib/mrtk_rtcm.h"
#include "mrtklib/mrtk_sbas.h"
#include "mrtklib/mrtk_sys.h"
#include "mrtklib/mrtk_time.h"
#include "mrtklib/mrtk_trace.h"
Include dependency graph for mrtk_rcv_ublox.c:

Go to the source code of this file.

Macros

#define PI   3.1415926535897932 /* pi */
#define D2R   (PI / 180.0) /* deg to rad */
#define R2D   (180.0 / PI) /* rad to deg */
#define CLIGHT   299792458.0 /* speed of light (m/s) */
#define SC2RAD   3.1415926535898 /* semi-circle to radian (IS-GPS) */
#define SYS_NONE   0x00
#define SYS_GPS   0x01
#define SYS_SBS   0x02
#define SYS_GLO   0x04
#define SYS_GAL   0x08
#define SYS_QZS   0x10
#define SYS_CMP   0x20
#define SYS_IRN   0x40
#define TSYS_GPS   0
#define TSYS_UTC   1
#define TSYS_GLO   2
#define TSYS_GAL   3
#define TSYS_QZS   4
#define TSYS_CMP   5
#define TSYS_IRN   6
#define FREQ1   1.57542E9 /* L1/E1/B1C frequency (Hz) */
#define FREQ2   1.22760E9 /* L2 frequency (Hz) */
#define FREQ5   1.17645E9 /* L5/E5a/B2a frequency (Hz) */
#define FREQ6   1.27875E9 /* E6/L6 frequency (Hz) */
#define FREQ7   1.20714E9 /* E5b/B2I frequency (Hz) */
#define FREQ8   1.191795E9 /* E5ab/B2ab frequency (Hz) */
#define FREQ9   2.492028E9 /* S frequency (Hz) */
#define FREQ1_GLO   1.60200E9 /* GLONASS G1 base frequency (Hz) */
#define DFRQ1_GLO   0.56250E6 /* GLONASS G1 bias frequency (Hz/n) */
#define FREQ2_GLO   1.24600E9 /* GLONASS G2 base frequency (Hz) */
#define DFRQ2_GLO   0.43750E6 /* GLONASS G2 bias frequency (Hz/n) */
#define FREQ3_GLO   1.202025E9 /* GLONASS G3 frequency (Hz) */
#define FREQ1a_GLO   1.600995E9 /* GLONASS G1a frequency (Hz) */
#define FREQ2a_GLO   1.248060E9 /* GLONASS G2a frequency (Hz) */
#define FREQ1_CMP   1.561098E9 /* BDS B1I frequency (Hz) */
#define MINPRNGPS   1
#define MAXPRNGPS   32
#define MINPRNSBS   120
#define MAXPRNSBS   158
#define LLI_SLIP   0x01 /* LLI: cycle-slip */
#define LLI_HALFC   0x02 /* LLI: half-cycle not resolved */
#define LLI_BOCTRK   0x04 /* LLI: boc tracking of mboc signal */
#define LLI_HALFA   0x40 /* LLI: half-cycle added */
#define LLI_HALFS   0x80 /* LLI: half-cycle subtracted */
#define P2_5   0.03125
#define P2_6   0.015625
#define P2_11   4.882812500000000E-04
#define P2_15   3.051757812500000E-05
#define P2_17   7.629394531250000E-06
#define P2_19   1.907348632812500E-06
#define P2_20   9.536743164062500E-07
#define P2_21   4.768371582031250E-07
#define P2_23   1.192092895507810E-07
#define P2_24   5.960464477539063E-08
#define P2_27   7.450580596923828E-09
#define P2_29   1.862645149230957E-09
#define P2_30   9.313225746154785E-10
#define P2_31   4.656612873077393E-10
#define P2_32   2.328306436538696E-10
#define P2_33   1.164153218269348E-10
#define P2_34   5.820766091346740E-11
#define P2_35   2.910383045673370E-11
#define P2_38   3.637978807091710E-12
#define P2_40   9.094947017729280E-13
#define P2_43   1.136868377216160E-13
#define P2_46   1.421085471520200E-14
#define P2_50   8.881784197001252E-16
#define P2_55   2.775557561562891E-17
#define P2_59   1.734723475976810E-18
#define UBXSYNC1   0xB5 /* ubx message sync code 1 */
#define UBXSYNC2   0x62 /* ubx message sync code 2 */
#define UBXCFG   0x06 /* ubx message cfg-??? */
#define PREAMB_CNAV   0x8B /* cnav preamble */
#define ID_NAVSOL   0x0106 /* ubx message id: nav solution info */
#define ID_NAVTIME   0x0120 /* ubx message id: nav time gps */
#define ID_RXMRAW   0x0210 /* ubx message id: raw measurement data */
#define ID_RXMSFRB   0x0211 /* ubx message id: subframe buffer */
#define ID_RXMSFRBX   0x0213 /* ubx message id: raw subframe data */
#define ID_RXMRAWX   0x0215 /* ubx message id: multi-gnss raw meas data */
#define ID_RXMQZSSL6   0x0273 /* ubx message id: qzss L6 message */
#define ID_TRKD5   0x030A /* ubx message id: trace mesurement data */
#define ID_TRKMEAS   0x0310 /* ubx message id: trace mesurement data */
#define ID_TRKSFRBX   0x030F /* ubx message id: trace subframe buffer */
#define FU1   1 /* ubx message field types */
#define FU2   2
#define FU4   3
#define FI1   4
#define FI2   5
#define FI4   6
#define FR4   7
#define FR8   8
#define FS32   9
#define P2_10   0.0009765625 /* 2^-10 */
#define CPSTD_VALID   14 /* std-dev threshold of carrier-phase valid */
#define ROUND(x)
#define U1(p)
#define I1(p)

Functions

static uint16_t U2 (uint8_t *p)
static uint32_t U4 (uint8_t *p)
static int32_t I4 (uint8_t *p)
static float R4 (uint8_t *p)
static double R8 (uint8_t *p)
static double I8 (uint8_t *p)
static void setU1 (uint8_t *p, uint8_t u)
static void setU2 (uint8_t *p, uint16_t u)
static void setU4 (uint8_t *p, uint32_t u)
static void setI1 (uint8_t *p, int8_t i)
static void setI2 (uint8_t *p, int16_t i)
static void setI4 (uint8_t *p, int32_t i)
static void setR4 (uint8_t *p, float r)
static void setR8 (uint8_t *p, double r)
static int checksum (uint8_t *buff, int len)
static void setcs (uint8_t *buff, int len)
static int ubx_sys (int gnssid)
static int ubx_sig (int sys, int sigid)
static int sig_idx (int sys, uint8_t code)
static int decode_rxmraw (raw_t *raw)
static int decode_rxmrawx (raw_t *raw)
static int decode_navsol (raw_t *raw)
static int decode_navtime (raw_t *raw)
static int decode_trkmeas (raw_t *raw)
static int decode_trkd5 (raw_t *raw)
static void adj_utcweek (gtime_t time, double *utc)
static int decode_eph (raw_t *raw, int sat)
static int decode_ionutc (raw_t *raw, int sat)
static int decode_nav (raw_t *raw, int sat, int off)
static int decode_enav (raw_t *raw, int sat, int off)
static int decode_cnav (raw_t *raw, int sat, int off)
static int decode_gnav (raw_t *raw, int sat, int off, int frq)
static int decode_snav (raw_t *raw, int prn, int off)
static int decode_rxmsfrbx (raw_t *raw)
static int decode_trksfrbx (raw_t *raw)
static int decode_rxmsfrb (raw_t *raw)
static int decode_rxmqzssl6 (raw_t *raw, rtcm_t *rtcm)
static int decode_ubx (raw_t *raw, rtcm_t *rtcm)
static int sync_ubx (uint8_t *buff, uint8_t data)
int input_ubx (raw_t *raw, rtcm_t *rtcm, uint8_t data)
int input_ubxf (raw_t *raw, rtcm_t *rtcm, FILE *fp)
static int stoi (const char *s)
int gen_ubx (const char *msg, uint8_t *buff)

Macro Definition Documentation

◆ CLIGHT

#define CLIGHT   299792458.0 /* speed of light (m/s) */

Definition at line 39 of file mrtk_rcv_ublox.c.

◆ CPSTD_VALID

#define CPSTD_VALID   14 /* std-dev threshold of carrier-phase valid */

Definition at line 147 of file mrtk_rcv_ublox.c.

Referenced by decode_rxmrawx().

◆ D2R

#define D2R   (PI / 180.0) /* deg to rad */

Definition at line 37 of file mrtk_rcv_ublox.c.

◆ DFRQ1_GLO

#define DFRQ1_GLO   0.56250E6 /* GLONASS G1 bias frequency (Hz/n) */

Definition at line 67 of file mrtk_rcv_ublox.c.

◆ DFRQ2_GLO

#define DFRQ2_GLO   0.43750E6 /* GLONASS G2 bias frequency (Hz/n) */

Definition at line 69 of file mrtk_rcv_ublox.c.

◆ FI1

#define FI1   4

Definition at line 135 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

◆ FI2

#define FI2   5

Definition at line 136 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

◆ FI4

#define FI4   6

Definition at line 137 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

◆ FR4

#define FR4   7

Definition at line 138 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

◆ FR8

#define FR8   8

Definition at line 139 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

◆ FREQ1

#define FREQ1   1.57542E9 /* L1/E1/B1C frequency (Hz) */

Definition at line 59 of file mrtk_rcv_ublox.c.

◆ FREQ1_CMP

#define FREQ1_CMP   1.561098E9 /* BDS B1I frequency (Hz) */

Definition at line 73 of file mrtk_rcv_ublox.c.

◆ FREQ1_GLO

#define FREQ1_GLO   1.60200E9 /* GLONASS G1 base frequency (Hz) */

Definition at line 66 of file mrtk_rcv_ublox.c.

◆ FREQ1a_GLO

#define FREQ1a_GLO   1.600995E9 /* GLONASS G1a frequency (Hz) */

Definition at line 71 of file mrtk_rcv_ublox.c.

◆ FREQ2

#define FREQ2   1.22760E9 /* L2 frequency (Hz) */

Definition at line 60 of file mrtk_rcv_ublox.c.

◆ FREQ2_GLO

#define FREQ2_GLO   1.24600E9 /* GLONASS G2 base frequency (Hz) */

Definition at line 68 of file mrtk_rcv_ublox.c.

◆ FREQ2a_GLO

#define FREQ2a_GLO   1.248060E9 /* GLONASS G2a frequency (Hz) */

Definition at line 72 of file mrtk_rcv_ublox.c.

◆ FREQ3_GLO

#define FREQ3_GLO   1.202025E9 /* GLONASS G3 frequency (Hz) */

Definition at line 70 of file mrtk_rcv_ublox.c.

◆ FREQ5

#define FREQ5   1.17645E9 /* L5/E5a/B2a frequency (Hz) */

Definition at line 61 of file mrtk_rcv_ublox.c.

◆ FREQ6

#define FREQ6   1.27875E9 /* E6/L6 frequency (Hz) */

Definition at line 62 of file mrtk_rcv_ublox.c.

◆ FREQ7

#define FREQ7   1.20714E9 /* E5b/B2I frequency (Hz) */

Definition at line 63 of file mrtk_rcv_ublox.c.

◆ FREQ8

#define FREQ8   1.191795E9 /* E5ab/B2ab frequency (Hz) */

Definition at line 64 of file mrtk_rcv_ublox.c.

◆ FREQ9

#define FREQ9   2.492028E9 /* S frequency (Hz) */

Definition at line 65 of file mrtk_rcv_ublox.c.

◆ FS32

#define FS32   9

Definition at line 140 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

◆ FU1

#define FU1   1 /* ubx message field types */

Definition at line 132 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

◆ FU2

#define FU2   2

Definition at line 133 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

◆ FU4

#define FU4   3

Definition at line 134 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

◆ I1

#define I1 ( p)
Value:
(*((int8_t*)(p)))

Definition at line 154 of file mrtk_rcv_ublox.c.

Referenced by decode_rxmraw().

◆ ID_NAVSOL

#define ID_NAVSOL   0x0106 /* ubx message id: nav solution info */

Definition at line 121 of file mrtk_rcv_ublox.c.

Referenced by decode_ubx().

◆ ID_NAVTIME

#define ID_NAVTIME   0x0120 /* ubx message id: nav time gps */

Definition at line 122 of file mrtk_rcv_ublox.c.

Referenced by decode_ubx().

◆ ID_RXMQZSSL6

#define ID_RXMQZSSL6   0x0273 /* ubx message id: qzss L6 message */

Definition at line 127 of file mrtk_rcv_ublox.c.

Referenced by decode_ubx().

◆ ID_RXMRAW

#define ID_RXMRAW   0x0210 /* ubx message id: raw measurement data */

Definition at line 123 of file mrtk_rcv_ublox.c.

Referenced by decode_ubx().

◆ ID_RXMRAWX

#define ID_RXMRAWX   0x0215 /* ubx message id: multi-gnss raw meas data */

Definition at line 126 of file mrtk_rcv_ublox.c.

Referenced by decode_ubx().

◆ ID_RXMSFRB

#define ID_RXMSFRB   0x0211 /* ubx message id: subframe buffer */

Definition at line 124 of file mrtk_rcv_ublox.c.

Referenced by decode_ubx().

◆ ID_RXMSFRBX

#define ID_RXMSFRBX   0x0213 /* ubx message id: raw subframe data */

Definition at line 125 of file mrtk_rcv_ublox.c.

Referenced by decode_ubx().

◆ ID_TRKD5

#define ID_TRKD5   0x030A /* ubx message id: trace mesurement data */

Definition at line 128 of file mrtk_rcv_ublox.c.

Referenced by decode_ubx().

◆ ID_TRKMEAS

#define ID_TRKMEAS   0x0310 /* ubx message id: trace mesurement data */

Definition at line 129 of file mrtk_rcv_ublox.c.

Referenced by decode_ubx().

◆ ID_TRKSFRBX

#define ID_TRKSFRBX   0x030F /* ubx message id: trace subframe buffer */

Definition at line 130 of file mrtk_rcv_ublox.c.

Referenced by decode_ubx().

◆ LLI_BOCTRK

#define LLI_BOCTRK   0x04 /* LLI: boc tracking of mboc signal */

Definition at line 82 of file mrtk_rcv_ublox.c.

◆ LLI_HALFA

#define LLI_HALFA   0x40 /* LLI: half-cycle added */

Definition at line 83 of file mrtk_rcv_ublox.c.

◆ LLI_HALFC

#define LLI_HALFC   0x02 /* LLI: half-cycle not resolved */

Definition at line 81 of file mrtk_rcv_ublox.c.

◆ LLI_HALFS

#define LLI_HALFS   0x80 /* LLI: half-cycle subtracted */

Definition at line 84 of file mrtk_rcv_ublox.c.

◆ LLI_SLIP

#define LLI_SLIP   0x01 /* LLI: cycle-slip */

Definition at line 80 of file mrtk_rcv_ublox.c.

◆ MAXPRNGPS

#define MAXPRNGPS   32

Definition at line 76 of file mrtk_rcv_ublox.c.

◆ MAXPRNSBS

#define MAXPRNSBS   158

Definition at line 78 of file mrtk_rcv_ublox.c.

◆ MINPRNGPS

#define MINPRNGPS   1

Definition at line 75 of file mrtk_rcv_ublox.c.

◆ MINPRNSBS

#define MINPRNSBS   120

Definition at line 77 of file mrtk_rcv_ublox.c.

◆ P2_10

#define P2_10   0.0009765625 /* 2^-10 */

◆ P2_11

#define P2_11   4.882812500000000E-04

Definition at line 89 of file mrtk_rcv_ublox.c.

◆ P2_15

#define P2_15   3.051757812500000E-05

Definition at line 90 of file mrtk_rcv_ublox.c.

◆ P2_17

#define P2_17   7.629394531250000E-06

Definition at line 91 of file mrtk_rcv_ublox.c.

◆ P2_19

#define P2_19   1.907348632812500E-06

Definition at line 92 of file mrtk_rcv_ublox.c.

◆ P2_20

#define P2_20   9.536743164062500E-07

Definition at line 93 of file mrtk_rcv_ublox.c.

◆ P2_21

#define P2_21   4.768371582031250E-07

Definition at line 94 of file mrtk_rcv_ublox.c.

◆ P2_23

#define P2_23   1.192092895507810E-07

Definition at line 95 of file mrtk_rcv_ublox.c.

◆ P2_24

#define P2_24   5.960464477539063E-08

Definition at line 96 of file mrtk_rcv_ublox.c.

◆ P2_27

#define P2_27   7.450580596923828E-09

Definition at line 97 of file mrtk_rcv_ublox.c.

◆ P2_29

#define P2_29   1.862645149230957E-09

Definition at line 98 of file mrtk_rcv_ublox.c.

◆ P2_30

#define P2_30   9.313225746154785E-10

Definition at line 99 of file mrtk_rcv_ublox.c.

◆ P2_31

#define P2_31   4.656612873077393E-10

Definition at line 100 of file mrtk_rcv_ublox.c.

◆ P2_32

#define P2_32   2.328306436538696E-10

Definition at line 101 of file mrtk_rcv_ublox.c.

◆ P2_33

#define P2_33   1.164153218269348E-10

Definition at line 102 of file mrtk_rcv_ublox.c.

◆ P2_34

#define P2_34   5.820766091346740E-11

Definition at line 103 of file mrtk_rcv_ublox.c.

◆ P2_35

#define P2_35   2.910383045673370E-11

Definition at line 104 of file mrtk_rcv_ublox.c.

◆ P2_38

#define P2_38   3.637978807091710E-12

Definition at line 105 of file mrtk_rcv_ublox.c.

◆ P2_40

#define P2_40   9.094947017729280E-13

Definition at line 106 of file mrtk_rcv_ublox.c.

◆ P2_43

#define P2_43   1.136868377216160E-13

Definition at line 107 of file mrtk_rcv_ublox.c.

◆ P2_46

#define P2_46   1.421085471520200E-14

Definition at line 108 of file mrtk_rcv_ublox.c.

◆ P2_5

#define P2_5   0.03125

Definition at line 87 of file mrtk_rcv_ublox.c.

◆ P2_50

#define P2_50   8.881784197001252E-16

Definition at line 109 of file mrtk_rcv_ublox.c.

◆ P2_55

#define P2_55   2.775557561562891E-17

Definition at line 110 of file mrtk_rcv_ublox.c.

◆ P2_59

#define P2_59   1.734723475976810E-18

Definition at line 111 of file mrtk_rcv_ublox.c.

◆ P2_6

#define P2_6   0.015625

Definition at line 88 of file mrtk_rcv_ublox.c.

◆ PI

#define PI   3.1415926535897932 /* pi */

Definition at line 36 of file mrtk_rcv_ublox.c.

◆ PREAMB_CNAV

#define PREAMB_CNAV   0x8B /* cnav preamble */

Definition at line 119 of file mrtk_rcv_ublox.c.

◆ R2D

#define R2D   (180.0 / PI) /* rad to deg */

Definition at line 38 of file mrtk_rcv_ublox.c.

◆ ROUND

#define ROUND ( x)
Value:
(int)floor((x) + 0.5)

Definition at line 150 of file mrtk_rcv_ublox.c.

Referenced by decode_trkd5(), and decode_trkmeas().

◆ SC2RAD

#define SC2RAD   3.1415926535898 /* semi-circle to radian (IS-GPS) */

Definition at line 40 of file mrtk_rcv_ublox.c.

◆ SYS_CMP

#define SYS_CMP   0x20

Definition at line 48 of file mrtk_rcv_ublox.c.

◆ SYS_GAL

#define SYS_GAL   0x08

Definition at line 46 of file mrtk_rcv_ublox.c.

◆ SYS_GLO

#define SYS_GLO   0x04

Definition at line 45 of file mrtk_rcv_ublox.c.

◆ SYS_GPS

#define SYS_GPS   0x01

Definition at line 43 of file mrtk_rcv_ublox.c.

◆ SYS_IRN

#define SYS_IRN   0x40

Definition at line 49 of file mrtk_rcv_ublox.c.

◆ SYS_NONE

#define SYS_NONE   0x00

Definition at line 42 of file mrtk_rcv_ublox.c.

◆ SYS_QZS

#define SYS_QZS   0x10

Definition at line 47 of file mrtk_rcv_ublox.c.

◆ SYS_SBS

#define SYS_SBS   0x02

Definition at line 44 of file mrtk_rcv_ublox.c.

◆ TSYS_CMP

#define TSYS_CMP   5

Definition at line 56 of file mrtk_rcv_ublox.c.

◆ TSYS_GAL

#define TSYS_GAL   3

Definition at line 54 of file mrtk_rcv_ublox.c.

◆ TSYS_GLO

#define TSYS_GLO   2

Definition at line 53 of file mrtk_rcv_ublox.c.

◆ TSYS_GPS

#define TSYS_GPS   0

Definition at line 51 of file mrtk_rcv_ublox.c.

◆ TSYS_IRN

#define TSYS_IRN   6

Definition at line 57 of file mrtk_rcv_ublox.c.

◆ TSYS_QZS

#define TSYS_QZS   4

Definition at line 55 of file mrtk_rcv_ublox.c.

◆ TSYS_UTC

#define TSYS_UTC   1

Definition at line 52 of file mrtk_rcv_ublox.c.

◆ U1

◆ UBXCFG

#define UBXCFG   0x06 /* ubx message cfg-??? */

Definition at line 117 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

◆ UBXSYNC1

#define UBXSYNC1   0xB5 /* ubx message sync code 1 */

Definition at line 115 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx(), and sync_ubx().

◆ UBXSYNC2

#define UBXSYNC2   0x62 /* ubx message sync code 2 */

Definition at line 116 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx(), and sync_ubx().

Function Documentation

◆ adj_utcweek()

void adj_utcweek ( gtime_t time,
double * utc )
static

Definition at line 899 of file mrtk_rcv_ublox.c.

References time2gpst().

Referenced by decode_enav(), and decode_ionutc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ checksum()

int checksum ( uint8_t * buff,
int len )
static

Definition at line 193 of file mrtk_rcv_ublox.c.

Referenced by decode_ubx().

Here is the caller graph for this function:

◆ decode_cnav()

int decode_cnav ( raw_t * raw,
int sat,
int off )
static

Definition at line 1069 of file mrtk_rcv_ublox.c.

References raw_t::buff, decode_bds_d1(), decode_bds_d2(), nav_s::eph, raw_t::ephsat, raw_t::ephset, getbitu(), nav_s::ion_cmp, raw_t::len, matcpy(), raw_t::nav, raw_t::opt, eph_t::sat, satsys(), setbitu(), raw_t::subfrm, timediff(), eph_t::toe, trace(), U4, and nav_s::utc_cmp.

Referenced by decode_rxmsfrbx(), and decode_trksfrbx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_enav()

int decode_enav ( raw_t * raw,
int sat,
int off )
static

Definition at line 990 of file mrtk_rcv_ublox.c.

References adj_utcweek(), raw_t::buff, eph_t::code, decode_gal_inav(), nav_s::eph, raw_t::ephsat, raw_t::ephset, getbitu(), eph_t::iode, nav_s::ion_gal, raw_t::len, matcpy(), raw_t::nav, raw_t::opt, rtk_crc24q(), eph_t::sat, setbitu(), raw_t::subfrm, raw_t::time, timediff(), eph_t::toc, eph_t::toe, trace(), U4, and nav_s::utc_gal.

Referenced by decode_rxmsfrbx(), and decode_trksfrbx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_eph()

int decode_eph ( raw_t * raw,
int sat )
static

Definition at line 917 of file mrtk_rcv_ublox.c.

References decode_frame(), nav_s::eph, raw_t::ephsat, raw_t::ephset, eph_t::iodc, eph_t::iode, raw_t::nav, raw_t::opt, eph_t::sat, raw_t::subfrm, timediff(), eph_t::toc, and eph_t::toe.

Referenced by decode_nav(), and decode_rxmsfrb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_gnav()

int decode_gnav ( raw_t * raw,
int sat,
int off,
int frq )
static

Definition at line 1140 of file mrtk_rcv_ublox.c.

References raw_t::buff, decode_glostr(), raw_t::ephsat, raw_t::ephset, geph_t::frq, nav_s::geph, getbitu(), geph_t::iode, raw_t::len, matcpy(), raw_t::nav, raw_t::opt, geph_t::sat, satsys(), raw_t::subfrm, test_glostr(), raw_t::time, geph_t::tof, trace(), and nav_s::utc_glo.

Referenced by decode_rxmsfrbx(), and decode_trksfrbx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_ionutc()

int decode_ionutc ( raw_t * raw,
int sat )
static

Definition at line 938 of file mrtk_rcv_ublox.c.

References adj_utcweek(), decode_frame(), nav_s::ion_gps, nav_s::ion_qzs, matcpy(), raw_t::nav, satsys(), raw_t::subfrm, SYS_QZS, raw_t::time, nav_s::utc_gps, and nav_s::utc_qzs.

Referenced by decode_nav(), and decode_rxmsfrb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_nav()

int decode_nav ( raw_t * raw,
int sat,
int off )
static

Definition at line 957 of file mrtk_rcv_ublox.c.

References raw_t::buff, decode_eph(), decode_ionutc(), getbitu(), raw_t::len, PREAMB_CNAV, setbitu(), raw_t::subfrm, trace(), and U4.

Referenced by decode_rxmsfrbx(), and decode_trksfrbx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_navsol()

int decode_navsol ( raw_t * raw)
static

Definition at line 559 of file mrtk_rcv_ublox.c.

References raw_t::buff, gpst2time(), I4, raw_t::len, raw_t::msgtype, raw_t::outtype, raw_t::time, trace(), U1, U2, and U4.

Referenced by decode_ubx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_navtime()

int decode_navtime ( raw_t * raw)
static

Definition at line 577 of file mrtk_rcv_ublox.c.

References raw_t::buff, gpst2time(), gpst2utc(), I4, raw_t::len, raw_t::msgtype, raw_t::opt, raw_t::outtype, raw_t::time, time2epoch(), time2str(), trace(), U1, U2, and U4.

Referenced by decode_ubx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_rxmqzssl6()

int decode_rxmqzssl6 ( raw_t * raw,
rtcm_t * rtcm )
static

Definition at line 1341 of file mrtk_rcv_ublox.c.

References raw_t::buff, decode_qzss_l6frame(), raw_t::l6tag, raw_t::len, raw_t::msgtype, raw_t::opt, raw_t::outtype, rtcm, trace(), U1, U2, and U4.

Referenced by decode_ubx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_rxmraw()

int decode_rxmraw ( raw_t * raw)
static

Definition at line 344 of file mrtk_rcv_ublox.c.

References raw_t::buff, CLIGHT, obsd_t::code, CODE_L1C, CODE_NONE, obsd_t::D, obs_t::data, FREQ1, gpst2time(), I1, obsd_t::L, raw_t::len, obsd_t::LLI, raw_t::lockt, MAXOBS, MINPRNSBS, raw_t::msgtype, obs_t::n, raw_t::obs, raw_t::opt, raw_t::outtype, obsd_t::P, R4, R8, obsd_t::sat, satno(), obsd_t::SNR, SNR_UNIT, SYS_GPS, SYS_SBS, obsd_t::time, raw_t::time, time2gpst(), timeadd(), timediff(), trace(), U1, U2, and U4.

Referenced by decode_ubx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_rxmrawx()

int decode_rxmrawx ( raw_t * raw)
static

Definition at line 420 of file mrtk_rcv_ublox.c.

References raw_t::buff, CLIGHT, obsd_t::code, code2freq(), CODE_L1C, CODE_L1X, CODE_L2I, CODE_NONE, CPSTD_VALID, obsd_t::D, obs_t::data, nav_s::glo_fcn, gpst2time(), raw_t::halfc, obsd_t::L, raw_t::len, obsd_t::LLI, LLI_HALFC, LLI_HALFS, LLI_SLIP, raw_t::lockt, MAXOBS, raw_t::msgtype, obs_t::n, raw_t::nav, raw_t::obs, raw_t::opt, raw_t::outtype, obsd_t::P, R4, R8, obsd_t::rcv, obsd_t::sat, satno(), sig_idx(), obsd_t::SNR, SNR_UNIT, SYS_CMP, SYS_GAL, SYS_GLO, SYS_QZS, obsd_t::time, raw_t::time, time2gpst(), time2str(), timeadd(), trace(), U1, U2, ubx_sig(), and ubx_sys().

Referenced by decode_ubx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_rxmsfrb()

int decode_rxmsfrb ( raw_t * raw)
static

Definition at line 1297 of file mrtk_rcv_ublox.c.

References raw_t::buff, decode_eph(), decode_ionutc(), getbitu(), raw_t::len, MINPRNSBS, raw_t::msgtype, raw_t::outtype, satno(), sbsdecodemsg(), raw_t::sbsmsg, setbitu(), raw_t::subfrm, SYS_GPS, SYS_SBS, raw_t::time, trace(), U1, and U4.

Referenced by decode_ubx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_rxmsfrbx()

int decode_rxmsfrbx ( raw_t * raw)
static

Definition at line 1224 of file mrtk_rcv_ublox.c.

References raw_t::buff, decode_cnav(), decode_enav(), decode_gnav(), decode_nav(), decode_snav(), raw_t::len, raw_t::msgtype, raw_t::outtype, satno(), SYS_CMP, SYS_GAL, SYS_GLO, SYS_GPS, SYS_QZS, SYS_SBS, trace(), U1, and ubx_sys().

Referenced by decode_ubx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_snav()

int decode_snav ( raw_t * raw,
int prn,
int off )
static

Definition at line 1204 of file mrtk_rcv_ublox.c.

References raw_t::buff, raw_t::len, sbsmsg_t::msg, sbsmsg_t::prn, raw_t::sbsmsg, setbitu(), raw_t::time, time2gpst(), timeadd(), sbsmsg_t::tow, trace(), U4, and sbsmsg_t::week.

Referenced by decode_rxmsfrbx(), and decode_trksfrbx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_trkd5()

int decode_trkd5 ( raw_t * raw)
static

Definition at line 745 of file mrtk_rcv_ublox.c.

References raw_t::buff, CLIGHT, obsd_t::code, CODE_L1C, CODE_L2I, CODE_NONE, obsd_t::D, obs_t::data, gpst2time(), gpst2utc(), I4, I8(), obsd_t::L, raw_t::len, obsd_t::LLI, raw_t::lockt, MAXSAT, MINPRNSBS, raw_t::msgtype, obs_t::n, raw_t::obs, raw_t::outtype, obsd_t::P, P2_10, P2_32, ROUND, obsd_t::sat, satno(), obsd_t::SNR, SNR_UNIT, SYS_CMP, SYS_GLO, SYS_GPS, SYS_QZS, SYS_SBS, gtime_t::time, obsd_t::time, raw_t::time, time2gpst(), time_str(), timediff(), trace(), U1, U2, and ubx_sys().

Referenced by decode_ubx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_trkmeas()

int decode_trkmeas ( raw_t * raw)
static

Definition at line 602 of file mrtk_rcv_ublox.c.

References raw_t::buff, CLIGHT, obsd_t::code, CODE_L1C, CODE_L2I, CODE_NONE, obsd_t::D, obs_t::data, gpst2time(), gpst2utc(), I4, I8(), obsd_t::L, raw_t::len, obsd_t::LLI, raw_t::lockt, MAXSAT, raw_t::msgtype, obs_t::n, raw_t::obs, raw_t::outtype, obsd_t::P, P2_10, P2_32, ROUND, obsd_t::sat, satno(), obsd_t::SNR, SNR_UNIT, SYS_CMP, SYS_GLO, SYS_GPS, SYS_QZS, SYS_SBS, gtime_t::time, obsd_t::time, raw_t::time, time2gpst(), timediff(), trace(), U1, U2, and ubx_sys().

Referenced by decode_ubx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_trksfrbx()

int decode_trksfrbx ( raw_t * raw)
static

Definition at line 1264 of file mrtk_rcv_ublox.c.

References raw_t::buff, decode_cnav(), decode_enav(), decode_gnav(), decode_nav(), decode_snav(), raw_t::len, raw_t::msgtype, raw_t::outtype, satno(), SYS_CMP, SYS_GAL, SYS_GLO, SYS_GPS, SYS_QZS, SYS_SBS, trace(), U1, and ubx_sys().

Referenced by decode_ubx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decode_ubx()

int decode_ubx ( raw_t * raw,
rtcm_t * rtcm )
static

Definition at line 1389 of file mrtk_rcv_ublox.c.

References raw_t::buff, checksum(), decode_navsol(), decode_navtime(), decode_rxmqzssl6(), decode_rxmraw(), decode_rxmrawx(), decode_rxmsfrb(), decode_rxmsfrbx(), decode_trkd5(), decode_trkmeas(), decode_trksfrbx(), ID_NAVSOL, ID_NAVTIME, ID_RXMQZSSL6, ID_RXMRAW, ID_RXMRAWX, ID_RXMSFRB, ID_RXMSFRBX, ID_TRKD5, ID_TRKMEAS, ID_TRKSFRBX, raw_t::len, raw_t::msgtype, raw_t::outtype, rtcm, trace(), and U1.

Referenced by input_ubx(), and input_ubxf().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gen_ubx()

int gen_ubx ( const char * msg,
uint8_t * buff )
extern

Definition at line 1590 of file mrtk_rcv_ublox.c.

References FI1, FI2, FI4, FR4, FR8, FS32, FU1, FU2, FU4, setcs(), setI1(), setI2(), setI4(), setR4(), setR8(), setU1(), setU2(), setU4(), stoi(), trace(), traceb(), UBXCFG, UBXSYNC1, and UBXSYNC2.

Referenced by strsendcmd().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ I4()

int32_t I4 ( uint8_t * p)
static

Definition at line 165 of file mrtk_rcv_ublox.c.

◆ I8()

double I8 ( uint8_t * p)
static

Definition at line 180 of file mrtk_rcv_ublox.c.

References I4, and U4.

Referenced by decode_trkd5(), and decode_trkmeas().

Here is the caller graph for this function:

◆ input_ubx()

int input_ubx ( raw_t * raw,
rtcm_t * rtcm,
uint8_t data )
extern

Definition at line 1464 of file mrtk_rcv_ublox.c.

References raw_t::buff, decode_ubx(), raw_t::len, MAXRAWLEN, raw_t::nbyte, rtcm, sync_ubx(), trace(), and U2.

Referenced by input_raw().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_ubxf()

int input_ubxf ( raw_t * raw,
rtcm_t * rtcm,
FILE * fp )
extern

Definition at line 1499 of file mrtk_rcv_ublox.c.

References raw_t::buff, decode_ubx(), raw_t::len, MAXRAWLEN, raw_t::nbyte, rtcm, sync_ubx(), trace(), and U2.

Referenced by input_rawf().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ R4()

float R4 ( uint8_t * p)
static

Definition at line 170 of file mrtk_rcv_ublox.c.

◆ R8()

double R8 ( uint8_t * p)
static

Definition at line 175 of file mrtk_rcv_ublox.c.

◆ setcs()

void setcs ( uint8_t * buff,
int len )
static

Definition at line 203 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

Here is the caller graph for this function:

◆ setI1()

void setI1 ( uint8_t * p,
int8_t i )
static

Definition at line 186 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

Here is the caller graph for this function:

◆ setI2()

void setI2 ( uint8_t * p,
int16_t i )
static

Definition at line 187 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

Here is the caller graph for this function:

◆ setI4()

void setI4 ( uint8_t * p,
int32_t i )
static

Definition at line 188 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

Here is the caller graph for this function:

◆ setR4()

void setR4 ( uint8_t * p,
float r )
static

Definition at line 189 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

Here is the caller graph for this function:

◆ setR8()

void setR8 ( uint8_t * p,
double r )
static

Definition at line 190 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

Here is the caller graph for this function:

◆ setU1()

void setU1 ( uint8_t * p,
uint8_t u )
static

Definition at line 183 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

Here is the caller graph for this function:

◆ setU2()

void setU2 ( uint8_t * p,
uint16_t u )
static

Definition at line 184 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

Here is the caller graph for this function:

◆ setU4()

void setU4 ( uint8_t * p,
uint32_t u )
static

Definition at line 185 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

Here is the caller graph for this function:

◆ sig_idx()

int sig_idx ( int sys,
uint8_t code )
static

Definition at line 319 of file mrtk_rcv_ublox.c.

References code2freq_idx(), CODE_L1B, CODE_L1Z, CODE_L2S, CODE_L7I, SYS_GAL, SYS_GPS, and SYS_QZS.

Referenced by decode_rxmrawx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stoi()

int stoi ( const char * s)
static

Definition at line 1537 of file mrtk_rcv_ublox.c.

Referenced by gen_ubx().

Here is the caller graph for this function:

◆ sync_ubx()

int sync_ubx ( uint8_t * buff,
uint8_t data )
static

Definition at line 1427 of file mrtk_rcv_ublox.c.

References UBXSYNC1, and UBXSYNC2.

Referenced by input_ubx(), and input_ubxf().

Here is the caller graph for this function:

◆ U2()

uint16_t U2 ( uint8_t * p)
static

Definition at line 155 of file mrtk_rcv_ublox.c.

◆ U4()

uint32_t U4 ( uint8_t * p)
static

Definition at line 160 of file mrtk_rcv_ublox.c.

◆ ubx_sig()

int ubx_sig ( int sys,
int sigid )
static

Definition at line 233 of file mrtk_rcv_ublox.c.

References CODE_L1B, CODE_L1C, CODE_L1P, CODE_L1Z, CODE_L2C, CODE_L2I, CODE_L2L, CODE_L2S, CODE_L5P, CODE_L5Q, CODE_L6B, CODE_L6I, CODE_L7I, CODE_L7Q, CODE_NONE, SYS_CMP, SYS_GAL, SYS_GLO, SYS_GPS, SYS_QZS, and SYS_SBS.

Referenced by decode_rxmrawx().

Here is the caller graph for this function:

◆ ubx_sys()

int ubx_sys ( int gnssid)
static

Definition at line 215 of file mrtk_rcv_ublox.c.

References SYS_CMP, SYS_GAL, SYS_GLO, SYS_GPS, SYS_QZS, and SYS_SBS.

Referenced by decode_rxmrawx(), decode_rxmsfrbx(), decode_trkd5(), decode_trkmeas(), and decode_trksfrbx().

Here is the caller graph for this function: