[hamradio-commits] [gnss-sdr] 194/236: Merge branch 'next' of git+ssh://github.com/gnss-sdr/gnss-sdr into next
Carles Fernandez
carles_fernandez-guest at moszumanska.debian.org
Tue Apr 26 16:02:53 UTC 2016
This is an automated email from the git hooks/post-receive script.
carles_fernandez-guest pushed a commit to branch next
in repository gnss-sdr.
commit 2b7175083f9bdd233e8337b6d91b08a393b421f0
Merge: 4a18121 bd60379
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date: Wed Apr 13 18:26:19 2016 +0200
Merge branch 'next' of git+ssh://github.com/gnss-sdr/gnss-sdr into next
conf/gnss-sdr_Hybrid_short.conf | 24 +-
src/algorithms/PVT/adapters/galileo_e1_pvt.cc | 16 +-
src/algorithms/PVT/adapters/galileo_e1_pvt.h | 5 +-
src/algorithms/PVT/adapters/gps_l1_ca_pvt.cc | 17 +-
src/algorithms/PVT/adapters/gps_l1_ca_pvt.h | 5 +-
src/algorithms/PVT/adapters/hybrid_pvt.cc | 17 +-
src/algorithms/PVT/adapters/hybrid_pvt.h | 5 +-
.../PVT/gnuradio_blocks/galileo_e1_pvt_cc.cc | 36 +--
.../PVT/gnuradio_blocks/galileo_e1_pvt_cc.h | 5 -
.../PVT/gnuradio_blocks/gps_l1_ca_pvt_cc.cc | 17 +-
.../PVT/gnuradio_blocks/gps_l1_ca_pvt_cc.h | 5 -
.../PVT/gnuradio_blocks/hybrid_pvt_cc.cc | 70 +++---
src/algorithms/PVT/gnuradio_blocks/hybrid_pvt_cc.h | 5 -
.../galileo_e1_pcps_ambiguous_acquisition.cc | 7 +-
.../galileo_e1_pcps_ambiguous_acquisition.h | 4 +-
.../adapters/gps_l1_ca_pcps_acquisition.cc | 9 +-
.../adapters/gps_l1_ca_pcps_acquisition.h | 2 +-
.../adapters/gps_l2_m_pcps_acquisition.cc | 7 +-
.../adapters/gps_l2_m_pcps_acquisition.h | 4 +-
.../gnuradio_blocks/pcps_acquisition_cc.cc | 8 +-
.../gnuradio_blocks/pcps_acquisition_cc.h | 8 +-
.../gnuradio_blocks/pcps_acquisition_sc.cc | 7 +-
.../gnuradio_blocks/pcps_acquisition_sc.h | 8 +-
.../volk_gnsssdr_16ic_resamplerxnpuppet2_16ic.h | 16 +-
.../volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h | 34 +--
.../observables/adapters/galileo_e1_observables.cc | 8 +-
.../observables/adapters/galileo_e1_observables.h | 5 +-
.../observables/adapters/gps_l1_ca_observables.cc | 8 +-
.../observables/adapters/gps_l1_ca_observables.h | 5 +-
.../observables/adapters/hybrid_observables.cc | 8 +-
.../observables/adapters/hybrid_observables.h | 5 +-
.../observables/adapters/mixed_observables.cc | 8 +-
.../observables/adapters/mixed_observables.h | 5 +-
.../gnuradio_blocks/galileo_e1_observables_cc.cc | 9 +-
.../gnuradio_blocks/galileo_e1_observables_cc.h | 8 +-
.../gnuradio_blocks/gps_l1_ca_observables_cc.cc | 9 +-
.../gnuradio_blocks/gps_l1_ca_observables_cc.h | 8 +-
.../gnuradio_blocks/hybrid_observables_cc.cc | 9 +-
.../gnuradio_blocks/hybrid_observables_cc.h | 9 +-
.../gnuradio_blocks/mixed_observables_cc.cc | 7 +-
.../gnuradio_blocks/mixed_observables_cc.h | 8 +-
.../adapters/galileo_e1b_telemetry_decoder.cc | 8 +-
.../adapters/galileo_e1b_telemetry_decoder.h | 5 +-
.../adapters/galileo_e5a_telemetry_decoder.cc | 8 +-
.../adapters/galileo_e5a_telemetry_decoder.h | 5 +-
.../adapters/gps_l1_ca_telemetry_decoder.cc | 8 +-
.../adapters/gps_l1_ca_telemetry_decoder.h | 5 +-
.../adapters/gps_l2_m_telemetry_decoder.cc | 8 +-
.../adapters/gps_l2_m_telemetry_decoder.h | 5 +-
.../adapters/sbas_l1_telemetry_decoder.cc | 8 +-
.../adapters/sbas_l1_telemetry_decoder.h | 5 +-
.../galileo_e1b_telemetry_decoder_cc.cc | 21 +-
.../galileo_e1b_telemetry_decoder_cc.h | 13 +-
.../galileo_e5a_telemetry_decoder_cc.cc | 50 +---
.../galileo_e5a_telemetry_decoder_cc.h | 21 +-
.../gps_l1_ca_telemetry_decoder_cc.cc | 9 +-
.../gps_l1_ca_telemetry_decoder_cc.h | 15 +-
.../gps_l2_m_telemetry_decoder_cc.cc | 33 +--
.../gps_l2_m_telemetry_decoder_cc.h | 15 +-
.../sbas_l1_telemetry_decoder_cc.cc | 5 +-
.../gnuradio_blocks/sbas_l1_telemetry_decoder_cc.h | 7 +-
src/core/receiver/control_thread.cc | 259 ++++++++-------------
src/core/receiver/control_thread.h | 43 +---
src/core/receiver/gnss_block_factory.cc | 56 ++---
src/core/receiver/gnss_block_factory.h | 2 +-
src/core/receiver/gnss_flowgraph.cc | 8 +
src/core/receiver/gnss_flowgraph.h | 7 +-
src/main/main.cc | 5 -
.../gps_l1_ca_pcps_acquisition_gsoc2013_test.cc | 8 +-
.../gnss_block/gps_l1_ca_pcps_acquisition_test.cc | 6 +-
.../gnss_block/gps_l2_m_pcps_acquisition_test.cc | 6 +-
src/utils/front-end-cal/main.cc | 6 -
72 files changed, 418 insertions(+), 702 deletions(-)
diff --cc conf/gnss-sdr_Hybrid_short.conf
index 878bf28,878bf28..03455ff
--- a/conf/gnss-sdr_Hybrid_short.conf
+++ b/conf/gnss-sdr_Hybrid_short.conf
@@@ -31,7 -31,7 +31,7 @@@ GNSS-SDR.SUPL_CI=0x31b
SignalSource.implementation=File_Signal_Source
;#filename: path to file with the captured GNSS signal samples to be processed
--SignalSource.filename=/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat
++SignalSource.filename=/Users/carlesfernandez/Documents/workspace/code2/trunk/data/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ;/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat
;#item_type: Type and resolution for each of the signal samples.
SignalSource.item_type=ishort
@@@ -172,9 -172,9 +172,9 @@@ Resampler.sample_freq_out=400000
;######### CHANNELS GLOBAL CONFIG ############
;#count: Number of available GPS satellite channels.
--Channels_1C.count=3
++Channels_1C.count=2
;#count: Number of available Galileo satellite channels.
--Channels_1B.count=3
++Channels_1B.count=4
;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
@@@ -183,14 -183,14 +183,14 @@@
;# "2S" GPS L2 L2C (M)
;# "1B" GALILEO E1 B (I/NAV OS/CS/SoL)
;# "5X" GALILEO E5a I+Q
--Channel0.signal=1B
++Channel0.signal=1C
Channel1.signal=1C
Channel2.signal=1B
--Channel3.signal=1C
++Channel3.signal=1B
Channel4.signal=1B
--Channel5.signal=1C
--;Channel6.signal=1B
--;Channel7.signal=1C
++Channel5.signal=1B
++Channel6.signal=1B
++Channel7.signal=1B
@@@ -244,7 -244,7 +244,7 @@@ Acquisition_1B.doppler_step=12
;######### TRACKING GPS CONFIG ############
;#implementation: Selected tracking algorithm: [GPS_L1_CA_DLL_PLL_Tracking] or [GPS_L1_CA_DLL_FLL_PLL_Tracking] or [GPS_L1_CA_TCP_CONNECTOR_Tracking] or [Galileo_E1_DLL_PLL_VEML_Tracking]
--Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
++Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking
;#item_type: Type and resolution for each of the signal samples. Use only [gr_complex] in this version.
Tracking_1C.item_type=gr_complex
@@@ -258,10 -258,10 +258,10 @@@ Tracking_1C.dump=fals
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;#pll_bw_hz: PLL loop filter bandwidth [Hz]
--Tracking_1C.pll_bw_hz=45.0;
++Tracking_1C.pll_bw_hz=50.0;
;#dll_bw_hz: DLL loop filter bandwidth [Hz]
--Tracking_1C.dll_bw_hz=4.0;
++Tracking_1C.dll_bw_hz=5.0;
;#fll_bw_hz: FLL loop filter bandwidth [Hz]
Tracking_1C.fll_bw_hz=10.0;
@@@ -347,7 -347,7 +347,7 @@@ PVT.display_rate_ms=500
;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
--PVT.flag_rtcm_server=false
++PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
diff --cc src/algorithms/PVT/adapters/galileo_e1_pvt.cc
index 56b9e28,67fb380..af1272f
--- a/src/algorithms/PVT/adapters/galileo_e1_pvt.cc
+++ b/src/algorithms/PVT/adapters/galileo_e1_pvt.cc
@@@ -93,16 -91,16 +91,16 @@@ GalileoE1Pvt::~GalileoE1Pvt(
void GalileoE1Pvt::connect(gr::top_block_sptr top_block)
{
-- if(top_block) { /* top_block is not null */};
-- // Nothing to connect internally
++ if(top_block) { /* top_block is not null */};
++ // Nothing to connect internally
DLOG(INFO) << "nothing to connect internally";
}
void GalileoE1Pvt::disconnect(gr::top_block_sptr top_block)
{
-- if(top_block) { /* top_block is not null */};
-- // Nothing to disconnect
++ if(top_block) { /* top_block is not null */};
++ // Nothing to disconnect
}
gr::basic_block_sptr GalileoE1Pvt::get_left_block()
diff --cc src/algorithms/PVT/adapters/gps_l1_ca_pvt.cc
index a44f246,3ecb8c3..705515c
--- a/src/algorithms/PVT/adapters/gps_l1_ca_pvt.cc
+++ b/src/algorithms/PVT/adapters/gps_l1_ca_pvt.cc
@@@ -93,18 -91,18 +91,19 @@@ GpsL1CaPvt::~GpsL1CaPvt(
void GpsL1CaPvt::connect(gr::top_block_sptr top_block)
{
-- if(top_block) { /* top_block is not null */};
-- // Nothing to connect internally
++ if(top_block) { /* top_block is not null */};
++ // Nothing to connect internally
DLOG(INFO) << "nothing to connect internally";
}
void GpsL1CaPvt::disconnect(gr::top_block_sptr top_block)
{
-- if(top_block) { /* top_block is not null */};
-- // Nothing to disconnect
++ if(top_block) { /* top_block is not null */};
++ // Nothing to disconnect
}
++
gr::basic_block_sptr GpsL1CaPvt::get_left_block()
{
return pvt_;
diff --cc src/algorithms/PVT/adapters/hybrid_pvt.cc
index bbf5c55,89eea80..00bbe55
--- a/src/algorithms/PVT/adapters/hybrid_pvt.cc
+++ b/src/algorithms/PVT/adapters/hybrid_pvt.cc
@@@ -93,18 -91,18 +91,19 @@@ HybridPvt::~HybridPvt(
void HybridPvt::connect(gr::top_block_sptr top_block)
{
-- if(top_block) { /* top_block is not null */};
-- // Nothing to connect internally
++ if(top_block) { /* top_block is not null */};
++ // Nothing to connect internally
DLOG(INFO) << "nothing to connect internally";
}
void HybridPvt::disconnect(gr::top_block_sptr top_block)
{
-- if(top_block) { /* top_block is not null */};
-- // Nothing to disconnect
++ if(top_block) { /* top_block is not null */};
++ // Nothing to disconnect
}
++
gr::basic_block_sptr HybridPvt::get_left_block()
{
return pvt_;
diff --cc src/algorithms/PVT/gnuradio_blocks/galileo_e1_pvt_cc.cc
index d88682c,8ef7478..b461bad
--- a/src/algorithms/PVT/gnuradio_blocks/galileo_e1_pvt_cc.cc
+++ b/src/algorithms/PVT/gnuradio_blocks/galileo_e1_pvt_cc.cc
@@@ -40,69 -40,62 +40,74 @@@
using google::LogMessage;
- galileo_e1_pvt_cc_sptr galileo_e1_make_pvt_cc(unsigned int nchannels, boost::shared_ptr<gr::msg_queue> queue, bool dump, std::string dump_filename,
- int averaging_depth, bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename,
-galileo_e1_pvt_cc_sptr
-galileo_e1_make_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename, int averaging_depth, bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename, std::string nmea_dump_devname, bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname)
++
++galileo_e1_pvt_cc_sptr galileo_e1_make_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename, int averaging_depth,
++ bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename,
+ std::string nmea_dump_devname, bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname)
{
- return galileo_e1_pvt_cc_sptr(new galileo_e1_pvt_cc(nchannels, queue, dump, dump_filename, averaging_depth,
- return galileo_e1_pvt_cc_sptr(new galileo_e1_pvt_cc(nchannels, dump, dump_filename, averaging_depth, flag_averaging, output_rate_ms, display_rate_ms, flag_nmea_tty_port, nmea_dump_filename, nmea_dump_devname, flag_rtcm_server, flag_rtcm_tty_port, rtcm_dump_devname));
++ return galileo_e1_pvt_cc_sptr(new galileo_e1_pvt_cc(nchannels, dump, dump_filename, averaging_depth,
+ flag_averaging, output_rate_ms, display_rate_ms, flag_nmea_tty_port, nmea_dump_filename, nmea_dump_devname,
+ flag_rtcm_server, flag_rtcm_tty_port, rtcm_dump_devname));
}
void galileo_e1_pvt_cc::msg_handler_telemetry(pmt::pmt_t msg)
{
try {
- if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Ephemeris>) )
- {
- // ### Galileo EPHEMERIS ###
- std::shared_ptr<Galileo_Ephemeris> galileo_eph;
- galileo_eph= boost::any_cast<std::shared_ptr<Galileo_Ephemeris>>(pmt::any_ref(msg));
- // insert new ephemeris record
- DLOG(INFO) << "Galileo New Ephemeris record inserted in global map with TOW =" << galileo_eph->TOW_5
- << ", GALILEO Week Number =" << galileo_eph->WN_5
- << " and Ephemeris IOD = " << galileo_eph->IOD_ephemeris;
- // update/insert new ephemeris record to the global ephemeris map
- d_ls_pvt->galileo_ephemeris_map[galileo_eph->i_satellite_PRN]=*galileo_eph;
- }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Iono>) )
- {
- // ### Galileo IONO ###
- std::shared_ptr<Galileo_Iono> galileo_iono;
- galileo_iono= boost::any_cast<std::shared_ptr<Galileo_Iono>>(pmt::any_ref(msg));
- d_ls_pvt->galileo_iono=*galileo_iono;
- DLOG(INFO) << "New IONO record has arrived ";
- }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Utc_Model>) )
- {
- // ### Galileo UTC MODEL ###
- std::shared_ptr<Galileo_Utc_Model> galileo_utc_model;
- galileo_utc_model= boost::any_cast<std::shared_ptr<Galileo_Utc_Model>>(pmt::any_ref(msg));
- d_ls_pvt->galileo_utc_model=*galileo_utc_model;
- DLOG(INFO) << "New UTC record has arrived ";
- }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Almanac>) )
- {
- // ### Galileo Almanac ###
- std::shared_ptr<Galileo_Almanac> galileo_almanac;
- galileo_almanac= boost::any_cast<std::shared_ptr<Galileo_Almanac>>(pmt::any_ref(msg));
- // update/insert new ephemeris record to the global ephemeris map
- d_ls_pvt->galileo_almanac=*galileo_almanac;
- DLOG(INFO) << "New Galileo Almanac has arrived ";
- }else{
- LOG(WARNING) << "msg_handler_telemetry unknown object type!";
- }
+ if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Ephemeris>) )
+ {
+ // ### Galileo EPHEMERIS ###
+ std::shared_ptr<Galileo_Ephemeris> galileo_eph;
+ galileo_eph = boost::any_cast<std::shared_ptr<Galileo_Ephemeris>>(pmt::any_ref(msg));
+ // insert new ephemeris record
+ DLOG(INFO) << "Galileo New Ephemeris record inserted in global map with TOW =" << galileo_eph->TOW_5
+ << ", GALILEO Week Number =" << galileo_eph->WN_5
+ << " and Ephemeris IOD = " << galileo_eph->IOD_ephemeris;
+ // update/insert new ephemeris record to the global ephemeris map
+ d_ls_pvt->galileo_ephemeris_map[galileo_eph->i_satellite_PRN] = *galileo_eph;
+ }
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Iono>) )
+ {
+ // ### Galileo IONO ###
+ std::shared_ptr<Galileo_Iono> galileo_iono;
+ galileo_iono = boost::any_cast<std::shared_ptr<Galileo_Iono>>(pmt::any_ref(msg));
+ d_ls_pvt->galileo_iono = *galileo_iono;
+ DLOG(INFO) << "New IONO record has arrived ";
+ }
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Utc_Model>) )
+ {
+ // ### Galileo UTC MODEL ###
+ std::shared_ptr<Galileo_Utc_Model> galileo_utc_model;
+ galileo_utc_model = boost::any_cast<std::shared_ptr<Galileo_Utc_Model>>(pmt::any_ref(msg));
+ d_ls_pvt->galileo_utc_model = *galileo_utc_model;
+ DLOG(INFO) << "New UTC record has arrived ";
+ }
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Almanac>) )
+ {
+ // ### Galileo Almanac ###
+ std::shared_ptr<Galileo_Almanac> galileo_almanac;
+ galileo_almanac = boost::any_cast<std::shared_ptr<Galileo_Almanac>>(pmt::any_ref(msg));
+ // update/insert new ephemeris record to the global ephemeris map
+ d_ls_pvt->galileo_almanac = *galileo_almanac;
+ DLOG(INFO) << "New Galileo Almanac has arrived ";
+ }
++ else
++ {
++ LOG(WARNING) << "msg_handler_telemetry unknown object type!";
++ }
- }
- catch(boost::bad_any_cast& e)
- {
- LOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
- }
+ }
+ catch(boost::bad_any_cast& e)
+ {
- DLOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
++ LOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
+ }
}
-galileo_e1_pvt_cc::galileo_e1_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename, int averaging_depth, bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename, std::string nmea_dump_devname, bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname) :
- gr::block("galileo_e1_pvt_cc", gr::io_signature::make(nchannels, nchannels, sizeof(Gnss_Synchro)),
- gr::io_signature::make(0, 0, sizeof(gr_complex)))
+
+
- galileo_e1_pvt_cc::galileo_e1_pvt_cc(unsigned int nchannels, boost::shared_ptr<gr::msg_queue> queue, bool dump, std::string dump_filename, int averaging_depth,
++galileo_e1_pvt_cc::galileo_e1_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename, int averaging_depth,
+ bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename, std::string nmea_dump_devname,
+ bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname) :
+ gr::block("galileo_e1_pvt_cc", gr::io_signature::make(nchannels, nchannels, sizeof(Gnss_Synchro)), gr::io_signature::make(0, 0, sizeof(gr_complex)))
{
d_output_rate_ms = output_rate_ms;
@@@ -115,8 -107,8 +119,7 @@@
// GPS Ephemeris data message port in
this->message_port_register_in(pmt::mp("telemetry"));
-- this->set_msg_handler(pmt::mp("telemetry"),
-- boost::bind(&galileo_e1_pvt_cc::msg_handler_telemetry, this, _1));
++ this->set_msg_handler(pmt::mp("telemetry"), boost::bind(&galileo_e1_pvt_cc::msg_handler_telemetry, this, _1));
//initialize kml_printer
std::string kml_dump_filename;
@@@ -192,16 -184,16 +195,17 @@@ bool galileo_e1_pvt_cc::pseudoranges_pa
void galileo_e1_pvt_cc::print_receiver_status(Gnss_Synchro** channels_synchronization_data)
{
// Print the current receiver status using std::cout every second
-- int current_rx_seg=floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
-- if ( current_rx_seg!= d_last_status_print_seg)
-- {
-- d_last_status_print_seg = current_rx_seg;
-- std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl<< std::flush;
-- //DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
-- // << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
-- }
++ int current_rx_seg = floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
++ if ( current_rx_seg != d_last_status_print_seg)
++ {
++ d_last_status_print_seg = current_rx_seg;
++ std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl << std::flush;
++ //DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
++ // << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
++ }
}
++
int galileo_e1_pvt_cc::general_work (int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)),
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items __attribute__((unused)))
{
diff --cc src/algorithms/PVT/gnuradio_blocks/gps_l1_ca_pvt_cc.cc
index ed451ca,a72a9e6..9f0e624
--- a/src/algorithms/PVT/gnuradio_blocks/gps_l1_ca_pvt_cc.cc
+++ b/src/algorithms/PVT/gnuradio_blocks/gps_l1_ca_pvt_cc.cc
@@@ -52,97 -52,94 +52,99 @@@ gps_l1_ca_make_pvt_cc(unsigned int ncha
void gps_l1_ca_pvt_cc::msg_handler_telemetry(pmt::pmt_t msg)
{
try {
- if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Ephemeris>) )
- {
- // ### GPS EPHEMERIS ###
- std::shared_ptr<Gps_Ephemeris> gps_eph;
- gps_eph= boost::any_cast<std::shared_ptr<Gps_Ephemeris>>(pmt::any_ref(msg));
- DLOG(INFO) << "Ephemeris record has arrived from SAT ID "
- << gps_eph->i_satellite_PRN << " (Block "
- << gps_eph->satelliteBlock[gps_eph->i_satellite_PRN] << ")"
- << "inserted with Toe="<< gps_eph->d_Toe<<" and GPS Week="
- << gps_eph->i_GPS_week;
- // update/insert new ephemeris record to the global ephemeris map
- d_ls_pvt->gps_ephemeris_map[gps_eph->i_satellite_PRN]=*gps_eph;
- }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Iono>) )
- {
- // ### GPS IONO ###
- std::shared_ptr<Gps_Iono> gps_iono;
- gps_iono= boost::any_cast<std::shared_ptr<Gps_Iono>>(pmt::any_ref(msg));
- d_ls_pvt->gps_iono=*gps_iono;
- DLOG(INFO) << "New IONO record has arrived ";
- }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Utc_Model>) )
- {
- // ### GPS UTC MODEL ###
- std::shared_ptr<Gps_Utc_Model> gps_utc_model;
- gps_utc_model= boost::any_cast<std::shared_ptr<Gps_Utc_Model>>(pmt::any_ref(msg));
- d_ls_pvt->gps_utc_model=*gps_utc_model;
- DLOG(INFO) << "New UTC record has arrived ";
- }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Sbas_Ionosphere_Correction>) )
- {
- // ### SBAS IONO ###
- std::shared_ptr<Sbas_Ionosphere_Correction> sbas_iono;
- sbas_iono= boost::any_cast<std::shared_ptr<Sbas_Ionosphere_Correction>>(pmt::any_ref(msg));
- d_ls_pvt->sbas_iono=*sbas_iono;
- DLOG(INFO) << "New SBAS IONO record has arrived ";
- }
-
- //TODO: add SBAS correction maps here
- //d_ls_pvt->sbas_sat_corr_map = global_sbas_sat_corr_map.get_map_copy();
- //d_ls_pvt->sbas_ephemeris_map = global_sbas_ephemeris_map.get_map_copy();
-
- else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Sbas_Raw_Msg>) )
- {
- std::shared_ptr<Sbas_Raw_Msg> sbas_raw_msg_ptr;
- sbas_raw_msg_ptr= boost::any_cast<std::shared_ptr<Sbas_Raw_Msg>>(pmt::any_ref(msg));
- Sbas_Raw_Msg sbas_raw_msg=*sbas_raw_msg_ptr;
- // read SBAS raw messages directly from queue and write them into rinex file
- // create the header of not yet done
- if(!b_rinex_sbs_header_writen)
- {
- rp->rinex_sbs_header(rp->sbsFile);
- b_rinex_sbs_header_writen = true;
- }
-
- // Define the RX time of the SBAS message by using the GPS time.
- // It has only an effect if there has not been yet a SBAS MT12 available
- // when the message was received.
- if(sbas_raw_msg.get_rx_time_obj().is_related() == false
- && gnss_pseudoranges_map.size() > 0
- && d_ls_pvt->gps_ephemeris_map.size() > 0)
- {
- // doesn't matter which channel/satellite we choose
- Gnss_Synchro gs = gnss_pseudoranges_map.begin()->second;
- Gps_Ephemeris eph = d_ls_pvt->gps_ephemeris_map.begin()->second;
-
- double relative_rx_time = gs.Tracking_timestamp_secs;
- int gps_week = eph.i_GPS_week;
- double gps_sec = gs.d_TOW_at_current_symbol;
-
- Sbas_Time_Relation time_rel(relative_rx_time, gps_week, gps_sec);
- sbas_raw_msg.relate(time_rel);
- }
-
- // send the message to the rinex logger if it has a valid GPS time stamp
- if(sbas_raw_msg.get_rx_time_obj().is_related())
- {
- rp->log_rinex_sbs(rp->sbsFile, sbas_raw_msg);
- }
- }else{
- LOG(WARNING) << "msg_handler_telemetry unknown object type!";
- }
+ if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Ephemeris>) )
+ {
+ // ### GPS EPHEMERIS ###
+ std::shared_ptr<Gps_Ephemeris> gps_eph;
+ gps_eph = boost::any_cast<std::shared_ptr<Gps_Ephemeris>>(pmt::any_ref(msg));
+ DLOG(INFO) << "Ephemeris record has arrived from SAT ID "
+ << gps_eph->i_satellite_PRN << " (Block "
+ << gps_eph->satelliteBlock[gps_eph->i_satellite_PRN] << ")"
+ << "inserted with Toe="<< gps_eph->d_Toe<<" and GPS Week="
+ << gps_eph->i_GPS_week;
+ // update/insert new ephemeris record to the global ephemeris map
+ d_ls_pvt->gps_ephemeris_map[gps_eph->i_satellite_PRN] = *gps_eph;
+ }
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Iono>) )
+ {
+ // ### GPS IONO ###
+ std::shared_ptr<Gps_Iono> gps_iono;
+ gps_iono = boost::any_cast<std::shared_ptr<Gps_Iono>>(pmt::any_ref(msg));
+ d_ls_pvt->gps_iono = *gps_iono;
+ DLOG(INFO) << "New IONO record has arrived ";
+ }
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Utc_Model>) )
+ {
+ // ### GPS UTC MODEL ###
+ std::shared_ptr<Gps_Utc_Model> gps_utc_model;
+ gps_utc_model = boost::any_cast<std::shared_ptr<Gps_Utc_Model>>(pmt::any_ref(msg));
+ d_ls_pvt->gps_utc_model = *gps_utc_model;
+ DLOG(INFO) << "New UTC record has arrived ";
+ }
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Sbas_Ionosphere_Correction>) )
+ {
+ // ### SBAS IONO ###
+ std::shared_ptr<Sbas_Ionosphere_Correction> sbas_iono;
+ sbas_iono = boost::any_cast<std::shared_ptr<Sbas_Ionosphere_Correction>>(pmt::any_ref(msg));
+ d_ls_pvt->sbas_iono = *sbas_iono;
+ DLOG(INFO) << "New SBAS IONO record has arrived ";
+ }
+
+ //TODO: add SBAS correction maps here
+ //d_ls_pvt->sbas_sat_corr_map = global_sbas_sat_corr_map.get_map_copy();
+ //d_ls_pvt->sbas_ephemeris_map = global_sbas_ephemeris_map.get_map_copy();
+
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Sbas_Raw_Msg>) )
+ {
+ std::shared_ptr<Sbas_Raw_Msg> sbas_raw_msg_ptr;
+ sbas_raw_msg_ptr = boost::any_cast<std::shared_ptr<Sbas_Raw_Msg>>(pmt::any_ref(msg));
+ Sbas_Raw_Msg sbas_raw_msg = *sbas_raw_msg_ptr;
+ // read SBAS raw messages directly from queue and write them into rinex file
+ // create the header of not yet done
+ if(!b_rinex_sbs_header_writen)
+ {
+ rp->rinex_sbs_header(rp->sbsFile);
+ b_rinex_sbs_header_writen = true;
+ }
+ // Define the RX time of the SBAS message by using the GPS time.
+ // It has only an effect if there has not been yet a SBAS MT12 available
+ // when the message was received.
+ if(sbas_raw_msg.get_rx_time_obj().is_related() == false
+ && gnss_pseudoranges_map.size() > 0
+ && d_ls_pvt->gps_ephemeris_map.size() > 0)
+ {
+ // doesn't matter which channel/satellite we choose
+ Gnss_Synchro gs = gnss_pseudoranges_map.begin()->second;
+ Gps_Ephemeris eph = d_ls_pvt->gps_ephemeris_map.begin()->second;
+
+ double relative_rx_time = gs.Tracking_timestamp_secs;
+ int gps_week = eph.i_GPS_week;
+ double gps_sec = gs.d_TOW_at_current_symbol;
+
+ Sbas_Time_Relation time_rel(relative_rx_time, gps_week, gps_sec);
+ sbas_raw_msg.relate(time_rel);
+ }
+
+ // send the message to the rinex logger if it has a valid GPS time stamp
+ if(sbas_raw_msg.get_rx_time_obj().is_related())
+ {
+ rp->log_rinex_sbs(rp->sbsFile, sbas_raw_msg);
+ }
+ }
-
++ else
++ {
++ LOG(WARNING) << "msg_handler_telemetry unknown object type!";
++ }
}
catch(boost::bad_any_cast& e)
{
- DLOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
- LOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
++ LOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
}
}
+
gps_l1_ca_pvt_cc::gps_l1_ca_pvt_cc(unsigned int nchannels,
- boost::shared_ptr<gr::msg_queue> queue,
bool dump, std::string dump_filename,
int averaging_depth,
bool flag_averaging,
@@@ -238,19 -234,19 +239,21 @@@ bool pseudoranges_pairCompare_min(cons
return (a.second.Pseudorange_m) < (b.second.Pseudorange_m);
}
++
void gps_l1_ca_pvt_cc::print_receiver_status(Gnss_Synchro** channels_synchronization_data)
{
// Print the current receiver status using std::cout every second
- int current_rx_seg=floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
+ int current_rx_seg = floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
if ( current_rx_seg!= d_last_status_print_seg)
- {
- d_last_status_print_seg = current_rx_seg;
- std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl<< std::flush;
- //DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
- // << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
- }
+ {
+ d_last_status_print_seg = current_rx_seg;
- std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl<< std::flush;
++ std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl << std::flush;
+ //DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
+ // << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
+ }
}
++
int gps_l1_ca_pvt_cc::general_work (int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)),
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items __attribute__((unused)))
{
diff --cc src/algorithms/PVT/gnuradio_blocks/hybrid_pvt_cc.cc
index 4a38fd0,8e4f196..2a47058
--- a/src/algorithms/PVT/gnuradio_blocks/hybrid_pvt_cc.cc
+++ b/src/algorithms/PVT/gnuradio_blocks/hybrid_pvt_cc.cc
@@@ -47,96 -47,94 +47,100 @@@ hybrid_make_pvt_cc(unsigned int nchanne
}
--
void hybrid_pvt_cc::msg_handler_telemetry(pmt::pmt_t msg)
{
try {
- if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Ephemeris>) )
- {
- // ### GPS EPHEMERIS ###
- std::shared_ptr<Gps_Ephemeris> gps_eph;
- gps_eph= boost::any_cast<std::shared_ptr<Gps_Ephemeris>>(pmt::any_ref(msg));
- DLOG(INFO) << "Ephemeris record has arrived from SAT ID "
- << gps_eph->i_satellite_PRN << " (Block "
- << gps_eph->satelliteBlock[gps_eph->i_satellite_PRN] << ")"
- << "inserted with Toe="<< gps_eph->d_Toe<<" and GPS Week="
- << gps_eph->i_GPS_week;
- // update/insert new ephemeris record to the global ephemeris map
- d_ls_pvt->gps_ephemeris_map[gps_eph->i_satellite_PRN]=*gps_eph;
- }
- else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Iono>) )
- {
- // ### GPS IONO ###
- std::shared_ptr<Gps_Iono> gps_iono;
- gps_iono= boost::any_cast<std::shared_ptr<Gps_Iono>>(pmt::any_ref(msg));
- d_ls_pvt->gps_iono=*gps_iono;
- DLOG(INFO) << "New IONO record has arrived ";
- }
- else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Utc_Model>) )
- {
- // ### GPS UTC MODEL ###
- std::shared_ptr<Gps_Utc_Model> gps_utc_model;
- gps_utc_model= boost::any_cast<std::shared_ptr<Gps_Utc_Model>>(pmt::any_ref(msg));
- d_ls_pvt->gps_utc_model=*gps_utc_model;
- DLOG(INFO) << "New UTC record has arrived ";
- }
- if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Ephemeris>) )
- {
- // ### Galileo EPHEMERIS ###
- std::shared_ptr<Galileo_Ephemeris> galileo_eph;
- galileo_eph= boost::any_cast<std::shared_ptr<Galileo_Ephemeris>>(pmt::any_ref(msg));
- // insert new ephemeris record
- DLOG(INFO) << "Galileo New Ephemeris record inserted in global map with TOW =" << galileo_eph->TOW_5
- << ", GALILEO Week Number =" << galileo_eph->WN_5
- << " and Ephemeris IOD = " << galileo_eph->IOD_ephemeris;
- // update/insert new ephemeris record to the global ephemeris map
- d_ls_pvt->galileo_ephemeris_map[galileo_eph->i_satellite_PRN]=*galileo_eph;
- }
- else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Iono>) )
- {
- // ### Galileo IONO ###
- std::shared_ptr<Galileo_Iono> galileo_iono;
- galileo_iono= boost::any_cast<std::shared_ptr<Galileo_Iono>>(pmt::any_ref(msg));
- d_ls_pvt->galileo_iono=*galileo_iono;
- DLOG(INFO) << "New IONO record has arrived ";
- }
- else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Utc_Model>) )
- {
- // ### Galileo UTC MODEL ###
- std::shared_ptr<Galileo_Utc_Model> galileo_utc_model;
- galileo_utc_model= boost::any_cast<std::shared_ptr<Galileo_Utc_Model>>(pmt::any_ref(msg));
- d_ls_pvt->galileo_utc_model=*galileo_utc_model;
- DLOG(INFO) << "New UTC record has arrived ";
- }
- else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Almanac>) )
- {
- // ### Galileo Almanac ###
- std::shared_ptr<Galileo_Almanac> galileo_almanac;
- galileo_almanac= boost::any_cast<std::shared_ptr<Galileo_Almanac>>(pmt::any_ref(msg));
- // update/insert new ephemeris record to the global ephemeris map
- d_ls_pvt->galileo_almanac=*galileo_almanac;
- DLOG(INFO) << "New Galileo Almanac has arrived ";
- }else{
- LOG(WARNING) << "msg_handler_telemetry unknown object type!";
- }
+ if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Ephemeris>) )
+ {
+ // ### GPS EPHEMERIS ###
+ std::shared_ptr<Gps_Ephemeris> gps_eph;
- gps_eph = boost::any_cast<std::shared_ptr<Gps_Ephemeris>>(pmt::any_ref(msg));
++ gps_eph= boost::any_cast<std::shared_ptr<Gps_Ephemeris>>(pmt::any_ref(msg));
+ DLOG(INFO) << "Ephemeris record has arrived from SAT ID "
+ << gps_eph->i_satellite_PRN << " (Block "
+ << gps_eph->satelliteBlock[gps_eph->i_satellite_PRN] << ")"
+ << "inserted with Toe="<< gps_eph->d_Toe<<" and GPS Week="
+ << gps_eph->i_GPS_week;
+ // update/insert new ephemeris record to the global ephemeris map
- d_ls_pvt->gps_ephemeris_map[gps_eph->i_satellite_PRN] = *gps_eph;
++ d_ls_pvt->gps_ephemeris_map[gps_eph->i_satellite_PRN]=*gps_eph;
+ }
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Iono>) )
+ {
+ // ### GPS IONO ###
+ std::shared_ptr<Gps_Iono> gps_iono;
- gps_iono = boost::any_cast<std::shared_ptr<Gps_Iono>>(pmt::any_ref(msg));
- d_ls_pvt->gps_iono = *gps_iono;
++ gps_iono= boost::any_cast<std::shared_ptr<Gps_Iono>>(pmt::any_ref(msg));
++ d_ls_pvt->gps_iono=*gps_iono;
+ DLOG(INFO) << "New IONO record has arrived ";
+ }
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Utc_Model>) )
+ {
+ // ### GPS UTC MODEL ###
+ std::shared_ptr<Gps_Utc_Model> gps_utc_model;
- gps_utc_model = boost::any_cast<std::shared_ptr<Gps_Utc_Model>>(pmt::any_ref(msg));
- d_ls_pvt->gps_utc_model = *gps_utc_model;
++ gps_utc_model= boost::any_cast<std::shared_ptr<Gps_Utc_Model>>(pmt::any_ref(msg));
++ d_ls_pvt->gps_utc_model=*gps_utc_model;
+ DLOG(INFO) << "New UTC record has arrived ";
+ }
++
+ if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Ephemeris>) )
+ {
+ // ### Galileo EPHEMERIS ###
+ std::shared_ptr<Galileo_Ephemeris> galileo_eph;
- galileo_eph = boost::any_cast<std::shared_ptr<Galileo_Ephemeris>>(pmt::any_ref(msg));
++ galileo_eph= boost::any_cast<std::shared_ptr<Galileo_Ephemeris>>(pmt::any_ref(msg));
+ // insert new ephemeris record
+ DLOG(INFO) << "Galileo New Ephemeris record inserted in global map with TOW =" << galileo_eph->TOW_5
+ << ", GALILEO Week Number =" << galileo_eph->WN_5
+ << " and Ephemeris IOD = " << galileo_eph->IOD_ephemeris;
+ // update/insert new ephemeris record to the global ephemeris map
- d_ls_pvt->galileo_ephemeris_map[galileo_eph->i_satellite_PRN] = *galileo_eph;
++ d_ls_pvt->galileo_ephemeris_map[galileo_eph->i_satellite_PRN]=*galileo_eph;
+ }
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Iono>) )
+ {
+ // ### Galileo IONO ###
+ std::shared_ptr<Galileo_Iono> galileo_iono;
- galileo_iono = boost::any_cast<std::shared_ptr<Galileo_Iono>>(pmt::any_ref(msg));
- d_ls_pvt->galileo_iono = *galileo_iono;
++ galileo_iono= boost::any_cast<std::shared_ptr<Galileo_Iono>>(pmt::any_ref(msg));
++ d_ls_pvt->galileo_iono=*galileo_iono;
+ DLOG(INFO) << "New IONO record has arrived ";
+ }
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Utc_Model>) )
+ {
+ // ### Galileo UTC MODEL ###
+ std::shared_ptr<Galileo_Utc_Model> galileo_utc_model;
- galileo_utc_model = boost::any_cast<std::shared_ptr<Galileo_Utc_Model>>(pmt::any_ref(msg));
- d_ls_pvt->galileo_utc_model = *galileo_utc_model;
++ galileo_utc_model= boost::any_cast<std::shared_ptr<Galileo_Utc_Model>>(pmt::any_ref(msg));
++ d_ls_pvt->galileo_utc_model=*galileo_utc_model;
+ DLOG(INFO) << "New UTC record has arrived ";
+ }
+ else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Almanac>) )
+ {
+ // ### Galileo Almanac ###
+ std::shared_ptr<Galileo_Almanac> galileo_almanac;
- galileo_almanac = boost::any_cast<std::shared_ptr<Galileo_Almanac>>(pmt::any_ref(msg));
++ galileo_almanac= boost::any_cast<std::shared_ptr<Galileo_Almanac>>(pmt::any_ref(msg));
+ // update/insert new ephemeris record to the global ephemeris map
- d_ls_pvt->galileo_almanac = *galileo_almanac;
++ d_ls_pvt->galileo_almanac=*galileo_almanac;
+ DLOG(INFO) << "New Galileo Almanac has arrived ";
+ }
++ else
++ {
++ LOG(WARNING) << "msg_handler_telemetry unknown object type!";
++ }
}
catch(boost::bad_any_cast& e)
{
- DLOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
- LOG(WARNING) << "msg_handler_telemetry Bad any cast!";
++ LOG(WARNING) << "msg_handler_telemetry Bad any cast!";
}
}
- hybrid_pvt_cc::hybrid_pvt_cc(unsigned int nchannels, boost::shared_ptr<gr::msg_queue> queue, bool dump, std::string dump_filename,
-hybrid_pvt_cc::hybrid_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename, int averaging_depth, bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename, std::string nmea_dump_devname, bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname) :
- gr::block("hybrid_pvt_cc", gr::io_signature::make(nchannels, nchannels, sizeof(Gnss_Synchro)),
- gr::io_signature::make(0, 0, sizeof(gr_complex)))
-{
+
++hybrid_pvt_cc::hybrid_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename,
+ int averaging_depth, bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port,
+ std::string nmea_dump_filename, std::string nmea_dump_devname,
+ bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname) :
+ gr::block("hybrid_pvt_cc", gr::io_signature::make(nchannels, nchannels, sizeof(Gnss_Synchro)),
- gr::io_signature::make(0, 0, sizeof(gr_complex)))
- {
++ gr::io_signature::make(0, 0, sizeof(gr_complex)))
+
++{
d_output_rate_ms = output_rate_ms;
d_display_rate_ms = display_rate_ms;
- d_queue = queue;
d_dump = dump;
d_nchannels = nchannels;
d_dump_filename = dump_filename;
@@@ -144,8 -142,8 +148,7 @@@
// GPS Ephemeris data message port in
this->message_port_register_in(pmt::mp("telemetry"));
-- this->set_msg_handler(pmt::mp("telemetry"),
-- boost::bind(&hybrid_pvt_cc::msg_handler_telemetry, this, _1));
++ this->set_msg_handler(pmt::mp("telemetry"), boost::bind(&hybrid_pvt_cc::msg_handler_telemetry, this, _1));
//initialize kml_printer
std::string kml_dump_filename;
@@@ -183,7 -181,7 +186,7 @@@
b_rinex_header_updated = false;
rp = std::make_shared<Rinex_Printer>();
-- d_last_status_print_seg=0;
++ d_last_status_print_seg = 0;
// ############# ENABLE DATA FILE LOG #################
if (d_dump == true)
@@@ -220,16 -218,16 +223,17 @@@ bool hybrid_pvt_cc::pseudoranges_pairCo
void hybrid_pvt_cc::print_receiver_status(Gnss_Synchro** channels_synchronization_data)
{
// Print the current receiver status using std::cout every second
-- int current_rx_seg=floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
-- if ( current_rx_seg!= d_last_status_print_seg)
-- {
-- d_last_status_print_seg = current_rx_seg;
-- std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl<< std::flush;
-- //DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
-- // << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
-- }
++ int current_rx_seg = floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
++ if ( current_rx_seg != d_last_status_print_seg)
++ {
++ d_last_status_print_seg = current_rx_seg;
++ std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl << std::flush;
++ //DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
++ // << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
++ }
}
++
int hybrid_pvt_cc::general_work (int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)),
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items __attribute__((unused)))
{
diff --cc src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet2_16ic.h
index a3958dc,a3958dc..8b670ab
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet2_16ic.h
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet2_16ic.h
@@@ -44,7 -44,7 +44,7 @@@
#ifdef LV_HAVE_GENERIC
static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_generic(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
++ float code_phase_step_chips = -0.6;
int code_length_chips = 2046;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -74,7 -74,7 +74,7 @@@
#ifdef LV_HAVE_SSE3
static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_a_sse3(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
++ float code_phase_step_chips = -0.6;
int code_length_chips = 2046;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -103,7 -103,7 +103,7 @@@
#ifdef LV_HAVE_SSE3
static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_u_sse3(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
++ float code_phase_step_chips = -0.6;
int code_length_chips = 2046;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -133,7 -133,7 +133,7 @@@
#ifdef LV_HAVE_SSE4_1
static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_u_sse4_1(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
++ float code_phase_step_chips = -0.6;
int code_length_chips = 2046;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -163,7 -163,7 +163,7 @@@
#ifdef LV_HAVE_SSE4_1
static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_a_sse4_1(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
++ float code_phase_step_chips = -0.6;
int code_length_chips = 2046;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -193,7 -193,7 +193,7 @@@
#ifdef LV_HAVE_AVX
static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_u_avx(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
++ float code_phase_step_chips = -0.6;
int code_length_chips = 2046;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -223,7 -223,7 +223,7 @@@
#ifdef LV_HAVE_AVX
static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_a_avx(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
++ float code_phase_step_chips = -0.6;
int code_length_chips = 2046;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -253,7 -253,7 +253,7 @@@
#ifdef LV_HAVE_NEON
static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_neon(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
++ float code_phase_step_chips = -0.6;
int code_length_chips = 2046;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
diff --cc src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h
index 1b50d2e,1b50d2e..dc310f9
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h
@@@ -41,11 -41,11 +41,13 @@@
#include <volk_gnsssdr/volk_gnsssdr.h>
#include <string.h>
++
++
#ifdef LV_HAVE_GENERIC
static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_generic(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
-- int code_length_chips = 2046;
++ float code_phase_step_chips = -0.6;
++ int code_length_chips = 1023;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -74,8 -74,8 +76,8 @@@
#ifdef LV_HAVE_SSE3
static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_a_sse3(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
-- int code_length_chips = 2046;
++ float code_phase_step_chips = -0.6;
++ int code_length_chips = 1023;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -103,8 -103,8 +105,8 @@@
#ifdef LV_HAVE_SSE3
static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_u_sse3(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
-- int code_length_chips = 2046;
++ float code_phase_step_chips = -0.6;
++ int code_length_chips = 1023;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -133,8 -133,8 +135,8 @@@
#ifdef LV_HAVE_SSE4_1
static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_u_sse4_1(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
-- int code_length_chips = 2046;
++ float code_phase_step_chips = -0.6;
++ int code_length_chips = 1023;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -162,8 -162,8 +164,8 @@@
#ifdef LV_HAVE_SSE4_1
static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_a_sse4_1(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
-- int code_length_chips = 2046;
++ float code_phase_step_chips = -0.6;
++ int code_length_chips = 1023;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -191,8 -191,8 +193,8 @@@
#ifdef LV_HAVE_AVX
static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_a_avx(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
-- int code_length_chips = 2046;
++ float code_phase_step_chips = -0.6;
++ int code_length_chips = 1023;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -220,8 -220,8 +222,8 @@@
#ifdef LV_HAVE_AVX
static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_u_avx(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
-- int code_length_chips = 2046;
++ float code_phase_step_chips = -0.6;
++ int code_length_chips = 1023;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
@@@ -249,8 -249,8 +251,8 @@@
#ifdef LV_HAVE_NEON
static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_neon(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
{
-- float code_phase_step_chips = 0.6;
-- int code_length_chips = 2046;
++ float code_phase_step_chips = -0.6;
++ int code_length_chips = 1023;
int num_out_vectors = 3;
float rem_code_phase_chips = -0.234;
diff --cc src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.cc
index abf444d,b8ba2fe..8203e94
--- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.cc
+++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.cc
@@@ -250,22 -248,20 +248,21 @@@ void galileo_e1b_telemetry_decoder_cc::
if (d_nav.have_new_ephemeris() == true)
{
// get object for this SV (mandatory)
- std::shared_ptr<Galileo_Ephemeris> tmp_obj= std::make_shared<Galileo_Ephemeris>(d_nav.get_ephemeris());
- //*tmp_obj = d_nav.get_ephemeris();//notice that the read operation will clear the valid flag
- std::shared_ptr<Galileo_Ephemeris> tmp_obj= std::make_shared<Galileo_Ephemeris>( d_nav.get_ephemeris());
++ std::shared_ptr<Galileo_Ephemeris> tmp_obj = std::make_shared<Galileo_Ephemeris>(d_nav.get_ephemeris());
++
this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
+
}
if (d_nav.have_new_iono_and_GST() == true)
{
// get object for this SV (mandatory)
-- std::shared_ptr<Galileo_Iono> tmp_obj= std::make_shared<Galileo_Iono>(d_nav.get_iono());
- //*tmp_obj = d_nav.get_iono(); //notice that the read operation will clear the valid flag
++ std::shared_ptr<Galileo_Iono> tmp_obj = std::make_shared<Galileo_Iono>(d_nav.get_iono());
this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
}
if (d_nav.have_new_utc_model() == true)
{
// get object for this SV (mandatory)
-- std::shared_ptr<Galileo_Utc_Model> tmp_obj= std::make_shared<Galileo_Utc_Model>(d_nav.get_utc_model());
- //*tmp_obj = d_nav.get_utc_model(); //notice that the read operation will clear the valid flag
++ std::shared_ptr<Galileo_Utc_Model> tmp_obj = std::make_shared<Galileo_Utc_Model>(d_nav.get_utc_model());
this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
}
if (d_nav.have_new_almanac() == true)
@@@ -399,7 -394,7 +395,9 @@@ int galileo_e1b_telemetry_decoder_cc::g
}
}
}
++
consume_each(1); //one by one
++
// UPDATE GNSS SYNCHRO DATA
Gnss_Synchro current_synchro_data; //structure to save the synchronization information and send the output object to the next block
//1. Copy the current tracking output
@@@ -443,7 -438,7 +441,6 @@@
d_TOW_at_current_symbol = d_TOW_at_current_symbol + GALILEO_E1_CODE_PERIOD;// + GALILEO_INAV_PAGE_PART_SYMBOLS*GALILEO_E1_CODE_PERIOD;
}
--
}
else //if there is not a new preamble, we define the TOW of the current symbol
{
diff --cc src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc
index 2b423a9,a565201..660b2f4
--- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc
+++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc
@@@ -273,42 -271,39 +271,39 @@@ int gps_l1_ca_telemetry_decoder_cc::gen
d_GPS_FSM.d_preamble_time_ms = d_preamble_time_seconds * 1000.0;
d_GPS_FSM.Event_gps_word_valid();
// send TLM data to PVT using asynchronous message queues
- if (d_GPS_FSM.d_flag_new_subframe==true)
- {
- switch (d_GPS_FSM.d_subframe_ID)
+ if (d_GPS_FSM.d_flag_new_subframe == true)
{
- case 3: //we have a new set of ephemeris data for the current SV
- if (d_GPS_FSM.d_nav.satellite_validation() == true)
- {
- // get ephemeris object for this SV (mandatory)
- std::shared_ptr<Gps_Ephemeris> tmp_obj= std::make_shared<Gps_Ephemeris>(d_GPS_FSM.d_nav.get_ephemeris());
- this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
- }
- break;
- case 4: // Possible IONOSPHERE and UTC model update (page 18)
- if (d_GPS_FSM.d_nav.flag_iono_valid == true)
- {
- std::shared_ptr<Gps_Iono> tmp_obj= std::make_shared<Gps_Iono>(d_GPS_FSM.d_nav.get_iono());
- this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
- }
- if (d_GPS_FSM.d_nav.flag_utc_model_valid == true)
- {
- std::shared_ptr<Gps_Utc_Model> tmp_obj= std::make_shared<Gps_Utc_Model>(d_GPS_FSM.d_nav.get_utc_model());
- this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
- }
- break;
- case 5:
- // get almanac (if available)
- //TODO: implement almanac reader in navigation_message
- break;
- default:
- break;
+ switch (d_GPS_FSM.d_subframe_ID)
+ {
+ case 3: //we have a new set of ephemeris data for the current SV
+ if (d_GPS_FSM.d_nav.satellite_validation() == true)
+ {
+ // get ephemeris object for this SV (mandatory)
+ std::shared_ptr<Gps_Ephemeris> tmp_obj = std::make_shared<Gps_Ephemeris>(d_GPS_FSM.d_nav.get_ephemeris());
- // *tmp_obj = d_GPS_FSM.d_nav.get_ephemeris();
+ this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
+ }
+ break;
+ case 4: // Possible IONOSPHERE and UTC model update (page 18)
+ if (d_GPS_FSM.d_nav.flag_iono_valid == true)
+ {
+ std::shared_ptr<Gps_Iono> tmp_obj = std::make_shared<Gps_Iono>( d_GPS_FSM.d_nav.get_iono());
- // *tmp_obj = d_GPS_FSM.d_nav.get_iono(); //notice that the read operation will clear the valid flag
+ this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
+ }
+ if (d_GPS_FSM.d_nav.flag_utc_model_valid == true)
+ {
+ std::shared_ptr<Gps_Utc_Model> tmp_obj = std::make_shared<Gps_Utc_Model>(d_GPS_FSM.d_nav.get_utc_model());
- //*tmp_obj = d_GPS_FSM.d_nav.get_utc_model(); //notice that the read operation will clear the valid flag
+ this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
+ }
+ break;
+ case 5:
+ // get almanac (if available)
+ //TODO: implement almanac reader in navigation_message
+ break;
+ default:
+ break;
+ }
+ d_GPS_FSM.clear_flag_new_subframe();
}
- d_GPS_FSM.clear_flag_new_subframe();
- }
d_flag_parity = true;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/gnss-sdr.git
More information about the pkg-hamradio-commits
mailing list