MRTKLIB 0.7.14
Modernized GNSS Positioning Library
Loading...
Searching...
No Matches
mrtk_time.c File Reference

MRTKLIB Time Module — Implementation. More...

#include "mrtklib/mrtk_time.h"
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
Include dependency graph for mrtk_time.c:

Go to the source code of this file.

Macros

#define PI   3.1415926535897932 /* pi */
#define MAXLEAPS   64 /* max number of leap seconds table */

Functions

int str2time (const char *s, int i, int n, gtime_t *t)
 Convert substring in string to gtime_t struct.
gtime_t epoch2time (const double *ep)
 Convert calendar day/time to gtime_t struct.
void time2epoch (gtime_t t, double *ep)
 Convert gtime_t struct to calendar day/time.
gtime_t gpst2time (int week, double sec)
 Convert GPS week/tow to gtime_t.
double time2gpst (gtime_t t, int *week)
 Convert gtime_t to GPS week/tow.
gtime_t gst2time (int week, double sec)
 Convert Galileo system time week/tow to gtime_t.
double time2gst (gtime_t t, int *week)
 Convert gtime_t to Galileo system time week/tow.
gtime_t bdt2time (int week, double sec)
 Convert BeiDou time week/tow to gtime_t.
double time2bdt (gtime_t t, int *week)
 Convert gtime_t to BeiDou time week/tow.
gtime_t timeadd (gtime_t t, double sec)
 Add seconds to gtime_t.
double timediff (gtime_t t1, gtime_t t2)
 Compute time difference (t1 - t2).
gtime_t timeget (void)
 Get current time in UTC.
void timeset (gtime_t t)
 Set current time offset in UTC.
void timereset (void)
 Reset time offset to zero.
static int read_leaps_text (FILE *fp)
static int read_leaps_usno (FILE *fp)
int read_leaps (const char *file)
 Read leap seconds table from file.
gtime_t gpst2utc (gtime_t t)
 Convert GPS time to UTC considering leap seconds.
gtime_t utc2gpst (gtime_t t)
 Convert UTC to GPS time considering leap seconds.
gtime_t gpst2bdt (gtime_t t)
 Convert GPS time to BeiDou time.
gtime_t bdt2gpst (gtime_t t)
 Convert BeiDou time to GPS time.
static double time2sec (gtime_t time, gtime_t *day)
double utc2gmst (gtime_t t, double ut1_utc)
 Convert UTC to Greenwich Mean Sidereal Time.
void time2str (gtime_t t, char *s, int n)
 Convert gtime_t struct to string.
char * time_str (gtime_t t, int n)
 Get time string (not reentrant).
double time2doy (gtime_t t)
 Convert time to day of year.
int adjgpsweek (int week)
 Adjust GPS week number using CPU time.
uint32_t tickget (void)
 Get current tick in milliseconds.
void sleepms (int ms)
 Sleep for specified milliseconds.

Variables

static const double gpst0 [] = {1980, 1, 6, 0, 0, 0}
 GPS time reference epoch.
static const double gst0 [] = {1999, 8, 22, 0, 0, 0}
 Galileo system time reference epoch.
static const double bdt0 [] = {2006, 1, 1, 0, 0, 0}
 BeiDou time reference epoch.
static double leaps [64+1][7]
 Leap seconds table (y,m,d,h,m,s,utc-gpst).
static double timeoffset_ = 0.0
 Time offset (s) for timeget/timeset.

Detailed Description

MRTKLIB Time Module — Implementation.

All functions and static data in this file are cut-and-paste extractions from the legacy rtkcmn.c with zero algorithmic changes.

Definition in file mrtk_time.c.

Macro Definition Documentation

◆ MAXLEAPS

#define MAXLEAPS   64 /* max number of leap seconds table */

Definition at line 39 of file mrtk_time.c.

Referenced by read_leaps_text(), and read_leaps_usno().

◆ PI

#define PI   3.1415926535897932 /* pi */

Definition at line 36 of file mrtk_time.c.

Function Documentation

◆ adjgpsweek()

int adjgpsweek ( int week)
extern

Adjust GPS week number using CPU time.

Parameters
[in]weekNot-adjusted GPS week number (0-1023)
Returns
Adjusted GPS week number

Definition at line 553 of file mrtk_time.c.

References time2gpst(), timeget(), and utc2gpst().

Referenced by decode_alm_gps(), decode_alm_qzs(), decode_eph(), decode_frame_eph(), decode_frmb(), decode_gpsephem(), decode_gpsnav(), decode_irn_eph(), decode_oem4(), decode_rgeb(), decode_rged(), decode_stqrawx(), decode_stqtime(), decode_type1019(), decode_type1041(), decode_type1044(), decode_type14(), decode_type17(), decode_UO(), decode_utcb(), decode_WE(), and decode_xf5raw().

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

◆ bdt2gpst()

gtime_t bdt2gpst ( gtime_t t)
extern

Convert BeiDou time to GPS time.

Parameters
[in]tTime in BDT
Returns
Time in GPS time

Definition at line 465 of file mrtk_time.c.

References timeadd().

Referenced by decode_bds_d1_eph(), decode_bds_d2_eph(), decode_bdsephemerisb(), decode_bdsnav(), decode_eph(), decode_eph_bds_cnav(), decode_type1042(), and DecodeBeidouEphemeris().

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

◆ bdt2time()

gtime_t bdt2time ( int week,
double sec )
extern

Convert BeiDou time week/tow to gtime_t.

Parameters
[in]weekBDT week number
[in]secTime of week (s)
Returns
gtime_t struct

Definition at line 229 of file mrtk_time.c.

References bdt0, epoch2time(), gtime_t::sec, and gtime_t::time.

Referenced by decode_bds_d1_eph(), decode_bds_d2_eph(), decode_bdsephemerisb(), decode_bdsnav(), decode_eph(), decode_eph(), decode_eph_bds_cnav(), decode_type1042(), and DecodeBeidouEphemeris().

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

◆ epoch2time()

gtime_t epoch2time ( const double * ep)
extern

Convert calendar day/time to gtime_t struct.

Parameters
[in]epDay/time {year, month, day, hour, min, sec}
Returns
gtime_t struct

Definition at line 113 of file mrtk_time.c.

References gtime_t::sec, and gtime_t::time.

Referenced by adjday(), adjday(), adjday(), bdt2time(), decode_bnx_00(), decode_bnx_7f(), decode_nmeagga(), decode_nmearmc(), decode_nmeazda(), decode_RD(), decode_soltime(), decode_ss2llh(), eci2ecef(), encode_type1020(), geterp(), gpst2time(), gpst2utc(), gst2time(), iers_mean_pole(), readbsnx(), readfcbf(), readmsgs(), reppath(), str2time(), sunmoonpos_eci(), tide_oload(), time2bdt(), time2biast(), time2doy(), time2gpst(), time2gst(), time2sec(), timeget(), tropmapf(), utc2gmst(), utc2gpst(), and write_trace_amb().

Here is the caller graph for this function:

◆ gpst2bdt()

gtime_t gpst2bdt ( gtime_t t)
extern

Convert GPS time to BeiDou time.

Parameters
[in]tTime in GPS time
Returns
Time in BDT

Definition at line 458 of file mrtk_time.c.

References timeadd().

Referenced by adjbdtweek(), encode_msm_head(), encode_type1042(), encode_type63(), and outrnxnavb().

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

◆ gpst2time()

gtime_t gpst2time ( int week,
double sec )
extern

Convert GPS week/tow to gtime_t.

Parameters
[in]weekGPS week number
[in]secTime of week (s)
Returns
gtime_t struct

Definition at line 165 of file mrtk_time.c.

References epoch2time(), gpst0, gtime_t::sec, and gtime_t::time.

Referenced by adjday_glot(), adjhour(), adjweek(), adjweek(), adjweek(), adjweek(), adjweek(), adjweek(), adjweek(), check_week_ref(), convrnx(), convsbs(), decode_alm_gps(), decode_alm_qzs(), decode_bnx_01_01(), decode_bnx_01_03(), decode_bnx_01_04(), decode_bnx_01_05(), decode_bnx_01_06(), decode_bnx_01_07(), decode_bnx_01_14(), decode_cresgloraw(), decode_crespos(), decode_cresraw(), decode_cresraw2(), decode_cssr_atmos(), decode_cssr_bias(), decode_cssr_cb(), decode_cssr_cc(), decode_cssr_combo(), decode_cssr_grid(), decode_cssr_mask(), decode_cssr_oc(), decode_cssr_pb(), decode_cssr_stec(), decode_cssr_ura(), decode_eph(), decode_eph(), decode_eph_cnav(), decode_frame_eph(), decode_frmb(), decode_galephemerisb(), decode_galinavephemerisb(), decode_galnav(), decode_geph(), decode_gloephemerisb(), decode_glonav(), decode_glostr_eph(), decode_gpsephem(), decode_gpsephemb(), decode_gpsnav(), decode_irn_eph(), decode_longcorr0(), decode_longcorr1(), decode_navicephemerisb(), decode_navsol(), decode_navtime(), decode_oem4(), decode_qzsrawl6(), decode_qzssephemerisb(), decode_qzssnav(), decode_rgeb(), decode_rged(), decode_rtcm3(), decode_rxmraw(), decode_rxmrawx(), decode_sbf(), decode_sbstype2(), decode_sbstype24(), decode_sbstype26(), decode_sbstype9(), decode_seph(), decode_solsss(), decode_solstat(), decode_soltime(), decode_ss2ecef(), decode_ss2sbas(), decode_stat(), decode_stqrawx(), decode_stqtime(), decode_trkd5(), decode_trkmeas(), decode_type1019(), decode_type1020(), decode_type1041(), decode_type1044(), decode_type1045(), decode_type1046(), decode_type14(), decode_type17(), decode_WE(), decode_xf5raw(), DecodeGPSEphemeris(), DecodeQZSSEphemeris(), DecodeType17(), GetWeek(), has_input_file(), has_t_mt1(), input_statcorr(), inputobs(), nextdltime(), postpos(), readmsgs(), reppaths(), and SetWeek().

Here is the call graph for this function:

◆ gpst2utc()

gtime_t gpst2utc ( gtime_t t)
extern

Convert GPS time to UTC considering leap seconds.

Parameters
[in]tTime in GPS time
Returns
Time in UTC

Definition at line 422 of file mrtk_time.c.

References epoch2time(), leaps, timeadd(), and timediff().

Referenced by adjday_glot(), clas_osr_zdres(), decode_glostr_eph(), decode_navtime(), decode_RT(), decode_trkd5(), decode_trkmeas(), decode_type1020(), encode_head(), encode_msm_head(), encode_ssr_head(), encode_type1020(), geterp(), openfile_(), outheader(), outnmea_gga(), outnmea_rmc(), outrnxgnavb(), outsols(), pppos(), readfile(), rtksvrthread(), sat_yaw(), satantoff(), testeclipse(), timeget(), windupcorr(), zdres(), and zdres().

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

◆ gst2time()

gtime_t gst2time ( int week,
double sec )
extern

Convert Galileo system time week/tow to gtime_t.

Parameters
[in]weekGST week number
[in]secTime of week (s)
Returns
gtime_t struct

Definition at line 197 of file mrtk_time.c.

References epoch2time(), gst0, gtime_t::sec, and gtime_t::time.

Referenced by decode_gal_fnav_eph(), decode_gal_inav_eph(), decode_lclhead(), and DecodeGalileoEphemeris().

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

◆ read_leaps()

int read_leaps ( const char * file)
extern

Read leap seconds table from file.

Parameters
[in]fileLeap seconds table file path
Returns
Status (1:ok, 0:error)

Definition at line 397 of file mrtk_time.c.

References leaps, read_leaps_text(), and read_leaps_usno().

Here is the call graph for this function:

◆ read_leaps_text()

int read_leaps_text ( FILE * fp)
static

Definition at line 330 of file mrtk_time.c.

References leaps, and MAXLEAPS.

Referenced by read_leaps().

Here is the caller graph for this function:

◆ read_leaps_usno()

int read_leaps_usno ( FILE * fp)
static

Definition at line 351 of file mrtk_time.c.

References leaps, and MAXLEAPS.

Referenced by read_leaps().

Here is the caller graph for this function:

◆ sleepms()

void sleepms ( int ms)
extern

Sleep for specified milliseconds.

Parameters
[in]msMilliseconds to sleep (<0: no sleep)

Definition at line 588 of file mrtk_time.c.

Referenced by rtksvrstart(), rtksvrthread(), strsendcmd(), strsvrstart(), and strsvrthread().

Here is the caller graph for this function:

◆ str2time()

int str2time ( const char * s,
int i,
int n,
gtime_t * t )
extern

Convert substring in string to gtime_t struct.

Parameters
[in]sString ("... yyyy mm dd hh mm ss ...")
[in]iSubstring position
[in]nSubstring width
[out]tResulting gtime_t struct
Returns
Status (0:ok, <0:error)

Definition at line 87 of file mrtk_time.c.

References epoch2time().

Referenced by decode_obsepoch(), readantex(), readionexb(), readrnxclk(), readrnxnavb(), readsp3b(), and readsp3h().

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

◆ tickget()

uint32_t tickget ( void )
extern

Get current tick in milliseconds.

Returns
Current tick (ms)

Definition at line 566 of file mrtk_time.c.

Referenced by accsock(), consock(), decoderaw(), discontcp(), gen_sd_matrix_n1(), gentcp(), openfile_(), ppp_amb_ILS(), readfile(), readntripc(), readtcpcli(), readtcpsvr(), rtksvrthread(), search_amb_lambda(), send_nmea(), strconvnew(), stropen(), strread(), strstat(), strstatx(), strsvrthread(), strwrite(), traceopen(), tracet(), update_states(), waittcpcli(), write_nav_cycle(), write_sta_cycle(), writefile(), writentripc(), writetcpcli(), and writetcpsvr().

Here is the caller graph for this function:

◆ time2bdt()

double time2bdt ( gtime_t t,
int * week )
extern

Convert gtime_t to BeiDou time week/tow.

Parameters
[in]tgtime_t struct
[out]weekBDT week number (NULL: no output)
Returns
Time of week in BDT (s)

Definition at line 245 of file mrtk_time.c.

References bdt0, epoch2time(), gtime_t::sec, and gtime_t::time.

Referenced by adjbdtweek(), decode_eph_bds_cnav(), encode_type1042(), encode_type63(), and outrnxnavb().

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

◆ time2doy()

double time2doy ( gtime_t t)
extern

Convert time to day of year.

Parameters
[in]tgtime_t struct
Returns
Day of year (days)

Definition at line 540 of file mrtk_time.c.

References epoch2time(), time2epoch(), and timediff().

Referenced by get_stTv(), nmf(), and sbstropcorr().

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

◆ time2epoch()

void time2epoch ( gtime_t t,
double * ep )
extern

Convert gtime_t struct to calendar day/time.

Parameters
[in]tgtime_t struct
[out]epDay/time {year, month, day, hour, min, sec}

Definition at line 136 of file mrtk_time.c.

References gtime_t::sec, and gtime_t::time.

Referenced by adjday(), adjday(), adjday(), decode_navtime(), decode_nmeagga(), encode_type1020(), outbsnxh(), outnmea_gga(), outnmea_rmc(), outrnxevent(), outrnxgnavb(), outrnxhnavb(), outrnxnavb(), outrnxobsb(), outrnxobsh(), reppath(), tide_oload(), tidedisp(), time2biast(), time2doy(), time2sec(), time2str(), timestr_rnx(), and write_trace_amb().

Here is the caller graph for this function:

◆ time2gpst()

double time2gpst ( gtime_t t,
int * week )
extern

Convert gtime_t to GPS week/tow.

Parameters
[in]tgtime_t struct
[out]weekGPS week number (NULL: no output)
Returns
Time of week in GPS time (s)

Definition at line 181 of file mrtk_time.c.

References epoch2time(), gpst0, gtime_t::sec, and gtime_t::time.

Referenced by add_base_value_to_cbias(), add_base_value_to_pbias(), adj_utcweek(), adj_utcweek(), adj_utcweek(), adj_utcweek(), adj_utcweek(), adjday_glot(), adjgpsweek(), adjhour(), adjweek(), adjweek(), adjweek(), adjweek(), adjweek(), adjweek(), adjweek(), clas_osr_adjust_cpc(), clas_osr_adjust_prc(), clas_osr_adjust_r_dts(), clas_osr_corrmeas(), clas_osr_satcorr_update(), clas_osr_zdres(), convrnx(), ddres(), decode_creswaas(), decode_galephemerisb(), decode_galinavephemerisb(), decode_georawl1(), decode_geph(), decode_glostr_eph(), decode_has_mt1(), decode_rawwaasframeb(), decode_rtcm3(), decode_rxmraw(), decode_rxmrawx(), decode_seph(), decode_snav(), decode_ss2eph(), decode_trkd5(), decode_trkmeas(), decode_type1020(), decode_WD(), decode_xf5raw(), decoderaw(), encode_head(), encode_lclhead(), encode_msm_head(), encode_ssr_head(), encode_type1019(), encode_type1041(), encode_type1044(), encode_type1045(), encode_type1046(), GetWeek(), has_t_mt1(), ionmodel(), is_tint(), nextdltime(), outheader(), outrnxgnavb(), outrnxhnavb(), outrnxnavb(), outsols(), outsolstat(), postpos(), ppp_rtk_pos(), pppoutstat(), ppprtk_outstat(), readmsgs(), relposvrs(), reppath(), reppaths(), rtkoutstat(), rtksvrmark(), sbsdecodemsg(), screent(), screent_ttol(), swapsolstat(), udbias_ppp(), update_clas(), and writefile().

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

◆ time2gst()

double time2gst ( gtime_t t,
int * week )
extern

Convert gtime_t to Galileo system time week/tow.

Parameters
[in]tgtime_t struct
[out]weekGST week number (NULL: no output)
Returns
Time of week in GST (s)

Definition at line 213 of file mrtk_time.c.

References epoch2time(), gst0, gtime_t::sec, and gtime_t::time.

Referenced by decode_lclhead().

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

◆ time2sec()

double time2sec ( gtime_t time,
gtime_t * day )
static

Definition at line 471 of file mrtk_time.c.

References epoch2time(), and time2epoch().

Referenced by utc2gmst().

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

◆ time2str()

void time2str ( gtime_t t,
char * str,
int n )
extern

Convert gtime_t struct to string.

Parameters
[in]tgtime_t struct
[out]strString ("yyyy/mm/dd hh:mm:ss.ssss")
[in]nNumber of decimals

Definition at line 507 of file mrtk_time.c.

References gtime_t::sec, gtime_t::time, and time2epoch().

Referenced by decode_crespos(), decode_head1001(), decode_head1009(), decode_msm_head(), decode_navtime(), decode_oem4(), decode_rxmrawx(), decode_sbf(), decode_ssr1_head(), decode_ssr2_head(), decode_ssr7_head(), decode_xf5raw(), dump_halfc(), dump_stas(), errmsg(), errmsg(), execses_b(), execses_r(), outheader(), outsols(), ppp_amb_ILS(), ppp_res(), pppos(), raim_fde(), rtksvrmark(), search_amb_lambda(), setopt_sta_list(), settag(), showstat(), statexfile(), time_str(), tracegnav(), tracehnav(), tracenav(), traceobs(), tracepclk(), tracepeph(), and valcomb().

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

◆ time_str()

char * time_str ( gtime_t t,
int n )
extern

Get time string (not reentrant).

Parameters
[in]tgtime_t struct
[in]nNumber of decimals
Returns
Static time string

Definition at line 530 of file mrtk_time.c.

References time2str().

Referenced by alm2pos(), clas_osr_corrmeas(), clas_osr_zdres(), const_iono_corr(), corr_iono_distwgt(), corr_meas(), corr_trop_distwgt(), ddres(), ddres(), decode_bnx_00(), decode_bnx_7f(), decode_has_mt1(), decode_lcliono(), decode_lcltrop(), decode_mcssr_cb(), decode_mcssr_cc(), decode_mcssr_oc(), decode_mcssr_pb(), decode_mcssr_ura(), decode_miono_correction(), decode_miono_coverage(), decode_nmeagga(), decode_nmearmc(), decode_nmeazda(), decode_obsdata(), decode_obsepoch(), decode_qzsrawl6(), decode_qzss_l6dmsg(), decode_qzss_l6emsg(), decode_RD(), decode_RT(), decode_TC(), decode_trkd5(), decoderaw(), eci2ecef(), encode_lcliono(), encode_lcltrop(), encode_msm_int_rrng(), encode_msm_phrng(), encode_msm_phrng_ex(), encode_msm_psrng(), encode_msm_psrng_ex(), encode_msm_rate(), encode_msm_rrate(), eph2clk(), eph2pos(), ephclk(), ephpos(), geph2clk(), geph2pos(), get_iono_sta(), get_trop_sta(), init_mdcl6d(), input_statcorr(), input_strfile(), inputobs(), iondelay(), ionocorr(), iontec(), openfile_(), peph2pos(), pephclk(), pephpos(), pntpos(), postpos(), ppp_rtk_pos(), raim_fde(), readbsnx(), readobsnav(), readsap(), relposvrs(), rescode(), rtkpos(), satantoff(), satpos(), satpos_sbas(), satpos_ssr(), satposs(), sbsfastcorr(), sbslongcorr(), scan_file(), seleph(), selgeph(), selseph(), seph2clk(), seph2pos(), stec_data(), sunmoonpos(), sunmoonpos_eci(), swapfile(), testeclipse(), tidedisp(), trop_data(), tropcorr(), udbias_ppp(), udbiass(), udiono_ppp(), udsatcb(), udsatpb(), udstacb(), update_gal_has(), update_qzssl6d(), update_qzssl6e(), update_rtcm(), update_stat(), and write_trace_amb().

Here is the call graph for this function:

◆ timeadd()

◆ timediff()

double timediff ( gtime_t t1,
gtime_t t2 )
extern

Compute time difference (t1 - t2).

Parameters
[in]t1gtime_t struct
[in]t2gtime_t struct
Returns
Difference in seconds (t1 - t2)

Definition at line 279 of file mrtk_time.c.

References gtime_t::sec, and gtime_t::time.

Referenced by adjday(), adjweek(), alm2pos(), backup_cssr_time(), check_week_ref(), clas_backup_valid(), clas_check_grid_status(), clas_check_grid_status_time(), clas_osr_compensatedisp(), clas_osr_corrmeas(), clas_osr_satcorr_update(), clas_osr_zdres(), clas_restore_backup(), clas_route_l6frame(), clas_ssr2osr(), cmpobs(), cmppclk(), cmppeph(), cmpsol(), cmpsolstat(), combpclk(), combpeph(), combres(), combtec(), const_iono_corr(), convobs(), convrnx(), convrnx_s(), convsbs(), ddres(), decode_bdsephemerisb(), decode_bdsraw(), decode_bnx_01_02(), decode_bnx_01_03(), decode_bnx_01_04(), decode_bnx_01_05(), decode_bnx_01_07(), decode_bnx_01_14(), decode_cnav(), decode_cresgloraw(), decode_cresraw2(), decode_enav(), decode_eph(), decode_eph(), decode_eph(), decode_gal_fnav_eph(), decode_gal_inav_eph(), decode_galephemerisb(), decode_galinavephemerisb(), decode_galrawfnav(), decode_galrawinav(), decode_gloephem(), decode_gloephemerisb(), decode_glorawca(), decode_gpsephemb(), decode_lclhead(), decode_navicephemerisb(), decode_navicraw(), decode_NE(), decode_nmeagga(), decode_qzssephemerisb(), decode_rangeb(), decode_rangecmpb(), decode_rgeb(), decode_rged(), decode_rxmraw(), decode_sbstype2(), decode_sbstype9(), decode_stat(), decode_stqbds(), decode_trkd5(), decode_trkmeas(), decode_type1002(), decode_type1004(), decode_type1010(), decode_type1012(), decode_type1019(), decode_type1020(), decode_type1041(), decode_type1042(), decode_type1044(), decode_type1045(), decode_type1046(), decode_type18(), decode_type19(), decode_WE(), decode_xf5raw(), decoderaw(), detslp_dop(), detslp_dop(), detslp_ll(), eci2ecef(), encode_lcltrop(), encode_type1020(), eph2clk(), eph2pos(), geph2clk(), geph2pos(), get_close_cbias(), get_close_clock(), get_close_orbit(), get_close_pbias(), get_close_trop(), get_cssr_latest_iono(), get_cssr_latest_trop(), get_iono_sta(), get_same_bias(), get_same_clock(), get_same_orbit(), get_same_trop(), get_trop_sta(), geterp(), gpst2utc(), has_find_collect(), has_input_file(), iers_mean_pole(), inputobs(), intpres(), intpres(), iondelay(), iontec(), locktime(), locktime_d(), nextobsb(), nextobsf(), outrnxevent(), pephclk(), pephpos(), pntpos(), postpos(), ppp_rtk_pos(), procpos(), readbsnx(), readftp(), readionexb(), readrnxclk(), relpos(), relposvrs(), reppath(), reppaths(), resdop(), resolve_halfc(), rtkpos(), satpos_ssr(), save_msm_obs(), sbsfastcorr(), sbsioncorr(), sbslongcorr(), scan_file(), screent(), screent_ttol(), searchpcv(), seleph(), selgeph(), selsat(), selseph(), seph2clk(), seph2pos(), setopt_sta(), settag(), showstat(), sort_solbuf(), sort_solstat(), sortobs(), spp_detslp(), sta_sel_iono(), stec_data(), sub_get_close_cssr(), sunmoonpos_eci(), tide_oload(), time2biast(), time2doy(), timeset(), trop_data(), tropmapf(), udbiass(), udfcb_sat(), udosb_sat(), udosb_station(), udsatcb(), udsatpb(), udstacb(), update_clas(), update_eph(), update_gal_has(), update_qzssl6d(), update_qzssl6e(), update_rtcm(), update_stat(), utc2gmst(), utc2gpst(), and write_trace_amb().

◆ timeget()

gtime_t timeget ( void )
extern

Get current time in UTC.

Returns
Current time in UTC

Definition at line 289 of file mrtk_time.c.

References epoch2time(), gpst2utc(), timeadd(), and timeoffset_.

Referenced by adjbdtweek(), adjday_glot(), adjgpsweek(), adjhour(), adjweek(), adjweek(), adjweek(), decode_rtcm3(), decode_type1019(), decode_type1020(), decode_type1041(), decode_type1042(), decode_type1044(), decode_type1045(), decode_type1046(), decodefile(), execses(), ftpthread(), GetWeek(), nextdltime(), openfile(), openfile_(), openftp(), outbsnxh(), readftp(), rtkopenstat(), rtksvrstart(), send_nmea(), strgettime(), strsvrthread(), swapsolstat(), timeset(), timestr_rnx(), traceopen(), and writefile().

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

◆ timereset()

void timereset ( void )
extern

Reset time offset to zero.

Definition at line 324 of file mrtk_time.c.

References timeoffset_.

Referenced by closefile_().

Here is the caller graph for this function:

◆ timeset()

void timeset ( gtime_t t)
extern

Set current time offset in UTC.

Parameters
[in]tCurrent time in UTC

Definition at line 318 of file mrtk_time.c.

References timediff(), timeget(), and timeoffset_.

Referenced by openfile_(), readfile(), and rtksvrthread().

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

◆ utc2gmst()

double utc2gmst ( gtime_t t,
double ut1_utc )
extern

Convert UTC to Greenwich Mean Sidereal Time.

Parameters
[in]tTime in UTC
[in]ut1_utcUT1-UTC correction (s)
Returns
GMST in radians

Definition at line 485 of file mrtk_time.c.

References epoch2time(), PI, time2sec(), timeadd(), and timediff().

Referenced by eci2ecef().

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

◆ utc2gpst()

gtime_t utc2gpst ( gtime_t t)
extern

Convert UTC to GPS time considering leap seconds.

Parameters
[in]tTime in UTC
Returns
Time in GPS time

Definition at line 440 of file mrtk_time.c.

References epoch2time(), leaps, timeadd(), and timediff().

Referenced by adjbdtweek(), adjday_glot(), adjgpsweek(), adjhour(), adjweek(), adjweek(), adjweek(), clas_osr_zdres(), decode_bnx_01_02(), decode_geph(), decode_gloephem(), decode_glostr_eph(), decode_NE(), decode_nmeagga(), decode_nmearmc(), decode_nmeazda(), decode_RD(), decode_RT(), decode_rtcm3(), decode_soltime(), decode_ss2llh(), decode_type1019(), decode_type1020(), decode_type1041(), decode_type1042(), decode_type1044(), decode_type1045(), decode_type1046(), decode_type18(), decode_type19(), decodefile(), eci2ecef(), ftpthread(), nextdltime(), openfile(), openfile_(), readftp(), readrnxobs(), readsp3b(), rtkopenstat(), rtksvrstart(), send_nmea(), strgettime(), strsvrthread(), swapsolstat(), tidedisp(), traceopen(), and writefile().

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

Variable Documentation

◆ bdt0

const double bdt0[] = {2006, 1, 1, 0, 0, 0}
static

BeiDou time reference epoch.

Definition at line 46 of file mrtk_time.c.

Referenced by bdt2time(), and time2bdt().

◆ gpst0

const double gpst0[] = {1980, 1, 6, 0, 0, 0}
static

GPS time reference epoch.

Definition at line 42 of file mrtk_time.c.

Referenced by decode_bnx_00(), decode_bnx_7f(), gpst2time(), and time2gpst().

◆ gst0

const double gst0[] = {1999, 8, 22, 0, 0, 0}
static

Galileo system time reference epoch.

Definition at line 44 of file mrtk_time.c.

Referenced by gst2time(), and time2gst().

◆ leaps

double leaps[64+1][7]
static
Initial value:
= {{2017, 1, 1, 0, 0, 0, -18},
{2015, 7, 1, 0, 0, 0, -17},
{2012, 7, 1, 0, 0, 0, -16},
{2009, 1, 1, 0, 0, 0, -15},
{2006, 1, 1, 0, 0, 0, -14},
{1999, 1, 1, 0, 0, 0, -13},
{1997, 7, 1, 0, 0, 0, -12},
{1996, 1, 1, 0, 0, 0, -11},
{1994, 7, 1, 0, 0, 0, -10},
{1993, 7, 1, 0, 0, 0, -9},
{1992, 7, 1, 0, 0, 0, -8},
{1991, 1, 1, 0, 0, 0, -7},
{1990, 1, 1, 0, 0, 0, -6},
{1988, 1, 1, 0, 0, 0, -5},
{1985, 7, 1, 0, 0, 0, -4},
{1983, 7, 1, 0, 0, 0, -3},
{1982, 7, 1, 0, 0, 0, -2},
{1981, 7, 1, 0, 0, 0, -1},
{0}}

Leap seconds table (y,m,d,h,m,s,utc-gpst).

Definition at line 49 of file mrtk_time.c.

Referenced by decode_type14(), gpst2utc(), out_leaps(), read_leaps(), read_leaps_text(), read_leaps_usno(), and utc2gpst().

◆ timeoffset_

double timeoffset_ = 0.0
static

Time offset (s) for timeget/timeset.

Definition at line 74 of file mrtk_time.c.

Referenced by timeget(), timereset(), and timeset().