MRTKLIB 0.7.14
Modernized GNSS Positioning Library
Loading...
Searching...
No Matches
mrtk_rtksvr.c File Reference
#include "mrtklib/mrtk_rtksvr.h"
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mrtklib/mrtk_coords.h"
#include "mrtklib/mrtk_eph.h"
#include "mrtklib/mrtk_l6.h"
#include "mrtklib/mrtk_madoca.h"
#include "mrtklib/mrtk_madoca_local_corr.h"
#include "mrtklib/mrtk_mat.h"
#include "mrtklib/mrtk_nav.h"
#include "mrtklib/mrtk_obs.h"
#include "mrtklib/mrtk_opt.h"
#include "mrtklib/mrtk_peph.h"
#include "mrtklib/mrtk_ppp.h"
#include "mrtklib/mrtk_rcvraw.h"
#include "mrtklib/mrtk_rinex.h"
#include "mrtklib/mrtk_rtcm.h"
#include "mrtklib/mrtk_rtkpos.h"
#include "mrtklib/mrtk_sbas.h"
#include "mrtklib/mrtk_sol.h"
#include "mrtklib/mrtk_spp.h"
#include "mrtklib/mrtk_stream.h"
#include "mrtklib/mrtk_sys.h"
#include "mrtklib/mrtk_time.h"
#include "mrtklib/mrtk_trace.h"
Include dependency graph for mrtk_rtksvr.c:

Go to the source code of this file.

Macros

#define SYS_GPS   0x01
#define SYS_GLO   0x04
#define SYS_GAL   0x08
#define SYS_QZS   0x10
#define SYS_CMP   0x20
#define R2D   (180.0 / 3.1415926535897932)
#define COMMENTH   "%"
#define MIN_INT_RESET   30000 /* mininum interval of reset command (ms) */

Functions

void timeset (gtime_t t)
static void writesolhead (stream_t *stream, const solopt_t *solopt)
static void saveoutbuf (rtksvr_t *svr, uint8_t *buff, int n, int index)
static void writesol (rtksvr_t *svr, int index)
static void update_glofcn (rtksvr_t *svr)
static void update_obs (rtksvr_t *svr, obs_t *obs, int index, int iobs)
static void update_eph (rtksvr_t *svr, nav_t *nav, int ephsat, int ephset, int index)
static void update_sbs (rtksvr_t *svr, sbsmsg_t *sbsmsg, int index)
static void update_ionutc (rtksvr_t *svr, nav_t *nav, int index)
static void update_antpos (rtksvr_t *svr, int index)
static void update_ssr (rtksvr_t *svr, int index)
static void update_stat (rtksvr_t *svr, int index)
static void update_lcl (rtksvr_t *svr, int index)
int rtksvr_ssr_applicable (const rtksvr_t *svr, int index, int ret)
 Decide whether a decoded SSR result may be applied to nav.ssr_ch[0].
static void update_svr (rtksvr_t *svr, int ret, obs_t *obs, nav_t *nav, int ephsat, int ephset, sbsmsg_t *sbsmsg, int index, int iobs)
static int decoderaw (rtksvr_t *svr, int index)
static void decodefile (rtksvr_t *svr, int index)
static void periodic_cmd (int cycle, const char *cmd, stream_t *stream)
static double baseline_len (const rtk_t *rtk)
static void send_nmea (rtksvr_t *svr, uint32_t *tickreset)
static void * rtksvrthread (void *arg)
int rtksvrinit (rtksvr_t *svr)
 Initialize RTK server.
void rtksvrfree (rtksvr_t *svr)
 Free RTK server resources.
void rtksvrlock (rtksvr_t *svr)
 Lock RTK server mutex.
void rtksvrunlock (rtksvr_t *svr)
 Unlock RTK server mutex.
int rtksvrstart (rtksvr_t *svr, int cycle, int buffsize, int *strs, char **paths, int *formats, int navsel, char **cmds, char **cmds_periodic, char **rcvopts, int nmeacycle, int nmeareq, const double *nmeapos, prcopt_t *prcopt, solopt_t *solopt, stream_t *moni, gtime_t rst, char *errmsg)
 Start RTK server.
void rtksvrstop (rtksvr_t *svr, char **cmds)
 Stop RTK server.
int rtksvropenstr (rtksvr_t *svr, int index, int str, const char *path, const solopt_t *solopt)
 Open RTK server output/log stream.
void rtksvrclosestr (rtksvr_t *svr, int index)
 Close RTK server output/log stream.
int rtksvrostat (rtksvr_t *svr, int rcv, gtime_t *time, int *sat, double *az, double *el, int **snr, int *vsat)
 Get observation data status.
void rtksvrsstat (rtksvr_t *svr, int *sstat, char *msg)
 Get stream status.
int rtksvrmark (rtksvr_t *svr, const char *name, const char *comment)
 Mark current position in solution.

Macro Definition Documentation

◆ COMMENTH

#define COMMENTH   "%"

Definition at line 55 of file mrtk_rtksvr.c.

◆ MIN_INT_RESET

#define MIN_INT_RESET   30000 /* mininum interval of reset command (ms) */

Definition at line 60 of file mrtk_rtksvr.c.

Referenced by rtksvrthread(), and send_nmea().

◆ R2D

#define R2D   (180.0 / 3.1415926535897932)

Definition at line 53 of file mrtk_rtksvr.c.

◆ SYS_CMP

#define SYS_CMP   0x20

Definition at line 51 of file mrtk_rtksvr.c.

◆ SYS_GAL

#define SYS_GAL   0x08

Definition at line 49 of file mrtk_rtksvr.c.

◆ SYS_GLO

#define SYS_GLO   0x04

Definition at line 48 of file mrtk_rtksvr.c.

◆ SYS_GPS

#define SYS_GPS   0x01

Definition at line 47 of file mrtk_rtksvr.c.

◆ SYS_QZS

#define SYS_QZS   0x10

Definition at line 50 of file mrtk_rtksvr.c.

Function Documentation

◆ baseline_len()

double baseline_len ( const rtk_t * rtk)
static

Definition at line 768 of file mrtk_rtksvr.c.

References norm(), rtk_t::rb, sol_t::rr, and rtk_t::sol.

Referenced by send_nmea().

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

◆ decodefile()

void decodefile ( rtksvr_t * svr,
int index )
static

Definition at line 661 of file mrtk_rtksvr.c.

References rtksvr_t::buff, calloc, rtksvr_t::files, rtksvr_t::format, free, rtksvr_t::ftime, rtksvr_t::nav, rtksvr_t::nb, nav_s::nc, nav_s::ncmax, nav_s::ne, nav_s::nemax, nav_s::pclk, nav_s::peph, readrnxc(), readsp3(), rtksvrlock(), rtksvrunlock(), STRFMT_RNXCLK, STRFMT_SP3, timeget(), tracet(), and utc2gpst().

Referenced by rtksvrthread().

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

◆ decoderaw()

int decoderaw ( rtksvr_t * svr,
int index )
static

Definition at line 375 of file mrtk_rtksvr.c.

References miono_region_t::area, miono_area_t::avalid, clas_ctx_t::bank, rtcm_t::buff, rtksvr_t::buff, calloc, rtksvr_t::clas, clas_bank_get_close(), clas_check_grid_status(), clas_decode_msg(), clas_input_cssr(), CLAS_MAX_NETWORK, clas_route_l6frame(), clas_set_l6tag(), clas_update_global(), CSSR_REF_MAX, clas_ctx_t::current, obs_t::data, raw_t::ephsat, rtcm_t::ephsat, raw_t::ephset, rtcm_t::ephset, rtksvr_t::format, free, clas_ctx_t::grid, rtksvr_t::has, has_input_page(), raw_t::has_page, raw_t::has_prn, raw_t::has_time, clas_l6buf_t::havebit, init_mcssr(), init_miono(), input_qzssl6d(), input_qzssl6e(), input_raw(), input_rtcm2(), input_rtcm3(), input_stat(), ssr_t::iod, l6_prn_info_t::iono_slot, l6_parse_header(), l6_prn_info(), clas_ctx_t::l6buf, prcopt_t::l6mrg, raw_t::l6tag, MAXOBSBUF, MAXSAT, rtksvr_t::mdciono, MIONO_MAX_ANUM, MIONO_MAX_PRN, obs_t::n, raw_t::nav, rtcm_t::nav, rtksvr_t::nav, rtksvr_t::nb, clas_l6buf_t::nbit, mdcl6d_t::nbyte, clas_grid_t::network, clas_l6buf_t::nframe, raw_t::obs, rtcm_t::obs, mdcl6d_t::opt, rtk_t::opt, nav_s::pppiono, prcopt_t::pppopt, rtksvr_t::prcout, l6_header_t::prn, l6_header_t::ptn, rtksvr_t::raw, mdcl6d_t::re, pppiono_t::re, mdcl6d_t::rid, rtksvr_t::rtcm, rtksvr_t::rtk, rtksvrlock(), rtksvrunlock(), miono_region_t::rvalid, miono_area_t::sat, raw_t::sbsmsg, has_t::ssr, nav_s::ssr_ch, rtksvr_t::sstat, STRFMT_CLAS, STRFMT_L6E, STRFMT_RTCM2, STRFMT_RTCM3, STRFMT_SEPT, STRFMT_STAT, STRFMT_UBX, miono_sat_t::t0, ssr_t::t0, tickget(), clas_l6buf_t::time, gtime_t::time, mdcl6d_t::time, obsd_t::time, raw_t::time, rtcm_t::time, time2gpst(), time_str(), timediff(), clas_ctx_t::tow_ref, trace(), tracet(), ssr_t::update, update_svr(), clas_bank_ctrl_t::use, and clas_ctx_t::week_ref.

Referenced by rtksvrthread().

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

◆ periodic_cmd()

void periodic_cmd ( int cycle,
const char * cmd,
stream_t * stream )
static

Definition at line 733 of file mrtk_rtksvr.c.

References strsendcmd().

Referenced by rtksvrthread().

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

◆ rtksvr_ssr_applicable()

int rtksvr_ssr_applicable ( const rtksvr_t * svr,
int index,
int ret )
extern

Decide whether a decoded SSR result may be applied to nav.ssr_ch[0].

In CLAS/PPP-RTK mode (svr->clas set) the CLAS decoder owns nav.ssr_ch[0], so MADOCA-PPP SSR from a raw L6E stream (STRFMT_L6E, code 10) or from a UBX/SBF L6E frame (code 15) is not applied. Other SSR sources (e.g. RTCM3 SSR, code 10) are applied as before.

Parameters
[in]svrRTK server struct
[in]indexinput stream index (0..2)
[in]retdecoder status (10 or 15)
Returns
1 if update_ssr() should apply the result, 0 otherwise

Definition at line 336 of file mrtk_rtksvr.c.

References rtksvr_t::clas, rtksvr_t::format, and STRFMT_L6E.

Referenced by update_svr().

Here is the caller graph for this function:

◆ rtksvrclosestr()

void rtksvrclosestr ( rtksvr_t * svr,
int index )
extern

Close RTK server output/log stream.

Parameters
[in,out]svrRTK server struct
[in]indexstream index

Definition at line 1481 of file mrtk_rtksvr.c.

References rtksvrlock(), rtksvrunlock(), rtksvr_t::state, strclose(), rtksvr_t::stream, and tracet().

Here is the call graph for this function:

◆ rtksvrfree()

void rtksvrfree ( rtksvr_t * svr)
extern

Free RTK server resources.

Parameters
[in,out]svrRTK server struct

Definition at line 1097 of file mrtk_rtksvr.c.

References rtksvr_t::clas, clas_ctx_free(), obs_t::data, nav_s::eph, free, nav_s::geph, rtksvr_t::has, has_free(), MAXOBSBUF, rtksvr_t::mdciono, rtksvr_t::nav, rtksvr_t::obs, nav_s::pppiono, rtksvr_t::rtk, rtkfree(), and nav_s::seph.

Here is the call graph for this function:

◆ rtksvrinit()

◆ rtksvrlock()

void rtksvrlock ( rtksvr_t * svr)
extern

Lock RTK server mutex.

Parameters
[in,out]svrRTK server struct

Definition at line 1132 of file mrtk_rtksvr.c.

References rtksvr_t::lock, and rtk_lock.

Referenced by decodefile(), decoderaw(), rtksvrclosestr(), rtksvrmark(), rtksvropenstr(), rtksvrostat(), rtksvrsstat(), rtksvrstop(), rtksvrthread(), saveoutbuf(), and writesol().

Here is the caller graph for this function:

◆ rtksvrmark()

int rtksvrmark ( rtksvr_t * svr,
const char * name,
const char * comment )
extern

Mark current position in solution.

Parameters
[in,out]svrRTK server struct
[in]namemark name
[in]commentmark comment
Returns
status (0:error,1:ok)

Definition at line 1565 of file mrtk_rtksvr.c.

References COMMENTH, ecef2pos(), MAXSOLMSG, rtksvr_t::moni, solopt_t::posf, R2D, sol_t::rr, rtksvr_t::rtk, rtksvrlock(), rtksvrunlock(), saveoutbuf(), rtk_t::sol, SOLF_NMEA, SOLF_STAT, rtksvr_t::solopt, sol_t::stat, rtksvr_t::state, rtksvr_t::stream, strwrite(), sol_t::time, time2gpst(), time2str(), and tracet().

Here is the call graph for this function:

◆ rtksvropenstr()

int rtksvropenstr ( rtksvr_t * svr,
int index,
int str,
const char * path,
const solopt_t * solopt )
extern

Open RTK server output/log stream.

Parameters
[in,out]svrRTK server struct
[in]indexstream index
[in]strstream type
[in]pathstream path
[in]soloptsolution options
Returns
status (0:error,1:ok)

Definition at line 1446 of file mrtk_rtksvr.c.

References rtksvrlock(), rtksvrunlock(), rtksvr_t::solopt, rtksvr_t::state, stream_tag::state, STR_MODE_W, rtksvr_t::stream, stropen(), tracet(), and writesolhead().

Here is the call graph for this function:

◆ rtksvrostat()

int rtksvrostat ( rtksvr_t * svr,
int type,
gtime_t * time,
int * sat,
double * az,
double * el,
int ** snr,
int * vsat )
extern

Get observation data status.

Parameters
[in]svrRTK server struct
[in]typereceiver type (0:rover,1:base,2:corr)
[out]timeobservation time
[out]satsatellite numbers
[out]azazimuths (rad)
[out]elelevations (rad)
[out]snrSNR (0.001 dBHz)
[out]vsatvalid satellite flags
Returns
number of satellites

Definition at line 1507 of file mrtk_rtksvr.c.

References ssat_t::azel, obs_t::data, obs_t::n, rtksvr_t::obs, rtksvr_t::rtk, rtksvrlock(), rtksvrunlock(), obsd_t::sat, obsd_t::SNR, SNR_UNIT, rtk_t::sol, SOLQ_NONE, SOLQ_SINGLE, rtk_t::ssat, sol_t::stat, rtksvr_t::state, obsd_t::time, tracet(), ssat_t::vs, and ssat_t::vsat.

Here is the call graph for this function:

◆ rtksvrsstat()

void rtksvrsstat ( rtksvr_t * svr,
int * sstat,
char * msg )
extern

Get stream status.

Parameters
[in,out]svrRTK server struct
[out]sstatstream status
[out]msgstatus message

Definition at line 1543 of file mrtk_rtksvr.c.

References MAXSTRMSG, MAXSTRRTK, rtksvrlock(), rtksvrunlock(), rtksvr_t::stream, strstat(), and tracet().

Here is the call graph for this function:

◆ rtksvrstart()

int rtksvrstart ( rtksvr_t * svr,
int cycle,
int buffsize,
int * strs,
char ** paths,
int * formats,
int navsel,
char ** cmds,
char ** cmds_periodic,
char ** rcvopts,
int nmeacycle,
int nmeareq,
const double * nmeapos,
prcopt_t * prcopt,
solopt_t * solopt,
stream_t * moni,
gtime_t rst,
char * errmsg )
extern

Start RTK server.

Parameters
[in,out]svrRTK server struct
[in]cycleprocessing cycle (ms)
[in]buffsizeinput buffer size (bytes)
[in]strsstream types (8)
[in]pathsstream paths (8)
[in]formatsinput formats (3)
[in]navselnavigation select (0:all,1:rov,2:base,3:corr)
[in]cmdsstartup commands (3)
[in]cmds_periodicperiodic commands (3)
[in]rcvoptsreceiver options (3)
[in]nmeacycleNMEA request cycle (ms) (0:no)
[in]nmeareqNMEA request type (0:no,1:nmeapos,2:single)
[in]nmeaposNMEA request position (ecef) (m) (3)
[in]prcoptprocessing options
[in]soloptsolution options (2)
[in]monimonitor stream (NULL: no monitor)
[in]rstreset time
[out]errmsgerror message
Returns
status (0:error,1:ok)

Definition at line 1181 of file mrtk_rtksvr.c.

References rtksvr_t::buff, buffsize, rtksvr_t::buffsize, calloc, rtksvr_t::clas, nav_s::clas_ctx, clas_ctx_init(), rtksvr_t::cmds_periodic, CORR_GAL_HAS, CORR_QZS_MADOCA, prcopt_t::correction, rtksvr_t::ctx, rtksvr_t::cycle, nav_s::dgps, rtcm_t::dgps, nav_s::eph, errmsg(), rtksvr_t::format, free, g_mrtk_ctx, nav_s::geph, rtksvr_t::has, has_new(), init_raw(), init_rtcm(), prcopt_t::initrst, prcopt_t::ionocorr, prcopt_t::ionoopt, IONOOPT_EST, malloc, MAXOBSBUF, MAXSAT, MAXSTRRTK, rtksvr_t::mdciono, MIONO_MAX_PRN, prcopt_t::mode, rtksvr_t::moni, obs_t::n, rtksvr_t::nav, rtksvr_t::nave, rtksvr_t::navsel, rtksvr_t::nb, rtksvr_t::nmeacycle, rtksvr_t::nmeapos, rtksvr_t::nmeareq, rtksvr_t::nmsg, rtksvr_t::npb, NSATGLO, NSATSBS, rtksvr_t::nsbs, rtksvr_t::nsol, rtksvr_t::obs, raw_t::opt, rtcm_t::opt, rtksvr_t::pbuf, PMODE_PPP_RTK, POSOPT_SINGLE, nav_s::pppiono, rtksvr_t::prcout, rtksvr_t::raw, prcopt_t::rb, rtk_t::rb, rtksvr_t::rb_ave, prcopt_t::refpos, rtksvr_t::rtcm, rtksvr_t::rtk, rtkfree(), rtkinit(), rtksvrthread(), rtksvr_t::sbuf, nav_s::seph, prcopt_t::sigcfg, raw_t::sigcfg, prcopt_t::sigcfg_set, raw_t::sigcfg_set, sleepms(), rtksvr_t::solopt, rtksvr_t::state, STR_FILE, STR_MODE_R, STR_MODE_W, strclose(), rtksvr_t::stream, STRFMT_CLAS, STRFMT_L6E, STRFMT_SEPT, STRFMT_UBX, strgettime(), strinitcom(), stropen(), strsendcmd(), strsync(), strwrite(), rtksvr_t::thread, gtime_t::time, raw_t::time, rtcm_t::time, timeget(), geph_t::tof, seph_t::tof, tracet(), eph_t::ttr, utc2gpst(), and writesolhead().

Here is the call graph for this function:

◆ rtksvrstop()

void rtksvrstop ( rtksvr_t * svr,
char ** cmds )
extern

Stop RTK server.

Parameters
[in,out]svrRTK server struct
[in]cmdsshutdown commands (3)

Definition at line 1415 of file mrtk_rtksvr.c.

References rtksvrlock(), rtksvrunlock(), rtksvr_t::state, rtksvr_t::stream, strsendcmd(), rtksvr_t::thread, and tracet().

Here is the call graph for this function:

◆ rtksvrthread()

◆ rtksvrunlock()

void rtksvrunlock ( rtksvr_t * svr)
extern

Unlock RTK server mutex.

Parameters
[in,out]svrRTK server struct

Definition at line 1133 of file mrtk_rtksvr.c.

References rtksvr_t::lock, and rtk_unlock.

Referenced by decodefile(), decoderaw(), rtksvrclosestr(), rtksvrmark(), rtksvropenstr(), rtksvrostat(), rtksvrsstat(), rtksvrstop(), rtksvrthread(), saveoutbuf(), and writesol().

Here is the caller graph for this function:

◆ saveoutbuf()

void saveoutbuf ( rtksvr_t * svr,
uint8_t * buff,
int n,
int index )
static

Definition at line 71 of file mrtk_rtksvr.c.

References rtksvr_t::buffsize, rtksvr_t::nsb, rtksvrlock(), rtksvrunlock(), and rtksvr_t::sbuf.

Referenced by rtksvrmark(), and writesol().

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

◆ send_nmea()

void send_nmea ( rtksvr_t * svr,
uint32_t * tickreset )
static

Definition at line 782 of file mrtk_rtksvr.c.

References baseline_len(), rtksvr_t::bl_reset, rtksvr_t::cmd_reset, matcpy(), MIN_INT_RESET, rtksvr_t::nmeapos, rtksvr_t::nmeareq, norm(), rtk_t::rb, sol_t::rr, rtksvr_t::rtk, rtk_t::sol, SOLQ_SINGLE, sol_t::stat, stream_tag::state, rtksvr_t::stream, strsendcmd(), strsendnmea(), tickget(), sol_t::time, timeget(), tracet(), and utc2gpst().

Referenced by rtksvrthread().

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

◆ timeset()

void timeset ( gtime_t t)
extern

Definition at line 318 of file mrtk_time.c.

Referenced by rtksvrthread().

Here is the caller graph for this function:

◆ update_antpos()

void update_antpos ( rtksvr_t * svr,
int index )
static

Definition at line 238 of file mrtk_rtksvr.c.

References sta_t::del, sta_t::deltype, ecef2pos(), enu2ecef(), rtksvr_t::format, sta_t::hgt, rtksvr_t::nmsg, rtk_t::opt, sta_t::pos, POSOPT_RTCM, rtksvr_t::raw, rtk_t::rb, prcopt_t::refpos, rtksvr_t::rtcm, rtksvr_t::rtk, raw_t::sta, rtcm_t::sta, STRFMT_RTCM2, and STRFMT_RTCM3.

Referenced by update_svr().

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

◆ update_eph()

void update_eph ( rtksvr_t * svr,
nav_t * nav,
int ephsat,
int ephset,
int index )
static

Definition at line 168 of file mrtk_rtksvr.c.

References nav_s::eph, nav_s::geph, eph_t::iode, geph_t::iode, MAXPRNGLO, MAXSAT, rtksvr_t::nav, rtksvr_t::navsel, rtksvr_t::nmsg, satsys(), SYS_GLO, gtime_t::time, timediff(), eph_t::toc, eph_t::toe, geph_t::tof, eph_t::ttr, and update_glofcn().

Referenced by update_svr().

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

◆ update_glofcn()

void update_glofcn ( rtksvr_t * svr)
static

Definition at line 123 of file mrtk_rtksvr.c.

References geph_t::frq, nav_s::geph, MAXPRNGLO, raw_t::nav, rtksvr_t::raw, geph_t::sat, satno(), and SYS_GLO.

Referenced by update_eph().

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

◆ update_ionutc()

void update_ionutc ( rtksvr_t * svr,
nav_t * nav,
int index )
static

Definition at line 220 of file mrtk_rtksvr.c.

References nav_s::ion_cmp, nav_s::ion_gal, nav_s::ion_gps, nav_s::ion_irn, nav_s::ion_qzs, matcpy(), rtksvr_t::nav, rtksvr_t::navsel, rtksvr_t::nmsg, nav_s::utc_cmp, nav_s::utc_gal, nav_s::utc_glo, nav_s::utc_gps, nav_s::utc_irn, nav_s::utc_qzs, and nav_s::utc_sbs.

Referenced by update_svr().

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

◆ update_lcl()

void update_lcl ( rtksvr_t * svr,
int index )
static

Definition at line 322 of file mrtk_rtksvr.c.

References block2stat(), rtksvr_t::nav, rtksvr_t::nmsg, rtksvr_t::rtcm, and nav_s::stat.

Referenced by update_svr().

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

◆ update_obs()

void update_obs ( rtksvr_t * svr,
obs_t * obs,
int index,
int iobs )
static

Definition at line 149 of file mrtk_rtksvr.c.

References obs_t::data, prcopt_t::exsats, MAXOBSBUF, obs_t::n, prcopt_t::navsys, rtksvr_t::nmsg, rtksvr_t::obs, rtk_t::opt, obsd_t::rcv, rtksvr_t::rtk, obsd_t::sat, satsys(), and sortobs().

Referenced by update_svr().

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

◆ update_sbs()

void update_sbs ( rtksvr_t * svr,
sbsmsg_t * sbsmsg,
int index )
static

Definition at line 202 of file mrtk_rtksvr.c.

References MAXSBSMSG, rtksvr_t::nav, rtksvr_t::nmsg, rtksvr_t::nsbs, rtk_t::opt, sbsmsg_t::prn, sbsmsg_t::rcv, rtksvr_t::rtk, prcopt_t::sbassatsel, rtksvr_t::sbsmsg, and sbsupdatecorr().

Referenced by update_svr().

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

◆ update_ssr()

void update_ssr ( rtksvr_t * svr,
int index )
static

Definition at line 271 of file mrtk_rtksvr.c.

References nav_s::eph, nav_s::geph, ssr_t::iod, eph_t::iode, geph_t::iode, ssr_t::iode, MAXPRNGLO, MAXSAT, rtksvr_t::nav, rtksvr_t::nmsg, rtksvr_t::rtcm, satsys(), rtcm_t::ssr, nav_s::ssr_ch, SYS_GAL, SYS_GLO, SYS_GPS, SYS_QZS, and ssr_t::update.

Referenced by update_svr().

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

◆ update_stat()

void update_stat ( rtksvr_t * svr,
int index )
static

Definition at line 305 of file mrtk_rtksvr.c.

References getstano(), MAXSAT, rtksvr_t::nav, rtksvr_t::nmsg, sstat_t::sion, stat_t::sion, rtksvr_t::sstat, nav_s::stat, sstat_t::strp, stat_t::strp, sstat_t::time, and stat_t::time.

Referenced by update_svr().

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

◆ update_svr()

void update_svr ( rtksvr_t * svr,
int ret,
obs_t * obs,
nav_t * nav,
int ephsat,
int ephset,
sbsmsg_t * sbsmsg,
int index,
int iobs )
static

Definition at line 346 of file mrtk_rtksvr.c.

References rtksvr_t::nmsg, rtksvr_ssr_applicable(), tracet(), update_antpos(), update_eph(), update_ionutc(), update_lcl(), update_obs(), update_sbs(), update_ssr(), and update_stat().

Referenced by decoderaw().

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

◆ writesol()

void writesol ( rtksvr_t * svr,
int index )
static

Definition at line 81 of file mrtk_rtksvr.c.

References MAXSOLBUF, MAXSOLMSG, rtksvr_t::moni, rtksvr_t::nsol, outsolexs(), outsols(), solopt_t::posf, rtk_t::rb, rtksvr_t::rtk, rtkoutstat(), rtksvrlock(), rtksvrunlock(), saveoutbuf(), rtk_t::sol, rtksvr_t::solbuf, SOLF_STAT, rtksvr_t::solopt, solopt_default, rtk_t::ssat, rtksvr_t::stream, strwrite(), and tracet().

Referenced by rtksvrthread().

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

◆ writesolhead()

void writesolhead ( stream_t * stream,
const solopt_t * solopt )
static

Definition at line 63 of file mrtk_rtksvr.c.

References outsolheads(), and strwrite().

Referenced by rtksvropenstr(), and rtksvrstart().

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