GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
Classes | Macros | Typedefs | Variables
rtklib.h File Reference

main header file for the rtklib library More...

#include "MATH_CONSTANTS.h"
#include "gnss_frequencies.h"
#include "gnss_obs_codes.h"
#include <cctype>
#include <cmath>
#include <cstdarg>
#include <cstdint>
#include <cstdlib>
#include <netinet/in.h>
#include <pthread.h>
#include <string>

Go to the source code of this file.

Classes

struct  gtime_t
 
struct  obsd_t
 
struct  obs_t
 
struct  erpd_t
 
struct  erp_t
 
struct  pcv_t
 
struct  pcvs_t
 
struct  alm_t
 
struct  eph_t
 
struct  geph_t
 
struct  peph_t
 
struct  pclk_t
 
struct  seph_t
 
struct  tled_t
 
struct  tle_t
 
struct  tec_t
 
struct  fcbd_t
 
struct  sbsmsg_t
 
struct  sbs_t
 
struct  sbsfcorr_t
 
struct  sbslcorr_t
 
struct  sbssatp_t
 
struct  sbssat_t
 
struct  sbsigp_t
 
struct  sbsigpband_t
 
struct  sbsion_t
 
struct  dgps_t
 
struct  ssr_t
 
struct  lexmsg_t
 
struct  lex_t
 
struct  lexeph_t
 
struct  lexion_t
 
struct  stec_t
 
struct  trop_t
 
struct  pppcorr_t
 
struct  nav_t
 
struct  sta_t
 
struct  sol_t
 
struct  solbuf_t
 
struct  solstat_t
 
struct  solstatbuf_t
 
struct  rtcm_t
 
struct  url_t
 
struct  opt_t
 
struct  exterr_t
 
struct  snrmask_t
 
struct  prcopt_t
 
struct  solopt_t
 
struct  ssat_t
 
struct  ambc_t
 
struct  rtk_t
 
struct  half_cyc_tag
 
struct  stream_t
 
struct  serial_t
 
struct  file_t
 
struct  tcp_t
 
struct  tcpsvr_t
 
struct  tcpcli_t
 
struct  ntrip_t
 
struct  ftp_t
 
struct  raw_t
 
struct  rtksvr_t
 
struct  msm_h_t
 

Macros

#define dev_t   int
 
#define socket_t   int
 
#define closesocket   close
 
#define lock_t   pthread_mutex_t
 
#define initlock(f)   pthread_mutex_init(f, NULL)
 
#define rtk_lock(f)   pthread_mutex_lock(f)
 
#define rtk_unlock(f)   pthread_mutex_unlock(f)
 
#define VER_RTKLIB   "2.4.2"
 
#define NTRIP_AGENT   "RTKLIB/" VER_RTKLIB
 
#define NTRIP_CLI_PORT   2101 /* default ntrip-client connection port */
 
#define NTRIP_SVR_PORT   80 /* default ntrip-server connection port */
 
#define NTRIP_MAXRSP   32768 /* max size of ntrip response */
 
#define NTRIP_MAXSTR   256 /* max length of mountpoint string */
 
#define NTRIP_RSP_OK_CLI   "ICY 200 OK\r\n" /* ntrip response: client */
 
#define NTRIP_RSP_OK_SVR   "OK\r\n" /* ntrip response: server */
 
#define NTRIP_RSP_SRCTBL   "SOURCETABLE 200 OK\r\n" /* ntrip response: source table */
 
#define NTRIP_RSP_TBLEND   "ENDSOURCETABLE"
 
#define NTRIP_RSP_HTTP   "HTTP/" /* ntrip response: http */
 
#define NTRIP_RSP_ERROR   "ERROR" /* ntrip response: error */
 
#define FTP_CMD   "wget" /* ftp/http command */
 
#define ENAGLO
 
#define ENABDS
 
#define STR_MODE_R   0x1 /* stream mode: read */
 
#define STR_MODE_W   0x2 /* stream mode: write */
 
#define STR_MODE_RW   0x3 /* stream mode: read/write */
 
#define STR_NONE   0 /* stream type: none */
 
#define STR_SERIAL   1 /* stream type: serial */
 
#define STR_FILE   2 /* stream type: file */
 
#define STR_TCPSVR   3 /* stream type: TCP server */
 
#define STR_TCPCLI   4 /* stream type: TCP client */
 
#define STR_UDP   5 /* stream type: UDP stream */
 
#define STR_NTRIPSVR   6 /* stream type: NTRIP server */
 
#define STR_NTRIPCLI   7 /* stream type: NTRIP client */
 
#define STR_FTP   8 /* stream type: ftp */
 
#define STR_HTTP   9 /* stream type: http */
 
#define NP_PPP(opt)   ((opt)->dynamics ? 9 : 3) /* number of pos solution */
 
#define IC_PPP(s, opt)   (NP_PPP(opt) + (s)) /* state index of clocks (s=0:gps,1:glo) */
 
#define IT_PPP(opt)   (IC_PPP(0, opt) + NSYS) /* state index of tropos */
 
#define NR_PPP(opt)   (IT_PPP(opt) + ((opt)->tropopt < TROPOPT_EST ? 0 : ((opt)->tropopt == TROPOPT_EST ? 1 : 3))) /* number of solutions */
 
#define IB_PPP(s, opt)   (NR_PPP(opt) + (s)-1) /* state index of phase bias */
 
#define NX_PPP(opt)   (IB_PPP(MAXSAT, opt) + 1) /* number of estimated states */
 
#define NF_RTK(opt)   ((opt)->ionoopt == IONOOPT_IFLC ? 1 : (opt)->nf)
 
#define NP_RTK(opt)   ((opt)->dynamics == 0 ? 3 : 9)
 
#define NI_RTK(opt)   ((opt)->ionoopt != IONOOPT_EST ? 0 : MAXSAT)
 
#define NT_RTK(opt)   ((opt)->tropopt < TROPOPT_EST ? 0 : ((opt)->tropopt < TROPOPT_ESTG ? 2 : 6))
 
#define NL_RTK(opt)   ((opt)->glomodear != 2 ? 0 : NFREQGLO)
 
#define NB_RTK(opt)   ((opt)->mode <= PMODE_DGPS ? 0 : MAXSAT * NF_RTK(opt))
 
#define NR_RTK(opt)   (NP_RTK(opt) + NI_RTK(opt) + NT_RTK(opt) + NL_RTK(opt))
 
#define NX_RTK(opt)   (NR_RTK(opt) + NB_RTK(opt))
 

Typedefs

using fatalfunc_t = void(const char *)
 fatal callback function type More...
 
typedef struct half_cyc_tag half_cyc_t
 

Variables

const int TINTACT = 200
 period for stream active (ms) More...
 
const int SERIBUFFSIZE = 4096
 serial buffer size (bytes) More...
 
const int TIMETAGH_LEN = 64
 time tag file header length More...
 
const int MAXCLI = 32
 max client connection for tcp svr More...
 
const int MAXSTATMSG = 32
 max length of status message More...
 
const int FTP_TIMEOUT = 30
 ftp/http timeout (s) More...
 
const int MAXRAWLEN = 4096
 max length of receiver raw message More...
 
const int MAXSOLBUF = 256
 max number of solution buffer More...
 
const int MAXSBSMSG = 32
 max number of SBAS msg in RTK server More...
 
const int MAXOBSBUF = 128
 max number of observation data buffer More...
 
const int FILEPATHSEP = '/'
 
const double RE_WGS84 = 6378137.0
 earth semimajor axis (WGS84) (m) More...
 
const double FE_WGS84 = (1.0 / 298.257223563)
 earth flattening (WGS84) More...
 
const double HION = 350000.0
 ionosphere height (m) More...
 
const double PRN_HWBIAS = 1e-6
 process noise of h/w bias (m/MHz/sqrt(s)) More...
 
const double INT_SWAP_STAT = 86400.0
 swap interval of solution status file (s) More...
 
const double INT_SWAP_TRAC = 86400.0
 swap interval of trace file (s) More...
 
const unsigned int POLYCRC32 = 0xEDB88320u
 CRC32 polynomial. More...
 
const unsigned int POLYCRC24Q = 0x1864CFBu
 CRC24Q polynomial. More...
 
const int PMODE_SINGLE = 0
 positioning mode: single More...
 
const int PMODE_DGPS = 1
 positioning mode: DGPS/DGNSS More...
 
const int PMODE_KINEMA = 2
 positioning mode: kinematic More...
 
const int PMODE_STATIC = 3
 positioning mode: static More...
 
const int PMODE_MOVEB = 4
 positioning mode: moving-base More...
 
const int PMODE_FIXED = 5
 positioning mode: fixed More...
 
const int PMODE_PPP_KINEMA = 6
 positioning mode: PPP-kinemaric More...
 
const int PMODE_PPP_STATIC = 7
 positioning mode: PPP-static More...
 
const int PMODE_PPP_FIXED = 8
 positioning mode: PPP-fixed More...
 
const int SOLF_LLH = 0
 solution format: lat/lon/height More...
 
const int SOLF_XYZ = 1
 solution format: x/y/z-ecef More...
 
const int SOLF_ENU = 2
 solution format: e/n/u-baseline More...
 
const int SOLF_NMEA = 3
 solution format: NMEA-183 More...
 
const int SOLF_STAT = 4
 solution format: solution status More...
 
const int SOLF_GSIF = 5
 solution format: GSI F1/F2 More...
 
const int SOLQ_NONE = 0
 solution status: no solution More...
 
const int SOLQ_FIX = 1
 solution status: fix More...
 
const int SOLQ_FLOAT = 2
 solution status: float More...
 
const int SOLQ_SBAS = 3
 solution status: SBAS More...
 
const int SOLQ_DGPS = 4
 solution status: DGPS/DGNSS More...
 
const int SOLQ_SINGLE = 5
 solution status: single More...
 
const int SOLQ_PPP = 6
 solution status: PPP More...
 
const int SOLQ_DR = 7
 solution status: dead reckoning More...
 
const int MAXSOLQ = 7
 max number of solution status More...
 
const int TIMES_GPST = 0
 time system: gps time More...
 
const int TIMES_UTC = 1
 time system: utc More...
 
const int TIMES_JST = 2
 time system: jst More...
 
const double ERR_SAAS = 0.3
 saastamoinen model error std (m) More...
 
const double ERR_BRDCI = 0.5
 broadcast iono model error factor More...
 
const double ERR_CBIAS = 0.3
 code bias error std (m) More...
 
const double REL_HUMI = 0.7
 relative humidity for saastamoinen model More...
 
const double GAP_RESION = 120
 default gap to reset ionos parameters (ep) More...
 
const int MAXFREQ = 7
 max NFREQ More...
 
const int MAXLEAPS = 64
 max number of leap seconds table More...
 
const double DTTOL = 0.005
 tolerance of time difference (s) More...
 
const int NFREQ = 3
 number of carrier frequencies More...
 
const int NFREQGLO = 2
 number of carrier frequencies of GLONASS More...
 
const int NEXOBS = 0
 number of extended obs codes More...
 
const int MAXANT = 64
 max length of station name/antenna type More...
 
const int MINPRNGPS = 1
 min satellite PRN number of GPS More...
 
const int MAXPRNGPS = 32
 max satellite PRN number of GPS More...
 
const int NSATGPS = (MAXPRNGPS - MINPRNGPS + 1)
 number of GPS satellites More...
 
const int NSYSGPS = 1
 
const int SYS_NONE = 0x00
 navigation system: none More...
 
const int SYS_GPS = 0x01
 navigation system: GPS More...
 
const int SYS_SBS = 0x02
 navigation system: SBAS More...
 
const int SYS_GLO = 0x04
 navigation system: GLONASS More...
 
const int SYS_GAL = 0x08
 navigation system: Galileo More...
 
const int SYS_QZS = 0x10
 navigation system: QZSS More...
 
const int SYS_BDS = 0x20
 navigation system: BeiDou More...
 
const int SYS_IRN = 0x40
 navigation system: IRNS More...
 
const int SYS_LEO = 0x80
 navigation system: LEO More...
 
const int SYS_ALL = 0xFF
 navigation system: all More...
 
const int MINPRNGLO = 1
 min satellite slot number of GLONASS More...
 
const int MAXPRNGLO = 27
 max satellite slot number of GLONASS More...
 
const int NSATGLO = (MAXPRNGLO - MINPRNGLO + 1)
 number of GLONASS satellites More...
 
const int NSYSGLO = 1
 
const int MINPRNGAL = 1
 min satellite PRN number of Galileo More...
 
const int MAXPRNGAL = 36
 max satellite PRN number of Galileo More...
 
const int NSATGAL = (MAXPRNGAL - MINPRNGAL + 1)
 number of Galileo satellites More...
 
const int NSYSGAL = 1
 
const int MAXPRNQZS = 199
 max satellite PRN number of QZSS More...
 
const int MINPRNQZS = 193
 min satellite PRN number of QZSS More...
 
const int MINPRNQZS_S = 0
 
const int NSATQZS = 0
 
const int NSYSQZS = 0
 
const int MINPRNBDS = 1
 min satellite sat number of BeiDou More...
 
const int MAXPRNBDS = 63
 max satellite sat number of BeiDou More...
 
const int NSATBDS = (MAXPRNBDS - MINPRNBDS + 1)
 number of BeiDou satellites More...
 
const int NSYSBDS = 1
 
const int MINPRNIRN = 1
 min satellite sat number of IRNSS More...
 
const int MAXPRNIRN = 7
 max satellite sat number of IRNSS More...
 
const int NSATIRN = 0
 
const int NSYSIRN = 0
 
const int MINPRNLEO = 1
 min satellite sat number of LEO More...
 
const int MAXPRNLEO = 10
 max satellite sat number of LEO */ More...
 
const int NSATLEO = 0
 
const int NSYSLEO = 0
 
const int NSYS = (NSYSGPS + NSYSGLO + NSYSGAL + NSYSQZS + NSYSBDS + NSYSIRN + NSYSLEO)
 number of systems More...
 
const int MINPRNSBS = 120
 min satellite PRN number of SBAS More...
 
const int MAXPRNSBS = 142
 max satellite PRN number of SBAS More...
 
const int NSATSBS = (MAXPRNSBS - MINPRNSBS + 1)
 number of SBAS satellites More...
 
const int MAXSAT = (NSATGPS + NSATGLO + NSATGAL + NSATQZS + NSATBDS + NSATIRN + NSATSBS + NSATLEO)
 
const int MAXSTA = 255
 
const int MAXOBS = 64
 max number of obs in an epoch More...
 
const int MAXRCV = 64
 max receiver number (1 to MAXRCV) More...
 
const int MAXOBSTYPE = 64
 max number of obs type in RINEX More...
 
const double MAXDTOE = 7200.0
 max time difference to GPS Toe (s) More...
 
const double MAXDTOE_QZS = 7200.0
 max time difference to QZSS Toe (s) More...
 
const double MAXDTOE_GAL = 10800.0
 max time difference to Galileo Toe (s) More...
 
const double MAXDTOE_BDS = 21600.0
 max time difference to BeiDou Toe (s) More...
 
const double MAXDTOE_GLO = 1800.0
 max time difference to GLONASS Toe (s) More...
 
const double MAXDTOE_SBS = 360.0
 max time difference to SBAS Toe (s) More...
 
const double MAXDTOE_S = 86400.0
 max time difference to ephem toe (s) for other More...
 
const double MAXGDOP = 300.0
 max GDOP More...
 
const int MAXSBSURA = 8
 max URA of SBAS satellite More...
 
const int MAXBAND = 10
 max SBAS band of IGP More...
 
const int MAXNIGP = 201
 max number of IGP in SBAS band More...
 
const int MAXNGEO = 4
 max number of GEO satellites More...
 
const int MAXSOLMSG = 8191
 max length of solution message More...
 
const int MAXERRMSG = 4096
 max length of error/warning message More...
 
const int IONOOPT_OFF = 0
 ionosphere option: correction off More...
 
const int IONOOPT_BRDC = 1
 ionosphere option: broadcast model More...
 
const int IONOOPT_SBAS = 2
 ionosphere option: SBAS model More...
 
const int IONOOPT_IFLC = 3
 ionosphere option: L1/L2 or L1/L5 iono-free LC More...
 
const int IONOOPT_EST = 4
 ionosphere option: estimation More...
 
const int IONOOPT_TEC = 5
 ionosphere option: IONEX TEC model More...
 
const int IONOOPT_QZS = 6
 ionosphere option: QZSS broadcast model More...
 
const int IONOOPT_LEX = 7
 ionosphere option: QZSS LEX ionospehre More...
 
const int IONOOPT_STEC = 8
 ionosphere option: SLANT TEC model More...
 
const int TROPOPT_OFF = 0
 troposphere option: correction off More...
 
const int TROPOPT_SAAS = 1
 troposphere option: Saastamoinen model More...
 
const int TROPOPT_SBAS = 2
 troposphere option: SBAS model More...
 
const int TROPOPT_EST = 3
 troposphere option: ZTD estimation More...
 
const int TROPOPT_ESTG = 4
 troposphere option: ZTD+grad estimation More...
 
const int TROPOPT_COR = 5
 troposphere option: ZTD correction More...
 
const int TROPOPT_CORG = 6
 troposphere option: ZTD+grad correction More...
 
const int EPHOPT_BRDC = 0
 ephemeris option: broadcast ephemeris More...
 
const int EPHOPT_PREC = 1
 ephemeris option: precise ephemeris More...
 
const int EPHOPT_SBAS = 2
 ephemeris option: broadcast + SBAS More...
 
const int EPHOPT_SSRAPC = 3
 ephemeris option: broadcast + SSR_APC More...
 
const int EPHOPT_SSRCOM = 4
 ephemeris option: broadcast + SSR_COM More...
 
const int EPHOPT_LEX = 5
 ephemeris option: QZSS LEX ephemeris More...
 
const double EFACT_GPS = 1.0
 error factor: GPS More...
 
const double EFACT_GLO = 1.5
 error factor: GLONASS More...
 
const double EFACT_GAL = 1.0
 error factor: Galileo More...
 
const double EFACT_QZS = 1.0
 error factor: QZSS More...
 
const double EFACT_BDS = 1.0
 error factor: BeiDou More...
 
const double EFACT_IRN = 1.5
 error factor: IRNSS More...
 
const double EFACT_SBS = 3.0
 error factor: SBAS More...
 
const int MAXEXFILE = 1024
 max number of expanded files More...
 
const double MAXSBSAGEF = 30.0
 max age of SBAS fast correction (s) More...
 
const double MAXSBSAGEL = 1800.0
 max age of SBAS long term corr (s) More...
 
const int ARMODE_OFF = 0
 AR mode: off. More...
 
const int ARMODE_CONT = 1
 AR mode: continuous. More...
 
const int ARMODE_INST = 2
 AR mode: instantaneous. More...
 
const int ARMODE_FIXHOLD = 3
 AR mode: fix and hold. More...
 
const int ARMODE_PPPAR = 4
 AR mode: PPP-AR. More...
 
const int ARMODE_PPPAR_ILS = 5
 AR mode: AR mode: PPP-AR ILS. More...
 
const int ARMODE_WLNL = 6
 
const int ARMODE_TCAR = 7
 
const int POSOPT_RINEX = 3
 pos option: rinex header pos More...
 
const int MAXSTRPATH = 1024
 max length of stream path More...
 
const int MAXSTRMSG = 1024
 max length of stream message More...
 
const double CHISQR [100]
 
const double LAM_CARR [MAXFREQ]
 
const int STRFMT_RTCM2 = 0
 
const int STRFMT_RTCM3 = 1
 
const int STRFMT_SP3 = 16
 
const int STRFMT_RNXCLK = 17
 
const int STRFMT_SBAS = 18
 
const int STRFMT_NMEA = 19
 
const int MAXSTRRTK = 8
 

Detailed Description

main header file for the rtklib library

Authors
  • 2007-2013, T. Takasu
  • 2017, Javier Arribas
  • 2017-2023, Carles Fernandez

This is a derived work from RTKLIB http://www.rtklib.com/ The original source code at https://github.com/tomojitakasu/RTKLIB is released under the BSD 2-clause license with an additional exclusive clause that does not apply here. This additional clause is reproduced below:

" The software package includes some companion executive binaries or shared libraries necessary to execute APs on Windows. These licenses succeed to the original ones of these software. "

Neither the executive binaries nor the shared libraries are required by, used or included in GNSS-SDR.


Copyright (C) 2007-2013, T. Takasu Copyright (C) 2017, Javier Arribas Copyright (C) 2017-2023, Carles Fernandez All rights reserved.

SPDX-License-Identifier: BSD-2-Clause


Definition in file rtklib.h.