1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-15 12:40:35 +00:00

Handle RTCM printer exceptions

This commit is contained in:
Antonio Ramos 2018-03-13 11:16:30 +01:00
parent 74e8af01f9
commit e4bada8176
2 changed files with 407 additions and 393 deletions

View File

@ -34,12 +34,14 @@
#include <boost/archive/xml_oarchive.hpp>
#include <boost/archive/xml_iarchive.hpp>
#include <boost/serialization/map.hpp>
#include <boost/exception/all.hpp>
#include <glog/logging.h>
#include <gnuradio/gr_complex.h>
#include <gnuradio/io_signature.h>
#include <algorithm>
#include <iostream>
#include <map>
#include <exception>
using google::LogMessage;
@ -544,7 +546,8 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item
// store valid observables in a map.
gnss_observables_map.insert(std::pair<int, Gnss_Synchro>(i, in[i][epoch]));
}
try
{
if (d_ls_pvt->gps_ephemeris_map.size() > 0)
{
if (tmp_eph_iter_gps != d_ls_pvt->gps_ephemeris_map.end())
@ -574,6 +577,17 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item
}
}
}
catch (const boost::exception& ex)
{
std::cout << "RTCM boost exception: " << boost::diagnostic_information(ex) << std::endl;
LOG(ERROR) << "RTCM boost exception: " << boost::diagnostic_information(ex);
}
catch (const std::exception& ex)
{
std::cout << "RTCM std exception: " << ex.what() << std::endl;
LOG(ERROR) << "RTCM std exception: " << ex.what();
}
}
}
// ############ 2 COMPUTE THE PVT ################################
@ -590,10 +604,7 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item
// compute on the fly PVT solution
if (flag_compute_pvt_output == true)
{
bool pvt_result;
pvt_result = d_ls_pvt->get_PVT(gnss_observables_map, d_rx_time, false);
if (pvt_result == true)
if (d_ls_pvt->get_PVT(gnss_observables_map, d_rx_time, false))
{
if (std::fabs(current_RX_time - last_pvt_display_T_rx_s) * 1000.0 >= static_cast<double>(d_display_rate_ms))
{
@ -1177,6 +1188,8 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item
}
// ####################### RTCM MESSAGES #################
try
{
if (b_rtcm_writing_started)
{
if (type_of_rx == 1) // GPS L1 C/A
@ -1692,10 +1705,21 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item
}
}
}
catch (const boost::exception& ex)
{
std::cout << "RTCM boost exception: " << boost::diagnostic_information(ex) << std::endl;
LOG(ERROR) << "RTCM boost exception: " << boost::diagnostic_information(ex);
}
catch (const std::exception& ex)
{
std::cout << "RTCM std exception: " << ex.what() << std::endl;
LOG(ERROR) << "RTCM std exception: " << ex.what();
}
}
}
// DEBUG MESSAGE: Display position in console output
if ((d_ls_pvt->is_valid_position() == true) && (flag_display_pvt == true))
if (d_ls_pvt->is_valid_position() and flag_display_pvt)
{
std::cout << "Position at " << boost::posix_time::to_simple_string(d_ls_pvt->get_position_UTC_time())
<< " UTC using " << d_ls_pvt->get_num_valid_observations() << " observations is Lat = " << d_ls_pvt->get_latitude() << " [deg], Long = " << d_ls_pvt->get_longitude()

View File

@ -637,14 +637,7 @@ void dll_pll_veml_tracking::run_dll_pll(bool disable_costas_loop)
void dll_pll_veml_tracking::clear_tracking_vars()
{
if (d_veml)
{
*d_Very_Early = gr_complex(0.0, 0.0);
*d_Very_Late = gr_complex(0.0, 0.0);
}
*d_Early = gr_complex(0.0, 0.0);
*d_Prompt = gr_complex(0.0, 0.0);
*d_Late = gr_complex(0.0, 0.0);
std::fill_n(d_correlator_outs, d_n_correlator_taps, gr_complex(0.0, 0.0));
d_carr_error_hz = 0.0;
d_carr_error_filt_hz = 0.0;
d_code_error_chips = 0.0;
@ -1069,10 +1062,7 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused)
*out[0] = current_synchro_data;
return 1;
}
else
{
return 0;
}
}