1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-11-14 22:04:57 +00:00

Telemetry decoder changes SBAS

This commit is contained in:
juanalfarom 2024-09-15 22:29:42 +02:00
parent 46a7bdc5a9
commit 6110a5e81d
No known key found for this signature in database
GPG Key ID: 23C5912D94E1382D
34 changed files with 161 additions and 38 deletions

View File

@ -13380,6 +13380,8 @@ src/algorithms/telemetry_decoder/adapters/CMakeFiles/telemetry_decoder_adapters.
/usr/include/gnuradio/rpcserver_selector.h
/usr/include/gnuradio/config.h
/usr/include/gnuradio/block_registry.h
/home/juancho/GitHub/gnss-sdr/src/algorithms/telemetry_decoder/libs/tlm_conf.h
/home/juancho/GitHub/gnss-sdr/src/core/interfaces/configuration_interface.h
/usr/include/boost/crc.hpp
/usr/include/boost/array.hpp
/usr/include/boost/swap.hpp
@ -13395,7 +13397,6 @@ src/algorithms/telemetry_decoder/adapters/CMakeFiles/telemetry_decoder_adapters.
/usr/include/c++/11/bits/fstream.tcc
/home/juancho/GitHub/gnss-sdr/src/core/interfaces/telemetry_decoder_interface.h
/home/juancho/GitHub/gnss-sdr/src/core/interfaces/gnss_block_interface.h
/home/juancho/GitHub/gnss-sdr/src/core/interfaces/configuration_interface.h
/usr/include/glog/logging.h
/usr/include/inttypes.h
/usr/include/gflags/gflags.h

View File

@ -13368,6 +13368,8 @@ src/algorithms/telemetry_decoder/adapters/CMakeFiles/telemetry_decoder_adapters.
/usr/include/gnuradio/rpcserver_selector.h \
/usr/include/gnuradio/config.h \
/usr/include/gnuradio/block_registry.h \
../src/algorithms/telemetry_decoder/libs/tlm_conf.h \
../src/core/interfaces/configuration_interface.h \
/usr/include/boost/crc.hpp \
/usr/include/boost/array.hpp \
/usr/include/boost/swap.hpp \
@ -13383,7 +13385,6 @@ src/algorithms/telemetry_decoder/adapters/CMakeFiles/telemetry_decoder_adapters.
/usr/include/c++/11/bits/fstream.tcc \
../src/core/interfaces/telemetry_decoder_interface.h \
../src/core/interfaces/gnss_block_interface.h \
../src/core/interfaces/configuration_interface.h \
/usr/include/glog/logging.h \
/usr/include/inttypes.h \
/usr/include/gflags/gflags.h \

View File

@ -924,6 +924,8 @@ src/algorithms/telemetry_decoder/adapters/CMakeFiles/telemetry_decoder_adapters.
/usr/include/gnuradio/rpcserver_booter_base.h \
/usr/include/gnuradio/rpcserver_selector.h \
/usr/include/gnuradio/config.h /usr/include/gnuradio/block_registry.h \
/home/juancho/GitHub/gnss-sdr/src/algorithms/telemetry_decoder/libs/tlm_conf.h \
/home/juancho/GitHub/gnss-sdr/src/core/interfaces/configuration_interface.h \
/usr/include/boost/crc.hpp /usr/include/boost/array.hpp \
/usr/include/boost/swap.hpp /usr/include/boost/integer.hpp \
/usr/include/gnuradio/block.h /usr/include/gmpxx.h \
@ -935,7 +937,6 @@ src/algorithms/telemetry_decoder/adapters/CMakeFiles/telemetry_decoder_adapters.
/usr/include/c++/11/bits/fstream.tcc \
/home/juancho/GitHub/gnss-sdr/src/core/interfaces/telemetry_decoder_interface.h \
/home/juancho/GitHub/gnss-sdr/src/core/interfaces/gnss_block_interface.h \
/home/juancho/GitHub/gnss-sdr/src/core/interfaces/configuration_interface.h \
/usr/include/glog/logging.h /usr/include/inttypes.h \
/usr/include/gflags/gflags.h /usr/include/gflags/gflags_declare.h \
/usr/include/gflags/gflags_gflags.h /usr/include/glog/log_severity.h \

View File

@ -10022,6 +10022,8 @@ src/algorithms/telemetry_decoder/gnuradio_blocks/CMakeFiles/telemetry_decoder_gr
/usr/include/gnuradio/config.h
/usr/include/gnuradio/block_registry.h
/home/juancho/GitHub/gnss-sdr/src/core/system_parameters/gnss_satellite.h
/home/juancho/GitHub/gnss-sdr/src/algorithms/telemetry_decoder/libs/tlm_conf.h
/home/juancho/GitHub/gnss-sdr/src/core/interfaces/configuration_interface.h
/usr/include/boost/crc.hpp
/usr/include/boost/array.hpp
/usr/include/boost/swap.hpp

View File

@ -10013,6 +10013,8 @@ src/algorithms/telemetry_decoder/gnuradio_blocks/CMakeFiles/telemetry_decoder_gr
/usr/include/gnuradio/config.h \
/usr/include/gnuradio/block_registry.h \
../src/core/system_parameters/gnss_satellite.h \
../src/algorithms/telemetry_decoder/libs/tlm_conf.h \
../src/core/interfaces/configuration_interface.h \
/usr/include/boost/crc.hpp \
/usr/include/boost/array.hpp \
/usr/include/boost/swap.hpp \

View File

@ -900,6 +900,8 @@ src/algorithms/telemetry_decoder/gnuradio_blocks/CMakeFiles/telemetry_decoder_gr
/usr/include/gnuradio/rpcserver_selector.h \
/usr/include/gnuradio/config.h /usr/include/gnuradio/block_registry.h \
/home/juancho/GitHub/gnss-sdr/src/core/system_parameters/gnss_satellite.h \
/home/juancho/GitHub/gnss-sdr/src/algorithms/telemetry_decoder/libs/tlm_conf.h \
/home/juancho/GitHub/gnss-sdr/src/core/interfaces/configuration_interface.h \
/usr/include/boost/crc.hpp /usr/include/boost/array.hpp \
/usr/include/boost/swap.hpp /usr/include/boost/integer.hpp \
/usr/include/gnuradio/block.h /usr/include/gmpxx.h \

View File

@ -161,6 +161,35 @@ src/algorithms/telemetry_decoder/libs/CMakeFiles/telemetry_decoder_libs.dir/tlm_
/usr/include/x86_64-linux-gnu/bits/types/error_t.h
/usr/include/c++/11/bits/charconv.h
/usr/include/c++/11/bits/basic_string.tcc
/usr/include/c++/11/iostream
/usr/include/c++/11/ostream
/usr/include/c++/11/ios
/usr/include/c++/11/exception
/usr/include/c++/11/bits/exception_ptr.h
/usr/include/c++/11/bits/cxxabi_init_exception.h
/usr/include/c++/11/typeinfo
/usr/include/c++/11/bits/nested_exception.h
/usr/include/c++/11/bits/ios_base.h
/usr/include/c++/11/bits/locale_classes.h
/usr/include/c++/11/bits/locale_classes.tcc
/usr/include/c++/11/system_error
/usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h
/usr/include/c++/11/stdexcept
/usr/include/c++/11/streambuf
/usr/include/c++/11/bits/streambuf.tcc
/usr/include/c++/11/bits/basic_ios.h
/usr/include/c++/11/bits/locale_facets.h
/usr/include/c++/11/cwctype
/usr/include/wctype.h
/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h
/usr/include/c++/11/bits/streambuf_iterator.h
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h
/usr/include/c++/11/bits/locale_facets.tcc
/usr/include/c++/11/bits/basic_ios.tcc
/usr/include/c++/11/bits/ostream.tcc
/usr/include/c++/11/istream
/usr/include/c++/11/bits/istream.tcc
src/algorithms/telemetry_decoder/libs/CMakeFiles/telemetry_decoder_libs.dir/tlm_crc_stats.cc.o
/home/juancho/GitHub/gnss-sdr/src/algorithms/telemetry_decoder/libs/tlm_crc_stats.cc

View File

@ -159,7 +159,36 @@ src/algorithms/telemetry_decoder/libs/CMakeFiles/telemetry_decoder_libs.dir/tlm_
/usr/include/asm-generic/errno-base.h \
/usr/include/x86_64-linux-gnu/bits/types/error_t.h \
/usr/include/c++/11/bits/charconv.h \
/usr/include/c++/11/bits/basic_string.tcc
/usr/include/c++/11/bits/basic_string.tcc \
/usr/include/c++/11/iostream \
/usr/include/c++/11/ostream \
/usr/include/c++/11/ios \
/usr/include/c++/11/exception \
/usr/include/c++/11/bits/exception_ptr.h \
/usr/include/c++/11/bits/cxxabi_init_exception.h \
/usr/include/c++/11/typeinfo \
/usr/include/c++/11/bits/nested_exception.h \
/usr/include/c++/11/bits/ios_base.h \
/usr/include/c++/11/bits/locale_classes.h \
/usr/include/c++/11/bits/locale_classes.tcc \
/usr/include/c++/11/system_error \
/usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \
/usr/include/c++/11/stdexcept \
/usr/include/c++/11/streambuf \
/usr/include/c++/11/bits/streambuf.tcc \
/usr/include/c++/11/bits/basic_ios.h \
/usr/include/c++/11/bits/locale_facets.h \
/usr/include/c++/11/cwctype \
/usr/include/wctype.h \
/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \
/usr/include/c++/11/bits/streambuf_iterator.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \
/usr/include/c++/11/bits/locale_facets.tcc \
/usr/include/c++/11/bits/basic_ios.tcc \
/usr/include/c++/11/bits/ostream.tcc \
/usr/include/c++/11/istream \
/usr/include/c++/11/bits/istream.tcc
src/algorithms/telemetry_decoder/libs/CMakeFiles/telemetry_decoder_libs.dir/tlm_crc_stats.cc.o: ../src/algorithms/telemetry_decoder/libs/tlm_crc_stats.cc \
/usr/include/stdc-predef.h \
@ -1636,17 +1665,9 @@ volk_gnsssdr_module/build/include/volk_gnsssdr/volk_gnsssdr.h:
/usr/include/c++/11/bits/basic_string.tcc:
/usr/include/c++/11/bits/hash_bytes.h:
/usr/include/c++/11/ostream:
/usr/include/c++/11/bits/move.h:
../src/algorithms/telemetry_decoder/libs/tlm_crc_stats.h:
../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_complex.h:
/usr/include/c++/11/bits/vector.tcc:
/usr/include/c++/11/istream:
/usr/include/c++/11/bits/unique_ptr.h:
/usr/include/c++/11/exception:
@ -1702,12 +1723,20 @@ volk_gnsssdr_module/build/include/volk_gnsssdr/volk_gnsssdr.h:
/usr/include/c++/11/bits/basic_ios.tcc:
/usr/include/c++/11/ostream:
/usr/include/c++/11/bits/unique_ptr.h:
/usr/include/c++/11/istream:
/usr/include/c++/11/bits/istream.tcc:
/usr/include/c++/11/bits/hash_bytes.h:
/usr/include/c++/11/bits/move.h:
../src/algorithms/telemetry_decoder/libs/tlm_crc_stats.h:
../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_complex.h:
/usr/include/c++/11/bits/vector.tcc:
/usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h:
/usr/include/glog/logging.h:

View File

@ -133,4 +133,25 @@ src/algorithms/telemetry_decoder/libs/CMakeFiles/telemetry_decoder_libs.dir/tlm_
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/x86_64-linux-gnu/bits/types/error_t.h \
/usr/include/c++/11/bits/charconv.h \
/usr/include/c++/11/bits/basic_string.tcc
/usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/iostream \
/usr/include/c++/11/ostream /usr/include/c++/11/ios \
/usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \
/usr/include/c++/11/bits/cxxabi_init_exception.h \
/usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \
/usr/include/c++/11/bits/ios_base.h \
/usr/include/c++/11/bits/locale_classes.h \
/usr/include/c++/11/bits/locale_classes.tcc \
/usr/include/c++/11/system_error \
/usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \
/usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \
/usr/include/c++/11/bits/streambuf.tcc \
/usr/include/c++/11/bits/basic_ios.h \
/usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \
/usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \
/usr/include/c++/11/bits/streambuf_iterator.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \
/usr/include/c++/11/bits/locale_facets.tcc \
/usr/include/c++/11/bits/basic_ios.tcc \
/usr/include/c++/11/bits/ostream.tcc /usr/include/c++/11/istream \
/usr/include/c++/11/bits/istream.tcc

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -37,7 +37,7 @@ SbasL1TelemetryDecoder::SbasL1TelemetryDecoder(
const std::string default_dump_filename("./navigation.dat");
dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename);
// make telemetry decoder object
telemetry_decoder_ = sbas_l1_make_telemetry_decoder_gs(satellite_, dump_); // TODO fix me
telemetry_decoder_ = sbas_l1_make_telemetry_decoder_gs(satellite_, tlm_parameters_); // TODO fix me
DLOG(INFO) << "role " << role;
DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")";
if (in_streams_ > 1)

View File

@ -24,6 +24,7 @@
#include "gnss_synchro.h"
#include "sbas_l1_telemetry_decoder_gs.h"
#include "telemetry_decoder_interface.h"
#include "tlm_conf.h"
#include <gnuradio/runtime_types.h> // for basic_block_sptr, top_block_sptr
#include <cstddef> // for size_t
#include <string>
@ -82,6 +83,7 @@ public:
private:
sbas_l1_telemetry_decoder_gs_sptr telemetry_decoder_;
Gnss_Satellite satellite_;
Tlm_Conf tlm_parameters_;
std::string dump_filename_;
std::string role_;
unsigned int in_streams_;

View File

@ -578,7 +578,7 @@ int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__
}
// add new symbol to the symbol queue
d_symbol_history.push_back(current_symbol.Prompt_I);
d_sample_counter++; // count for the processed symbols
consume_each(1);
d_flag_preamble = false;
@ -684,12 +684,10 @@ int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__
LOG(WARNING) << "Exception writing observables dump file " << e.what();
}
}
// 3. Make the output (move the object contents to the GNU Radio reserved memory)
*out[0] = std::move(current_symbol);
return 1;
}
return 0;
}

View File

@ -42,18 +42,21 @@
sbas_l1_telemetry_decoder_gs_sptr sbas_l1_make_telemetry_decoder_gs(
const Gnss_Satellite &satellite,
bool dump)
const Tlm_Conf &conf)
{
return sbas_l1_telemetry_decoder_gs_sptr(new sbas_l1_telemetry_decoder_gs(satellite, dump));
return sbas_l1_telemetry_decoder_gs_sptr(new sbas_l1_telemetry_decoder_gs(satellite, conf));
}
sbas_l1_telemetry_decoder_gs::sbas_l1_telemetry_decoder_gs(
const Gnss_Satellite &satellite,
bool dump) : gr::block("sbas_l1_telemetry_decoder_gs",
const Tlm_Conf &conf) : gr::block("sbas_l1_telemetry_decoder_gs",
gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)),
gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))),
d_dump(dump),
d_dump(true),
d_dump_mat(true),
d_remove_dat(true),
d_dump_filename("tele"),
d_channel(0),
d_block_size(D_SAMPLES_PER_SYMBOL * D_SYMBOLS_PER_BIT * D_BLOCK_SIZE_IN_BITS)
{
@ -100,7 +103,6 @@ sbas_l1_telemetry_decoder_gs::~sbas_l1_telemetry_decoder_gs()
{
if (!tlm_remove_file(d_dump_filename))
{
std::cout << "ERROR" << std::endl;
LOG(WARNING) << "Error deleting temporary file";
}
}
@ -118,7 +120,34 @@ void sbas_l1_telemetry_decoder_gs::set_satellite(const Gnss_Satellite &satellite
void sbas_l1_telemetry_decoder_gs::set_channel(int32_t channel)
{
d_channel = channel;
LOG(INFO) << "SBAS channel set to " << channel;
//d_nav.set_channel(channel);
DLOG(INFO) << "Navigation channel set to " << channel;
// ############# ENABLE DATA FILE LOG #################
if (d_dump == true)
{
if (d_dump_file.is_open() == false)
{
try
{
d_dump_filename.append(std::to_string(d_channel));
d_dump_filename.append(".dat");
d_dump_file.exceptions(std::ofstream::failbit | std::ofstream::badbit);
d_dump_file.open(d_dump_filename.c_str(), std::ios::out | std::ios::binary);
LOG(INFO) << "Telemetry decoder dump enabled on channel " << d_channel
<< " Log file: " << d_dump_filename.c_str();
}
catch (const std::ofstream::failure &e)
{
LOG(WARNING) << "channel " << d_channel << " Exception opening trk dump file " << e.what();
}
}
}
/*if (d_dump_crc_stats)
{
// set the channel number for the telemetry CRC statistics
// disable the telemetry CRC statistics if there is a problem opening the output file
d_dump_crc_stats = d_Tlm_CRC_Stats->set_channel(d_channel);
}*/
}
@ -437,7 +466,6 @@ int sbas_l1_telemetry_decoder_gs::general_work(int noutput_items __attribute__((
current_symbol = in[0];
// copy correlation samples into samples vector
d_sample_buf.push_back(current_symbol.Prompt_I); // add new symbol to the symbol queue
// store the time stamp of the first sample in the processed sample block
const double sample_stamp = static_cast<double>(in[0].Tracking_sample_counter) / static_cast<double>(in[0].fs);
@ -503,17 +531,16 @@ int sbas_l1_telemetry_decoder_gs::general_work(int noutput_items __attribute__((
double tmp_double;
uint64_t tmp_ulong_int;
int32_t tmp_int;
tmp_int = (current_symbol.Prompt_I > 0.0 ? 1 : -1);
tmp_int = (current_symbol.Prompt_I > 0.0 ? 1 : 0);
d_dump_file.write(reinterpret_cast<char *>(&tmp_int), sizeof(int32_t));
tmp_int = static_cast<int32_t>(current_symbol.PRN);
d_dump_file.write(reinterpret_cast<char *>(&tmp_int), sizeof(int32_t));
}
catch (const std::ofstream::failure &e)
{
std::cout << "error" << std::endl;
LOG(WARNING) << "Exception writing observables dump file " << e.what();
}
}
std::cout << d_dump_filename << std::endl;
// UPDATE GNSS SYNCHRO DATA
// actually the SBAS telemetry decoder doesn't support ranging
current_symbol.Flag_valid_word = false; // indicate to observable block that this synchro object isn't valid for pseudorange computation

View File

@ -19,6 +19,7 @@
#include "gnss_block_interface.h"
#include "gnss_satellite.h"
#include "tlm_conf.h"
#include <boost/crc.hpp> // for crc_optimal
#include <gnuradio/block.h>
#include <gnuradio/types.h> // for gr_vector_const_void_star
@ -45,7 +46,7 @@ using sbas_l1_telemetry_decoder_gs_sptr = gnss_shared_ptr<sbas_l1_telemetry_deco
sbas_l1_telemetry_decoder_gs_sptr sbas_l1_make_telemetry_decoder_gs(
const Gnss_Satellite &satellite,
bool dump);
const Tlm_Conf &conf);
/*!
* \brief This class implements a block that decodes the SBAS integrity and
@ -68,9 +69,9 @@ public:
private:
friend sbas_l1_telemetry_decoder_gs_sptr sbas_l1_make_telemetry_decoder_gs(
const Gnss_Satellite &satellite,
bool dump);
const Tlm_Conf &conf);
sbas_l1_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump);
sbas_l1_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf);
void viterbi_decoder(double *page_part_symbols, int32_t *page_part_bits);
void align_samples();

View File

@ -16,7 +16,7 @@
*/
#include "tlm_conf.h"
#include <iostream>
void Tlm_Conf::SetFromConfiguration(const ConfigurationInterface *configuration,
const std::string &role)
@ -30,6 +30,7 @@ void Tlm_Conf::SetFromConfiguration(const ConfigurationInterface *configuration,
const std::string default_crc_stats_dumpname("telemetry_crc_stats");
dump_crc_stats_filename = configuration->property(role + ".dump_crc_stats_filename", default_crc_stats_dumpname);
enable_navdata_monitor = configuration->property("NavDataMonitor.enable_monitor", false);
std::cout<<"HHHH"<<std::endl;
if (configuration->property("Channels_E6.count", 0) > 0)
{
there_are_e6_channels = true;

View File

@ -1932,6 +1932,11 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused)
d_state = 4;
}
}
// SBAS addons
current_synchro_data = *d_acquisition_gnss_synchro;
current_synchro_data.Prompt_I = d_Prompt->real();
current_synchro_data.Prompt_Q = d_Prompt->imag();
current_synchro_data.Flag_valid_symbol_output = true;
}
break;
}

View File

@ -248,7 +248,7 @@ void Gps_L1_Ca_Dll_Pll_Tracking_GPU_cc::start_tracking()
d_pull_in = true;
d_enable_tracking = true;
d_acc_carrier_phase_initialized = false;
LOG(INFO) << "PULL-IN Doppler [Hz]=" << d_carrier_doppler_hz
<< " Code Phase correction [samples]=" << delay_correction_samples
<< " PULL-IN Code Phase [samples]=" << d_acq_code_phase_samples;
@ -526,6 +526,7 @@ int Gps_L1_Ca_Dll_Pll_Tracking_GPU_cc::general_work(int noutput_items __attribut
tmp_E = std::abs<float>(d_correlator_outs[0]);
tmp_P = std::abs<float>(d_correlator_outs[1]);
tmp_L = std::abs<float>(d_correlator_outs[2]);
try
{
// Dump correlators output