mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 07:13:03 +00:00 
			
		
		
		
	Enable RINEX printer for more combinations of signals
This commit is contained in:
		| @@ -179,24 +179,20 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration, | ||||
|     int glo_1G_count = configuration->property("Channels_1G.count", 0); | ||||
|     int glo_2G_count = configuration->property("Channels_2G.count", 0); | ||||
|  | ||||
|     //unsigned int type_of_receiver = 0; | ||||
|  | ||||
|     // *******************WARNING!!!!!!!*********** | ||||
|     // GPS L5 only configurable for single frequency, single system at the moment!!!!!! | ||||
|     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)) pvt_output_parameters.type_of_receiver = 1; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 1;  // L1 | ||||
|     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)) pvt_output_parameters.type_of_receiver = 2; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 3; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 4; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 5; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 3;  // 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)) pvt_output_parameters.type_of_receiver = 4;  // E1 | ||||
|     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)) pvt_output_parameters.type_of_receiver = 5;  // E5a | ||||
|     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)) pvt_output_parameters.type_of_receiver = 6; | ||||
|  | ||||
|     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)) pvt_output_parameters.type_of_receiver = 7; | ||||
|     //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)) pvt_output_parameters.type_of_receiver = 8; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 9; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 8;  // L1+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)) pvt_output_parameters.type_of_receiver = 9;  // L1+E1 | ||||
|     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)) pvt_output_parameters.type_of_receiver = 10; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 11; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 12; | ||||
|     //if( (gps_1C_count == 0) && (gps_2S_count == 0)  && (gal_1B_count != 0) && (gal_E5a_count == 0) && (gal_E5b_count == 0)) pvt_output_parameters.type_of_receiver = 13; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 13;  // L5+E5a | ||||
|     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)) pvt_output_parameters.type_of_receiver = 14; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 15; | ||||
|     //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)) pvt_output_parameters.type_of_receiver = 16; | ||||
| @@ -215,11 +211,14 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration, | ||||
|     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)) pvt_output_parameters.type_of_receiver = 29; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 30; | ||||
|     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)) pvt_output_parameters.type_of_receiver = 31; | ||||
|     //RTKLIB PVT solver options | ||||
|  | ||||
|     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)) pvt_output_parameters.type_of_receiver = 32;  // L1+E1+L5+E5a | ||||
|  | ||||
|     // RTKLIB PVT solver options | ||||
|     // Settings 1 | ||||
|     int positioning_mode = -1; | ||||
|     std::string default_pos_mode("Single"); | ||||
|     std::string positioning_mode_str = configuration->property(role + ".positioning_mode", default_pos_mode); /* (PMODE_XXX) see src/algorithms/libs/rtklib/rtklib.h */ | ||||
|     std::string positioning_mode_str = configuration->property(role + ".positioning_mode", default_pos_mode);  //  (PMODE_XXX) see src/algorithms/libs/rtklib/rtklib.h | ||||
|     if (positioning_mode_str.compare("Single") == 0) positioning_mode = PMODE_SINGLE; | ||||
|     if (positioning_mode_str.compare("Static") == 0) positioning_mode = PMODE_STATIC; | ||||
|     if (positioning_mode_str.compare("Kinematic") == 0) positioning_mode = PMODE_KINEMA; | ||||
|   | ||||
| @@ -1092,7 +1092,8 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                         { | ||||
|                                                             if (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend()) | ||||
|                                                                 { | ||||
|                                                                     rp->rinex_obs_header(rp->obsFile, gps_cnav_ephemeris_iter->second, d_rx_time); | ||||
|                                                                     std::string signal("2S"); | ||||
|                                                                     rp->rinex_obs_header(rp->obsFile, gps_cnav_ephemeris_iter->second, d_rx_time, signal); | ||||
|                                                                     rp->rinex_nav_header(rp->navFile, d_ls_pvt->gps_cnav_iono, d_ls_pvt->gps_cnav_utc_model); | ||||
|                                                                     b_rinex_header_written = true;  // do not write header anymore | ||||
|                                                                 } | ||||
| @@ -1101,7 +1102,8 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                         { | ||||
|                                                             if (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend()) | ||||
|                                                                 { | ||||
|                                                                     rp->rinex_obs_header(rp->obsFile, gps_cnav_ephemeris_iter->second, d_rx_time); | ||||
|                                                                     std::string signal("L5"); | ||||
|                                                                     rp->rinex_obs_header(rp->obsFile, gps_cnav_ephemeris_iter->second, d_rx_time, signal); | ||||
|                                                                     rp->rinex_nav_header(rp->navFile, d_ls_pvt->gps_cnav_iono, d_ls_pvt->gps_cnav_utc_model); | ||||
|                                                                     b_rinex_header_written = true;  // do not write header anymore | ||||
|                                                                 } | ||||
| @@ -1139,12 +1141,22 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                         { | ||||
|                                                             if ((gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.cend()) and (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend())) | ||||
|                                                                 { | ||||
|                                                                     rp->rinex_obs_header(rp->obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, d_rx_time); | ||||
|                                                                     std::string signal("1C 2S"); | ||||
|                                                                     rp->rinex_obs_header(rp->obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, d_rx_time, signal); | ||||
|                                                                     rp->rinex_nav_header(rp->navFile, d_ls_pvt->gps_iono, d_ls_pvt->gps_utc_model); | ||||
|                                                                     b_rinex_header_written = true;  // do not write header anymore | ||||
|                                                                 } | ||||
|                                                         } | ||||
|                                                     if (type_of_rx == 8)  // GPS L1 + GPS L5 | ||||
|                                                         { | ||||
|                                                             if ((gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.cend()) and (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend())) | ||||
|                                                                 { | ||||
|                                                                     std::string signal("1C L5"); | ||||
|                                                                     rp->rinex_obs_header(rp->obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, d_rx_time, signal); | ||||
|                                                                     rp->rinex_nav_header(rp->navFile, d_ls_pvt->gps_iono, d_ls_pvt->gps_utc_model); | ||||
|                                                                     b_rinex_header_written = true;  // do not write header anymore | ||||
|                                                                 } | ||||
|                                                         } | ||||
|  | ||||
|                                                     if (type_of_rx == 9)  // GPS L1 C/A + Galileo E1B | ||||
|                                                         { | ||||
|                                                             if ((galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.cend()) and (gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.cend())) | ||||
| @@ -1175,6 +1187,17 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                                     b_rinex_header_written = true;  // do not write header anymore | ||||
|                                                                 } | ||||
|                                                         } | ||||
|                                                     if (type_of_rx == 13)  // L5+E5a | ||||
|                                                         { | ||||
|                                                             if ((galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.cend()) and (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend())) | ||||
|                                                                 { | ||||
|                                                                     std::string gal_signal("5X"); | ||||
|                                                                     std::string gps_signal("L5"); | ||||
|                                                                     rp->rinex_obs_header(rp->obsFile, gps_cnav_ephemeris_iter->second, galileo_ephemeris_iter->second, d_rx_time, gps_signal, gal_signal); | ||||
|                                                                     rp->rinex_nav_header(rp->navMixFile, d_ls_pvt->gps_cnav_iono, d_ls_pvt->gps_cnav_utc_model, d_ls_pvt->galileo_iono, d_ls_pvt->galileo_utc_model); | ||||
|                                                                     b_rinex_header_written = true;  // do not write header anymore | ||||
|                                                                 } | ||||
|                                                         } | ||||
|                                                     if (type_of_rx == 14)  //  Galileo E1B + Galileo E5a | ||||
|                                                         { | ||||
|                                                             if ((galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.cend())) | ||||
| @@ -1265,7 +1288,7 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                         } | ||||
|                                                     if (type_of_rx == 29)  // GPS L1 C/A + GLONASS L2 C/A | ||||
|                                                         { | ||||
|                                                             if ((glonass_gnav_ephemeris_iter != d_ls_pvt->glonass_gnav_ephemeris_map.cend()) && (gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.cend())) | ||||
|                                                             if ((glonass_gnav_ephemeris_iter != d_ls_pvt->glonass_gnav_ephemeris_map.cend()) and (gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.cend())) | ||||
|                                                                 { | ||||
|                                                                     std::string glo_signal("2G"); | ||||
|                                                                     rp->rinex_obs_header(rp->obsFile, gps_ephemeris_iter->second, glonass_gnav_ephemeris_iter->second, d_rx_time, glo_signal); | ||||
| @@ -1281,7 +1304,7 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                         } | ||||
|                                                     if (type_of_rx == 30)  //  Galileo E1B + GLONASS L2 C/A | ||||
|                                                         { | ||||
|                                                             if ((glonass_gnav_ephemeris_iter != d_ls_pvt->glonass_gnav_ephemeris_map.cend()) && (galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.cend())) | ||||
|                                                             if ((glonass_gnav_ephemeris_iter != d_ls_pvt->glonass_gnav_ephemeris_map.cend()) and (galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.cend())) | ||||
|                                                                 { | ||||
|                                                                     std::string glo_signal("2G"); | ||||
|                                                                     std::string gal_signal("1B"); | ||||
| @@ -1292,7 +1315,7 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                         } | ||||
|                                                     if (type_of_rx == 31)  // GPS L2C + GLONASS L2 C/A | ||||
|                                                         { | ||||
|                                                             if ((glonass_gnav_ephemeris_iter != d_ls_pvt->glonass_gnav_ephemeris_map.cend()) && (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend())) | ||||
|                                                             if ((glonass_gnav_ephemeris_iter != d_ls_pvt->glonass_gnav_ephemeris_map.cend()) and (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend())) | ||||
|                                                                 { | ||||
|                                                                     std::string glo_signal("2G"); | ||||
|                                                                     rp->rinex_obs_header(rp->obsFile, gps_cnav_ephemeris_iter->second, glonass_gnav_ephemeris_iter->second, d_rx_time, glo_signal); | ||||
| @@ -1300,6 +1323,20 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                                     b_rinex_header_written = true;  // do not write header anymore | ||||
|                                                                 } | ||||
|                                                         } | ||||
|  | ||||
|                                                     if (type_of_rx == 32)  // L1+E1+L5+E5a | ||||
|                                                         { | ||||
|                                                             if ((gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.cend()) && | ||||
|                                                                 (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend()) && | ||||
|                                                                 (galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.cend())) | ||||
|                                                                 { | ||||
|                                                                     std::string gal_signal("1B 5X"); | ||||
|                                                                     std::string gps_signal("1C L5"); | ||||
|                                                                     rp->rinex_obs_header(rp->obsFile, gps_cnav_ephemeris_iter->second, galileo_ephemeris_iter->second, d_rx_time, gps_signal, gal_signal); | ||||
|                                                                     rp->rinex_nav_header(rp->navMixFile, d_ls_pvt->gps_iono, d_ls_pvt->gps_utc_model, d_ls_pvt->galileo_iono, d_ls_pvt->galileo_utc_model); | ||||
|                                                                     b_rinex_header_written = true;  // do not write header anymore | ||||
|                                                                 } | ||||
|                                                         } | ||||
|                                                 } | ||||
|  | ||||
|  | ||||
| @@ -1327,10 +1364,18 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                                 { | ||||
|                                                                     rp->log_rinex_nav(rp->navFile, d_ls_pvt->gps_cnav_ephemeris_map); | ||||
|                                                                 } | ||||
|                                                             if (type_of_rx == 8)  // L1+L5 | ||||
|                                                                 { | ||||
|                                                                     rp->log_rinex_nav(rp->navFile, d_ls_pvt->gps_ephemeris_map); | ||||
|                                                                 } | ||||
|                                                             if ((type_of_rx == 9) or (type_of_rx == 10) or (type_of_rx == 11))  // GPS L1 C/A + Galileo | ||||
|                                                                 { | ||||
|                                                                     rp->log_rinex_nav(rp->navMixFile, d_ls_pvt->gps_ephemeris_map, d_ls_pvt->galileo_ephemeris_map); | ||||
|                                                                 } | ||||
|                                                             if (type_of_rx == 13)  //  L5+E5a | ||||
|                                                                 { | ||||
|                                                                     rp->log_rinex_nav(rp->navFile, d_ls_pvt->gps_cnav_ephemeris_map, d_ls_pvt->galileo_ephemeris_map); | ||||
|                                                                 } | ||||
|                                                             if ((type_of_rx == 14) or (type_of_rx == 15))  //  Galileo E1B + Galileo E5a | ||||
|                                                                 { | ||||
|                                                                     rp->log_rinex_nav(rp->navGalFile, d_ls_pvt->galileo_ephemeris_map); | ||||
| @@ -1375,6 +1420,10 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                                 { | ||||
|                                                                     rp->log_rinex_nav(rp->navMixFile, d_ls_pvt->gps_cnav_ephemeris_map, d_ls_pvt->glonass_gnav_ephemeris_map); | ||||
|                                                                 } | ||||
|                                                             if (type_of_rx == 32)  // L1+E1+L5+E5a | ||||
|                                                                 { | ||||
|                                                                     rp->log_rinex_nav(rp->navMixFile, d_ls_pvt->gps_ephemeris_map, d_ls_pvt->galileo_ephemeris_map); | ||||
|                                                                 } | ||||
|                                                         } | ||||
|                                                     galileo_ephemeris_iter = d_ls_pvt->galileo_ephemeris_map.cbegin(); | ||||
|                                                     gps_ephemeris_iter = d_ls_pvt->gps_ephemeris_map.cbegin(); | ||||
| @@ -1475,6 +1524,27 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                                             b_rinex_header_updated = true; | ||||
|                                                                         } | ||||
|                                                                 } | ||||
|                                                             if (type_of_rx == 8)  // L1+L5 | ||||
|                                                                 { | ||||
|                                                                     if ((gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.end()) and (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.end())) | ||||
|                                                                         { | ||||
|                                                                             rp->log_rinex_obs(rp->obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, d_rx_time, gnss_observables_map); | ||||
|                                                                         } | ||||
|                                                                     if (!b_rinex_header_updated and ((d_ls_pvt->gps_cnav_utc_model.d_A0 != 0) or (d_ls_pvt->gps_utc_model.d_A0 != 0))) | ||||
|                                                                         { | ||||
|                                                                             if (d_ls_pvt->gps_cnav_utc_model.d_A0 != 0) | ||||
|                                                                                 { | ||||
|                                                                                     rp->update_obs_header(rp->obsFile, d_ls_pvt->gps_cnav_utc_model); | ||||
|                                                                                     rp->update_nav_header(rp->navMixFile, d_ls_pvt->gps_cnav_utc_model, d_ls_pvt->gps_cnav_iono); | ||||
|                                                                                 } | ||||
|                                                                             else | ||||
|                                                                                 { | ||||
|                                                                                     rp->update_obs_header(rp->obsFile, d_ls_pvt->gps_utc_model); | ||||
|                                                                                     rp->update_nav_header(rp->navMixFile, d_ls_pvt->gps_utc_model, d_ls_pvt->gps_iono); | ||||
|                                                                                 } | ||||
|                                                                             b_rinex_header_updated = true; | ||||
|                                                                         } | ||||
|                                                                 } | ||||
|                                                             if (type_of_rx == 9)  // GPS L1 C/A + Galileo E1B | ||||
|                                                                 { | ||||
|                                                                     if ((galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.end()) and (gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.end())) | ||||
| @@ -1488,6 +1558,19 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                                             b_rinex_header_updated = true; | ||||
|                                                                         } | ||||
|                                                                 } | ||||
|                                                             if (type_of_rx == 13)  // L5+E5a | ||||
|                                                                 { | ||||
|                                                                     if ((gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.end()) and (galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.end())) | ||||
|                                                                         { | ||||
|                                                                             rp->log_rinex_obs(rp->obsFile, gps_cnav_ephemeris_iter->second, galileo_ephemeris_iter->second, d_rx_time, gnss_observables_map); | ||||
|                                                                         } | ||||
|                                                                     if (!b_rinex_header_updated && (d_ls_pvt->gps_cnav_utc_model.d_A0 != 0) && (d_ls_pvt->galileo_utc_model.A0_6 != 0)) | ||||
|                                                                         { | ||||
|                                                                             rp->update_obs_header(rp->obsFile, d_ls_pvt->gps_cnav_utc_model); | ||||
|                                                                             rp->update_nav_header(rp->navMixFile, d_ls_pvt->gps_cnav_utc_model, d_ls_pvt->gps_cnav_iono, d_ls_pvt->galileo_iono, d_ls_pvt->galileo_utc_model); | ||||
|                                                                             b_rinex_header_updated = true;  // do not write header anymore | ||||
|                                                                         } | ||||
|                                                                 } | ||||
|                                                             if (type_of_rx == 14)  // Galileo E1B + Galileo E5a | ||||
|                                                                 { | ||||
|                                                                     if (galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.end()) | ||||
| @@ -1611,7 +1694,7 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                                         { | ||||
|                                                                             rp->log_rinex_obs(rp->obsFile, galileo_ephemeris_iter->second, glonass_gnav_ephemeris_iter->second, d_rx_time, gnss_observables_map); | ||||
|                                                                         } | ||||
|                                                                     if (!b_rinex_header_updated && (d_ls_pvt->galileo_utc_model.A0_6 != 0)) | ||||
|                                                                     if (!b_rinex_header_updated and (d_ls_pvt->galileo_utc_model.A0_6 != 0)) | ||||
|                                                                         { | ||||
|                                                                             rp->update_obs_header(rp->obsFile, d_ls_pvt->galileo_utc_model); | ||||
|                                                                             rp->update_nav_header(rp->navMixFile, d_ls_pvt->galileo_iono, d_ls_pvt->galileo_utc_model, d_ls_pvt->glonass_gnav_utc_model, d_ls_pvt->glonass_gnav_almanac); | ||||
| @@ -1620,17 +1703,38 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                                 } | ||||
|                                                             if (type_of_rx == 31)  // GPS L2C + GLONASS L2 C/A | ||||
|                                                                 { | ||||
|                                                                     if ((glonass_gnav_ephemeris_iter != d_ls_pvt->glonass_gnav_ephemeris_map.end()) && (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.end())) | ||||
|                                                                     if ((glonass_gnav_ephemeris_iter != d_ls_pvt->glonass_gnav_ephemeris_map.end()) and (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.end())) | ||||
|                                                                         { | ||||
|                                                                             rp->log_rinex_obs(rp->obsFile, gps_cnav_ephemeris_iter->second, glonass_gnav_ephemeris_iter->second, d_rx_time, gnss_observables_map); | ||||
|                                                                         } | ||||
|                                                                     if (!b_rinex_header_updated && (d_ls_pvt->gps_cnav_utc_model.d_A0 != 0)) | ||||
|                                                                     if (!b_rinex_header_updated and (d_ls_pvt->gps_cnav_utc_model.d_A0 != 0)) | ||||
|                                                                         { | ||||
|                                                                             rp->update_obs_header(rp->obsFile, d_ls_pvt->gps_cnav_utc_model); | ||||
|                                                                             rp->update_nav_header(rp->navMixFile, d_ls_pvt->gps_cnav_iono, d_ls_pvt->gps_cnav_utc_model, d_ls_pvt->glonass_gnav_utc_model, d_ls_pvt->glonass_gnav_almanac); | ||||
|                                                                             b_rinex_header_updated = true;  // do not write header anymore | ||||
|                                                                         } | ||||
|                                                                 } | ||||
|                                                             if (type_of_rx == 32)  // L1+E1+L5+E5a | ||||
|                                                                 { | ||||
|                                                                     if ((gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.end()) and (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.end()) and (galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.end())) | ||||
|                                                                         { | ||||
|                                                                             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_ls_pvt->gps_cnav_utc_model.d_A0 != 0) or (d_ls_pvt->gps_utc_model.d_A0 != 0)) and (d_ls_pvt->galileo_utc_model.A0_6 != 0)) | ||||
|                                                                         { | ||||
|                                                                             if (d_ls_pvt->gps_cnav_utc_model.d_A0 != 0) | ||||
|                                                                                 { | ||||
|                                                                                     rp->update_obs_header(rp->obsFile, d_ls_pvt->gps_cnav_utc_model); | ||||
|                                                                                     rp->update_nav_header(rp->navMixFile, d_ls_pvt->gps_cnav_utc_model, d_ls_pvt->gps_cnav_iono, d_ls_pvt->galileo_iono, d_ls_pvt->galileo_utc_model); | ||||
|                                                                                 } | ||||
|                                                                             else | ||||
|                                                                                 { | ||||
|                                                                                     rp->update_obs_header(rp->obsFile, d_ls_pvt->gps_utc_model); | ||||
|                                                                                     rp->update_nav_header(rp->navMixFile, d_ls_pvt->gps_iono, d_ls_pvt->gps_utc_model, d_ls_pvt->galileo_iono, d_ls_pvt->galileo_utc_model); | ||||
|                                                                                 } | ||||
|                                                                             b_rinex_header_updated = true;  // do not write header anymore | ||||
|                                                                         } | ||||
|                                                                 } | ||||
|                                                         } | ||||
|                                                 } | ||||
|                                         } | ||||
| @@ -1693,7 +1797,7 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                                     gps_ephemeris_iter = d_ls_pvt->gps_ephemeris_map.cbegin(); | ||||
|                                                                     std::map<int, Gps_CNAV_Ephemeris>::const_iterator gps_cnav_ephemeris_iter; | ||||
|                                                                     gps_cnav_ephemeris_iter = d_ls_pvt->gps_cnav_ephemeris_map.cbegin(); | ||||
|                                                                     if ((gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.cend()) && (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend())) | ||||
|                                                                     if ((gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.cend()) and (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend())) | ||||
|                                                                         { | ||||
|                                                                             d_rtcm_printer->Print_Rtcm_MSM(7, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, {}, {}, d_rx_time, gnss_observables_map, 0, 0, 0, 0, 0); | ||||
|                                                                         } | ||||
| @@ -2086,7 +2190,7 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                             std::map<int, Gps_Ephemeris>::const_iterator gps_ephemeris_iter = d_ls_pvt->gps_ephemeris_map.cbegin(); | ||||
|                                                             std::map<int, Gps_CNAV_Ephemeris>::const_iterator gps_cnav_ephemeris_iter = d_ls_pvt->gps_cnav_ephemeris_map.cbegin(); | ||||
|  | ||||
|                                                             if ((gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.cend()) && (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend())) | ||||
|                                                             if ((gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.cend()) and (gps_cnav_ephemeris_iter != d_ls_pvt->gps_cnav_ephemeris_map.cend())) | ||||
|                                                                 { | ||||
|                                                                     d_rtcm_printer->Print_Rtcm_MSM(7, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, {}, {}, d_rx_time, gnss_observables_map, 0, 0, 0, 0, 0); | ||||
|                                                                 } | ||||
| @@ -2139,12 +2243,12 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item | ||||
|                                                                     i++; | ||||
|                                                                 } | ||||
|  | ||||
|                                                             if (gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.end() && (d_rtcm_MT1077_rate_ms != 0)) | ||||
|                                                             if (gps_ephemeris_iter != d_ls_pvt->gps_ephemeris_map.end() and (d_rtcm_MT1077_rate_ms != 0)) | ||||
|                                                                 { | ||||
|                                                                     d_rtcm_printer->Print_Rtcm_MSM(7, gps_ephemeris_iter->second, {}, {}, {}, d_rx_time, gnss_observables_map, 0, 0, 0, 0, 0); | ||||
|                                                                 } | ||||
|  | ||||
|                                                             if (galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.end() && (d_rtcm_MT1097_rate_ms != 0)) | ||||
|                                                             if (galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.end() and (d_rtcm_MT1097_rate_ms != 0)) | ||||
|                                                                 { | ||||
|                                                                     d_rtcm_printer->Print_Rtcm_MSM(7, {}, {}, galileo_ephemeris_iter->second, {}, d_rx_time, gnss_observables_map, 0, 0, 0, 0, 0); | ||||
|                                                                 } | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -113,6 +113,11 @@ public: | ||||
|      */ | ||||
|     void rinex_nav_header(std::fstream& out, const Gps_Iono& gps_iono, const Gps_Utc_Model& gps_utc_model, const Galileo_Iono& galileo_iono, const Galileo_Utc_Model& galileo_utc_model); | ||||
|  | ||||
|     /*! | ||||
|      *  \brief Generates the Mixed (GPS CNAV/Galileo) Navigation Data header | ||||
|      */ | ||||
|     void rinex_nav_header(std::fstream& out, const Gps_CNAV_Iono& iono, const Gps_CNAV_Utc_Model& utc_model, const Galileo_Iono& galileo_iono, const Galileo_Utc_Model& galileo_utc_model); | ||||
|  | ||||
|     /*! | ||||
|      *  \brief Generates the GLONASS L1, L2 C/A Navigation Data header | ||||
|      */ | ||||
| @@ -141,12 +146,12 @@ public: | ||||
|     /*! | ||||
|      *  \brief Generates the GPS L2 Observation data header | ||||
|      */ | ||||
|     void rinex_obs_header(std::fstream& out, const Gps_CNAV_Ephemeris& eph, const double d_TOW_first_observation); | ||||
|     void rinex_obs_header(std::fstream& out, const Gps_CNAV_Ephemeris& eph, const double d_TOW_first_observation, const std::string gps_bands = "2S"); | ||||
|  | ||||
|     /*! | ||||
|      *  \brief Generates the dual frequency GPS L1 & L2 Observation data header | ||||
|      *  \brief Generates the dual frequency GPS L1 & L2/L5 Observation data header | ||||
|      */ | ||||
|     void rinex_obs_header(std::fstream& out, const Gps_Ephemeris& eph, const Gps_CNAV_Ephemeris& eph_cnav, const double d_TOW_first_observation); | ||||
|     void rinex_obs_header(std::fstream& out, const Gps_Ephemeris& eph, const Gps_CNAV_Ephemeris& eph_cnav, const double d_TOW_first_observation, const std::string gps_bands = "1C 2S"); | ||||
|  | ||||
|     /*! | ||||
|      *  \brief Generates the Galileo Observation data header. Example: bands("1B"), bands("1B 5X"), bands("5X"), ... Default: "1B". | ||||
| @@ -158,6 +163,16 @@ public: | ||||
|      */ | ||||
|     void rinex_obs_header(std::fstream& out, const Gps_Ephemeris& gps_eph, const Galileo_Ephemeris& galileo_eph, const double d_TOW_first_observation, const std::string galileo_bands = "1B"); | ||||
|  | ||||
|     /*! | ||||
|      *  \brief Generates the Mixed (GPS/Galileo) Observation data header. Example: galileo_bands("1B"), galileo_bands("1B 5X"), galileo_bands("5X"), ... Default: "1B". | ||||
|      */ | ||||
|     void rinex_obs_header(std::fstream& out, const Gps_Ephemeris& gps_eph, const Gps_CNAV_Ephemeris& eph_cnav, const Galileo_Ephemeris& galileo_eph, const double d_TOW_first_observation, const std::string gps_bands = "1C 2S", const std::string galileo_bands = "1B"); | ||||
|  | ||||
|     /*! | ||||
|      *  \brief Generates the Mixed (GPS/Galileo) Observation data header. Example: galileo_bands("1B"), galileo_bands("1B 5X"), galileo_bands("5X"), ... Default: "1B". | ||||
|      */ | ||||
|     void rinex_obs_header(std::fstream& out, const Gps_CNAV_Ephemeris& eph_cnav, const Galileo_Ephemeris& galileo_eph, const double d_TOW_first_observation, const std::string gps_bands = "2S", const std::string galileo_bands = "1B"); | ||||
|  | ||||
|     /*! | ||||
|      *  \brief Generates the GLONASS GNAV Observation data header. Example: bands("1C"), bands("1C 2C"), bands("2C"), ... Default: "1C". | ||||
|      */ | ||||
| @@ -239,6 +254,11 @@ public: | ||||
|      */ | ||||
|     void log_rinex_nav(std::fstream& out, const std::map<int32_t, Gps_Ephemeris>& gps_eph_map, const std::map<int32_t, Galileo_Ephemeris>& galileo_eph_map); | ||||
|  | ||||
|     /*! | ||||
|          *  \brief Writes data from the Mixed (GPS/Galileo) navigation message into the RINEX file | ||||
|          */ | ||||
|     void log_rinex_nav(std::fstream& out, const std::map<int32_t, Gps_CNAV_Ephemeris>& gps_cnav_eph_map, const std::map<int32_t, Galileo_Ephemeris>& galileo_eph_map); | ||||
|  | ||||
|     /*! | ||||
|      *  \brief Writes data from the GLONASS GNAV navigation message into the RINEX file | ||||
|      */ | ||||
| @@ -284,6 +304,16 @@ public: | ||||
|      */ | ||||
|     void log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_eph, const Galileo_Ephemeris& galileo_eph, const double gps_obs_time, const std::map<int32_t, Gnss_Synchro>& observables); | ||||
|  | ||||
|     /*! | ||||
|      *  \brief Writes Mixed GPS / Galileo observables into the RINEX file | ||||
|      */ | ||||
|     void log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& eph, const Galileo_Ephemeris& galileo_eph, double gps_obs_time, const std::map<int32_t, Gnss_Synchro>& observables); | ||||
|  | ||||
|     /*! | ||||
|          *  \brief Writes Mixed GPS / Galileo observables into the RINEX file | ||||
|          */ | ||||
|     void log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_eph, const Gps_CNAV_Ephemeris& gps_cnav_eph, const Galileo_Ephemeris& galileo_eph, double gps_obs_time, const std::map<int32_t, Gnss_Synchro>& observables); | ||||
|  | ||||
|     /*! | ||||
|      *  \brief Writes GLONASS GNAV observables into the RINEX file. Example: glonass_bands("1C"), galileo_bands("1B 5X"), galileo_bands("5X"), ... Default: "1B". | ||||
|      */ | ||||
| @@ -320,6 +350,8 @@ public: | ||||
|  | ||||
|     void update_nav_header(std::fstream& out, const Gps_Iono& gps_iono, const Gps_Utc_Model& gps_utc_model, const Galileo_Iono& galileo_iono, const Galileo_Utc_Model& galileo_utc_model); | ||||
|  | ||||
|     void update_nav_header(std::fstream& out, const Gps_CNAV_Utc_Model& utc_model, const Gps_CNAV_Iono& iono, const Galileo_Iono& galileo_iono, const Galileo_Utc_Model& galileo_utc_model); | ||||
|  | ||||
|     void update_nav_header(std::fstream& out, const Galileo_Iono& galileo_iono, const Galileo_Utc_Model& utc_model); | ||||
|  | ||||
|     void update_nav_header(std::fstream& out, const Glonass_Gnav_Utc_Model& glonass_gnav_utc_model, const Glonass_Gnav_Almanac& glonass_gnav_almanac); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez