Class Gnss_Satellite extended to tracking

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@133 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
Carles Fernandez 2012-01-19 19:30:05 +00:00
parent 0704e664e5
commit 305d9f14c1
11 changed files with 53 additions and 46 deletions

View File

@ -172,7 +172,7 @@ void Channel::set_satellite(Gnss_Satellite satellite)
{
gnss_satellite_ = Gnss_Satellite(satellite.get_system(), satellite.get_PRN());
acq_->set_satellite(gnss_satellite_);
trk_->set_satellite(satellite.get_PRN());
trk_->set_satellite(gnss_satellite_);
nav_->set_satellite(satellite.get_PRN());
}

View File

@ -122,9 +122,9 @@ void GpsL1CaDllFllPllTracking::start_tracking()
tracking_->start_tracking();
}
void GpsL1CaDllFllPllTracking::set_satellite(unsigned int satellite)
void GpsL1CaDllFllPllTracking::set_satellite(Gnss_Satellite satellite)
{
satellite_ = satellite;
satellite_ = Gnss_Satellite(satellite.get_system(), satellite.get_PRN());
tracking_->set_satellite(satellite);
DLOG(INFO) << "satellite set to " << satellite_;
}

View File

@ -76,7 +76,7 @@ public:
gr_basic_block_sptr get_left_block();
gr_basic_block_sptr get_right_block();
void set_satellite(unsigned int satellite);
void set_satellite(Gnss_Satellite satellite);
void set_channel(unsigned int channel);
void set_prn_code_phase(signed int phase_samples);
void set_doppler_freq_shift(float doppler_freq_hz);
@ -91,7 +91,7 @@ private:
gps_l1_ca_dll_fll_pll_tracking_cc_sptr tracking_;
size_t item_size_;
unsigned int satellite_;
Gnss_Satellite satellite_;
unsigned int channel_;
std::string role_;

View File

@ -115,9 +115,9 @@ void GpsL1CaDllPllTracking::start_tracking()
/*
* Set satellite ID
*/
void GpsL1CaDllPllTracking::set_satellite(unsigned int satellite)
void GpsL1CaDllPllTracking::set_satellite(Gnss_Satellite satellite)
{
satellite_ = satellite;
satellite_ = Gnss_Satellite(satellite.get_system(), satellite.get_PRN());
tracking_->set_satellite(satellite);
DLOG(INFO) << "satellite set to " << satellite_;
}

View File

@ -81,7 +81,7 @@ public:
/*!
* \brief Set satellite ID
*/
void set_satellite(unsigned int satellite);
void set_satellite(Gnss_Satellite satellite);
/*!
* \brief Set tracking channel unique ID
@ -116,7 +116,7 @@ private:
gps_l1_ca_dll_pll_tracking_cc_sptr tracking_;
size_t item_size_;
unsigned int satellite_;
Gnss_Satellite satellite_;
unsigned int channel_;
std::string role_;

View File

@ -61,7 +61,7 @@
using google::LogMessage;
gps_l1_ca_dll_fll_pll_tracking_cc_sptr
gps_l1_ca_dll_fll_pll_make_tracking_cc(unsigned int satellite, long if_freq, long fs_in, unsigned
gps_l1_ca_dll_fll_pll_make_tracking_cc(Gnss_Satellite satellite, long if_freq, long fs_in, unsigned
int vector_length, gr_msg_queue_sptr queue, bool dump, std::string dump_filename, int order,
float fll_bw_hz, float pll_bw_hz, float dll_bw_hz, float early_late_space_chips)
{
@ -82,7 +82,7 @@ void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::forecast (int noutput_items, gr_vector_i
Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc(unsigned int satellite,
Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc(Gnss_Satellite satellite,
long if_freq, long fs_in, unsigned int vector_length, gr_msg_queue_sptr queue, bool dump,
std::string dump_filename, int order, float fll_bw_hz, float pll_bw_hz, float dll_bw_hz,
float early_late_space_chips) :
@ -94,7 +94,7 @@ Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc(unsigned in
// initialize internal vars
d_queue = queue;
d_dump = dump;
d_satellite = satellite;
d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN());
d_if_freq = if_freq;
d_fs_in = fs_in;
d_vector_length = vector_length;
@ -181,7 +181,7 @@ void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::start_tracking()
d_FLL_wait = 1;
// generate local reference ALWAYS starting at chip 1 (1 sample per chip)
code_gen_conplex(&d_ca_code[1], d_satellite, 0);
code_gen_conplex(&d_ca_code[1], d_satellite.get_PRN(), 0);
d_ca_code[0] = d_ca_code[(int)GPS_L1_CA_CODE_LENGTH_CHIPS];
d_ca_code[(int)GPS_L1_CA_CODE_LENGTH_CHIPS + 1] = d_ca_code[1];
@ -198,7 +198,7 @@ void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::start_tracking()
d_code_phase_samples = d_acq_code_phase_samples;
// DEBUG OUTPUT
std::cout << "Tracking start on channel " << d_channel << " for satellite ID* " << this->d_satellite << std::endl;
std::cout << "Tracking start on channel " << d_channel << " for satellite " << this->d_satellite << std::endl;
DLOG(INFO) << "Start tracking for satellite " << this->d_satellite << " received ";
// enable tracking
@ -591,9 +591,9 @@ void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_acq_doppler(float doppler)
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_satellite(unsigned int satellite)
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_satellite(Gnss_Satellite satellite)
{
d_satellite = satellite;
d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN());
DLOG(INFO) << "Tracking Satellite set to " << d_satellite;
}

View File

@ -38,15 +38,18 @@
#define GNSS_SDR_GPS_L1_CA_DLL_FLL_PLL_TRACKING_CC_H
#include <fstream>
#include <gnuradio/gr_block.h>
#include <gnuradio/gr_msg_queue.h>
//#include <gnuradio/gr_sync_decimator.h>
#include "gps_sdr_signal_processing.h"
#include "tracking_FLL_PLL_filter.h"
#include <queue>
#include <boost/thread/mutex.hpp>
#include <boost/thread/thread.hpp>
#include <gnuradio/gr_block.h>
#include <gnuradio/gr_msg_queue.h>
//#include <gnuradio/gr_sync_decimator.h>
#include "concurrent_queue.h"
#include "gps_sdr_signal_processing.h"
#include "gnss_satellite.h"
#include "tracking_FLL_PLL_filter.h"
//#include "GPS_L1_CA.h"
class Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc;
@ -54,7 +57,7 @@ typedef boost::shared_ptr<Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc>
gps_l1_ca_dll_fll_pll_tracking_cc_sptr;
gps_l1_ca_dll_fll_pll_tracking_cc_sptr
gps_l1_ca_dll_fll_pll_make_tracking_cc(unsigned int satellite,
gps_l1_ca_dll_fll_pll_make_tracking_cc(Gnss_Satellite satellite,
long if_freq,
long fs_in,
unsigned int vector_length,
@ -78,7 +81,7 @@ public:
~Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc();
void set_satellite(unsigned int satellite);
void set_satellite(Gnss_Satellite satellite);
void set_channel(unsigned int channel);
void set_acq_code_phase(float code_phase);
void set_acq_doppler(float doppler);
@ -109,7 +112,7 @@ public:
private:
friend gps_l1_ca_dll_fll_pll_tracking_cc_sptr
gps_l1_ca_dll_fll_pll_make_tracking_cc(unsigned int satellite,
gps_l1_ca_dll_fll_pll_make_tracking_cc(Gnss_Satellite satellite,
long if_freq,
long fs_in, unsigned
int vector_length,
@ -122,7 +125,7 @@ private:
float dll_bw_hz,
float early_late_space_chips);
Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc(unsigned int satellite,
Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc(Gnss_Satellite satellite,
long if_freq,
long fs_in, unsigned
int vector_length,
@ -142,7 +145,7 @@ private:
concurrent_queue<int> *d_channel_internal_queue;
unsigned int d_vector_length;
bool d_dump;
unsigned int d_satellite;
Gnss_Satellite d_satellite;
unsigned int d_channel;
int d_last_seg;
long d_if_freq;

View File

@ -63,7 +63,7 @@
using google::LogMessage;
gps_l1_ca_dll_pll_tracking_cc_sptr
gps_l1_ca_dll_pll_make_tracking_cc(unsigned int satellite, long if_freq, long fs_in, unsigned
gps_l1_ca_dll_pll_make_tracking_cc(Gnss_Satellite satellite, long if_freq, long fs_in, unsigned
int vector_length, gr_msg_queue_sptr queue, bool dump, std::string dump_filename,
float pll_bw_hz, float dll_bw_hz, float early_late_space_chips)
{
@ -81,7 +81,7 @@ void Gps_L1_Ca_Dll_Pll_Tracking_cc::forecast (int noutput_items,
Gps_L1_Ca_Dll_Pll_Tracking_cc::Gps_L1_Ca_Dll_Pll_Tracking_cc(unsigned int satellite, long if_freq, long fs_in, unsigned
Gps_L1_Ca_Dll_Pll_Tracking_cc::Gps_L1_Ca_Dll_Pll_Tracking_cc(Gnss_Satellite satellite, long if_freq, long fs_in, unsigned
int vector_length, gr_msg_queue_sptr queue, bool dump, std::string dump_filename, float pll_bw_hz, float dll_bw_hz, float early_late_space_chips) :
gr_block ("Gps_L1_Ca_Dll_Pll_Tracking_cc", gr_make_io_signature (1, 1, sizeof(gr_complex)),
gr_make_io_signature(5, 5, sizeof(double)))
@ -92,7 +92,7 @@ Gps_L1_Ca_Dll_Pll_Tracking_cc::Gps_L1_Ca_Dll_Pll_Tracking_cc(unsigned int satell
// initialize internal vars
d_queue = queue;
d_dump = dump;
d_satellite = satellite;
d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN());
d_if_freq = if_freq;
d_fs_in = fs_in;
d_vector_length = vector_length;
@ -197,7 +197,7 @@ void Gps_L1_Ca_Dll_Pll_Tracking_cc::start_tracking()
d_code_loop_filter.initialize(d_acq_code_phase_samples); //initialize the code filter
// generate local reference ALWAYS starting at chip 1 (1 sample per chip)
code_gen_conplex(&d_ca_code[1], d_satellite, 0);
code_gen_conplex(&d_ca_code[1], d_satellite.get_PRN(), 0);
d_ca_code[0] = d_ca_code[(int)GPS_L1_CA_CODE_LENGTH_CHIPS];
d_ca_code[(int)GPS_L1_CA_CODE_LENGTH_CHIPS + 1] = d_ca_code[1];
@ -211,7 +211,7 @@ void Gps_L1_Ca_Dll_Pll_Tracking_cc::start_tracking()
d_code_phase_samples = d_acq_code_phase_samples;
// DEBUG OUTPUT
std::cout << "Tracking start on channel " << d_channel << " for satellite ID* " << this->d_satellite << std::endl;
std::cout << "Tracking start on channel " << d_channel << " for satellite " << this->d_satellite << std::endl;
DLOG(INFO) << "Start tracking for satellite " << this->d_satellite << " received" << std::endl;
// enable tracking
@ -606,9 +606,9 @@ void Gps_L1_Ca_Dll_Pll_Tracking_cc::set_acq_doppler(float doppler)
void Gps_L1_Ca_Dll_Pll_Tracking_cc::set_satellite(unsigned int satellite)
void Gps_L1_Ca_Dll_Pll_Tracking_cc::set_satellite(Gnss_Satellite satellite)
{
d_satellite = satellite;
d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN());
LOG_AT_LEVEL(INFO) << "Tracking Satellite set to " << d_satellite;
}

View File

@ -37,23 +37,26 @@
#define GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_CC_H
#include <fstream>
#include <gnuradio/gr_block.h>
#include <gnuradio/gr_msg_queue.h>
//#include <gnuradio/gr_sync_decimator.h>
#include "gps_sdr_signal_processing.h"
#include "tracking_2nd_DLL_filter.h"
#include "tracking_2nd_PLL_filter.h"
#include <queue>
#include <boost/thread/mutex.hpp>
#include <boost/thread/thread.hpp>
#include <gnuradio/gr_block.h>
#include <gnuradio/gr_msg_queue.h>
//#include <gnuradio/gr_sync_decimator.h>
#include "concurrent_queue.h"
#include "gps_sdr_signal_processing.h"
#include "gnss_satellite.h"
#include "tracking_2nd_DLL_filter.h"
#include "tracking_2nd_PLL_filter.h"
class Gps_L1_Ca_Dll_Pll_Tracking_cc;
typedef boost::shared_ptr<Gps_L1_Ca_Dll_Pll_Tracking_cc>
gps_l1_ca_dll_pll_tracking_cc_sptr;
gps_l1_ca_dll_pll_tracking_cc_sptr
gps_l1_ca_dll_pll_make_tracking_cc(unsigned int satellite, long if_freq,
gps_l1_ca_dll_pll_make_tracking_cc(Gnss_Satellite satellite, long if_freq,
long fs_in, unsigned
int vector_length,
gr_msg_queue_sptr queue,
@ -74,7 +77,7 @@ public:
~Gps_L1_Ca_Dll_Pll_Tracking_cc();
void set_satellite(unsigned int satellite);
void set_satellite(Gnss_Satellite satellite);
void set_channel(unsigned int channel);
void set_acq_code_phase(float code_phase);
void set_acq_doppler(float doppler);
@ -102,7 +105,7 @@ public:
private:
friend gps_l1_ca_dll_pll_tracking_cc_sptr
gps_l1_ca_dll_pll_make_tracking_cc(unsigned int satellite, long if_freq,
gps_l1_ca_dll_pll_make_tracking_cc(Gnss_Satellite satellite, long if_freq,
long fs_in, unsigned
int vector_length,
gr_msg_queue_sptr queue,
@ -112,7 +115,7 @@ private:
float dll_bw_hz,
float early_late_space_chips);
Gps_L1_Ca_Dll_Pll_Tracking_cc(unsigned int satellite, long if_freq,
Gps_L1_Ca_Dll_Pll_Tracking_cc(Gnss_Satellite satellite, long if_freq,
long fs_in, unsigned
int vector_length,
gr_msg_queue_sptr queue,
@ -129,7 +132,7 @@ private:
concurrent_queue<int> *d_channel_internal_queue;
unsigned int d_vector_length;
bool d_dump;
unsigned int d_satellite;
Gnss_Satellite d_satellite;
unsigned int d_channel;
int d_last_seg;
long d_if_freq;

View File

@ -56,7 +56,7 @@ class AcquisitionInterface: public GNSSBlockInterface
public:
//virtual void set_active(bool active) = 0;
virtual void set_satellite(Gnss_Satellite sat) = 0;
virtual void set_satellite(Gnss_Satellite sat) = 0;
virtual void set_channel(unsigned int channel) = 0;
virtual void set_threshold(float threshold) = 0;
virtual void set_doppler_max(unsigned int doppler_max) = 0;

View File

@ -38,6 +38,7 @@
#define GNSS_SDR_TRACKING_INTERFACE_H_
#include "gnss_block_interface.h"
#include "gnss_satellite.h"
template<typename Data>class concurrent_queue;
@ -56,7 +57,7 @@ class TrackingInterface : public GNSSBlockInterface
public:
virtual void start_tracking() = 0;
virtual void set_satellite(unsigned int satellite) = 0;
virtual void set_satellite(Gnss_Satellite sat) = 0;
virtual void set_channel(unsigned int channel) = 0;
virtual void set_prn_code_phase(signed int phase_samples) = 0;
virtual void set_doppler_freq_shift(float doppler_freq_hz) = 0;