From c754f77417cad6db60fef3ea4e66e12bf9d23a6b Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 18 Mar 2019 21:28:15 +0100 Subject: [PATCH 1/3] Add BeiDou B3I, reorder signals from higher to lower frequency --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 020b9907e..4e6e0b11c 100644 --- a/README.md +++ b/README.md @@ -8,14 +8,15 @@ This program is a software-defined receiver which is able to process (that is, to perform detection, synchronization, demodulation and decoding of the navigation message, computation of observables and, finally, computation of position fixes) the following Global Navigation Satellite System's signals: In the L1 band: - - 🛰 BeiDou B1I (centered at 1561.098 MHz) :white_check_mark: - - 🛰 GPS L1 C/A (centered at 1575.42 MHz) :white_check_mark: - - 🛰 Galileo E1b/c (centered at 1575.42 MHz) :white_check_mark: - 🛰 GLONASS L1 C/A (centered at 1602.00 MHz) :white_check_mark: + - 🛰 GPS L1 C/A (centered at 1575.42 MHz) :white_check_mark: + - 🛰 Galileo E1b/c (centered at 1575.42 MHz) :white_check_mark: + - 🛰 BeiDou B1I (centered at 1561.098 MHz) :white_check_mark: In the L2 band: - - 🛰 GPS L2C (centered at 1227.60 MHz) :white_check_mark: + - 🛰 BeiDou B3I (centered at 1268.520 MHz) :white_check_mark: - 🛰 GLONASS L2 C/A (centered at 1246.00 MHz) :white_check_mark: + - 🛰 GPS L2C (centered at 1227.60 MHz) :white_check_mark: In the L5 band: - 🛰 GPS L5 (centered at 1176.45 MHz) :white_check_mark: @@ -1128,6 +1129,7 @@ Each channel must be assigned to a GNSS signal, according to the following ident | Galileo E1b/c | 1B | | Glonass L1 C/A | 1G | | Beidou B1I | B1 | +| Beidou B3I | B3 | | GPS L2 L2C(M) | 2S | | Glonass L2 C/A | 2G | | GPS L5 | L5 | From 2afcbb7803c56dbacb95e501827d4b45c21c1463 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 18 Mar 2019 21:47:36 +0100 Subject: [PATCH 2/3] Fix warning --- .../tracking/gnuradio_blocks/dll_pll_veml_tracking.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index 2e047b529..c424f6c59 100644 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -643,7 +643,7 @@ void dll_pll_veml_tracking::start_tracking() uint32_t preambles_bits[BEIDOU_B1I_PREAMBLE_LENGTH_BITS] = {1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0}; for (uint32_t preambles_bit : preambles_bits) { - for (uint32_t j = 0; j < d_symbols_per_bit; j++) + for (int32_t j = 0; j < d_symbols_per_bit; j++) { if (preambles_bit == 1) { From df46cdeb65faf5716e8914271fe9475fd85c48aa Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Mon, 18 Mar 2019 21:35:55 +0100 Subject: [PATCH 3/3] Add missing message ports to trackings --- .../tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc | 3 +++ .../gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc | 2 ++ .../gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc | 1 + .../gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc | 1 + .../gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc | 2 +- .../gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc | 1 + .../gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc | 1 + .../gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc | 2 +- .../gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc | 2 ++ .../gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc | 1 + .../gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc | 1 + .../tracking/gnuradio_blocks/gps_l1_ca_kf_tracking_cc.cc | 2 +- .../gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc | 1 + 13 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc index 1cc9e7bdf..481a82de8 100644 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc @@ -78,6 +78,9 @@ dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(const Dll_Pll_Conf_Fpga & // Telemetry bit synchronization message port input (mainly for GPS L1 CA) this->message_port_register_in(pmt::mp("preamble_samplestamp")); + // Telemetry message port input + this->message_port_register_in(pmt::mp("telemetry_to_trk")); + //todo: Implement the telemetry_to_trk handler in the same way the software version of tracking // initialize internal vars d_veml = false; diff --git a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc index b6abc58d7..3d4ae0ff5 100644 --- a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc @@ -95,6 +95,8 @@ Galileo_E1_Tcp_Connector_Tracking_cc::Galileo_E1_Tcp_Connector_Tracking_cc( { this->message_port_register_out(pmt::mp("events")); this->set_relative_rate(1.0 / vector_length); + // Telemetry message port input + this->message_port_register_in(pmt::mp("telemetry_to_trk")); // initialize internal vars d_dump = dump; d_fs_in = fs_in; diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc index 27ae8ad4d..26db5d57f 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc @@ -120,6 +120,7 @@ glonass_l1_ca_dll_pll_c_aid_tracking_cc::glonass_l1_ca_dll_pll_c_aid_tracking_cc boost::bind(&glonass_l1_ca_dll_pll_c_aid_tracking_cc::msg_handler_preamble_index, this, _1)); this->message_port_register_out(pmt::mp("events")); + this->message_port_register_in(pmt::mp("telemetry_to_trk")); // initialize internal vars d_dump = dump; d_fs_in = fs_in; diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc index e3d4c509d..563ee72f2 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc @@ -115,6 +115,7 @@ glonass_l1_ca_dll_pll_c_aid_tracking_sc::glonass_l1_ca_dll_pll_c_aid_tracking_sc this->set_msg_handler(pmt::mp("preamble_timestamp_s"), boost::bind(&glonass_l1_ca_dll_pll_c_aid_tracking_sc::msg_handler_preamble_index, this, _1)); this->message_port_register_out(pmt::mp("events")); + this->message_port_register_in(pmt::mp("telemetry_to_trk")); // initialize internal vars d_dump = dump; d_fs_in = fs_in; diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc index e14cd74d2..02aa70906 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc @@ -92,7 +92,7 @@ Glonass_L1_Ca_Dll_Pll_Tracking_cc::Glonass_L1_Ca_Dll_Pll_Tracking_cc( gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { this->message_port_register_out(pmt::mp("events")); - + this->message_port_register_in(pmt::mp("telemetry_to_trk")); // initialize internal vars d_dump = dump; d_fs_in = fs_in; diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc index f9f45288e..e76a5978a 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc @@ -117,6 +117,7 @@ glonass_l2_ca_dll_pll_c_aid_tracking_cc::glonass_l2_ca_dll_pll_c_aid_tracking_cc boost::bind(&glonass_l2_ca_dll_pll_c_aid_tracking_cc::msg_handler_preamble_index, this, _1)); this->message_port_register_out(pmt::mp("events")); + this->message_port_register_in(pmt::mp("telemetry_to_trk")); // initialize internal vars d_dump = dump; d_fs_in = fs_in; diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc index 0958c7b55..4014c70d7 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc @@ -114,6 +114,7 @@ glonass_l2_ca_dll_pll_c_aid_tracking_sc::glonass_l2_ca_dll_pll_c_aid_tracking_sc this->set_msg_handler(pmt::mp("preamble_timestamp_s"), boost::bind(&glonass_l2_ca_dll_pll_c_aid_tracking_sc::msg_handler_preamble_index, this, _1)); this->message_port_register_out(pmt::mp("events")); + this->message_port_register_in(pmt::mp("telemetry_to_trk")); // initialize internal vars d_dump = dump; d_fs_in = fs_in; diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc index bb28a5580..8f4151f6a 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc @@ -92,7 +92,7 @@ Glonass_L2_Ca_Dll_Pll_Tracking_cc::Glonass_L2_Ca_Dll_Pll_Tracking_cc( gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { this->message_port_register_out(pmt::mp("events")); - + this->message_port_register_in(pmt::mp("telemetry_to_trk")); // initialize internal vars d_dump = dump; d_fs_in = fs_in; diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc index f2e7a11bc..cfe2215fa 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc @@ -108,6 +108,8 @@ gps_l1_ca_dll_pll_c_aid_tracking_cc::gps_l1_ca_dll_pll_c_aid_tracking_cc( boost::bind(&gps_l1_ca_dll_pll_c_aid_tracking_cc::msg_handler_preamble_index, this, _1)); this->message_port_register_out(pmt::mp("events")); + this->message_port_register_in(pmt::mp("telemetry_to_trk")); + // initialize internal vars d_dump = dump; d_fs_in = fs_in; diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc index 782383c0c..80bdb24a0 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc @@ -105,6 +105,7 @@ gps_l1_ca_dll_pll_c_aid_tracking_sc::gps_l1_ca_dll_pll_c_aid_tracking_sc( this->set_msg_handler(pmt::mp("preamble_timestamp_s"), boost::bind(&gps_l1_ca_dll_pll_c_aid_tracking_sc::msg_handler_preamble_index, this, _1)); this->message_port_register_out(pmt::mp("events")); + this->message_port_register_in(pmt::mp("telemetry_to_trk")); // initialize internal vars d_dump = dump; d_fs_in = fs_in; diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc index 0031c1c69..2b0dcbcbc 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc @@ -82,6 +82,7 @@ Gps_L1_Ca_Dll_Pll_Tracking_GPU_cc::Gps_L1_Ca_Dll_Pll_Tracking_GPU_cc( // Telemetry bit synchronization message port input this->message_port_register_in(pmt::mp("preamble_timestamp_s")); this->message_port_register_out(pmt::mp("events")); + this->message_port_register_in(pmt::mp("telemetry_to_trk")); // initialize internal vars d_dump = dump; d_fs_in = fs_in; diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_kf_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_kf_tracking_cc.cc index 84cb3d166..a07831b7d 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_kf_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_kf_tracking_cc.cc @@ -106,7 +106,7 @@ Gps_L1_Ca_Kf_Tracking_cc::Gps_L1_Ca_Kf_Tracking_cc( // Telemetry bit synchronization message port input this->message_port_register_in(pmt::mp("preamble_timestamp_s")); this->message_port_register_out(pmt::mp("events")); - + this->message_port_register_in(pmt::mp("telemetry_to_trk")); // initialize internal vars d_order = order; d_dump = dump; diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc index f8cf984a1..f69896a7a 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc @@ -87,6 +87,7 @@ Gps_L1_Ca_Tcp_Connector_Tracking_cc::Gps_L1_Ca_Tcp_Connector_Tracking_cc( gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { this->message_port_register_out(pmt::mp("events")); + this->message_port_register_in(pmt::mp("telemetry_to_trk")); // initialize internal vars d_dump = dump; d_fs_in = fs_in;