mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-11-03 16:53:04 +00:00 
			
		
		
		
	Fix RX time correction in Galileo-only or in mix GPS and Galileo configurations
This commit is contained in:
		@@ -961,15 +961,18 @@ bool Rtklib_Solver::get_PVT(const std::map<int, Gnss_Synchro> &gnss_observables_
 | 
			
		||||
                    rx_position_and_time(0) = pvt_sol.rr[0];  // [m]
 | 
			
		||||
                    rx_position_and_time(1) = pvt_sol.rr[1];  // [m]
 | 
			
		||||
                    rx_position_and_time(2) = pvt_sol.rr[2];  // [m]
 | 
			
		||||
 | 
			
		||||
                    //todo: fix this ambiguity in the RTKLIB units in receiver clock offset!
 | 
			
		||||
                    if (rtk_.opt.mode == PMODE_SINGLE)
 | 
			
		||||
                        {
 | 
			
		||||
                            rx_position_and_time(3) = pvt_sol.dtr[0];  // if the RTKLIB solver is set to SINGLE, the dtr is already expressed in [s]
 | 
			
		||||
                            // if the RTKLIB solver is set to SINGLE, the dtr is already expressed in [s]
 | 
			
		||||
                            // add also the clock offset from gps to galileo (pvt_sol.dtr[2])
 | 
			
		||||
                            rx_position_and_time(3) = pvt_sol.dtr[0] + pvt_sol.dtr[2];
 | 
			
		||||
                        }
 | 
			
		||||
                    else
 | 
			
		||||
                        {
 | 
			
		||||
                            rx_position_and_time(3) = pvt_sol.dtr[0] / GPS_C_M_S;  // the receiver clock offset is expressed in [meters], so we convert it into [s]
 | 
			
		||||
                            // the receiver clock offset is expressed in [meters], so we convert it into [s]
 | 
			
		||||
                            // add also the clock offset from gps to galileo (pvt_sol.dtr[2])
 | 
			
		||||
                            rx_position_and_time(3) = pvt_sol.dtr[2] + pvt_sol.dtr[0] / GPS_C_M_S;
 | 
			
		||||
                        }
 | 
			
		||||
                    this->set_rx_pos(rx_position_and_time.rows(0, 2));  // save ECEF position for the next iteration
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user