MRTKLIB 0.7.14
Modernized GNSS Positioning Library
Loading...
Searching...
No Matches
mrtk_rcv_septentrio.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_coords.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_sys.h"
#include "mrtklib/mrtk_time.h"
#include "mrtklib/mrtk_trace.h"
Include dependency graph for mrtk_rcv_septentrio.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 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 SBF_SYNC1   0x24 /* SBF block header 1 */
#define SBF_SYNC2   0x40 /* SBF block header 2 */
#define SBF_MAXSIG   40 /* SBF max signal number */
#define SBF_MEASEPOCH   4027 /* SBF GNSS measurements */
#define SBF_MEASEXTRA   4000 /* SBF GNSS measurements extra info */
#define SBF_GPSRAWCA   4017 /* SBF GPS C/A subframe */
#define SBF_GLORAWCA   4026 /* SBF GLONASS L1CA or L2CA navigation string */
#define SBF_GALRAWFNAV   4022 /* SBF Galileo F/NAV navigation page */
#define SBF_GALRAWINAV   4023 /* SBF Galileo I/NAV navigation page */
#define SBF_GALRAWCNAV   4024 /* SBF Galileo E6-B C/NAV page (HAS) */
#define SBF_GEORAWL1   4020 /* SBF SBAS L1 navigation frame */
#define SBF_BDSRAW   4047 /* SBF BDS navigation page */
#define SBF_QZSRAWL1CA   4066 /* SBF QZSS C/A subframe */
#define SBF_QZSRAWL6   4069 /* SBF QZSS L6 message (generic; Source: 1=L6D, 2=L6E) */
#define SBF_QZSRAWL6D   4270 /* SBF QZSS L6D message (mosaic-G5; Source always 1) */
#define SBF_QZSRAWL6E   4271 /* SBF QZSS L6E message (mosaic-G5; Source always 2) */
#define SBF_NAVICRAW   4093 /* SBF NavIC/IRNSS subframe */
#define SBF_GPSNAV   5891 /* SBF GPS decoded ephemeris */
#define SBF_GLONAV   4004 /* SBF GLONASS decoded ephemeris */
#define SBF_GALNAV   4002 /* SBF Galileo decoded ephemeris */
#define SBF_BDSNAV   4081 /* SBF BDS decoded ephemeris */
#define SBF_QZSSNAV   4095 /* SBF QZSS decoded ephemeris */
#define SBF_PVTGEOD   4007 /* SBF PVTGeodetic */
#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 int16_t I2 (uint8_t *p)
static float R4 (const uint8_t *p)
static double R8 (const uint8_t *p)
static uint16_t adjust_WN10 (uint16_t ref_WN, uint16_t WN)
static uint16_t adjust_WN12 (uint16_t ref_WN, uint16_t WN)
static uint16_t adjust_WN14 (uint16_t ref_WN, uint16_t WN)
static int svid2sat (int svid)
static int sig2idx (int sat, int sig, const raw_t *raw, uint8_t *code)
static void init_obsd (gtime_t time, int sat, obsd_t *data)
static int decode_measepoch (raw_t *raw)
static int decode_measextra (raw_t *raw)
static int decode_eph (raw_t *raw, int sat)
static void adj_utcweek (gtime_t time, double *utc)
static int decode_ionutc (raw_t *raw, int sat)
static int decode_rawca (raw_t *raw, int sys)
static int decode_gpsrawca (raw_t *raw)
static int decode_glorawca (raw_t *raw)
static int decode_galrawfnav (raw_t *raw)
static int decode_galrawinav (raw_t *raw)
static int decode_galrawcnav (raw_t *raw)
 Decode an SBF GALRawCNAV block (4024) into a staged Galileo HAS page.
static int decode_georawl1 (raw_t *raw)
static int decode_bdsraw (raw_t *raw)
static int decode_qzsrawl1ca (raw_t *raw)
static int decode_qzsrawl6 (raw_t *raw, rtcm_t *rtcm)
static int decode_navicraw (raw_t *raw)
static int decode_gpsnav (raw_t *raw)
static int decode_glonav (raw_t *raw)
static int decode_galnav (raw_t *raw)
static int decode_bdsnav (raw_t *raw)
static int decode_qzssnav (raw_t *raw)
static int decode_pvtgeodetic (raw_t *raw)
static int decode_sbf (raw_t *raw, rtcm_t *rtcm)
static int sync_sbf (uint8_t *buff, uint8_t data)
int input_sbf (raw_t *raw, rtcm_t *rtcm, uint8_t data)
int input_sbff (raw_t *raw, rtcm_t *rtcm, FILE *fp)

Variables

static uint8_t sig_tbl [40+1][2]

Macro Definition Documentation

◆ CLIGHT

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

Definition at line 39 of file mrtk_rcv_septentrio.c.

◆ D2R

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

Definition at line 37 of file mrtk_rcv_septentrio.c.

◆ DFRQ1_GLO

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

Definition at line 67 of file mrtk_rcv_septentrio.c.

◆ DFRQ2_GLO

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

Definition at line 69 of file mrtk_rcv_septentrio.c.

◆ FREQ1

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

Definition at line 59 of file mrtk_rcv_septentrio.c.

◆ FREQ1_CMP

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

Definition at line 73 of file mrtk_rcv_septentrio.c.

◆ FREQ1_GLO

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

Definition at line 66 of file mrtk_rcv_septentrio.c.

◆ FREQ1a_GLO

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

Definition at line 71 of file mrtk_rcv_septentrio.c.

◆ FREQ2

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

Definition at line 60 of file mrtk_rcv_septentrio.c.

◆ FREQ2_GLO

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

Definition at line 68 of file mrtk_rcv_septentrio.c.

◆ FREQ2a_GLO

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

Definition at line 72 of file mrtk_rcv_septentrio.c.

◆ FREQ3_GLO

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

Definition at line 70 of file mrtk_rcv_septentrio.c.

◆ FREQ5

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

Definition at line 61 of file mrtk_rcv_septentrio.c.

◆ FREQ6

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

Definition at line 62 of file mrtk_rcv_septentrio.c.

◆ FREQ7

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

Definition at line 63 of file mrtk_rcv_septentrio.c.

◆ FREQ8

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

Definition at line 64 of file mrtk_rcv_septentrio.c.

◆ FREQ9

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

Definition at line 65 of file mrtk_rcv_septentrio.c.

◆ I1

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

Definition at line 140 of file mrtk_rcv_septentrio.c.

Referenced by decode_measepoch().

◆ MAXPRNGPS

#define MAXPRNGPS   32

Definition at line 76 of file mrtk_rcv_septentrio.c.

◆ MAXPRNSBS

#define MAXPRNSBS   158

Definition at line 78 of file mrtk_rcv_septentrio.c.

◆ MINPRNGPS

#define MINPRNGPS   1

Definition at line 75 of file mrtk_rcv_septentrio.c.

◆ MINPRNSBS

#define MINPRNSBS   120

Definition at line 77 of file mrtk_rcv_septentrio.c.

◆ P2_11

#define P2_11   4.882812500000000E-04

Definition at line 83 of file mrtk_rcv_septentrio.c.

◆ P2_15

#define P2_15   3.051757812500000E-05

Definition at line 84 of file mrtk_rcv_septentrio.c.

◆ P2_17

#define P2_17   7.629394531250000E-06

Definition at line 85 of file mrtk_rcv_septentrio.c.

◆ P2_19

#define P2_19   1.907348632812500E-06

Definition at line 86 of file mrtk_rcv_septentrio.c.

◆ P2_20

#define P2_20   9.536743164062500E-07

Definition at line 87 of file mrtk_rcv_septentrio.c.

◆ P2_21

#define P2_21   4.768371582031250E-07

Definition at line 88 of file mrtk_rcv_septentrio.c.

◆ P2_23

#define P2_23   1.192092895507810E-07

Definition at line 89 of file mrtk_rcv_septentrio.c.

◆ P2_24

#define P2_24   5.960464477539063E-08

Definition at line 90 of file mrtk_rcv_septentrio.c.

◆ P2_27

#define P2_27   7.450580596923828E-09

Definition at line 91 of file mrtk_rcv_septentrio.c.

◆ P2_29

#define P2_29   1.862645149230957E-09

Definition at line 92 of file mrtk_rcv_septentrio.c.

◆ P2_30

#define P2_30   9.313225746154785E-10

Definition at line 93 of file mrtk_rcv_septentrio.c.

◆ P2_31

#define P2_31   4.656612873077393E-10

Definition at line 94 of file mrtk_rcv_septentrio.c.

◆ P2_32

#define P2_32   2.328306436538696E-10

Definition at line 95 of file mrtk_rcv_septentrio.c.

◆ P2_33

#define P2_33   1.164153218269348E-10

Definition at line 96 of file mrtk_rcv_septentrio.c.

◆ P2_34

#define P2_34   5.820766091346740E-11

Definition at line 97 of file mrtk_rcv_septentrio.c.

◆ P2_35

#define P2_35   2.910383045673370E-11

Definition at line 98 of file mrtk_rcv_septentrio.c.

◆ P2_38

#define P2_38   3.637978807091710E-12

Definition at line 99 of file mrtk_rcv_septentrio.c.

◆ P2_40

#define P2_40   9.094947017729280E-13

Definition at line 100 of file mrtk_rcv_septentrio.c.

◆ P2_43

#define P2_43   1.136868377216160E-13

Definition at line 101 of file mrtk_rcv_septentrio.c.

◆ P2_46

#define P2_46   1.421085471520200E-14

Definition at line 102 of file mrtk_rcv_septentrio.c.

◆ P2_5

#define P2_5   0.03125

Definition at line 81 of file mrtk_rcv_septentrio.c.

◆ P2_50

#define P2_50   8.881784197001252E-16

Definition at line 103 of file mrtk_rcv_septentrio.c.

◆ P2_55

#define P2_55   2.775557561562891E-17

Definition at line 104 of file mrtk_rcv_septentrio.c.

◆ P2_59

#define P2_59   1.734723475976810E-18

Definition at line 105 of file mrtk_rcv_septentrio.c.

◆ P2_6

#define P2_6   0.015625

Definition at line 82 of file mrtk_rcv_septentrio.c.

◆ PI

#define PI   3.1415926535897932 /* pi */

Definition at line 36 of file mrtk_rcv_septentrio.c.

◆ R2D

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

Definition at line 38 of file mrtk_rcv_septentrio.c.

◆ SBF_BDSNAV

#define SBF_BDSNAV   4081 /* SBF BDS decoded ephemeris */

Definition at line 132 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_BDSRAW

#define SBF_BDSRAW   4047 /* SBF BDS navigation page */

Definition at line 121 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_GALNAV

#define SBF_GALNAV   4002 /* SBF Galileo decoded ephemeris */

Definition at line 131 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_GALRAWCNAV

#define SBF_GALRAWCNAV   4024 /* SBF Galileo E6-B C/NAV page (HAS) */

Definition at line 119 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_GALRAWFNAV

#define SBF_GALRAWFNAV   4022 /* SBF Galileo F/NAV navigation page */

Definition at line 117 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_GALRAWINAV

#define SBF_GALRAWINAV   4023 /* SBF Galileo I/NAV navigation page */

Definition at line 118 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_GEORAWL1

#define SBF_GEORAWL1   4020 /* SBF SBAS L1 navigation frame */

Definition at line 120 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_GLONAV

#define SBF_GLONAV   4004 /* SBF GLONASS decoded ephemeris */

Definition at line 130 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_GLORAWCA

#define SBF_GLORAWCA   4026 /* SBF GLONASS L1CA or L2CA navigation string */

Definition at line 116 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_GPSNAV

#define SBF_GPSNAV   5891 /* SBF GPS decoded ephemeris */

Definition at line 129 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_GPSRAWCA

#define SBF_GPSRAWCA   4017 /* SBF GPS C/A subframe */

Definition at line 115 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_MAXSIG

#define SBF_MAXSIG   40 /* SBF max signal number */

Definition at line 111 of file mrtk_rcv_septentrio.c.

Referenced by decode_measepoch(), and sig2idx().

◆ SBF_MEASEPOCH

#define SBF_MEASEPOCH   4027 /* SBF GNSS measurements */

Definition at line 113 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_MEASEXTRA

#define SBF_MEASEXTRA   4000 /* SBF GNSS measurements extra info */

Definition at line 114 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_NAVICRAW

#define SBF_NAVICRAW   4093 /* SBF NavIC/IRNSS subframe */

Definition at line 126 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_PVTGEOD

#define SBF_PVTGEOD   4007 /* SBF PVTGeodetic */

Definition at line 136 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_QZSRAWL1CA

#define SBF_QZSRAWL1CA   4066 /* SBF QZSS C/A subframe */

Definition at line 122 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_QZSRAWL6

#define SBF_QZSRAWL6   4069 /* SBF QZSS L6 message (generic; Source: 1=L6D, 2=L6E) */

Definition at line 123 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_QZSRAWL6D

#define SBF_QZSRAWL6D   4270 /* SBF QZSS L6D message (mosaic-G5; Source always 1) */

Definition at line 124 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_QZSRAWL6E

#define SBF_QZSRAWL6E   4271 /* SBF QZSS L6E message (mosaic-G5; Source always 2) */

Definition at line 125 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_QZSSNAV

#define SBF_QZSSNAV   4095 /* SBF QZSS decoded ephemeris */

Definition at line 133 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

◆ SBF_SYNC1

#define SBF_SYNC1   0x24 /* SBF block header 1 */

Definition at line 109 of file mrtk_rcv_septentrio.c.

Referenced by sync_sbf().

◆ SBF_SYNC2

#define SBF_SYNC2   0x40 /* SBF block header 2 */

Definition at line 110 of file mrtk_rcv_septentrio.c.

Referenced by sync_sbf().

◆ SC2RAD

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

Definition at line 40 of file mrtk_rcv_septentrio.c.

◆ SYS_CMP

#define SYS_CMP   0x20

Definition at line 48 of file mrtk_rcv_septentrio.c.

◆ SYS_GAL

#define SYS_GAL   0x08

Definition at line 46 of file mrtk_rcv_septentrio.c.

◆ SYS_GLO

#define SYS_GLO   0x04

Definition at line 45 of file mrtk_rcv_septentrio.c.

◆ SYS_GPS

#define SYS_GPS   0x01

Definition at line 43 of file mrtk_rcv_septentrio.c.

◆ SYS_IRN

#define SYS_IRN   0x40

Definition at line 49 of file mrtk_rcv_septentrio.c.

◆ SYS_NONE

#define SYS_NONE   0x00

Definition at line 42 of file mrtk_rcv_septentrio.c.

◆ SYS_QZS

#define SYS_QZS   0x10

Definition at line 47 of file mrtk_rcv_septentrio.c.

◆ SYS_SBS

#define SYS_SBS   0x02

Definition at line 44 of file mrtk_rcv_septentrio.c.

◆ TSYS_CMP

#define TSYS_CMP   5

Definition at line 56 of file mrtk_rcv_septentrio.c.

◆ TSYS_GAL

#define TSYS_GAL   3

Definition at line 54 of file mrtk_rcv_septentrio.c.

◆ TSYS_GLO

#define TSYS_GLO   2

Definition at line 53 of file mrtk_rcv_septentrio.c.

◆ TSYS_GPS

#define TSYS_GPS   0

Definition at line 51 of file mrtk_rcv_septentrio.c.

◆ TSYS_IRN

#define TSYS_IRN   6

Definition at line 57 of file mrtk_rcv_septentrio.c.

◆ TSYS_QZS

#define TSYS_QZS   4

Definition at line 55 of file mrtk_rcv_septentrio.c.

◆ TSYS_UTC

#define TSYS_UTC   1

Definition at line 52 of file mrtk_rcv_septentrio.c.

◆ U1

Function Documentation

◆ adj_utcweek()

void adj_utcweek ( gtime_t time,
double * utc )
static

Definition at line 570 of file mrtk_rcv_septentrio.c.

References time2gpst().

Referenced by decode_galrawfnav(), decode_galrawinav(), decode_ionutc(), and decode_navicraw().

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

◆ adjust_WN10()

uint16_t adjust_WN10 ( uint16_t ref_WN,
uint16_t WN )
static

Definition at line 173 of file mrtk_rcv_septentrio.c.

Referenced by decode_glonav(), decode_gpsnav(), and decode_qzssnav().

Here is the caller graph for this function:

◆ adjust_WN12()

uint16_t adjust_WN12 ( uint16_t ref_WN,
uint16_t WN )
static

Definition at line 179 of file mrtk_rcv_septentrio.c.

Referenced by decode_galnav().

Here is the caller graph for this function:

◆ adjust_WN14()

uint16_t adjust_WN14 ( uint16_t ref_WN,
uint16_t WN )
static

Definition at line 185 of file mrtk_rcv_septentrio.c.

Referenced by decode_bdsnav().

Here is the caller graph for this function:

◆ decode_bdsnav()

int decode_bdsnav ( raw_t * raw)
static

Definition at line 1414 of file mrtk_rcv_septentrio.c.

References eph_t::A, adjust_WN14(), bdt2gpst(), bdt2time(), raw_t::buff, eph_t::cic, eph_t::cis, eph_t::code, eph_t::crc, eph_t::crs, eph_t::cuc, eph_t::cus, eph_t::deln, eph_t::e, nav_s::eph, raw_t::ephsat, raw_t::ephset, eph_t::f0, eph_t::f1, eph_t::f2, eph_t::fit, eph_t::i0, eph_t::idot, eph_t::iodc, eph_t::iode, raw_t::len, eph_t::M0, raw_t::nav, eph_t::omg, eph_t::OMG0, eph_t::OMGd, raw_t::opt, PI, R4, R8, eph_t::sat, satno(), eph_t::sva, eph_t::svh, SYS_CMP, eph_t::tgd, raw_t::time, eph_t::toc, eph_t::toe, eph_t::toes, trace(), eph_t::ttr, U1, U2, U4, and eph_t::week.

Referenced by decode_sbf().

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

◆ decode_bdsraw()

int decode_bdsraw ( raw_t * raw)
static

Definition at line 1010 of file mrtk_rcv_septentrio.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::msgtype, raw_t::nav, raw_t::opt, raw_t::outtype, eph_t::sat, satsys(), setbitu(), raw_t::subfrm, svid2sat(), SYS_CMP, timediff(), eph_t::toe, trace(), U1, U4, and nav_s::utc_cmp.

Referenced by decode_sbf().

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 549 of file mrtk_rcv_septentrio.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_rawca().

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

◆ decode_galnav()

int decode_galnav ( raw_t * raw)
static

Definition at line 1336 of file mrtk_rcv_septentrio.c.

References eph_t::A, adjust_WN12(), raw_t::buff, eph_t::cic, eph_t::cis, eph_t::code, eph_t::crc, eph_t::crs, eph_t::cuc, eph_t::cus, eph_t::deln, eph_t::e, nav_s::eph, raw_t::ephsat, raw_t::ephset, eph_t::f0, eph_t::f1, eph_t::f2, eph_t::fit, gpst2time(), eph_t::i0, eph_t::idot, eph_t::iodc, eph_t::iode, raw_t::len, eph_t::M0, raw_t::nav, eph_t::omg, eph_t::OMG0, eph_t::OMGd, raw_t::opt, PI, R4, R8, eph_t::sat, satno(), eph_t::sva, eph_t::svh, SYS_GAL, eph_t::tgd, eph_t::toc, eph_t::toe, eph_t::toes, trace(), eph_t::ttr, U1, U2, U4, and eph_t::week.

Referenced by decode_sbf().

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

◆ decode_galrawcnav()

int decode_galrawcnav ( raw_t * raw)
static

Decode an SBF GALRawCNAV block (4024) into a staged Galileo HAS page.

The block payload (after the 8-byte SBF header) is: TOW u4, WNc u2, SVID u1, CRCPassed u1, ViterbiCnt u1, Source u1, FreqNr u1, RxChannel u1, NAVBits u4[16]. The 16 little-endian words are concatenated MSB-first into 512 bits; the 448-bit HAS page is bits 14..461 (56 bytes). The staged page is routed to svr->has by decoderaw(). Dummy pages (24-bit header 0xAF3BC3), CRC failures and out-of-range PRNs are skipped here (return 0); TOW sentinels are filtered upstream in decode_sbf before this handler runs.

Parameters
[in,out]rawReceiver raw data control struct (buff holds the block; raw->time already set by input_sbf from this block's TOW/WNc)
Returns
13 when a valid HAS page is staged in raw->has_page/has_prn/has_time, 0 when the page is skipped, -1 on length error.

Definition at line 921 of file mrtk_rcv_septentrio.c.

References raw_t::buff, raw_t::has_page, raw_t::has_prn, raw_t::has_time, raw_t::len, raw_t::msgtype, raw_t::outtype, raw_t::time, trace(), U1, and U4.

Referenced by decode_sbf().

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

◆ decode_galrawfnav()

int decode_galrawfnav ( raw_t * raw)
static

Definition at line 717 of file mrtk_rcv_septentrio.c.

References adj_utcweek(), raw_t::buff, eph_t::code, decode_gal_fnav(), nav_s::eph, raw_t::ephsat, raw_t::ephset, getbitu(), eph_t::iode, nav_s::ion_gal, raw_t::len, matcpy(), MAXSAT, raw_t::msgtype, raw_t::nav, raw_t::opt, raw_t::outtype, rtk_crc24q(), eph_t::sat, satsys(), setbitu(), raw_t::subfrm, svid2sat(), SYS_GAL, raw_t::time, timediff(), eph_t::toc, eph_t::toe, trace(), U1, U4, and nav_s::utc_gal.

Referenced by decode_sbf().

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

◆ decode_galrawinav()

int decode_galrawinav ( raw_t * raw)
static

Definition at line 804 of file mrtk_rcv_septentrio.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::msgtype, raw_t::nav, raw_t::opt, raw_t::outtype, rtk_crc24q(), eph_t::sat, satsys(), setbitu(), raw_t::subfrm, svid2sat(), SYS_GAL, raw_t::time, timediff(), eph_t::toc, eph_t::toe, trace(), U1, U4, and nav_s::utc_gal.

Referenced by decode_sbf().

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

◆ decode_georawl1()

int decode_georawl1 ( raw_t * raw)
static

Definition at line 979 of file mrtk_rcv_septentrio.c.

References raw_t::buff, raw_t::len, sbsmsg_t::msg, raw_t::msgtype, raw_t::outtype, sbsmsg_t::prn, satsys(), raw_t::sbsmsg, setbitu(), svid2sat(), SYS_SBS, raw_t::time, time2gpst(), sbsmsg_t::tow, trace(), U1, U4, and sbsmsg_t::week.

Referenced by decode_sbf().

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

◆ decode_glonav()

int decode_glonav ( raw_t * raw)
static

Definition at line 1283 of file mrtk_rcv_septentrio.c.

References geph_t::acc, adjust_WN10(), geph_t::age, raw_t::buff, geph_t::dtaun, raw_t::ephsat, raw_t::ephset, geph_t::frq, geph_t::gamn, nav_s::geph, nav_s::glo_fcn, gpst2time(), geph_t::iode, raw_t::len, raw_t::nav, raw_t::opt, geph_t::pos, R4, R8, geph_t::sat, satno(), geph_t::sva, geph_t::svh, SYS_GLO, geph_t::taun, geph_t::toe, geph_t::tof, trace(), U1, U2, U4, and geph_t::vel.

Referenced by decode_sbf().

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

◆ decode_glorawca()

int decode_glorawca ( raw_t * raw)
static

Definition at line 651 of file mrtk_rcv_septentrio.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::msgtype, raw_t::nav, raw_t::opt, raw_t::outtype, geph_t::sat, satsys(), setbitu(), raw_t::subfrm, geph_t::svh, svid2sat(), SYS_GLO, raw_t::time, timediff(), geph_t::toe, geph_t::tof, trace(), U1, U4, and nav_s::utc_glo.

Referenced by decode_sbf().

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

◆ decode_gpsnav()

int decode_gpsnav ( raw_t * raw)
static

Definition at line 1221 of file mrtk_rcv_septentrio.c.

References eph_t::A, adjgpsweek(), adjust_WN10(), raw_t::buff, eph_t::cic, eph_t::cis, eph_t::code, eph_t::crc, eph_t::crs, eph_t::cuc, eph_t::cus, eph_t::deln, eph_t::e, nav_s::eph, raw_t::ephsat, raw_t::ephset, eph_t::f0, eph_t::f1, eph_t::f2, eph_t::fit, eph_t::flag, gpst2time(), eph_t::i0, eph_t::idot, eph_t::iodc, eph_t::iode, raw_t::len, eph_t::M0, raw_t::nav, eph_t::omg, eph_t::OMG0, eph_t::OMGd, raw_t::opt, PI, R4, R8, eph_t::sat, satno(), eph_t::sva, eph_t::svh, SYS_GPS, eph_t::tgd, raw_t::time, eph_t::toc, eph_t::toe, eph_t::toes, trace(), eph_t::ttr, U1, U2, U4, and eph_t::week.

Referenced by decode_sbf().

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

◆ decode_gpsrawca()

int decode_gpsrawca ( raw_t * raw)
static

Definition at line 649 of file mrtk_rcv_septentrio.c.

References decode_rawca(), and SYS_GPS.

Referenced by decode_sbf().

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 588 of file mrtk_rcv_septentrio.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_rawca().

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

◆ decode_measepoch()

int decode_measepoch ( raw_t * raw)
static

Definition at line 380 of file mrtk_rcv_septentrio.c.

References raw_t::buff, CLIGHT, obsd_t::code, code2freq(), obsd_t::D, obs_t::data, getbits(), I1, I4, init_obsd(), obsd_t::L, raw_t::len, obsd_t::LLI, raw_t::lockt, MAXOBS, raw_t::msgtype, obs_t::n, raw_t::obs, raw_t::opt, raw_t::outtype, obsd_t::P, satsys(), SBF_MAXSIG, sig2idx(), sig_tbl, obsd_t::SNR, SNR_UNIT, svid2sat(), raw_t::time, trace(), U1, U2, and U4.

Referenced by decode_sbf().

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

◆ decode_measextra()

int decode_measextra ( raw_t * raw)
static

Definition at line 544 of file mrtk_rcv_septentrio.c.

Referenced by decode_sbf().

Here is the caller graph for this function:

◆ decode_navicraw()

int decode_navicraw ( raw_t * raw)
static

Definition at line 1161 of file mrtk_rcv_septentrio.c.

References adj_utcweek(), raw_t::buff, decode_irn_nav(), nav_s::eph, raw_t::ephsat, raw_t::ephset, getbitu(), eph_t::iode, nav_s::ion_irn, raw_t::len, matcpy(), raw_t::msgtype, raw_t::nav, raw_t::opt, raw_t::outtype, eph_t::sat, satsys(), setbitu(), raw_t::subfrm, svid2sat(), SYS_IRN, raw_t::time, timediff(), eph_t::toe, trace(), U1, U4, and nav_s::utc_irn.

Referenced by decode_sbf().

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

◆ decode_pvtgeodetic()

int decode_pvtgeodetic ( raw_t * raw)
static

Definition at line 1539 of file mrtk_rcv_septentrio.c.

References raw_t::buff, D2R, raw_t::len, sta_t::pos, pos2ecef(), R8, raw_t::sta, trace(), and U1.

Referenced by decode_sbf().

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

◆ decode_qzsrawl1ca()

int decode_qzsrawl1ca ( raw_t * raw)
static

Definition at line 1091 of file mrtk_rcv_septentrio.c.

References decode_rawca(), and SYS_QZS.

Referenced by decode_sbf().

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

◆ decode_qzsrawl6()

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

Definition at line 1099 of file mrtk_rcv_septentrio.c.

References raw_t::buff, decode_qzss_l6frame(), raw_t::ephsat, gpst2time(), raw_t::l6tag, raw_t::len, MINPRNQZS, rtcm, satno(), SYS_QZS, time_str(), trace(), U1, U2, and U4.

Referenced by decode_sbf().

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

◆ decode_qzssnav()

int decode_qzssnav ( raw_t * raw)
static

Definition at line 1478 of file mrtk_rcv_septentrio.c.

References eph_t::A, adjust_WN10(), raw_t::buff, eph_t::cic, eph_t::cis, eph_t::code, eph_t::crc, eph_t::crs, eph_t::cuc, eph_t::cus, eph_t::deln, eph_t::e, nav_s::eph, raw_t::ephsat, raw_t::ephset, eph_t::f0, eph_t::f1, eph_t::f2, eph_t::fit, gpst2time(), eph_t::i0, eph_t::idot, eph_t::iodc, eph_t::iode, raw_t::len, eph_t::M0, raw_t::nav, eph_t::omg, eph_t::OMG0, eph_t::OMGd, raw_t::opt, PI, R4, R8, eph_t::sat, eph_t::sva, eph_t::svh, svid2sat(), eph_t::tgd, raw_t::time, eph_t::toc, eph_t::toe, eph_t::toes, trace(), eph_t::ttr, U1, U2, U4, and eph_t::week.

Referenced by decode_sbf().

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

◆ decode_rawca()

int decode_rawca ( raw_t * raw,
int sys )
static

Definition at line 607 of file mrtk_rcv_septentrio.c.

References raw_t::buff, decode_eph(), decode_ionutc(), getbitu(), raw_t::len, raw_t::msgtype, raw_t::outtype, satsys(), setbitu(), raw_t::subfrm, svid2sat(), trace(), U1, and U4.

Referenced by decode_gpsrawca(), and decode_qzsrawl1ca().

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

◆ decode_sbf()

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

◆ I2()

int16_t I2 ( uint8_t * p)
static

Definition at line 156 of file mrtk_rcv_septentrio.c.

◆ I4()

int32_t I4 ( uint8_t * p)
static

Definition at line 151 of file mrtk_rcv_septentrio.c.

◆ init_obsd()

void init_obsd ( gtime_t time,
int sat,
obsd_t * data )
static

Definition at line 365 of file mrtk_rcv_septentrio.c.

References obsd_t::code, CODE_NONE, obsd_t::D, obsd_t::L, obsd_t::LLI, obsd_t::P, obsd_t::sat, obsd_t::SNR, and obsd_t::time.

Referenced by decode_measepoch().

Here is the caller graph for this function:

◆ input_sbf()

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

Definition at line 1678 of file mrtk_rcv_septentrio.c.

References raw_t::buff, decode_sbf(), raw_t::len, MAXRAWLEN, raw_t::nbyte, rtcm, sync_sbf(), trace(), and U2.

Referenced by input_raw().

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

◆ input_sbff()

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

Definition at line 1713 of file mrtk_rcv_septentrio.c.

References raw_t::buff, decode_sbf(), raw_t::len, MAXRAWLEN, raw_t::nbyte, rtcm, sync_sbf(), 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 ( const uint8_t * p)
static

Definition at line 161 of file mrtk_rcv_septentrio.c.

◆ R8()

double R8 ( const uint8_t * p)
static

Definition at line 166 of file mrtk_rcv_septentrio.c.

◆ sig2idx()

int sig2idx ( int sat,
int sig,
const raw_t * raw,
uint8_t * code )
static

Definition at line 286 of file mrtk_rcv_septentrio.c.

References code2freq_idx(), CODE_L1L, CODE_L1P, CODE_L1W, CODE_L1Z, CODE_L2C, CODE_L2L, mrtk_sigcfg_freq_idx(), MRTK_SIGCFG_NOOPINION, raw_t::opt, satsys(), SBF_MAXSIG, sig_tbl, raw_t::sigcfg, raw_t::sigcfg_set, SYS_CMP, SYS_GLO, SYS_GPS, and SYS_QZS.

Referenced by decode_measepoch().

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

◆ svid2sat()

int svid2sat ( int svid)
static

Definition at line 193 of file mrtk_rcv_septentrio.c.

References satno(), SYS_CMP, SYS_GAL, SYS_GLO, SYS_GPS, SYS_IRN, SYS_QZS, and SYS_SBS.

Referenced by decode_bdsraw(), decode_galrawfnav(), decode_galrawinav(), decode_georawl1(), decode_glorawca(), decode_measepoch(), decode_navicraw(), decode_qzssnav(), and decode_rawca().

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

◆ sync_sbf()

int sync_sbf ( uint8_t * buff,
uint8_t data )
static

Definition at line 1641 of file mrtk_rcv_septentrio.c.

References SBF_SYNC1, and SBF_SYNC2.

Referenced by input_sbf(), and input_sbff().

Here is the caller graph for this function:

◆ U2()

uint16_t U2 ( uint8_t * p)
static

Definition at line 141 of file mrtk_rcv_septentrio.c.

◆ U4()

uint32_t U4 ( uint8_t * p)
static

Definition at line 146 of file mrtk_rcv_septentrio.c.

Variable Documentation

◆ sig_tbl

uint8_t sig_tbl[40+1][2]
static

Definition at line 242 of file mrtk_rcv_septentrio.c.

Referenced by decode_measepoch(), and sig2idx().