mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-01-19 05:33:02 +00:00
Merge with next
This commit is contained in:
commit
84d6767a12
@ -1212,7 +1212,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->gps_iono = *gps_iono;
|
d_user_pvt_solver->gps_iono = *gps_iono;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New IONO record has arrived ";
|
DLOG(INFO) << "New IONO record has arrived";
|
||||||
}
|
}
|
||||||
else if (msg_type_hash_code == d_gps_utc_model_sptr_type_hash_code)
|
else if (msg_type_hash_code == d_gps_utc_model_sptr_type_hash_code)
|
||||||
{
|
{
|
||||||
@ -1223,7 +1223,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->gps_utc_model = *gps_utc_model;
|
d_user_pvt_solver->gps_utc_model = *gps_utc_model;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New UTC record has arrived ";
|
DLOG(INFO) << "New UTC record has arrived";
|
||||||
}
|
}
|
||||||
else if (msg_type_hash_code == d_gps_cnav_ephemeris_sptr_type_hash_code)
|
else if (msg_type_hash_code == d_gps_cnav_ephemeris_sptr_type_hash_code)
|
||||||
{
|
{
|
||||||
@ -1263,7 +1263,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
<< " does not report a healthy status in the CNAV message,"
|
<< " does not report a healthy status in the CNAV message,"
|
||||||
<< " use PVT solutions at your own risk.\n";
|
<< " use PVT solutions at your own risk.\n";
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New GPS CNAV ephemeris record has arrived ";
|
DLOG(INFO) << "New GPS CNAV ephemeris record has arrived";
|
||||||
}
|
}
|
||||||
else if (msg_type_hash_code == d_gps_cnav_iono_sptr_type_hash_code)
|
else if (msg_type_hash_code == d_gps_cnav_iono_sptr_type_hash_code)
|
||||||
{
|
{
|
||||||
@ -1274,7 +1274,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->gps_cnav_iono = *gps_cnav_iono;
|
d_user_pvt_solver->gps_cnav_iono = *gps_cnav_iono;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New CNAV IONO record has arrived ";
|
DLOG(INFO) << "New CNAV IONO record has arrived";
|
||||||
}
|
}
|
||||||
else if (msg_type_hash_code == d_gps_cnav_utc_model_sptr_type_hash_code)
|
else if (msg_type_hash_code == d_gps_cnav_utc_model_sptr_type_hash_code)
|
||||||
{
|
{
|
||||||
@ -1284,7 +1284,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->gps_cnav_utc_model = *gps_cnav_utc_model;
|
d_user_pvt_solver->gps_cnav_utc_model = *gps_cnav_utc_model;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New CNAV UTC record has arrived ";
|
DLOG(INFO) << "New CNAV UTC record has arrived";
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (msg_type_hash_code == d_gps_almanac_sptr_type_hash_code)
|
else if (msg_type_hash_code == d_gps_almanac_sptr_type_hash_code)
|
||||||
@ -1296,7 +1296,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->gps_almanac_map[gps_almanac->PRN] = *gps_almanac;
|
d_user_pvt_solver->gps_almanac_map[gps_almanac->PRN] = *gps_almanac;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New GPS almanac record has arrived ";
|
DLOG(INFO) << "New GPS almanac record has arrived";
|
||||||
}
|
}
|
||||||
|
|
||||||
// *********************** Galileo telemetry ***********************
|
// *********************** Galileo telemetry ***********************
|
||||||
@ -1359,7 +1359,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->galileo_iono = *galileo_iono;
|
d_user_pvt_solver->galileo_iono = *galileo_iono;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New IONO record has arrived ";
|
DLOG(INFO) << "New IONO record has arrived";
|
||||||
}
|
}
|
||||||
else if (msg_type_hash_code == d_galileo_utc_model_sptr_type_hash_code)
|
else if (msg_type_hash_code == d_galileo_utc_model_sptr_type_hash_code)
|
||||||
{
|
{
|
||||||
@ -1370,7 +1370,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->galileo_utc_model = *galileo_utc_model;
|
d_user_pvt_solver->galileo_utc_model = *galileo_utc_model;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New UTC record has arrived ";
|
DLOG(INFO) << "New UTC record has arrived";
|
||||||
}
|
}
|
||||||
else if (msg_type_hash_code == d_galileo_almanac_helper_sptr_type_hash_code)
|
else if (msg_type_hash_code == d_galileo_almanac_helper_sptr_type_hash_code)
|
||||||
{
|
{
|
||||||
@ -1404,7 +1404,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
d_user_pvt_solver->galileo_almanac_map[sv3.PRN] = sv3;
|
d_user_pvt_solver->galileo_almanac_map[sv3.PRN] = sv3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New Galileo Almanac data have arrived ";
|
DLOG(INFO) << "New Galileo Almanac data have arrived";
|
||||||
}
|
}
|
||||||
else if (msg_type_hash_code == d_galileo_almanac_sptr_type_hash_code)
|
else if (msg_type_hash_code == d_galileo_almanac_sptr_type_hash_code)
|
||||||
{
|
{
|
||||||
@ -1467,7 +1467,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->glonass_gnav_utc_model = *glonass_gnav_utc_model;
|
d_user_pvt_solver->glonass_gnav_utc_model = *glonass_gnav_utc_model;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New GLONASS GNAV UTC record has arrived ";
|
DLOG(INFO) << "New GLONASS GNAV UTC record has arrived";
|
||||||
}
|
}
|
||||||
else if (msg_type_hash_code == d_glonass_gnav_almanac_sptr_type_hash_code)
|
else if (msg_type_hash_code == d_glonass_gnav_almanac_sptr_type_hash_code)
|
||||||
{
|
{
|
||||||
@ -1478,7 +1478,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->glonass_gnav_almanac = *glonass_gnav_almanac;
|
d_user_pvt_solver->glonass_gnav_almanac = *glonass_gnav_almanac;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New GLONASS GNAV Almanac has arrived "
|
DLOG(INFO) << "New GLONASS GNAV Almanac has arrived"
|
||||||
<< ", GLONASS GNAV Slot Number =" << glonass_gnav_almanac->d_n_A;
|
<< ", GLONASS GNAV Slot Number =" << glonass_gnav_almanac->d_n_A;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1535,7 +1535,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->beidou_dnav_iono = *bds_dnav_iono;
|
d_user_pvt_solver->beidou_dnav_iono = *bds_dnav_iono;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New BeiDou DNAV IONO record has arrived ";
|
DLOG(INFO) << "New BeiDou DNAV IONO record has arrived";
|
||||||
}
|
}
|
||||||
else if (msg_type_hash_code == d_beidou_dnav_utc_model_sptr_type_hash_code)
|
else if (msg_type_hash_code == d_beidou_dnav_utc_model_sptr_type_hash_code)
|
||||||
{
|
{
|
||||||
@ -1546,7 +1546,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->beidou_dnav_utc_model = *bds_dnav_utc_model;
|
d_user_pvt_solver->beidou_dnav_utc_model = *bds_dnav_utc_model;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New BeiDou DNAV UTC record has arrived ";
|
DLOG(INFO) << "New BeiDou DNAV UTC record has arrived";
|
||||||
}
|
}
|
||||||
else if (msg_type_hash_code == d_beidou_dnav_almanac_sptr_type_hash_code)
|
else if (msg_type_hash_code == d_beidou_dnav_almanac_sptr_type_hash_code)
|
||||||
{
|
{
|
||||||
@ -1557,7 +1557,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
|
|||||||
{
|
{
|
||||||
d_user_pvt_solver->beidou_dnav_almanac_map[bds_dnav_almanac->PRN] = *bds_dnav_almanac;
|
d_user_pvt_solver->beidou_dnav_almanac_map[bds_dnav_almanac->PRN] = *bds_dnav_almanac;
|
||||||
}
|
}
|
||||||
DLOG(INFO) << "New BeiDou DNAV almanac record has arrived ";
|
DLOG(INFO) << "New BeiDou DNAV almanac record has arrived";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1968,7 +1968,7 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
|
|||||||
{
|
{
|
||||||
if (pmt::any_ref(it.value).type().hash_code() == typeid(const std::shared_ptr<GnssTime>).hash_code())
|
if (pmt::any_ref(it.value).type().hash_code() == typeid(const std::shared_ptr<GnssTime>).hash_code())
|
||||||
{
|
{
|
||||||
const auto timetag = boost::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it.value));
|
const auto timetag = wht::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it.value));
|
||||||
// std::cout << "PVT timetag: " << timetag->rx_time << '\n';
|
// std::cout << "PVT timetag: " << timetag->rx_time << '\n';
|
||||||
d_TimeChannelTagTimestamps.push(*timetag);
|
d_TimeChannelTagTimestamps.push(*timetag);
|
||||||
}
|
}
|
||||||
@ -1977,7 +1977,7 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
|
|||||||
std::cout << "hash code not match\n";
|
std::cout << "hash code not match\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const boost::bad_any_cast& e)
|
catch (const wht::bad_any_cast& e)
|
||||||
{
|
{
|
||||||
std::cout << "msg Bad any_cast: " << e.what();
|
std::cout << "msg Bad any_cast: " << e.what();
|
||||||
}
|
}
|
||||||
|
@ -73,69 +73,59 @@ Rtklib_Solver::Rtklib_Solver(const rtk_t &rtk,
|
|||||||
d_rtklib_band_index["L5"] = 2;
|
d_rtklib_band_index["L5"] = 2;
|
||||||
d_rtklib_band_index["E6"] = 0;
|
d_rtklib_band_index["E6"] = 0;
|
||||||
|
|
||||||
if (d_type_of_rx == 6) // E5b only
|
switch (d_type_of_rx)
|
||||||
{
|
{
|
||||||
|
case 6: // E5b only
|
||||||
d_rtklib_freq_index[2] = 4;
|
d_rtklib_freq_index[2] = 4;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 11) // GPS L1 C/A + Galileo E5b
|
case 11: // GPS L1 C/A + Galileo E5b
|
||||||
{
|
|
||||||
d_rtklib_freq_index[2] = 4;
|
d_rtklib_freq_index[2] = 4;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 15) // Galileo E1B + Galileo E5b
|
case 15: // Galileo E1B + Galileo E5b
|
||||||
{
|
|
||||||
d_rtklib_freq_index[2] = 4;
|
d_rtklib_freq_index[2] = 4;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 18) // GPS L2C + Galileo E5b
|
case 18: // GPS L2C + Galileo E5b
|
||||||
{
|
|
||||||
d_rtklib_freq_index[2] = 4;
|
d_rtklib_freq_index[2] = 4;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 19) // Galileo E5a + Galileo E5b
|
case 19: // Galileo E5a + Galileo E5b
|
||||||
{
|
|
||||||
d_rtklib_band_index["5X"] = 0;
|
d_rtklib_band_index["5X"] = 0;
|
||||||
d_rtklib_freq_index[0] = 2;
|
d_rtklib_freq_index[0] = 2;
|
||||||
d_rtklib_freq_index[2] = 4;
|
d_rtklib_freq_index[2] = 4;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 20) // GPS L5 + Galileo E5b
|
case 20: // GPS L5 + Galileo E5b
|
||||||
{
|
|
||||||
d_rtklib_band_index["L5"] = 0;
|
d_rtklib_band_index["L5"] = 0;
|
||||||
d_rtklib_freq_index[0] = 2;
|
d_rtklib_freq_index[0] = 2;
|
||||||
d_rtklib_freq_index[2] = 4;
|
d_rtklib_freq_index[2] = 4;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 100) // E6B only
|
case 100: // E6B only
|
||||||
{
|
|
||||||
d_rtklib_freq_index[0] = 3;
|
d_rtklib_freq_index[0] = 3;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 101) // E1 + E6B
|
case 101: // E1 + E6B
|
||||||
{
|
|
||||||
d_rtklib_band_index["E6"] = 1;
|
d_rtklib_band_index["E6"] = 1;
|
||||||
d_rtklib_freq_index[1] = 3;
|
d_rtklib_freq_index[1] = 3;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 102) // E5a + E6B
|
case 102: // E5a + E6B
|
||||||
{
|
|
||||||
d_rtklib_band_index["E6"] = 1;
|
d_rtklib_band_index["E6"] = 1;
|
||||||
d_rtklib_freq_index[1] = 3;
|
d_rtklib_freq_index[1] = 3;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 103) // E5b + E6B
|
case 103: // E5b + E6B
|
||||||
{
|
|
||||||
d_rtklib_band_index["E6"] = 1;
|
d_rtklib_band_index["E6"] = 1;
|
||||||
d_rtklib_freq_index[1] = 3;
|
d_rtklib_freq_index[1] = 3;
|
||||||
d_rtklib_freq_index[2] = 4;
|
d_rtklib_freq_index[2] = 4;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 104) // Galileo E1B + Galileo E5a + Galileo E6B
|
case 104: // Galileo E1B + Galileo E5a + Galileo E6B
|
||||||
{
|
|
||||||
d_rtklib_band_index["E6"] = 1;
|
d_rtklib_band_index["E6"] = 1;
|
||||||
d_rtklib_freq_index[1] = 3;
|
d_rtklib_freq_index[1] = 3;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 105) // Galileo E1B + Galileo E5b + Galileo E6B
|
case 105: // Galileo E1B + Galileo E5b + Galileo E6B
|
||||||
{
|
|
||||||
d_rtklib_freq_index[2] = 4;
|
d_rtklib_freq_index[2] = 4;
|
||||||
d_rtklib_band_index["E6"] = 1;
|
d_rtklib_band_index["E6"] = 1;
|
||||||
d_rtklib_freq_index[1] = 3;
|
d_rtklib_freq_index[1] = 3;
|
||||||
}
|
break;
|
||||||
if (d_type_of_rx == 106) // GPS L1 C/A + Galileo E1B + Galileo E6B
|
case 106: // GPS L1 C/A + Galileo E1B + Galileo E6B
|
||||||
{
|
|
||||||
d_rtklib_band_index["E6"] = 1;
|
d_rtklib_band_index["E6"] = 1;
|
||||||
d_rtklib_freq_index[1] = 3;
|
d_rtklib_freq_index[1] = 3;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ############# ENABLE DATA FILE LOG #################
|
// ############# ENABLE DATA FILE LOG #################
|
||||||
|
@ -34,6 +34,7 @@ target_link_libraries(obs_gr_blocks
|
|||||||
Gflags::gflags
|
Gflags::gflags
|
||||||
Glog::glog
|
Glog::glog
|
||||||
Matio::matio
|
Matio::matio
|
||||||
|
Gnuradio::pmt
|
||||||
)
|
)
|
||||||
|
|
||||||
if(GNURADIO_USES_SPDLOG)
|
if(GNURADIO_USES_SPDLOG)
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include <glog/logging.h>
|
#include <glog/logging.h>
|
||||||
#include <gnuradio/io_signature.h>
|
#include <gnuradio/io_signature.h>
|
||||||
#include <matio.h>
|
#include <matio.h>
|
||||||
|
#include <pmt/pmt.h>
|
||||||
#include <algorithm> // for std::min
|
#include <algorithm> // for std::min
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <cmath> // for round
|
#include <cmath> // for round
|
||||||
@ -694,7 +695,7 @@ int hybrid_observables_gs::general_work(int noutput_items __attribute__((unused)
|
|||||||
{
|
{
|
||||||
if (pmt::any_ref(it.value).type().hash_code() == typeid(const std::shared_ptr<GnssTime>).hash_code())
|
if (pmt::any_ref(it.value).type().hash_code() == typeid(const std::shared_ptr<GnssTime>).hash_code())
|
||||||
{
|
{
|
||||||
const auto timetag = boost::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it.value));
|
const auto timetag = wht::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it.value));
|
||||||
// std::cout << "[Time ch ] timetag: " << timetag->rx_time << "\n";
|
// std::cout << "[Time ch ] timetag: " << timetag->rx_time << "\n";
|
||||||
d_TimeChannelTagTimestamps.push(*timetag);
|
d_TimeChannelTagTimestamps.push(*timetag);
|
||||||
}
|
}
|
||||||
@ -703,7 +704,7 @@ int hybrid_observables_gs::general_work(int noutput_items __attribute__((unused)
|
|||||||
std::cout << "hash code not match\n";
|
std::cout << "hash code not match\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const boost::bad_any_cast &e)
|
catch (const wht::bad_any_cast &e)
|
||||||
{
|
{
|
||||||
std::cout << "msg Bad any_cast: " << e.what();
|
std::cout << "msg Bad any_cast: " << e.what();
|
||||||
}
|
}
|
||||||
@ -725,7 +726,7 @@ int hybrid_observables_gs::general_work(int noutput_items __attribute__((unused)
|
|||||||
// {
|
// {
|
||||||
// if (pmt::any_ref(it->value).type().hash_code() == typeid(const std::shared_ptr<GnssTime>).hash_code())
|
// if (pmt::any_ref(it->value).type().hash_code() == typeid(const std::shared_ptr<GnssTime>).hash_code())
|
||||||
// {
|
// {
|
||||||
// const std::shared_ptr<GnssTime> timetag = boost::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it->value));
|
// const std::shared_ptr<GnssTime> timetag = wht::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it->value));
|
||||||
// //std::cout << "[ch " << n << "] timetag: " << timetag->rx_time << "\n";
|
// //std::cout << "[ch " << n << "] timetag: " << timetag->rx_time << "\n";
|
||||||
// d_SourceTagTimestamps.at(n).push(*timetag);
|
// d_SourceTagTimestamps.at(n).push(*timetag);
|
||||||
// }
|
// }
|
||||||
@ -734,7 +735,7 @@ int hybrid_observables_gs::general_work(int noutput_items __attribute__((unused)
|
|||||||
// std::cout << "hash code not match\n";
|
// std::cout << "hash code not match\n";
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// catch (const boost::bad_any_cast &e)
|
// catch (const wht::bad_any_cast &e)
|
||||||
// {
|
// {
|
||||||
// std::cout << "msg Bad any_cast: " << e.what();
|
// std::cout << "msg Bad any_cast: " << e.what();
|
||||||
// }
|
// }
|
||||||
|
@ -60,6 +60,7 @@ target_link_libraries(telemetry_decoder_gr_blocks
|
|||||||
PRIVATE
|
PRIVATE
|
||||||
Gflags::gflags
|
Gflags::gflags
|
||||||
Glog::glog
|
Glog::glog
|
||||||
|
Gnuradio::pmt
|
||||||
)
|
)
|
||||||
|
|
||||||
if(GNURADIO_USES_STD_POINTERS)
|
if(GNURADIO_USES_STD_POINTERS)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -3,7 +3,7 @@
|
|||||||
* \brief Implementation of a Galileo unified INAV and FNAV message demodulator
|
* \brief Implementation of a Galileo unified INAV and FNAV message demodulator
|
||||||
* block
|
* block
|
||||||
* \author Javier Arribas 2018. jarribas(at)cttc.es
|
* \author Javier Arribas 2018. jarribas(at)cttc.es
|
||||||
* \author Carles Fernandez, 2021. cfernandez(at)cttc.es
|
* \author Carles Fernandez, 2021-2022. cfernandez(at)cttc.es
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* -----------------------------------------------------------------------------
|
* -----------------------------------------------------------------------------
|
||||||
@ -11,7 +11,7 @@
|
|||||||
* GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
|
* GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
|
||||||
* This file is part of GNSS-SDR.
|
* This file is part of GNSS-SDR.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
|
* Copyright (C) 2010-2022 (see AUTHORS file for a list of contributors)
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
*
|
||||||
* -----------------------------------------------------------------------------
|
* -----------------------------------------------------------------------------
|
||||||
@ -72,7 +72,6 @@ public:
|
|||||||
int general_work(int noutput_items, gr_vector_int &ninput_items,
|
int general_work(int noutput_items, gr_vector_int &ninput_items,
|
||||||
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override;
|
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override;
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend galileo_telemetry_decoder_gs_sptr galileo_make_telemetry_decoder_gs(
|
friend galileo_telemetry_decoder_gs_sptr galileo_make_telemetry_decoder_gs(
|
||||||
const Gnss_Satellite &satellite,
|
const Gnss_Satellite &satellite,
|
||||||
@ -110,7 +109,7 @@ private:
|
|||||||
|
|
||||||
double d_delta_t; // GPS-GALILEO time offset
|
double d_delta_t; // GPS-GALILEO time offset
|
||||||
|
|
||||||
uint64_t d_sample_counter;
|
uint64_t d_symbol_counter;
|
||||||
uint64_t d_preamble_index;
|
uint64_t d_preamble_index;
|
||||||
uint64_t d_last_valid_preamble;
|
uint64_t d_last_valid_preamble;
|
||||||
uint64_t d_received_sample_counter;
|
uint64_t d_received_sample_counter;
|
||||||
|
@ -51,6 +51,13 @@ auto rotl = [](uint32_t x, uint32_t n) { return (((x) << (n)) ^ ((x) >> (32 - (n
|
|||||||
} // namespace my_rotl
|
} // namespace my_rotl
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if PMT_USES_BOOST_ANY
|
||||||
|
#include <boost/any.hpp>
|
||||||
|
namespace wht = boost;
|
||||||
|
#else
|
||||||
|
#include <any>
|
||||||
|
namespace wht = std;
|
||||||
|
#endif
|
||||||
|
|
||||||
gps_l1_ca_telemetry_decoder_gs_sptr
|
gps_l1_ca_telemetry_decoder_gs_sptr
|
||||||
gps_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf)
|
gps_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf)
|
||||||
@ -605,7 +612,7 @@ int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__
|
|||||||
{
|
{
|
||||||
if (pmt::any_ref(it.value).type().hash_code() == typeid(const std::shared_ptr<GnssTime>).hash_code())
|
if (pmt::any_ref(it.value).type().hash_code() == typeid(const std::shared_ptr<GnssTime>).hash_code())
|
||||||
{
|
{
|
||||||
const auto timetag = boost::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it.value));
|
const auto timetag = wht::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it.value));
|
||||||
// std::cout << "[" << this->nitems_written(0) + 1 << "] TLM RX TimeTag Week: " << timetag->week << ", TOW: " << timetag->tow_ms << " [ms], TOW fraction: " << timetag->tow_ms_fraction
|
// std::cout << "[" << this->nitems_written(0) + 1 << "] TLM RX TimeTag Week: " << timetag->week << ", TOW: " << timetag->tow_ms << " [ms], TOW fraction: " << timetag->tow_ms_fraction
|
||||||
// << " [ms], DELTA TLM TOW: " << static_cast<double>(timetag->tow_ms - current_symbol.TOW_at_current_symbol_ms) + timetag->tow_ms_fraction << " [ms] \n";
|
// << " [ms], DELTA TLM TOW: " << static_cast<double>(timetag->tow_ms - current_symbol.TOW_at_current_symbol_ms) + timetag->tow_ms_fraction << " [ms] \n";
|
||||||
add_item_tag(0, this->nitems_written(0) + 1, pmt::mp("timetag"), pmt::make_any(timetag));
|
add_item_tag(0, this->nitems_written(0) + 1, pmt::mp("timetag"), pmt::make_any(timetag));
|
||||||
@ -615,12 +622,11 @@ int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__
|
|||||||
std::cout << "hash code not match\n";
|
std::cout << "hash code not match\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const boost::bad_any_cast &e)
|
catch (const wht::bad_any_cast &e)
|
||||||
{
|
{
|
||||||
std::cout << "msg Bad any_cast: " << e.what();
|
std::cout << "msg Bad any_cast: " << e.what();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d_dump == true)
|
if (d_dump == true)
|
||||||
{
|
{
|
||||||
// MULTIPLEXED FILE RECORDING - Record results to file
|
// MULTIPLEXED FILE RECORDING - Record results to file
|
||||||
|
@ -2024,7 +2024,7 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused)
|
|||||||
{
|
{
|
||||||
// std::cout << "ch[" << d_acquisition_gnss_synchro->Channel_ID << "] tracking time tag with offset " << it->offset << " vs. counter " << d_sample_counter << " vs. nread " << this->nitems_read(0) << " containing ";
|
// std::cout << "ch[" << d_acquisition_gnss_synchro->Channel_ID << "] tracking time tag with offset " << it->offset << " vs. counter " << d_sample_counter << " vs. nread " << this->nitems_read(0) << " containing ";
|
||||||
// std::cout << "ch[" << d_acquisition_gnss_synchro->Channel_ID << "] tracking time tag with offset " << it->offset << " vs. nread " << this->nitems_read(0) << " containing ";
|
// std::cout << "ch[" << d_acquisition_gnss_synchro->Channel_ID << "] tracking time tag with offset " << it->offset << " vs. nread " << this->nitems_read(0) << " containing ";
|
||||||
const auto last_timetag = boost::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it.value));
|
const auto last_timetag = wht::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it.value));
|
||||||
d_last_timetag = *last_timetag;
|
d_last_timetag = *last_timetag;
|
||||||
d_last_timetag_samplecounter = it.offset;
|
d_last_timetag_samplecounter = it.offset;
|
||||||
d_timetag_waiting = true;
|
d_timetag_waiting = true;
|
||||||
@ -2034,7 +2034,7 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused)
|
|||||||
std::cout << "hash code not match\n";
|
std::cout << "hash code not match\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const boost::bad_any_cast &e)
|
catch (const wht::bad_any_cast &e)
|
||||||
{
|
{
|
||||||
std::cout << "msg Bad any_cast: " << e.what();
|
std::cout << "msg Bad any_cast: " << e.what();
|
||||||
}
|
}
|
||||||
|
@ -83,6 +83,7 @@ endif()
|
|||||||
|
|
||||||
target_link_libraries(core_libs
|
target_link_libraries(core_libs
|
||||||
PUBLIC
|
PUBLIC
|
||||||
|
Boost::headers
|
||||||
Gnuradio::blocks
|
Gnuradio::blocks
|
||||||
Gnuradio::runtime
|
Gnuradio::runtime
|
||||||
Gnuradio::pmt
|
Gnuradio::pmt
|
||||||
|
@ -27,6 +27,13 @@
|
|||||||
#include <string> // for string
|
#include <string> // for string
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#if PMT_USES_BOOST_ANY
|
||||||
|
#include <boost/any.hpp>
|
||||||
|
namespace wht = boost;
|
||||||
|
#else
|
||||||
|
#include <any>
|
||||||
|
namespace wht = std;
|
||||||
|
#endif
|
||||||
|
|
||||||
gnss_sdr_sample_counter::gnss_sdr_sample_counter(
|
gnss_sdr_sample_counter::gnss_sdr_sample_counter(
|
||||||
double _fs,
|
double _fs,
|
||||||
@ -156,7 +163,7 @@ int gnss_sdr_sample_counter::work(int noutput_items __attribute__((unused)),
|
|||||||
{
|
{
|
||||||
// recompute timestamp to match the last sample in the consumed samples in this batch
|
// recompute timestamp to match the last sample in the consumed samples in this batch
|
||||||
int64_t diff_samplecount = uint64diff(out[0].Tracking_sample_counter, it.offset);
|
int64_t diff_samplecount = uint64diff(out[0].Tracking_sample_counter, it.offset);
|
||||||
const auto last_timetag = boost::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it.value));
|
const auto last_timetag = wht::any_cast<const std::shared_ptr<GnssTime>>(pmt::any_ref(it.value));
|
||||||
double intpart;
|
double intpart;
|
||||||
last_timetag->tow_ms_fraction += modf(1000.0 * static_cast<double>(diff_samplecount) / fs, &intpart);
|
last_timetag->tow_ms_fraction += modf(1000.0 * static_cast<double>(diff_samplecount) / fs, &intpart);
|
||||||
|
|
||||||
@ -172,7 +179,7 @@ int gnss_sdr_sample_counter::work(int noutput_items __attribute__((unused)),
|
|||||||
std::cout << "hash code not match\n";
|
std::cout << "hash code not match\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const boost::bad_any_cast &e)
|
catch (const wht::bad_any_cast &e)
|
||||||
{
|
{
|
||||||
std::cout << "msg Bad any_cast: " << e.what();
|
std::cout << "msg Bad any_cast: " << e.what();
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@ int main(int argc, char** argv)
|
|||||||
{
|
{
|
||||||
const std::string intro_help(
|
const std::string intro_help(
|
||||||
std::string("\nGNSS-SDR is an Open Source GNSS Software Defined Receiver\n") +
|
std::string("\nGNSS-SDR is an Open Source GNSS Software Defined Receiver\n") +
|
||||||
"Copyright (C) 2010-2019 (see AUTHORS file for a list of contributors)\n" +
|
"Copyright (C) 2010-2022 (see AUTHORS file for a list of contributors)\n" +
|
||||||
"This program comes with ABSOLUTELY NO WARRANTY;\n" +
|
"This program comes with ABSOLUTELY NO WARRANTY;\n" +
|
||||||
"See COPYING file to see a copy of the General Public License\n \n");
|
"See COPYING file to see a copy of the General Public License\n \n");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user