mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-11-21 09:34:53 +00:00
code cleaning
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@126 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
@@ -134,8 +134,8 @@ Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc(unsigned in
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::start_tracking(){
|
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::start_tracking()
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
* correct the code phase according to the delay between acq and trk
|
* correct the code phase according to the delay between acq and trk
|
||||||
*/
|
*/
|
||||||
@@ -207,6 +207,10 @@ void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::start_tracking(){
|
|||||||
std::cout<<"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<<"\r\n";
|
std::cout<<"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<<"\r\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::update_local_code()
|
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::update_local_code()
|
||||||
{
|
{
|
||||||
float tcode_chips;
|
float tcode_chips;
|
||||||
@@ -231,6 +235,10 @@ void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::update_local_code()
|
|||||||
//d_code_phase_samples=d_code_phase_samples+(float)d_fs_in*GPS_L1_CA_CODE_LENGTH_CHIPS*(1/d_code_freq_hz-1/GPS_L1_CA_CODE_RATE_HZ);
|
//d_code_phase_samples=d_code_phase_samples+(float)d_fs_in*GPS_L1_CA_CODE_LENGTH_CHIPS*(1/d_code_freq_hz-1/GPS_L1_CA_CODE_RATE_HZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::update_local_carrier()
|
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::update_local_carrier()
|
||||||
{
|
{
|
||||||
float phase, phase_step;
|
float phase, phase_step;
|
||||||
@@ -244,6 +252,10 @@ void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::update_local_carrier()
|
|||||||
d_acc_carrier_phase_rad=d_acc_carrier_phase_rad+d_rem_carr_phase;
|
d_acc_carrier_phase_rad=d_acc_carrier_phase_rad+d_rem_carr_phase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::~Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc() {
|
Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::~Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc() {
|
||||||
d_dump_file.close();
|
d_dump_file.close();
|
||||||
delete[] d_ca_code;
|
delete[] d_ca_code;
|
||||||
@@ -259,8 +271,8 @@ Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::~Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vector_int &ninput_items,
|
int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vector_int &ninput_items,
|
||||||
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) {
|
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
|
||||||
|
{
|
||||||
// if ((unsigned int)ninput_items[0]<(d_vector_length*2))
|
// if ((unsigned int)ninput_items[0]<(d_vector_length*2))
|
||||||
// {
|
// {
|
||||||
// std::cout<<"End of signal detected\r\n";
|
// std::cout<<"End of signal detected\r\n";
|
||||||
@@ -279,7 +291,8 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
d_Prompt = gr_complex(0,0);
|
d_Prompt = gr_complex(0,0);
|
||||||
d_Late = gr_complex(0,0);
|
d_Late = gr_complex(0,0);
|
||||||
|
|
||||||
if (d_enable_tracking==true){
|
if (d_enable_tracking == true)
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
* Receiver signal alignment
|
* Receiver signal alignment
|
||||||
*/
|
*/
|
||||||
@@ -308,7 +321,8 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
double **out = (double **) &output_items[0]; //block output streams pointer
|
double **out = (double **) &output_items[0]; //block output streams pointer
|
||||||
|
|
||||||
// check for samples consistency
|
// check for samples consistency
|
||||||
for(int i=0;i<d_current_prn_length_samples;i++) {
|
for(int i=0; i<d_current_prn_length_samples; i++)
|
||||||
|
{
|
||||||
if (std::isnan(in[i].real()) == true or std::isnan(in[i].imag()) == true)// or std::isinf(in[i].real())==true or std::isinf(in[i].imag())==true)
|
if (std::isnan(in[i].real()) == true or std::isnan(in[i].imag()) == true)// or std::isinf(in[i].real())==true or std::isinf(in[i].imag())==true)
|
||||||
{
|
{
|
||||||
const int samples_available = ninput_items[0];
|
const int samples_available = ninput_items[0];
|
||||||
@@ -332,7 +346,8 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
/*!
|
/*!
|
||||||
* \todo Use SIMD-enabled correlators
|
* \todo Use SIMD-enabled correlators
|
||||||
*/
|
*/
|
||||||
for(int i=0;i<d_current_prn_length_samples;i++) {
|
for(int i=0;i<d_current_prn_length_samples;i++)
|
||||||
|
{
|
||||||
//Perform the carrier wipe-off
|
//Perform the carrier wipe-off
|
||||||
bb_signal_sample = in[i] * d_carr_sign[i];
|
bb_signal_sample = in[i] * d_carr_sign[i];
|
||||||
// Now get early, late, and prompt values for each
|
// Now get early, late, and prompt values for each
|
||||||
@@ -353,7 +368,9 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
{
|
{
|
||||||
d_Prompt_prev = d_Prompt;
|
d_Prompt_prev = d_Prompt;
|
||||||
d_FLL_wait = 0;
|
d_FLL_wait = 0;
|
||||||
}else{
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
d_FLL_discriminator_hz = fll_four_quadrant_atan(d_Prompt_prev, d_Prompt, 0, correlation_time_s)/(float)TWO_PI;
|
d_FLL_discriminator_hz = fll_four_quadrant_atan(d_Prompt_prev, d_Prompt, 0, correlation_time_s)/(float)TWO_PI;
|
||||||
d_Prompt_prev = d_Prompt;
|
d_Prompt_prev = d_Prompt;
|
||||||
d_FLL_wait = 1;
|
d_FLL_wait = 1;
|
||||||
@@ -385,7 +402,9 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
// fill buffer with prompt correlator output values
|
// fill buffer with prompt correlator output values
|
||||||
d_Prompt_buffer[d_cn0_estimation_counter] = d_Prompt;
|
d_Prompt_buffer[d_cn0_estimation_counter] = d_Prompt;
|
||||||
d_cn0_estimation_counter++;
|
d_cn0_estimation_counter++;
|
||||||
}else{
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
d_cn0_estimation_counter = 0;
|
d_cn0_estimation_counter = 0;
|
||||||
d_CN0_SNV_dB_Hz=gps_l1_ca_CN0_SNV(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES,d_fs_in);
|
d_CN0_SNV_dB_Hz=gps_l1_ca_CN0_SNV(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES,d_fs_in);
|
||||||
d_carrier_lock_test=carrier_lock_detector(d_Prompt_buffer,CN0_ESTIMATION_SAMPLES);
|
d_carrier_lock_test=carrier_lock_detector(d_Prompt_buffer,CN0_ESTIMATION_SAMPLES);
|
||||||
@@ -394,12 +413,14 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
if (d_carrier_lock_test < d_carrier_lock_threshold or d_carrier_lock_test > MINIMUM_VALID_CN0)
|
if (d_carrier_lock_test < d_carrier_lock_threshold or d_carrier_lock_test > MINIMUM_VALID_CN0)
|
||||||
{
|
{
|
||||||
d_carrier_lock_fail_counter++;
|
d_carrier_lock_fail_counter++;
|
||||||
}else{
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
if (d_carrier_lock_fail_counter > 0) d_carrier_lock_fail_counter--;
|
if (d_carrier_lock_fail_counter > 0) d_carrier_lock_fail_counter--;
|
||||||
}
|
}
|
||||||
if (d_carrier_lock_fail_counter > MAXIMUM_LOCK_FAIL_COUNTER)
|
if (d_carrier_lock_fail_counter > MAXIMUM_LOCK_FAIL_COUNTER)
|
||||||
{
|
{
|
||||||
std::cout<<"Channel "<<d_channel << " loss of lock!\r\n";
|
std::cout<<"Channel "<< d_channel << " loss of lock!" << std::endl;
|
||||||
tracking_message = 3; //loss of lock
|
tracking_message = 3; //loss of lock
|
||||||
d_channel_internal_queue->push(tracking_message);
|
d_channel_internal_queue->push(tracking_message);
|
||||||
d_carrier_lock_fail_counter = 0;
|
d_carrier_lock_fail_counter = 0;
|
||||||
@@ -439,7 +460,8 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
//std::cout<<"TRK CH "<<d_channel<<" Carrier_lock_test="<<d_carrier_lock_test<< std::endl;
|
//std::cout<<"TRK CH "<<d_channel<<" Carrier_lock_test="<<d_carrier_lock_test<< std::endl;
|
||||||
//if (d_last_seg==5) d_carrier_lock_fail_counter=500; //DEBUG: force unlock!
|
//if (d_last_seg==5) d_carrier_lock_fail_counter=500; //DEBUG: force unlock!
|
||||||
}
|
}
|
||||||
}else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (floor(d_sample_counter/d_fs_in) != d_last_seg)
|
if (floor(d_sample_counter/d_fs_in) != d_last_seg)
|
||||||
{
|
{
|
||||||
@@ -474,7 +496,9 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
d_next_rem_code_phase_samples = K_blk_samples-d_next_prn_length_samples; //rounding error
|
d_next_rem_code_phase_samples = K_blk_samples-d_next_prn_length_samples; //rounding error
|
||||||
|
|
||||||
|
|
||||||
}else{
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
double **out = (double **) &output_items[0]; //block output streams pointer
|
double **out = (double **) &output_items[0]; //block output streams pointer
|
||||||
*out[0] = 0;
|
*out[0] = 0;
|
||||||
*out[1] = 0;
|
*out[1] = 0;
|
||||||
@@ -484,7 +508,8 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(d_dump) {
|
if(d_dump)
|
||||||
|
{
|
||||||
// MULTIPLEXED FILE RECORDING - Record results to file
|
// MULTIPLEXED FILE RECORDING - Record results to file
|
||||||
float prompt_I;
|
float prompt_I;
|
||||||
float prompt_Q;
|
float prompt_Q;
|
||||||
@@ -495,7 +520,8 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
tmp_E=std::abs<float>(d_Early);
|
tmp_E=std::abs<float>(d_Early);
|
||||||
tmp_P=std::abs<float>(d_Prompt);
|
tmp_P=std::abs<float>(d_Prompt);
|
||||||
tmp_L=std::abs<float>(d_Late);
|
tmp_L=std::abs<float>(d_Late);
|
||||||
try {
|
try
|
||||||
|
{
|
||||||
// EPR
|
// EPR
|
||||||
d_dump_file.write((char*)&tmp_E, sizeof(float));
|
d_dump_file.write((char*)&tmp_E, sizeof(float));
|
||||||
d_dump_file.write((char*)&tmp_P, sizeof(float));
|
d_dump_file.write((char*)&tmp_P, sizeof(float));
|
||||||
@@ -530,7 +556,8 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
d_dump_file.write((char*)&tmp_float, sizeof(float));
|
d_dump_file.write((char*)&tmp_float, sizeof(float));
|
||||||
d_dump_file.write((char*)&d_sample_counter_seconds, sizeof(double));
|
d_dump_file.write((char*)&d_sample_counter_seconds, sizeof(double));
|
||||||
}
|
}
|
||||||
catch (std::ifstream::failure e) {
|
catch (std::ifstream::failure e)
|
||||||
|
{
|
||||||
std::cout << "Exception writing trk dump file "<<e.what()<<"\r\n";
|
std::cout << "Exception writing trk dump file "<<e.what()<<"\r\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -541,22 +568,37 @@ int Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::general_work (int noutput_items, gr_vecto
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_acq_code_phase(float code_phase) {
|
|
||||||
|
|
||||||
|
|
||||||
|
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_acq_code_phase(float code_phase)
|
||||||
|
{
|
||||||
d_acq_code_phase_samples = code_phase;
|
d_acq_code_phase_samples = code_phase;
|
||||||
LOG_AT_LEVEL(INFO) << "Tracking code phase set to " << d_acq_code_phase_samples;
|
LOG_AT_LEVEL(INFO) << "Tracking code phase set to " << d_acq_code_phase_samples;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_acq_doppler(float doppler) {
|
|
||||||
|
|
||||||
|
|
||||||
|
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_acq_doppler(float doppler)
|
||||||
|
{
|
||||||
d_acq_carrier_doppler_hz = doppler;
|
d_acq_carrier_doppler_hz = doppler;
|
||||||
LOG_AT_LEVEL(INFO) << "Tracking carrier doppler set to " << d_acq_carrier_doppler_hz;
|
LOG_AT_LEVEL(INFO) << "Tracking carrier doppler set to " << d_acq_carrier_doppler_hz;
|
||||||
}
|
}
|
||||||
|
|
||||||
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(unsigned int satellite)
|
||||||
|
{
|
||||||
d_satellite = satellite;
|
d_satellite = satellite;
|
||||||
LOG_AT_LEVEL(INFO) << "Tracking Satellite set to " << d_satellite;
|
LOG_AT_LEVEL(INFO) << "Tracking Satellite set to " << d_satellite;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_channel(unsigned int channel) {
|
|
||||||
|
|
||||||
|
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_channel(unsigned int channel)
|
||||||
|
{
|
||||||
d_channel = channel;
|
d_channel = channel;
|
||||||
LOG_AT_LEVEL(INFO) << "Tracking Channel set to " << d_channel;
|
LOG_AT_LEVEL(INFO) << "Tracking Channel set to " << d_channel;
|
||||||
// ############# ENABLE DATA FILE LOG #################
|
// ############# ENABLE DATA FILE LOG #################
|
||||||
@@ -564,25 +606,32 @@ void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_channel(unsigned int channel) {
|
|||||||
{
|
{
|
||||||
if (d_dump_file.is_open() == false)
|
if (d_dump_file.is_open() == false)
|
||||||
{
|
{
|
||||||
try {
|
try
|
||||||
|
{
|
||||||
d_dump_filename.append(boost::lexical_cast<std::string>(d_channel));
|
d_dump_filename.append(boost::lexical_cast<std::string>(d_channel));
|
||||||
d_dump_filename.append(".dat");
|
d_dump_filename.append(".dat");
|
||||||
d_dump_file.exceptions ( std::ifstream::failbit | std::ifstream::badbit );
|
d_dump_file.exceptions ( std::ifstream::failbit | std::ifstream::badbit );
|
||||||
d_dump_file.open(d_dump_filename.c_str(), std::ios::out | std::ios::binary);
|
d_dump_file.open(d_dump_filename.c_str(), std::ios::out | std::ios::binary);
|
||||||
std::cout << "Tracking dump enabled on channel " << d_channel << " Log file: " << d_dump_filename.c_str() << std::endl;
|
std::cout << "Tracking dump enabled on channel " << d_channel << " Log file: " << d_dump_filename.c_str() << std::endl;
|
||||||
}
|
}
|
||||||
catch (std::ifstream::failure e) {
|
catch (std::ifstream::failure e)
|
||||||
std::cout << "channel "<<d_channel <<" Exception opening trk dump file "<<e.what()<<"\r\n";
|
{
|
||||||
|
std::cout << "channel "<< d_channel << " Exception opening trk dump file "<< e.what() << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_acq_sample_stamp(unsigned long int sample_stamp)
|
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_acq_sample_stamp(unsigned long int sample_stamp)
|
||||||
{
|
{
|
||||||
d_acq_sample_stamp = sample_stamp;
|
d_acq_sample_stamp = sample_stamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
|
void Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
|
||||||
{
|
{
|
||||||
d_channel_internal_queue = channel_internal_queue;
|
d_channel_internal_queue = channel_internal_queue;
|
||||||
|
|||||||
@@ -73,6 +73,37 @@ gps_l1_ca_dll_fll_pll_make_tracking_cc(unsigned int satellite,
|
|||||||
*/
|
*/
|
||||||
class Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc: public gr_block
|
class Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc: public gr_block
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
~Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc();
|
||||||
|
|
||||||
|
void set_satellite(unsigned int satellite);
|
||||||
|
void set_channel(unsigned int channel);
|
||||||
|
void set_acq_code_phase(float code_phase);
|
||||||
|
void set_acq_doppler(float doppler);
|
||||||
|
void start_tracking();
|
||||||
|
void update_local_code();
|
||||||
|
void update_local_carrier();
|
||||||
|
void set_FLL_and_PLL_BW(float fll_bw_hz,float pll_bw_hz);
|
||||||
|
void set_acq_sample_stamp(unsigned long int sample_stamp);
|
||||||
|
void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* \brief just like gr_block::general_work, only this arranges to call consume_each for you
|
||||||
|
*
|
||||||
|
* The user must override work to define the signal processing code
|
||||||
|
*/
|
||||||
|
//virtual int work (int noutput_items,
|
||||||
|
// gr_vector_const_void_star &input_items,
|
||||||
|
// gr_vector_void_star &output_items) = 0;
|
||||||
|
|
||||||
|
//int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
|
||||||
|
|
||||||
|
int general_work (int noutput_items, gr_vector_int &ninput_items,
|
||||||
|
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
|
||||||
|
|
||||||
|
void forecast (int noutput_items, gr_vector_int &ninput_items_required);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@@ -171,38 +202,6 @@ private:
|
|||||||
|
|
||||||
std::string d_dump_filename;
|
std::string d_dump_filename;
|
||||||
std::ofstream d_dump_file;
|
std::ofstream d_dump_file;
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
~Gps_L1_Ca_Dll_Fll_Pll_Tracking_cc();
|
|
||||||
|
|
||||||
void set_satellite(unsigned int satellite);
|
|
||||||
void set_channel(unsigned int channel);
|
|
||||||
void set_acq_code_phase(float code_phase);
|
|
||||||
void set_acq_doppler(float doppler);
|
|
||||||
void start_tracking();
|
|
||||||
void update_local_code();
|
|
||||||
void update_local_carrier();
|
|
||||||
void set_FLL_and_PLL_BW(float fll_bw_hz,float pll_bw_hz);
|
|
||||||
void set_acq_sample_stamp(unsigned long int sample_stamp);
|
|
||||||
void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* \brief just like gr_block::general_work, only this arranges to call consume_each for you
|
|
||||||
*
|
|
||||||
* The user must override work to define the signal processing code
|
|
||||||
*/
|
|
||||||
//virtual int work (int noutput_items,
|
|
||||||
// gr_vector_const_void_star &input_items,
|
|
||||||
// gr_vector_void_star &output_items) = 0;
|
|
||||||
|
|
||||||
//int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
|
|
||||||
|
|
||||||
int general_work (int noutput_items, gr_vector_int &ninput_items,
|
|
||||||
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
|
|
||||||
|
|
||||||
void forecast (int noutput_items, gr_vector_int &ninput_items_required);
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //GNSS_SDR_GPS_L1_CA_DLL_FLL_PLL_TRACKING_CC_H
|
#endif //GNSS_SDR_GPS_L1_CA_DLL_FLL_PLL_TRACKING_CC_H
|
||||||
|
|||||||
@@ -70,6 +70,34 @@ gps_l1_ca_dll_pll_make_tracking_cc(unsigned int satellite, long if_freq,
|
|||||||
*/
|
*/
|
||||||
class Gps_L1_Ca_Dll_Pll_Tracking_cc: public gr_block
|
class Gps_L1_Ca_Dll_Pll_Tracking_cc: public gr_block
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
~Gps_L1_Ca_Dll_Pll_Tracking_cc();
|
||||||
|
|
||||||
|
void set_satellite(unsigned int satellite);
|
||||||
|
void set_channel(unsigned int channel);
|
||||||
|
void set_acq_code_phase(float code_phase);
|
||||||
|
void set_acq_doppler(float doppler);
|
||||||
|
void start_tracking();
|
||||||
|
void set_acq_sample_stamp(unsigned long int sample_stamp);
|
||||||
|
void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* \brief just like gr_block::general_work, only this arranges to call consume_each for you
|
||||||
|
*
|
||||||
|
* The user must override work to define the signal processing code
|
||||||
|
*/
|
||||||
|
//virtual int work (int noutput_items,
|
||||||
|
// gr_vector_const_void_star &input_items,
|
||||||
|
// gr_vector_void_star &output_items) = 0;
|
||||||
|
|
||||||
|
//int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
|
||||||
|
|
||||||
|
int general_work (int noutput_items, gr_vector_int &ninput_items,
|
||||||
|
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
|
||||||
|
|
||||||
|
void forecast (int noutput_items, gr_vector_int &ninput_items_required);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@@ -165,35 +193,6 @@ private:
|
|||||||
// file dump
|
// file dump
|
||||||
std::string d_dump_filename;
|
std::string d_dump_filename;
|
||||||
std::ofstream d_dump_file;
|
std::ofstream d_dump_file;
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
~Gps_L1_Ca_Dll_Pll_Tracking_cc();
|
|
||||||
|
|
||||||
void set_satellite(unsigned int satellite);
|
|
||||||
void set_channel(unsigned int channel);
|
|
||||||
void set_acq_code_phase(float code_phase);
|
|
||||||
void set_acq_doppler(float doppler);
|
|
||||||
void start_tracking();
|
|
||||||
void set_acq_sample_stamp(unsigned long int sample_stamp);
|
|
||||||
void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* \brief just like gr_block::general_work, only this arranges to call consume_each for you
|
|
||||||
*
|
|
||||||
* The user must override work to define the signal processing code
|
|
||||||
*/
|
|
||||||
//virtual int work (int noutput_items,
|
|
||||||
// gr_vector_const_void_star &input_items,
|
|
||||||
// gr_vector_void_star &output_items) = 0;
|
|
||||||
|
|
||||||
//int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
|
|
||||||
|
|
||||||
int general_work (int noutput_items, gr_vector_int &ninput_items,
|
|
||||||
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
|
|
||||||
|
|
||||||
void forecast (int noutput_items, gr_vector_int &ninput_items_required);
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_CC_H
|
#endif //GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_CC_H
|
||||||
|
|||||||
Reference in New Issue
Block a user