mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-24 20:17:39 +00:00 
			
		
		
		
	Write RINEX files for triple-band, dual-system receiver
This commit is contained in:
		| @@ -380,6 +380,14 @@ Rtklib_Pvt::Rtklib_Pvt(ConfigurationInterface* configuration, | |||||||
|         { |         { | ||||||
|             pvt_output_parameters.type_of_receiver = 603;  // Beidou B3I + GPS L2C + GLONASS L2 C/A |             pvt_output_parameters.type_of_receiver = 603;  // Beidou B3I + GPS L2C + GLONASS L2 C/A | ||||||
|         } |         } | ||||||
|  |     if ((gps_1C_count != 0) && (gps_2S_count != 0) && (gps_L5_count != 0) && (gal_1B_count == 0) && (gal_E5a_count == 0) && (gal_E5b_count == 0) && (glo_1G_count == 0) && (glo_2G_count == 0) && (bds_B1_count == 0) && (bds_B3_count == 0)) | ||||||
|  |         { | ||||||
|  |             pvt_output_parameters.type_of_receiver = 1000;  // GPS L1 + GPS L2C + GPS L5 | ||||||
|  |         } | ||||||
|  |     if ((gps_1C_count != 0) && (gps_2S_count != 0) && (gps_L5_count != 0) && (gal_1B_count != 0) && (gal_E5a_count != 0) && (gal_E5b_count == 0) && (glo_1G_count == 0) && (glo_2G_count == 0) && (bds_B1_count == 0) && (bds_B3_count == 0)) | ||||||
|  |         { | ||||||
|  |             pvt_output_parameters.type_of_receiver = 1001;  // GPS L1 + Galileo E1B + GPS L2C + GPS L5 + Galileo E5a | ||||||
|  |         } | ||||||
|  |  | ||||||
|     // RTKLIB PVT solver options |     // RTKLIB PVT solver options | ||||||
|     // Settings 1 |     // Settings 1 | ||||||
|   | |||||||
| @@ -1107,6 +1107,9 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg) | |||||||
|                                         case 33:  // L1+E1+E5a |                                         case 33:  // L1+E1+E5a | ||||||
|                                             rp->log_rinex_nav(rp->navMixFile, new_eph, new_gal_eph); |                                             rp->log_rinex_nav(rp->navMixFile, new_eph, new_gal_eph); | ||||||
|                                             break; |                                             break; | ||||||
|  |                                         case 1001:  // L1+E1+L2+L5+E5a | ||||||
|  |                                             rp->log_rinex_nav(rp->navMixFile, new_eph, new_gal_eph); | ||||||
|  |                                             break; | ||||||
|                                         default: |                                         default: | ||||||
|                                             break; |                                             break; | ||||||
|                                         } |                                         } | ||||||
| @@ -1297,6 +1300,9 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg) | |||||||
|                                         case 33:  // L1+E1+E5a |                                         case 33:  // L1+E1+E5a | ||||||
|                                             rp->log_rinex_nav(rp->navMixFile, new_eph, new_gal_eph); |                                             rp->log_rinex_nav(rp->navMixFile, new_eph, new_gal_eph); | ||||||
|                                             break; |                                             break; | ||||||
|  |                                         case 1001:  // L1+E1+L2+L5+E5a | ||||||
|  |                                             rp->log_rinex_nav(rp->navMixFile, new_eph, new_gal_eph); | ||||||
|  |                                             break; | ||||||
|                                         default: |                                         default: | ||||||
|                                             break; |                                             break; | ||||||
|                                         } |                                         } | ||||||
| @@ -2235,6 +2241,8 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item | |||||||
|                                      *    608   |  BeiDou B3I + GPS L1 C/A + Galileo E1B + BeiDou B1I |                                      *    608   |  BeiDou B3I + GPS L1 C/A + Galileo E1B + BeiDou B1I | ||||||
|                                      *    609   |  BeiDou B3I + GPS L1 C/A + Galileo E1B + GLONASS L1 C/A |                                      *    609   |  BeiDou B3I + GPS L1 C/A + Galileo E1B + GLONASS L1 C/A | ||||||
|                                      *    610   |  BeiDou B3I + GPS L1 C/A + Galileo E1B + GLONASS L1 C/A + BeiDou B1I |                                      *    610   |  BeiDou B3I + GPS L1 C/A + Galileo E1B + GLONASS L1 C/A + BeiDou B1I | ||||||
|  |                                      *   1000   |  GPS L1 C/A + GPS L2C + GPS L5 | ||||||
|  |                                      *   1001   |  GPS L1 C/A + Galileo E1B + GPS L2C + GPS L5 + Galileo E5a | ||||||
|                                      */ |                                      */ | ||||||
|  |  | ||||||
|                                     // ####################### RINEX FILES ################# |                                     // ####################### RINEX FILES ################# | ||||||
| @@ -2629,6 +2637,18 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item | |||||||
|                                                                 } |                                                                 } | ||||||
|  |  | ||||||
|                                                             break; |                                                             break; | ||||||
|  |                                                         case 1001:  // GPS L1 C/A + Galileo E1B + GPS L2C + GPS L5 + Galileo E5a | ||||||
|  |                                                             if ((galileo_ephemeris_iter != d_user_pvt_solver->galileo_ephemeris_map.cend()) and | ||||||
|  |                                                                 (gps_ephemeris_iter != d_user_pvt_solver->gps_ephemeris_map.cend()) and | ||||||
|  |                                                                 (gps_cnav_ephemeris_iter != d_user_pvt_solver->gps_cnav_ephemeris_map.cend())) | ||||||
|  |                                                                 { | ||||||
|  |                                                                     std::string gal_signal("1B 5X"); | ||||||
|  |                                                                     std::string gps_signal("1C 2S L5"); | ||||||
|  |                                                                     rp->rinex_obs_header(rp->obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, galileo_ephemeris_iter->second, d_rx_time, gps_signal, gal_signal); | ||||||
|  |                                                                     rp->rinex_nav_header(rp->navMixFile, d_user_pvt_solver->gps_iono, d_user_pvt_solver->gps_utc_model, gps_ephemeris_iter->second, d_user_pvt_solver->galileo_iono, d_user_pvt_solver->galileo_utc_model); | ||||||
|  |                                                                     b_rinex_header_written = true;  // do not write header anymore | ||||||
|  |                                                                 } | ||||||
|  |                                                             break; | ||||||
|                                                         default: |                                                         default: | ||||||
|                                                             break; |                                                             break; | ||||||
|                                                         } |                                                         } | ||||||
| @@ -2950,6 +2970,20 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item | |||||||
|                                                                             b_rinex_header_updated = true; |                                                                             b_rinex_header_updated = true; | ||||||
|                                                                         } |                                                                         } | ||||||
|                                                                     break; |                                                                     break; | ||||||
|  |                                                                 case 1001:  // GPS L1 C/A + Galileo E1B + GPS L2C + GPS L5 + Galileo E5a | ||||||
|  |                                                                     if ((galileo_ephemeris_iter != d_user_pvt_solver->galileo_ephemeris_map.cend()) and | ||||||
|  |                                                                         (gps_ephemeris_iter != d_user_pvt_solver->gps_ephemeris_map.cend()) and | ||||||
|  |                                                                         (gps_cnav_ephemeris_iter != d_user_pvt_solver->gps_cnav_ephemeris_map.cend())) | ||||||
|  |                                                                         { | ||||||
|  |                                                                             rp->log_rinex_obs(rp->obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, galileo_ephemeris_iter->second, d_rx_time, gnss_observables_map); | ||||||
|  |                                                                         } | ||||||
|  |                                                                     if (!b_rinex_header_updated and (d_user_pvt_solver->gps_utc_model.d_A0 != 0) and (d_user_pvt_solver->galileo_utc_model.A0_6 != 0)) | ||||||
|  |                                                                         { | ||||||
|  |                                                                             rp->update_obs_header(rp->obsFile, d_user_pvt_solver->gps_utc_model); | ||||||
|  |                                                                             rp->update_nav_header(rp->navMixFile, d_user_pvt_solver->gps_iono, d_user_pvt_solver->gps_utc_model, gps_ephemeris_iter->second, d_user_pvt_solver->galileo_iono, d_user_pvt_solver->galileo_utc_model); | ||||||
|  |                                                                             b_rinex_header_updated = true; | ||||||
|  |                                                                         } | ||||||
|  |                                                                     break; | ||||||
|                                                                 default: |                                                                 default: | ||||||
|                                                                     break; |                                                                     break; | ||||||
|                                                                 } |                                                                 } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez