diff --git a/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt b/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt index 0223bf737..5e2542ddd 100644 --- a/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt +++ b/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt @@ -60,11 +60,11 @@ endif() target_link_libraries(telemetry_decoder_adapters PUBLIC telemetry_decoder_gr_blocks + telemetry_decoder_libs PRIVATE Gflags::gflags Glog::glog Gnuradio::runtime - telemetry_decoder_libs ) target_include_directories(telemetry_decoder_adapters diff --git a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.cc index dff788834..2eaa17103 100644 --- a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.cc @@ -32,12 +32,10 @@ BeidouB1iTelemetryDecoder::BeidouB1iTelemetryDecoder( in_streams_(in_streams), out_streams_(out_streams) { - const std::string default_dump_filename("./navigation.dat"); DLOG(INFO) << "role " << role; - dump_ = configuration->property(role + ".dump", false); - dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); + tlm_parameters_.SetFromConfiguration(configuration, role); // make telemetry decoder object - telemetry_decoder_ = beidou_b1i_make_telemetry_decoder_gs(satellite_, dump_); // TODO fix me + telemetry_decoder_ = beidou_b1i_make_telemetry_decoder_gs(satellite_, tlm_parameters_); DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.h index c287d3677..7d074f896 100644 --- a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.h @@ -26,6 +26,7 @@ #include "beidou_b1i_telemetry_decoder_gs.h" #include "gnss_satellite.h" // for Gnss_Satellite #include "gnss_synchro.h" +#include "tlm_conf.h" #include "telemetry_decoder_interface.h" #include // for basic_block_sptr, top_block_sptr #include // for size_t @@ -86,12 +87,11 @@ public: private: beidou_b1i_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; - std::string dump_filename_; + Tlm_Conf tlm_parameters_; std::string role_; int channel_; unsigned int in_streams_; unsigned int out_streams_; - bool dump_; }; diff --git a/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.cc index e6c32b1ad..9dd220fe1 100644 --- a/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.cc @@ -27,13 +27,10 @@ BeidouB3iTelemetryDecoder::BeidouB3iTelemetryDecoder( unsigned int in_streams, unsigned int out_streams) : role_(role), in_streams_(in_streams), out_streams_(out_streams) { - const std::string default_dump_filename("./navigation.dat"); DLOG(INFO) << "role " << role; - dump_ = configuration->property(role + ".dump", false); - dump_filename_ = - configuration->property(role + ".dump_filename", default_dump_filename); + tlm_parameters_.SetFromConfiguration(configuration, role); // make telemetry decoder object - telemetry_decoder_ = beidou_b3i_make_telemetry_decoder_gs(satellite_, dump_); + telemetry_decoder_ = beidou_b3i_make_telemetry_decoder_gs(satellite_, tlm_parameters_); DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.h index 998b1512e..40969f3ac 100644 --- a/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.h @@ -25,6 +25,7 @@ #include "gnss_satellite.h" // for Gnss_Satellite #include "gnss_synchro.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include // for basic_block_sptr, top_block_sptr #include // for size_t #include @@ -81,12 +82,11 @@ public: private: beidou_b3i_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; - std::string dump_filename_; + Tlm_Conf tlm_parameters_; std::string role_; int channel_; unsigned int in_streams_; unsigned int out_streams_; - bool dump_; }; /** \} */ diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc index b9f3fae18..bd5c5ff94 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc @@ -33,12 +33,10 @@ GalileoE1BTelemetryDecoder::GalileoE1BTelemetryDecoder( in_streams_(in_streams), out_streams_(out_streams) { - const std::string default_dump_filename("./navigation.dat"); DLOG(INFO) << "role " << role; - dump_ = configuration->property(role + ".dump", false); - dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); + tlm_parameters_.SetFromConfiguration(configuration, role); // make telemetry decoder object - telemetry_decoder_ = galileo_make_telemetry_decoder_gs(satellite_, 1, dump_); // unified galileo decoder set to INAV (frame_type=1) + telemetry_decoder_ = galileo_make_telemetry_decoder_gs(satellite_, tlm_parameters_, 1); // unified galileo decoder set to INAV (frame_type=1) DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h index f2881b7e5..914baf31d 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h @@ -28,6 +28,7 @@ #include "gnss_satellite.h" #include "gnss_synchro.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include // for basic_block_sptr, top_block_sptr #include // for size_t #include @@ -89,12 +90,11 @@ public: private: galileo_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; - std::string dump_filename_; + Tlm_Conf tlm_parameters_; std::string role_; int channel_; unsigned int in_streams_; unsigned int out_streams_; - bool dump_; }; diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc index 254107487..b859b4eb3 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc @@ -36,12 +36,10 @@ GalileoE5aTelemetryDecoder::GalileoE5aTelemetryDecoder( in_streams_(in_streams), out_streams_(out_streams) { - const std::string default_dump_filename("./navigation.dat"); DLOG(INFO) << "role " << role; - dump_ = configuration->property(role + ".dump", false); - dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); + tlm_parameters_.SetFromConfiguration(configuration, role); // make telemetry decoder object - telemetry_decoder_ = galileo_make_telemetry_decoder_gs(satellite_, 2, dump_); // unified galileo decoder set to FNAV (frame_type=2) + telemetry_decoder_ = galileo_make_telemetry_decoder_gs(satellite_, tlm_parameters_, 2); // unified galileo decoder set to FNAV (frame_type=2) DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h index c1445c62d..52a3e8713 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h @@ -30,6 +30,7 @@ #include "gnss_satellite.h" // for Gnss_Satellite #include "gnss_synchro.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include // for basic_block_sptr, top_block_sptr #include // for size_t #include @@ -91,12 +92,11 @@ public: private: galileo_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; - std::string dump_filename_; + Tlm_Conf tlm_parameters_; std::string role_; int channel_; unsigned int in_streams_; unsigned int out_streams_; - bool dump_; }; diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.cc index 9021ddffc..d5666ce84 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.cc @@ -34,12 +34,10 @@ GalileoE5bTelemetryDecoder::GalileoE5bTelemetryDecoder( in_streams_(in_streams), out_streams_(out_streams) { - const std::string default_dump_filename("./navigation.dat"); DLOG(INFO) << "role " << role; - dump_ = configuration->property(role + ".dump", false); - dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); + tlm_parameters_.SetFromConfiguration(configuration, role); // make telemetry decoder object - telemetry_decoder_ = galileo_make_telemetry_decoder_gs(satellite_, 1, dump_); // unified galileo decoder set to INAV (frame_type=1) + telemetry_decoder_ = galileo_make_telemetry_decoder_gs(satellite_, tlm_parameters_, 1); // unified galileo decoder set to INAV (frame_type=1) DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.h index 1cb358f49..1331565de 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.h @@ -28,6 +28,7 @@ #include "gnss_satellite.h" #include "gnss_synchro.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include // for basic_block_sptr, top_block_sptr #include // for size_t #include @@ -104,12 +105,11 @@ public: private: galileo_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; - std::string dump_filename_; + Tlm_Conf tlm_parameters_; std::string role_; int channel_; unsigned int in_streams_; unsigned int out_streams_; - bool dump_; }; diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.cc index 26fa7d2b5..0dba7e238 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.cc @@ -33,12 +33,10 @@ GalileoE6TelemetryDecoder::GalileoE6TelemetryDecoder( in_streams_(in_streams), out_streams_(out_streams) { - const std::string default_dump_filename("./navigation.dat"); DLOG(INFO) << "role " << role; - dump_ = configuration->property(role + ".dump", false); - dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); + tlm_parameters_.SetFromConfiguration(configuration, role); // make telemetry decoder object - telemetry_decoder_ = galileo_make_telemetry_decoder_gs(satellite_, 3, dump_); // unified galileo decoder set to CNAV (frame_type=3) + telemetry_decoder_ = galileo_make_telemetry_decoder_gs(satellite_, tlm_parameters_, 3); // unified galileo decoder set to CNAV (frame_type=3) DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.h index d254c86e6..34608ed13 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.h @@ -27,6 +27,7 @@ #include "gnss_satellite.h" #include "gnss_synchro.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include // for basic_block_sptr, top_block_sptr #include // for size_t #include @@ -103,12 +104,11 @@ public: private: galileo_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; - std::string dump_filename_; + Tlm_Conf tlm_parameters_; std::string role_; int channel_; unsigned int in_streams_; unsigned int out_streams_; - bool dump_; }; diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc index b17f5bc2b..4ce135ee6 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc @@ -33,12 +33,10 @@ GlonassL1CaTelemetryDecoder::GlonassL1CaTelemetryDecoder( in_streams_(in_streams), out_streams_(out_streams) { - const std::string default_dump_filename("./navigation.dat"); DLOG(INFO) << "role " << role; - dump_ = configuration->property(role + ".dump", false); - dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); + tlm_parameters_.SetFromConfiguration(configuration, role); // make telemetry decoder object - telemetry_decoder_ = glonass_l1_ca_make_telemetry_decoder_gs(satellite_, dump_); + telemetry_decoder_ = glonass_l1_ca_make_telemetry_decoder_gs(satellite_, tlm_parameters_); DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h index 42283657a..fddfd2fd6 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h @@ -27,6 +27,7 @@ #include "gnss_satellite.h" // for Gnss_Satellite #include "gnss_synchro.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include // for basic_block_sptr, top_block_sptr #include // for size_t #include @@ -85,12 +86,11 @@ public: private: glonass_l1_ca_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; - std::string dump_filename_; + Tlm_Conf tlm_parameters_; std::string role_; int channel_; unsigned int in_streams_; unsigned int out_streams_; - bool dump_; }; diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc index 0bbbf5384..188f827c3 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc @@ -32,12 +32,10 @@ GlonassL2CaTelemetryDecoder::GlonassL2CaTelemetryDecoder( in_streams_(in_streams), out_streams_(out_streams) { - const std::string default_dump_filename("./navigation.dat"); DLOG(INFO) << "role " << role; - dump_ = configuration->property(role + ".dump", false); - dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); + tlm_parameters_.SetFromConfiguration(configuration, role); // make telemetry decoder object - telemetry_decoder_ = glonass_l2_ca_make_telemetry_decoder_gs(satellite_, dump_); + telemetry_decoder_ = glonass_l2_ca_make_telemetry_decoder_gs(satellite_, tlm_parameters_); DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h index 5471c6f84..c0e535eca 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h @@ -26,6 +26,7 @@ #include "gnss_satellite.h" // for Gnss_Satellite #include "gnss_synchro.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include // for basic_block_sptr, top_block_sptr #include // for size_t #include @@ -84,12 +85,11 @@ public: private: glonass_l2_ca_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; - std::string dump_filename_; + Tlm_Conf tlm_parameters_; std::string role_; int channel_; unsigned int in_streams_; unsigned int out_streams_; - bool dump_; }; diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc index a5aea9a8a..a707502d4 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc @@ -32,12 +32,10 @@ GpsL1CaTelemetryDecoder::GpsL1CaTelemetryDecoder( in_streams_(in_streams), out_streams_(out_streams) { - const std::string default_dump_filename("./navigation.dat"); DLOG(INFO) << "role " << role; - dump_ = configuration->property(role + ".dump", false); - dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); + tlm_parameters_.SetFromConfiguration(configuration, role); // make telemetry decoder object - telemetry_decoder_ = gps_l1_ca_make_telemetry_decoder_gs(satellite_, dump_); // TODO fix me + telemetry_decoder_ = gps_l1_ca_make_telemetry_decoder_gs(satellite_, tlm_parameters_); DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h index 8ca2b3220..3bbe21f9c 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h @@ -26,6 +26,7 @@ #include "gnss_synchro.h" #include "gps_l1_ca_telemetry_decoder_gs.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include // for basic_block_sptr, top_block_sptr #include // for size_t #include @@ -88,12 +89,11 @@ public: private: gps_l1_ca_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; - std::string dump_filename_; + Tlm_Conf tlm_parameters_; std::string role_; int channel_; unsigned int in_streams_; unsigned int out_streams_; - bool dump_; }; diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc index b88139aa6..7a5325f60 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc @@ -32,12 +32,10 @@ GpsL2CTelemetryDecoder::GpsL2CTelemetryDecoder( in_streams_(in_streams), out_streams_(out_streams) { - const std::string default_dump_filename("./navigation.dat"); DLOG(INFO) << "role " << role; - dump_ = configuration->property(role + ".dump", false); - dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); + tlm_parameters_.SetFromConfiguration(configuration, role); // make telemetry decoder object - telemetry_decoder_ = gps_l2c_make_telemetry_decoder_gs(satellite_, dump_); // TODO fix me + telemetry_decoder_ = gps_l2c_make_telemetry_decoder_gs(satellite_, tlm_parameters_); DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h index 5d3b0d527..225c17278 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h @@ -26,6 +26,7 @@ #include "gnss_synchro.h" #include "gps_l2c_telemetry_decoder_gs.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include // for basic_block_sptr, top_block_sptr #include // for size_t #include @@ -86,12 +87,11 @@ public: private: gps_l2c_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; - std::string dump_filename_; + Tlm_Conf tlm_parameters_; std::string role_; int channel_; unsigned int in_streams_; unsigned int out_streams_; - bool dump_; }; diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc index be5876f8c..a6d80ebe6 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc @@ -32,12 +32,10 @@ GpsL5TelemetryDecoder::GpsL5TelemetryDecoder( in_streams_(in_streams), out_streams_(out_streams) { - const std::string default_dump_filename("./navigation.dat"); DLOG(INFO) << "role " << role; - dump_ = configuration->property(role + ".dump", false); - dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); + tlm_parameters_.SetFromConfiguration(configuration, role); // make telemetry decoder object - telemetry_decoder_ = gps_l5_make_telemetry_decoder_gs(satellite_, dump_); + telemetry_decoder_ = gps_l5_make_telemetry_decoder_gs(satellite_, tlm_parameters_); DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h index 12343841c..67e879d68 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h @@ -27,6 +27,7 @@ #include "gnss_synchro.h" #include "gps_l5_telemetry_decoder_gs.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include // for basic_block_sptr, top_block_sptr #include // for size_t #include @@ -86,12 +87,12 @@ public: private: gps_l5_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; + Tlm_Conf tlm_parameters_; std::string dump_filename_; std::string role_; int channel_; unsigned int in_streams_; unsigned int out_streams_; - bool dump_; }; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.cc index d00710a89..d12183290 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.cc @@ -62,16 +62,16 @@ namespace errorlib = boost::system; beidou_b1i_telemetry_decoder_gs_sptr -beidou_b1i_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump) +beidou_b1i_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf) { - return beidou_b1i_telemetry_decoder_gs_sptr(new beidou_b1i_telemetry_decoder_gs(satellite, dump)); + return beidou_b1i_telemetry_decoder_gs_sptr(new beidou_b1i_telemetry_decoder_gs(satellite, conf)); } beidou_b1i_telemetry_decoder_gs::beidou_b1i_telemetry_decoder_gs( const Gnss_Satellite &satellite, - bool dump) : gr::block("beidou_b1i_telemetry_decoder_gs", - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) + const Tlm_Conf &conf) : gr::block("beidou_b1i_telemetry_decoder_gs", + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { // prevent telemetry symbols accumulation in output buffers this->set_max_noutput_items(1); @@ -80,7 +80,9 @@ beidou_b1i_telemetry_decoder_gs::beidou_b1i_telemetry_decoder_gs( // Control messages to tracking block this->message_port_register_out(pmt::mp("telemetry_to_trk")); // initialize internal vars - d_dump = dump; + d_dump_filename = conf.dump_filename; + d_dump = conf.dump; + d_dump_mat = conf.dump_mat; d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); LOG(INFO) << "Initializing BeiDou B1I Telemetry Decoding for satellite " << this->d_satellite; @@ -147,7 +149,7 @@ beidou_b1i_telemetry_decoder_gs::~beidou_b1i_telemetry_decoder_gs() } } } - if (d_dump && (pos != 0)) + if (d_dump && (pos != 0) && d_dump_mat) { try { @@ -492,7 +494,6 @@ void beidou_b1i_telemetry_decoder_gs::set_channel(int32_t channel) { try { - d_dump_filename = "telemetry"; d_dump_filename.append(std::to_string(d_channel)); d_dump_filename.append(".dat"); d_dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.h index 73f3c7b05..a3db055fc 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.h @@ -26,6 +26,7 @@ #include "beidou_dnav_navigation_message.h" #include "gnss_block_interface.h" #include "gnss_satellite.h" +#include "tlm_conf.h" #include #include // for block #include // for gr_vector_const_void_star @@ -46,7 +47,7 @@ using beidou_b1i_telemetry_decoder_gs_sptr = gnss_shared_ptrmessage_port_register_out(pmt::mp("telemetry_to_trk")); // initialize internal vars - d_dump = dump; + d_dump_filename = conf.dump_filename; + d_dump = conf.dump; + d_dump_mat = conf.dump_mat; d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); LOG(INFO) << "Initializing BeiDou B3I Telemetry Decoding for satellite " << this->d_satellite; @@ -147,7 +149,7 @@ beidou_b3i_telemetry_decoder_gs::~beidou_b3i_telemetry_decoder_gs() } } } - if (d_dump && (pos != 0)) + if (d_dump && (pos != 0) && d_dump_mat) { try { @@ -509,7 +511,6 @@ void beidou_b3i_telemetry_decoder_gs::set_channel(int32_t channel) { try { - d_dump_filename = "telemetry"; d_dump_filename.append(std::to_string(d_channel)); d_dump_filename.append(".dat"); d_dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.h index d0930c812..d35b65ecb 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.h @@ -23,6 +23,7 @@ #include "beidou_dnav_navigation_message.h" #include "gnss_block_interface.h" #include "gnss_satellite.h" +#include "tlm_conf.h" #include #include // for block #include // for gr_vector_const_void_star @@ -45,7 +46,7 @@ using beidou_b3i_telemetry_decoder_gs_sptr = beidou_b3i_telemetry_decoder_gs_sptr beidou_b3i_make_telemetry_decoder_gs( const Gnss_Satellite &satellite, - bool dump); + const Tlm_Conf &conf); /*! * \brief This class implements a block that decodes the BeiDou DNAV data. @@ -68,9 +69,9 @@ public: private: friend beidou_b3i_telemetry_decoder_gs_sptr beidou_b3i_make_telemetry_decoder_gs( const Gnss_Satellite &satellite, - bool dump); + const Tlm_Conf &conf); - beidou_b3i_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); + beidou_b3i_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf); int32_t save_matfile() const; @@ -118,6 +119,7 @@ private: bool d_sent_tlm_failed_msg; bool Flag_valid_word; bool d_dump; + bool d_dump_mat; }; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc index b6331d591..1a987857a 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc @@ -67,16 +67,17 @@ namespace errorlib = boost::system; galileo_telemetry_decoder_gs_sptr -galileo_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, int frame_type, bool dump) +galileo_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf, int frame_type) { - return galileo_telemetry_decoder_gs_sptr(new galileo_telemetry_decoder_gs(satellite, frame_type, dump)); + return galileo_telemetry_decoder_gs_sptr(new galileo_telemetry_decoder_gs(satellite, conf, frame_type)); } galileo_telemetry_decoder_gs::galileo_telemetry_decoder_gs( - const Gnss_Satellite &satellite, int frame_type, - bool dump) : gr::block("galileo_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) + const Gnss_Satellite &satellite, + const Tlm_Conf &conf, + int frame_type) : gr::block("galileo_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { // prevent telemetry symbols accumulation in output buffers this->set_max_noutput_items(1); @@ -89,7 +90,9 @@ galileo_telemetry_decoder_gs::galileo_telemetry_decoder_gs( d_band = '1'; // initialize internal vars - d_dump = dump; + d_dump_filename = conf.dump_filename; + d_dump = conf.dump; + d_dump_mat = conf.dump_mat; d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); d_frame_type = frame_type; DLOG(INFO) << "Initializing GALILEO UNIFIED TELEMETRY DECODER"; @@ -254,7 +257,7 @@ galileo_telemetry_decoder_gs::~galileo_telemetry_decoder_gs() } } } - if (d_dump && (pos != 0)) + if (d_dump && (pos != 0) && d_dump_mat) { try { @@ -677,7 +680,6 @@ void galileo_telemetry_decoder_gs::set_channel(int32_t channel) { try { - d_dump_filename = "telemetry"; d_dump_filename.append(std::to_string(d_channel)); d_dump_filename.append(".dat"); d_dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h index 21cedf52a..e94af2a73 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h @@ -28,6 +28,7 @@ #include "galileo_inav_message.h" #include "gnss_block_interface.h" #include "gnss_satellite.h" +#include "tlm_conf.h" #include #include // for block #include // for gr_vector_const_void_star @@ -49,8 +50,8 @@ using galileo_telemetry_decoder_gs_sptr = gnss_shared_ptrset_max_noutput_items(1); @@ -77,7 +77,9 @@ glonass_l1_ca_telemetry_decoder_gs::glonass_l1_ca_telemetry_decoder_gs( // Control messages to tracking block this->message_port_register_out(pmt::mp("telemetry_to_trk")); // initialize internal vars - d_dump = dump; + d_dump_filename = conf.dump_filename; + d_dump = conf.dump; + d_dump_mat = conf.dump_mat; d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); LOG(INFO) << "Initializing GLONASS L1 CA TELEMETRY DECODING"; @@ -378,7 +380,6 @@ void glonass_l1_ca_telemetry_decoder_gs::set_channel(int32_t channel) { try { - d_dump_filename = "telemetry"; d_dump_filename.append(std::to_string(d_channel)); d_dump_filename.append(".dat"); d_dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.h index ebd554bdb..c87132069 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.h @@ -27,6 +27,7 @@ #include "gnss_block_interface.h" #include "gnss_satellite.h" #include "gnss_synchro.h" +#include "tlm_conf.h" #include #include // for block #include // for gr_vector_const_void_star @@ -47,7 +48,7 @@ using glonass_l1_ca_telemetry_decoder_gs_sptr = gnss_shared_ptr d_preambles_bits{GLONASS_GNAV_PREAMBLE}; @@ -120,6 +121,7 @@ private: bool flag_TOW_set; // Indicates when time of week is set bool Flag_valid_word; bool d_dump; + bool d_dump_mat; }; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.cc index 02780b14c..2d6272196 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.cc @@ -59,16 +59,16 @@ namespace errorlib = boost::system; glonass_l2_ca_telemetry_decoder_gs_sptr -glonass_l2_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump) +glonass_l2_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf) { - return glonass_l2_ca_telemetry_decoder_gs_sptr(new glonass_l2_ca_telemetry_decoder_gs(satellite, dump)); + return glonass_l2_ca_telemetry_decoder_gs_sptr(new glonass_l2_ca_telemetry_decoder_gs(satellite, conf)); } glonass_l2_ca_telemetry_decoder_gs::glonass_l2_ca_telemetry_decoder_gs( const Gnss_Satellite &satellite, - bool dump) : gr::block("glonass_l2_ca_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) + const Tlm_Conf &conf) : gr::block("glonass_l2_ca_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { // prevent telemetry symbols accumulation in output buffers this->set_max_noutput_items(1); @@ -77,7 +77,9 @@ glonass_l2_ca_telemetry_decoder_gs::glonass_l2_ca_telemetry_decoder_gs( // Control messages to tracking block this->message_port_register_out(pmt::mp("telemetry_to_trk")); // initialize internal vars - d_dump = dump; + d_dump_filename = conf.dump_filename; + d_dump = conf.dump; + d_dump_mat = conf.dump_mat; d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); LOG(INFO) << "Initializing GLONASS L2 CA TELEMETRY DECODING"; @@ -140,7 +142,7 @@ glonass_l2_ca_telemetry_decoder_gs::~glonass_l2_ca_telemetry_decoder_gs() } } } - if (d_dump && (pos != 0)) + if (d_dump && (pos != 0) && d_dump_mat) { try { @@ -377,7 +379,6 @@ void glonass_l2_ca_telemetry_decoder_gs::set_channel(int32_t channel) { try { - d_dump_filename = "telemetry"; d_dump_filename.append(std::to_string(d_channel)); d_dump_filename.append(".dat"); d_dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.h index 66349ccd4..784bd4dfa 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.h @@ -26,6 +26,7 @@ #include "gnss_block_interface.h" #include "gnss_satellite.h" #include "gnss_synchro.h" +#include "tlm_conf.h" #include #include #include // for gr_vector_const_void_star @@ -46,7 +47,7 @@ using glonass_l2_ca_telemetry_decoder_gs_sptr = gnss_shared_ptr d_preambles_bits{GLONASS_GNAV_PREAMBLE}; @@ -114,6 +115,7 @@ private: bool d_flag_preamble; // Flag indicating when preamble was found bool flag_TOW_set; // Indicates when time of week is set bool d_dump; + bool d_dump_mat; }; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc index 82733a7a0..ab1fc4092 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc @@ -71,16 +71,16 @@ auto rotl = [](uint32_t x, uint32_t n) { return (((x) << (n)) ^ ((x) >> (32 - (n gps_l1_ca_telemetry_decoder_gs_sptr -gps_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump) +gps_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf) { - return gps_l1_ca_telemetry_decoder_gs_sptr(new gps_l1_ca_telemetry_decoder_gs(satellite, dump)); + return gps_l1_ca_telemetry_decoder_gs_sptr(new gps_l1_ca_telemetry_decoder_gs(satellite, conf)); } gps_l1_ca_telemetry_decoder_gs::gps_l1_ca_telemetry_decoder_gs( const Gnss_Satellite &satellite, - bool dump) : gr::block("gps_navigation_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) + const Tlm_Conf &conf) : gr::block("gps_navigation_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { // prevent telemetry symbols accumulation in output buffers this->set_max_noutput_items(1); @@ -93,7 +93,10 @@ gps_l1_ca_telemetry_decoder_gs::gps_l1_ca_telemetry_decoder_gs( d_sent_tlm_failed_msg = false; // initialize internal vars - d_dump = dump; + d_dump_filename = conf.dump_filename; + d_dump = conf.dump; + d_dump_mat = conf.dump_mat; + d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); DLOG(INFO) << "Initializing GPS L1 TELEMETRY DECODER"; @@ -162,7 +165,7 @@ gps_l1_ca_telemetry_decoder_gs::~gps_l1_ca_telemetry_decoder_gs() } } } - if (d_dump && (pos != 0)) + if (d_dump && (pos != 0) && d_dump_mat) { try { @@ -325,7 +328,6 @@ void gps_l1_ca_telemetry_decoder_gs::set_channel(int32_t channel) { try { - d_dump_filename = "telemetry"; d_dump_filename.append(std::to_string(d_channel)); d_dump_filename.append(".dat"); d_dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h index 2cd52ad2e..1351fff50 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h @@ -24,6 +24,7 @@ #include "gnss_block_interface.h" #include "gnss_satellite.h" #include "gnss_synchro.h" +#include "tlm_conf.h" #include "gps_navigation_message.h" #include #include // for block @@ -46,7 +47,7 @@ using gps_l1_ca_telemetry_decoder_gs_sptr = gnss_shared_ptrset_max_noutput_items(1); @@ -80,7 +81,9 @@ gps_l2c_telemetry_decoder_gs::gps_l2c_telemetry_decoder_gs( d_max_symbols_without_valid_frame = GPS_L2_CNAV_DATA_PAGE_BITS * GPS_L2_SYMBOLS_PER_BIT * 5; // rise alarm if 5 consecutive subframes have no valid CRC // initialize internal vars - d_dump = dump; + d_dump_filename = conf.dump_filename; + d_dump = conf.dump; + d_dump_mat = conf.dump_mat; d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); DLOG(INFO) << "GPS L2C M TELEMETRY PROCESSING: satellite " << d_satellite; // set_output_multiple (1); @@ -123,7 +126,7 @@ gps_l2c_telemetry_decoder_gs::~gps_l2c_telemetry_decoder_gs() } } } - if (d_dump && (pos != 0)) + if (d_dump && (pos != 0) && d_dump_mat) { try { @@ -256,7 +259,6 @@ void gps_l2c_telemetry_decoder_gs::set_channel(int channel) { try { - d_dump_filename = "telemetry_L2CM_"; d_dump_filename.append(std::to_string(d_channel)); d_dump_filename.append(".dat"); d_dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.h index 945936028..24af68542 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.h @@ -23,6 +23,7 @@ #include "gnss_block_interface.h" #include "gnss_satellite.h" #include "gps_cnav_navigation_message.h" +#include "tlm_conf.h" #include #include // for gr_vector_const_void_star #include @@ -46,7 +47,7 @@ using gps_l2c_telemetry_decoder_gs_sptr = gnss_shared_ptrset_max_noutput_items(1); @@ -79,7 +80,9 @@ gps_l5_telemetry_decoder_gs::gps_l5_telemetry_decoder_gs( d_max_symbols_without_valid_frame = GPS_L5_CNAV_DATA_PAGE_BITS * GPS_L5_SYMBOLS_PER_BIT * 10; // rise alarm if 20 consecutive subframes have no valid CRC // initialize internal vars - d_dump = dump; + d_dump_filename = conf.dump_filename; + d_dump = conf.dump; + d_dump_mat = conf.dump_mat; d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); DLOG(INFO) << "GPS L5 TELEMETRY PROCESSING: satellite " << d_satellite; d_channel = 0; @@ -118,7 +121,7 @@ gps_l5_telemetry_decoder_gs::~gps_l5_telemetry_decoder_gs() } } } - if (d_dump && (pos != 0)) + if (d_dump && (pos != 0) && d_dump_mat) { try { @@ -253,7 +256,6 @@ void gps_l5_telemetry_decoder_gs::set_channel(int32_t channel) { try { - d_dump_filename = "telemetry_L5_"; d_dump_filename.append(std::to_string(d_channel)); d_dump_filename.append(".dat"); d_dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.h index 7455514c6..4fb354fe0 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.h @@ -24,6 +24,7 @@ #include "gnss_block_interface.h" #include "gnss_satellite.h" // for Gnss_Satellite #include "gps_cnav_navigation_message.h" // for Gps_CNAV_Navigation_Message +#include "tlm_conf.h" #include #include #include // for gr_vector_const_void_star @@ -48,7 +49,7 @@ using gps_l5_telemetry_decoder_gs_sptr = gnss_shared_ptrproperty(role + ".dump_filename", default_dumpname); + dump = configuration->property(role + ".dump", false); + dump_mat = configuration->property(role + ".dump_mat", dump); +} diff --git a/src/algorithms/telemetry_decoder/libs/tlm_conf.h b/src/algorithms/telemetry_decoder/libs/tlm_conf.h new file mode 100644 index 000000000..156919fbe --- /dev/null +++ b/src/algorithms/telemetry_decoder/libs/tlm_conf.h @@ -0,0 +1,48 @@ +/*! + * \file tlm_conf.h + * \brief Class that contains all the configuration parameters for generic + * telemetry decoder block. + * \author Carles Fernandez, 2020. cfernandez(at)cttc.es + * + * ----------------------------------------------------------------------------- + * + * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors) + * + * GNSS-SDR is a software defined Global Navigation + * Satellite Systems receiver + * + * This file is part of GNSS-SDR. + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + * ----------------------------------------------------------------------------- + */ + +#ifndef GNSS_SDR_TLM_CONF_H +#define GNSS_SDR_TLM_CONF_H + +#include "configuration_interface.h" +#include + +/** \addtogroup Telemetry_Decoder + * \{ */ +/** \addtogroup Telemetry_Decoder_libs + * \{ */ + + +class Tlm_Conf +{ +public: + Tlm_Conf(); + + void SetFromConfiguration(const ConfigurationInterface *configuration, const std::string &role); + + std::string dump_filename; + bool dump; + bool dump_mat; +}; + + +/** \} */ +/** \} */ +#endif // GNSS_SDR_TLM_CONF_H