|
MRTKLIB 0.7.14
Modernized GNSS Positioning Library
|
MRTKLIB RTK Server Module — real-time positioning server. More...
#include "mrtklib/mrtk_clas.h"#include "mrtklib/mrtk_context.h"#include "mrtklib/mrtk_foundation.h"#include "mrtklib/mrtk_has.h"#include "mrtklib/mrtk_nav.h"#include "mrtklib/mrtk_obs.h"#include "mrtklib/mrtk_opt.h"#include "mrtklib/mrtk_ppp.h"#include "mrtklib/mrtk_rcvraw.h"#include "mrtklib/mrtk_rtcm.h"#include "mrtklib/mrtk_rtkpos.h"#include "mrtklib/mrtk_sol.h"#include "mrtklib/mrtk_stream.h"#include "mrtklib/mrtk_time.h"Go to the source code of this file.
Classes | |
| struct | rtksvr_t |
Functions | |
| int | rtksvrinit (rtksvr_t *svr) |
| Initialize RTK server. | |
| void | rtksvrfree (rtksvr_t *svr) |
| Free RTK server resources. | |
| 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. | |
| void | rtksvrlock (rtksvr_t *svr) |
| Lock RTK server mutex. | |
| void | rtksvrunlock (rtksvr_t *svr) |
| Unlock RTK server mutex. | |
| int | rtksvrostat (rtksvr_t *svr, int type, 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. | |
| 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]. | |
MRTKLIB RTK Server Module — real-time positioning server.
This header provides the rtksvr_t type and functions for managing a real-time RTK positioning server that reads receiver data streams, performs positioning computation, and outputs solutions.
Definition in file mrtk_rtksvr.h.
| 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].
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.
| [in] | svr | RTK server struct |
| [in] | index | input stream index (0..2) |
| [in] | ret | decoder status (10 or 15) |
Definition at line 336 of file mrtk_rtksvr.c.
References rtksvr_t::clas, rtksvr_t::format, and STRFMT_L6E.
Referenced by update_svr().
| void rtksvrclosestr | ( | rtksvr_t * | svr, |
| int | index ) |
Close RTK server output/log stream.
| [in,out] | svr | RTK server struct |
| [in] | index | stream index |
Definition at line 1481 of file mrtk_rtksvr.c.
References rtksvrlock(), rtksvrunlock(), rtksvr_t::state, strclose(), rtksvr_t::stream, and tracet().
| void rtksvrfree | ( | rtksvr_t * | svr | ) |
Free RTK server resources.
| [in,out] | svr | RTK 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.
| int rtksvrinit | ( | rtksvr_t * | svr | ) |
Initialize RTK server.
| [in,out] | svr | RTK server struct |
Definition at line 979 of file mrtk_rtksvr.c.
References rtksvr_t::bl_reset, rtksvr_t::buff, rtksvr_t::buffsize, rtksvr_t::clas, rtksvr_t::cmd_reset, rtksvr_t::cmds_periodic, rtksvr_t::cputime, rtksvr_t::cycle, obs_t::data, nav_s::eph, rtksvr_t::files, rtksvr_t::format, rtksvr_t::ftime, nav_s::geph, rtksvr_t::has, rtksvr_t::lock, malloc, MAXOBS, MAXOBSBUF, MAXSAT, MAXSOLBUF, MAXSTRRTK, rtksvr_t::mdciono, rtksvr_t::moni, nav_s::n, rtksvr_t::nav, rtksvr_t::nave, rtksvr_t::navsel, rtksvr_t::nb, nav_s::ng, rtksvr_t::nmeacycle, rtksvr_t::nmeapos, rtksvr_t::nmeareq, rtksvr_t::nmsg, rtksvr_t::npb, nav_s::ns, NSATGLO, NSATSBS, rtksvr_t::nsb, rtksvr_t::nsbs, rtksvr_t::nsol, rtksvr_t::obs, rtksvr_t::pbuf, prcopt_default, rtksvr_t::prcout, rtksvr_t::raw, rtksvr_t::rb_ave, rtksvr_t::rtcm, rtksvr_t::rtk, rtk_initlock, rtkinit(), rtksvr_t::sbuf, nav_s::seph, rtksvr_t::solbuf, rtksvr_t::solopt, solopt_default, nav_s::stat, rtksvr_t::state, rtksvr_t::stream, strinit(), rtksvr_t::thread, rtksvr_t::tick, and tracet().
| void rtksvrlock | ( | rtksvr_t * | svr | ) |
Lock RTK server mutex.
| [in,out] | svr | RTK 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().
| int rtksvrmark | ( | rtksvr_t * | svr, |
| const char * | name, | ||
| const char * | comment ) |
Mark current position in solution.
| [in,out] | svr | RTK server struct |
| [in] | name | mark name |
| [in] | comment | mark comment |
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().
| int rtksvropenstr | ( | rtksvr_t * | svr, |
| int | index, | ||
| int | str, | ||
| const char * | path, | ||
| const solopt_t * | solopt ) |
Open RTK server output/log stream.
| [in,out] | svr | RTK server struct |
| [in] | index | stream index |
| [in] | str | stream type |
| [in] | path | stream path |
| [in] | solopt | solution options |
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().
| int rtksvrostat | ( | rtksvr_t * | svr, |
| int | type, | ||
| gtime_t * | time, | ||
| int * | sat, | ||
| double * | az, | ||
| double * | el, | ||
| int ** | snr, | ||
| int * | vsat ) |
Get observation data status.
| [in] | svr | RTK server struct |
| [in] | type | receiver type (0:rover,1:base,2:corr) |
| [out] | time | observation time |
| [out] | sat | satellite numbers |
| [out] | az | azimuths (rad) |
| [out] | el | elevations (rad) |
| [out] | snr | SNR (0.001 dBHz) |
| [out] | vsat | valid satellite flags |
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.
| void rtksvrsstat | ( | rtksvr_t * | svr, |
| int * | sstat, | ||
| char * | msg ) |
Get stream status.
| [in,out] | svr | RTK server struct |
| [out] | sstat | stream status |
| [out] | msg | status message |
Definition at line 1543 of file mrtk_rtksvr.c.
References MAXSTRMSG, MAXSTRRTK, rtksvrlock(), rtksvrunlock(), rtksvr_t::stream, strstat(), and tracet().
| 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.
| [in,out] | svr | RTK server struct |
| [in] | cycle | processing cycle (ms) |
| [in] | buffsize | input buffer size (bytes) |
| [in] | strs | stream types (8) |
| [in] | paths | stream paths (8) |
| [in] | formats | input formats (3) |
| [in] | navsel | navigation select (0:all,1:rov,2:base,3:corr) |
| [in] | cmds | startup commands (3) |
| [in] | cmds_periodic | periodic commands (3) |
| [in] | rcvopts | receiver options (3) |
| [in] | nmeacycle | NMEA request cycle (ms) (0:no) |
| [in] | nmeareq | NMEA request type (0:no,1:nmeapos,2:single) |
| [in] | nmeapos | NMEA request position (ecef) (m) (3) |
| [in] | prcopt | processing options |
| [in] | solopt | solution options (2) |
| [in] | moni | monitor stream (NULL: no monitor) |
| [in] | rst | reset time |
| [out] | errmsg | error message |
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().
| void rtksvrstop | ( | rtksvr_t * | svr, |
| char ** | cmds ) |
Stop RTK server.
| [in,out] | svr | RTK server struct |
| [in] | cmds | shutdown 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().
| void rtksvrunlock | ( | rtksvr_t * | svr | ) |
Unlock RTK server mutex.
| [in,out] | svr | RTK 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().