|
MRTKLIB 0.7.14
Modernized GNSS Positioning Library
|
#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_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"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 | CRESSYNC "$BIN" /* hemis bin sync code */ |
| #define | ID_CRESPOS 1 /* hemis msg id: bin 1 position/velocity */ |
| #define | ID_CRESGLOEPH 65 /* hemis msg id: bin 65 glonass ephemeris */ |
| #define | ID_CRESGLORAW 66 /* hemis msg id: bin 66 glonass L1/L2 phase and code */ |
| #define | ID_CRESRAW2 76 /* hemis msg id: bin 76 dual-freq raw */ |
| #define | ID_CRESWAAS 80 /* hemis msg id: bin 80 waas messages */ |
| #define | ID_CRESIONUTC 94 /* hemis msg id: bin 94 ion/utc parameters */ |
| #define | ID_CRESEPH 95 /* hemis msg id: bin 95 raw ephemeris */ |
| #define | ID_CRESRAW 96 /* hemis msg id: bin 96 raw phase and code */ |
| #define | SNR2CN0_L1 30.0 /* hemis snr to c/n0 offset (db) L1 */ |
| #define | SNR2CN0_L2 30.0 /* hemis snr to c/n0 offset (db) L2 */ |
| #define | U1(p) |
| #define | I1(p) |
Functions | |
| static uint16_t | U2 (uint8_t *p) |
| static uint32_t | U4 (uint8_t *p) |
| static int16_t | I2 (uint8_t *p) |
| static int32_t | I4 (uint8_t *p) |
| static float | R4 (uint8_t *p) |
| static double | R8 (uint8_t *p) |
| static int | chksum (const uint8_t *buff, int len) |
| static int | decode_crespos (raw_t *raw) |
| static int | decode_cresraw (raw_t *raw) |
| static int | decode_cresraw2 (raw_t *raw) |
| static int | decode_creseph (raw_t *raw) |
| static int | decode_cresionutc (raw_t *raw) |
| static int | decode_creswaas (raw_t *raw) |
| static int | decode_cresgloraw (raw_t *raw) |
| static int | decode_cresgloeph (raw_t *raw) |
| static int | decode_cres (raw_t *raw) |
| static int | sync_cres (uint8_t *buff, uint8_t data) |
| int | input_cres (raw_t *raw, uint8_t data) |
| int | input_cresf (raw_t *raw, FILE *fp) |
| #define CLIGHT 299792458.0 /* speed of light (m/s) */ |
Definition at line 37 of file mrtk_rcv_crescent.c.
| #define CRESSYNC "$BIN" /* hemis bin sync code */ |
Definition at line 107 of file mrtk_rcv_crescent.c.
Referenced by sync_cres().
| #define D2R (PI / 180.0) /* deg to rad */ |
Definition at line 35 of file mrtk_rcv_crescent.c.
| #define DFRQ1_GLO 0.56250E6 /* GLONASS G1 bias frequency (Hz/n) */ |
Definition at line 65 of file mrtk_rcv_crescent.c.
| #define DFRQ2_GLO 0.43750E6 /* GLONASS G2 bias frequency (Hz/n) */ |
Definition at line 67 of file mrtk_rcv_crescent.c.
| #define FREQ1 1.57542E9 /* L1/E1/B1C frequency (Hz) */ |
Definition at line 57 of file mrtk_rcv_crescent.c.
| #define FREQ1_CMP 1.561098E9 /* BDS B1I frequency (Hz) */ |
Definition at line 71 of file mrtk_rcv_crescent.c.
| #define FREQ1_GLO 1.60200E9 /* GLONASS G1 base frequency (Hz) */ |
Definition at line 64 of file mrtk_rcv_crescent.c.
| #define FREQ1a_GLO 1.600995E9 /* GLONASS G1a frequency (Hz) */ |
Definition at line 69 of file mrtk_rcv_crescent.c.
| #define FREQ2 1.22760E9 /* L2 frequency (Hz) */ |
Definition at line 58 of file mrtk_rcv_crescent.c.
| #define FREQ2_GLO 1.24600E9 /* GLONASS G2 base frequency (Hz) */ |
Definition at line 66 of file mrtk_rcv_crescent.c.
| #define FREQ2a_GLO 1.248060E9 /* GLONASS G2a frequency (Hz) */ |
Definition at line 70 of file mrtk_rcv_crescent.c.
| #define FREQ3_GLO 1.202025E9 /* GLONASS G3 frequency (Hz) */ |
Definition at line 68 of file mrtk_rcv_crescent.c.
| #define FREQ5 1.17645E9 /* L5/E5a/B2a frequency (Hz) */ |
Definition at line 59 of file mrtk_rcv_crescent.c.
| #define FREQ6 1.27875E9 /* E6/L6 frequency (Hz) */ |
Definition at line 60 of file mrtk_rcv_crescent.c.
| #define FREQ7 1.20714E9 /* E5b/B2I frequency (Hz) */ |
Definition at line 61 of file mrtk_rcv_crescent.c.
| #define FREQ8 1.191795E9 /* E5ab/B2ab frequency (Hz) */ |
Definition at line 62 of file mrtk_rcv_crescent.c.
| #define FREQ9 2.492028E9 /* S frequency (Hz) */ |
Definition at line 63 of file mrtk_rcv_crescent.c.
| #define I1 | ( | p | ) |
Definition at line 123 of file mrtk_rcv_crescent.c.
| #define ID_CRESEPH 95 /* hemis msg id: bin 95 raw ephemeris */ |
Definition at line 115 of file mrtk_rcv_crescent.c.
Referenced by decode_cres().
| #define ID_CRESGLOEPH 65 /* hemis msg id: bin 65 glonass ephemeris */ |
Definition at line 110 of file mrtk_rcv_crescent.c.
Referenced by decode_cres().
| #define ID_CRESGLORAW 66 /* hemis msg id: bin 66 glonass L1/L2 phase and code */ |
Definition at line 111 of file mrtk_rcv_crescent.c.
Referenced by decode_cres().
| #define ID_CRESIONUTC 94 /* hemis msg id: bin 94 ion/utc parameters */ |
Definition at line 114 of file mrtk_rcv_crescent.c.
Referenced by decode_cres().
| #define ID_CRESPOS 1 /* hemis msg id: bin 1 position/velocity */ |
Definition at line 109 of file mrtk_rcv_crescent.c.
Referenced by decode_cres().
| #define ID_CRESRAW 96 /* hemis msg id: bin 96 raw phase and code */ |
Definition at line 116 of file mrtk_rcv_crescent.c.
Referenced by decode_cres().
| #define ID_CRESRAW2 76 /* hemis msg id: bin 76 dual-freq raw */ |
Definition at line 112 of file mrtk_rcv_crescent.c.
Referenced by decode_cres().
| #define ID_CRESWAAS 80 /* hemis msg id: bin 80 waas messages */ |
Definition at line 113 of file mrtk_rcv_crescent.c.
Referenced by decode_cres().
| #define MAXPRNGPS 32 |
Definition at line 74 of file mrtk_rcv_crescent.c.
| #define MAXPRNSBS 158 |
Definition at line 76 of file mrtk_rcv_crescent.c.
| #define MINPRNGPS 1 |
Definition at line 73 of file mrtk_rcv_crescent.c.
| #define MINPRNSBS 120 |
Definition at line 75 of file mrtk_rcv_crescent.c.
| #define P2_11 4.882812500000000E-04 |
Definition at line 81 of file mrtk_rcv_crescent.c.
| #define P2_15 3.051757812500000E-05 |
Definition at line 82 of file mrtk_rcv_crescent.c.
| #define P2_17 7.629394531250000E-06 |
Definition at line 83 of file mrtk_rcv_crescent.c.
| #define P2_19 1.907348632812500E-06 |
Definition at line 84 of file mrtk_rcv_crescent.c.
| #define P2_20 9.536743164062500E-07 |
Definition at line 85 of file mrtk_rcv_crescent.c.
| #define P2_21 4.768371582031250E-07 |
Definition at line 86 of file mrtk_rcv_crescent.c.
| #define P2_23 1.192092895507810E-07 |
Definition at line 87 of file mrtk_rcv_crescent.c.
| #define P2_24 5.960464477539063E-08 |
Definition at line 88 of file mrtk_rcv_crescent.c.
| #define P2_27 7.450580596923828E-09 |
Definition at line 89 of file mrtk_rcv_crescent.c.
| #define P2_29 1.862645149230957E-09 |
Definition at line 90 of file mrtk_rcv_crescent.c.
| #define P2_30 9.313225746154785E-10 |
Definition at line 91 of file mrtk_rcv_crescent.c.
| #define P2_31 4.656612873077393E-10 |
Definition at line 92 of file mrtk_rcv_crescent.c.
| #define P2_32 2.328306436538696E-10 |
Definition at line 93 of file mrtk_rcv_crescent.c.
| #define P2_33 1.164153218269348E-10 |
Definition at line 94 of file mrtk_rcv_crescent.c.
| #define P2_34 5.820766091346740E-11 |
Definition at line 95 of file mrtk_rcv_crescent.c.
| #define P2_35 2.910383045673370E-11 |
Definition at line 96 of file mrtk_rcv_crescent.c.
| #define P2_38 3.637978807091710E-12 |
Definition at line 97 of file mrtk_rcv_crescent.c.
| #define P2_40 9.094947017729280E-13 |
Definition at line 98 of file mrtk_rcv_crescent.c.
| #define P2_43 1.136868377216160E-13 |
Definition at line 99 of file mrtk_rcv_crescent.c.
| #define P2_46 1.421085471520200E-14 |
Definition at line 100 of file mrtk_rcv_crescent.c.
| #define P2_5 0.03125 |
Definition at line 79 of file mrtk_rcv_crescent.c.
| #define P2_50 8.881784197001252E-16 |
Definition at line 101 of file mrtk_rcv_crescent.c.
| #define P2_55 2.775557561562891E-17 |
Definition at line 102 of file mrtk_rcv_crescent.c.
| #define P2_59 1.734723475976810E-18 |
Definition at line 103 of file mrtk_rcv_crescent.c.
| #define P2_6 0.015625 |
Definition at line 80 of file mrtk_rcv_crescent.c.
| #define PI 3.1415926535897932 /* pi */ |
Definition at line 34 of file mrtk_rcv_crescent.c.
| #define R2D (180.0 / PI) /* rad to deg */ |
Definition at line 36 of file mrtk_rcv_crescent.c.
| #define SC2RAD 3.1415926535898 /* semi-circle to radian (IS-GPS) */ |
Definition at line 38 of file mrtk_rcv_crescent.c.
| #define SNR2CN0_L1 30.0 /* hemis snr to c/n0 offset (db) L1 */ |
Definition at line 118 of file mrtk_rcv_crescent.c.
Referenced by decode_cresgloraw(), decode_cresraw(), and decode_cresraw2().
| #define SNR2CN0_L2 30.0 /* hemis snr to c/n0 offset (db) L2 */ |
Definition at line 119 of file mrtk_rcv_crescent.c.
Referenced by decode_cresgloraw(), and decode_cresraw2().
| #define SYS_CMP 0x20 |
Definition at line 46 of file mrtk_rcv_crescent.c.
| #define SYS_GAL 0x08 |
Definition at line 44 of file mrtk_rcv_crescent.c.
| #define SYS_GLO 0x04 |
Definition at line 43 of file mrtk_rcv_crescent.c.
| #define SYS_GPS 0x01 |
Definition at line 41 of file mrtk_rcv_crescent.c.
| #define SYS_IRN 0x40 |
Definition at line 47 of file mrtk_rcv_crescent.c.
| #define SYS_NONE 0x00 |
Definition at line 40 of file mrtk_rcv_crescent.c.
| #define SYS_QZS 0x10 |
Definition at line 45 of file mrtk_rcv_crescent.c.
| #define SYS_SBS 0x02 |
Definition at line 42 of file mrtk_rcv_crescent.c.
| #define TSYS_CMP 5 |
Definition at line 54 of file mrtk_rcv_crescent.c.
| #define TSYS_GAL 3 |
Definition at line 52 of file mrtk_rcv_crescent.c.
| #define TSYS_GLO 2 |
Definition at line 51 of file mrtk_rcv_crescent.c.
| #define TSYS_GPS 0 |
Definition at line 49 of file mrtk_rcv_crescent.c.
| #define TSYS_IRN 6 |
Definition at line 55 of file mrtk_rcv_crescent.c.
| #define TSYS_QZS 4 |
Definition at line 53 of file mrtk_rcv_crescent.c.
| #define TSYS_UTC 1 |
Definition at line 50 of file mrtk_rcv_crescent.c.
| #define U1 | ( | p | ) |
Definition at line 122 of file mrtk_rcv_crescent.c.
Referenced by decode_cresgloeph(), and decode_crespos().
|
static |
Definition at line 156 of file mrtk_rcv_crescent.c.
References trace().
Referenced by decode_cres().
|
static |
Definition at line 681 of file mrtk_rcv_crescent.c.
References raw_t::buff, chksum(), decode_creseph(), decode_cresgloeph(), decode_cresgloraw(), decode_cresionutc(), decode_crespos(), decode_cresraw(), decode_cresraw2(), decode_creswaas(), ID_CRESEPH, ID_CRESGLOEPH, ID_CRESGLORAW, ID_CRESIONUTC, ID_CRESPOS, ID_CRESRAW, ID_CRESRAW2, ID_CRESWAAS, raw_t::len, raw_t::msgtype, raw_t::outtype, trace(), and U2.
Referenced by input_cres(), and input_cresf().
|
static |
Definition at line 402 of file mrtk_rcv_crescent.c.
References raw_t::buff, decode_frame(), nav_s::eph, raw_t::ephsat, raw_t::ephset, eph_t::iode, raw_t::len, raw_t::nav, raw_t::opt, eph_t::sat, satno(), SYS_GPS, trace(), U2, and U4.
Referenced by decode_cres().
|
static |
Definition at line 629 of file mrtk_rcv_crescent.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, raw_t::nav, raw_t::opt, geph_t::sat, satno(), raw_t::subfrm, SYS_GLO, raw_t::time, geph_t::tof, trace(), U1, and U4.
Referenced by decode_cres().
|
static |
Definition at line 500 of file mrtk_rcv_crescent.c.
References raw_t::buff, CLIGHT, obsd_t::code, CODE_L1C, CODE_L2C, CODE_L2P, CODE_NONE, obsd_t::D, obs_t::data, gpst2time(), obsd_t::L, raw_t::len, obsd_t::LLI, raw_t::lockt, MAXOBS, obs_t::n, raw_t::nav, raw_t::obs, raw_t::opt, obsd_t::P, R8, obsd_t::sat, sat2freq(), satno(), obsd_t::SNR, SNR2CN0_L1, SNR2CN0_L2, SNR_UNIT, SYS_GLO, gtime_t::time, obsd_t::time, raw_t::time, timediff(), trace(), U2, and U4.
Referenced by decode_cres().
|
static |
Definition at line 443 of file mrtk_rcv_crescent.c.
References raw_t::buff, I2, nav_s::ion_gps, raw_t::len, raw_t::nav, R8, trace(), U2, U4, and nav_s::utc_gps.
Referenced by decode_cres().
|
static |
Definition at line 169 of file mrtk_rcv_crescent.c.
References raw_t::buff, gpst2time(), raw_t::len, R4, R8, time2str(), trace(), U1, and U2.
Referenced by decode_cres().
|
static |
Definition at line 207 of file mrtk_rcv_crescent.c.
References raw_t::buff, CLIGHT, obsd_t::code, CODE_L1C, CODE_NONE, obsd_t::D, obs_t::data, FREQ1, gpst2time(), I4, obsd_t::L, raw_t::len, obsd_t::LLI, raw_t::lockt, MAXOBS, MAXPRNGPS, obs_t::n, raw_t::obs, raw_t::opt, obsd_t::P, R8, obsd_t::sat, satno(), obsd_t::SNR, SNR2CN0_L1, SNR_UNIT, SYS_GPS, SYS_SBS, gtime_t::time, obsd_t::time, raw_t::time, trace(), U2, and U4.
Referenced by decode_cres().
|
static |
Definition at line 275 of file mrtk_rcv_crescent.c.
References raw_t::buff, CLIGHT, obsd_t::code, CODE_L1C, CODE_L2P, CODE_NONE, obsd_t::D, obs_t::data, FREQ1, FREQ2, gpst2time(), obsd_t::L, raw_t::len, obsd_t::LLI, raw_t::lockt, MAXOBS, MAXPRNGPS, obs_t::n, raw_t::obs, raw_t::opt, obsd_t::P, R8, obsd_t::sat, satno(), obsd_t::SNR, SNR2CN0_L1, SNR2CN0_L2, SNR_UNIT, SYS_GPS, SYS_SBS, gtime_t::time, obsd_t::time, raw_t::time, timediff(), trace(), U2, and U4.
Referenced by decode_cres().
|
static |
Definition at line 464 of file mrtk_rcv_crescent.c.
References raw_t::buff, raw_t::len, MAXPRNSBS, MINPRNSBS, sbsmsg_t::msg, sbsmsg_t::prn, raw_t::sbsmsg, raw_t::time, time2gpst(), sbsmsg_t::tow, trace(), U2, U4, and sbsmsg_t::week.
Referenced by decode_cres().
|
static |
Definition at line 134 of file mrtk_rcv_crescent.c.
|
static |
Definition at line 139 of file mrtk_rcv_crescent.c.
|
extern |
Definition at line 737 of file mrtk_rcv_crescent.c.
References raw_t::buff, decode_cres(), raw_t::len, MAXRAWLEN, raw_t::nbyte, sync_cres(), trace(), and U2.
Referenced by input_raw().
|
extern |
Definition at line 771 of file mrtk_rcv_crescent.c.
References raw_t::buff, decode_cres(), raw_t::len, MAXRAWLEN, raw_t::nbyte, sync_cres(), trace(), and U2.
Referenced by input_rawf().
|
static |
Definition at line 144 of file mrtk_rcv_crescent.c.
|
static |
Definition at line 149 of file mrtk_rcv_crescent.c.
|
static |
Definition at line 714 of file mrtk_rcv_crescent.c.
References CRESSYNC.
Referenced by input_cres(), and input_cresf().
|
static |
Definition at line 124 of file mrtk_rcv_crescent.c.
|
static |
Definition at line 129 of file mrtk_rcv_crescent.c.