mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2026-06-02 10:42:17 +00:00
Merge branch 'mmajoral-fix/fpga-acquisition-init' into next
This commit is contained in:
@@ -183,6 +183,13 @@ void BasePcpsAcquisitionFpga::stop_acquisition()
|
||||
}
|
||||
}
|
||||
|
||||
void BasePcpsAcquisitionFpga::init()
|
||||
{
|
||||
if (acquisition_fpga_)
|
||||
{
|
||||
acquisition_fpga_->init();
|
||||
}
|
||||
}
|
||||
|
||||
signed int BasePcpsAcquisitionFpga::mag()
|
||||
{
|
||||
|
||||
@@ -86,6 +86,9 @@ protected:
|
||||
static const uint32_t ACQ_BUFF_0 = 0; // FPGA Acquisition IP buffer containing L1/E1 frequency band samples by default.
|
||||
static const uint32_t ACQ_BUFF_1 = 1; // FPGA Acquisition IP buffer containing L2 or L5/E5 frequency band samples by default.
|
||||
|
||||
// parameter initialization
|
||||
void init();
|
||||
|
||||
// Members subclasses must set
|
||||
volk_gnsssdr::vector<uint32_t> d_all_fft_codes_;
|
||||
Acq_Conf_Fpga acq_parameters_;
|
||||
|
||||
@@ -52,6 +52,7 @@ GalileoE1PcpsAmbiguousAcquisitionFpga::GalileoE1PcpsAmbiguousAcquisitionFpga(
|
||||
acquire_pilot_(configuration->property(role + ".acquire_pilot", false))
|
||||
{
|
||||
generate_galileo_e1_prn_codes();
|
||||
init();
|
||||
DLOG(INFO) << "Initialized FPGA acquisition adapter for role " << role;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ GalileoE5aPcpsAcquisitionFpga::GalileoE5aPcpsAcquisitionFpga(
|
||||
acq_pilot_ = configuration->property(role + ".acquire_pilot", false);
|
||||
acq_iq_ = configuration->property(role + ".acquire_iq", false);
|
||||
generate_galileo_e5a_prn_codes();
|
||||
init();
|
||||
DLOG(INFO) << "Initialized FPGA acquisition adapter for role " << role;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ GalileoE5bPcpsAcquisitionFpga::GalileoE5bPcpsAcquisitionFpga(
|
||||
acq_iq_(configuration->property(role + ".acquire_iq", false))
|
||||
{
|
||||
generate_galileo_e5b_prn_codes();
|
||||
init();
|
||||
DLOG(INFO) << "Initialized FPGA acquisition adapter for role " << role;
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga(
|
||||
out_streams)
|
||||
{
|
||||
generate_gps_l1_ca_prn_codes();
|
||||
init();
|
||||
DLOG(INFO) << "Initialized FPGA acquisition adapter for role " << role;
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ GpsL2MPcpsAcquisitionFpga::GpsL2MPcpsAcquisitionFpga(
|
||||
out_streams)
|
||||
{
|
||||
generate_gps_l2c_m_prn_codes();
|
||||
init();
|
||||
DLOG(INFO) << "Initialized FPGA acquisition adapter for role " << role;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ GpsL5iPcpsAcquisitionFpga::GpsL5iPcpsAcquisitionFpga(
|
||||
out_streams)
|
||||
{
|
||||
generate_gps_l5i_prn_codes();
|
||||
init();
|
||||
DLOG(INFO) << "Initialized FPGA acquisition adapter for role " << role;
|
||||
}
|
||||
|
||||
|
||||
@@ -74,8 +74,6 @@ pcps_acquisition_fpga::pcps_acquisition_fpga(Acq_Conf_Fpga *conf_,
|
||||
acq_buff_num,
|
||||
downsampling_filter_specs,
|
||||
max_FFT_size);
|
||||
d_acquisition_fpga->init(d_acq_parameters->code_length, d_acq_parameters->fft_size,
|
||||
d_acq_parameters->resampled_fs, d_acq_parameters->downsampling_filter_num, d_acq_parameters->excludelimit, d_acq_parameters->all_fft_codes);
|
||||
}
|
||||
|
||||
void pcps_acquisition_fpga::set_local_code()
|
||||
@@ -83,6 +81,12 @@ void pcps_acquisition_fpga::set_local_code()
|
||||
d_acquisition_fpga->set_local_code(d_gnss_synchro->PRN);
|
||||
}
|
||||
|
||||
void pcps_acquisition_fpga::init()
|
||||
{
|
||||
d_acquisition_fpga->init(d_acq_parameters->code_length, d_acq_parameters->fft_size,
|
||||
d_acq_parameters->resampled_fs, d_acq_parameters->downsampling_filter_num, d_acq_parameters->excludelimit, d_acq_parameters->all_fft_codes);
|
||||
}
|
||||
|
||||
|
||||
void pcps_acquisition_fpga::send_positive_acquisition()
|
||||
{
|
||||
|
||||
@@ -81,6 +81,11 @@ public:
|
||||
return d_mag;
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief Initializes acquisition algorithm.
|
||||
*/
|
||||
void init();
|
||||
|
||||
/*!
|
||||
* \brief Sets local code for PCPS acquisition algorithm.
|
||||
*/
|
||||
|
||||
@@ -401,10 +401,12 @@ int32_t Glonass_Ca_Dll_Pll_C_Aid_Tracking_cc::save_matfile() const
|
||||
{
|
||||
// READ DUMP FILE
|
||||
std::ifstream::pos_type size;
|
||||
const int32_t number_of_double_vars = 11;
|
||||
const int32_t number_of_float_vars = 5;
|
||||
const int32_t number_of_double_vars = 1;
|
||||
const int32_t number_of_float_vars = 19;
|
||||
const int32_t epoch_size_bytes = sizeof(uint64_t) + sizeof(double) * number_of_double_vars +
|
||||
sizeof(float) * number_of_float_vars + sizeof(uint32_t);
|
||||
sizeof(float) * number_of_float_vars + sizeof(uint32_t) +
|
||||
sizeof(uint64_t) + sizeof(int32_t);
|
||||
|
||||
std::ifstream dump_file;
|
||||
dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit);
|
||||
try
|
||||
@@ -428,24 +430,28 @@ int32_t Glonass_Ca_Dll_Pll_C_Aid_Tracking_cc::save_matfile() const
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
auto abs_VE = std::vector<float>(num_epoch);
|
||||
auto abs_E = std::vector<float>(num_epoch);
|
||||
auto abs_P = std::vector<float>(num_epoch);
|
||||
auto abs_L = std::vector<float>(num_epoch);
|
||||
auto abs_VL = std::vector<float>(num_epoch);
|
||||
auto Prompt_I = std::vector<float>(num_epoch);
|
||||
auto Prompt_Q = std::vector<float>(num_epoch);
|
||||
auto PRN_start_sample_count = std::vector<uint64_t>(num_epoch);
|
||||
auto acc_carrier_phase_rad = std::vector<double>(num_epoch);
|
||||
auto carrier_doppler_hz = std::vector<double>(num_epoch);
|
||||
auto code_freq_chips = std::vector<double>(num_epoch);
|
||||
auto carr_error_hz = std::vector<double>(num_epoch);
|
||||
auto carr_error_filt_hz = std::vector<double>(num_epoch);
|
||||
auto code_error_chips = std::vector<double>(num_epoch);
|
||||
auto code_error_filt_chips = std::vector<double>(num_epoch);
|
||||
auto CN0_SNV_dB_Hz = std::vector<double>(num_epoch);
|
||||
auto carrier_lock_test = std::vector<double>(num_epoch);
|
||||
auto aux1 = std::vector<double>(num_epoch);
|
||||
auto acc_carrier_phase_rad = std::vector<float>(num_epoch);
|
||||
auto carrier_doppler_hz = std::vector<float>(num_epoch);
|
||||
auto code_freq_chips = std::vector<float>(num_epoch);
|
||||
auto carr_error_hz = std::vector<float>(num_epoch);
|
||||
auto carr_error_filt_hz = std::vector<float>(num_epoch);
|
||||
auto code_error_chips = std::vector<float>(num_epoch);
|
||||
auto code_error_filt_chips = std::vector<float>(num_epoch);
|
||||
auto CN0_SNV_dB_Hz = std::vector<float>(num_epoch);
|
||||
auto carrier_lock_test = std::vector<float>(num_epoch);
|
||||
auto aux1 = std::vector<float>(num_epoch);
|
||||
auto aux2 = std::vector<double>(num_epoch);
|
||||
auto PRN = std::vector<uint32_t>(num_epoch);
|
||||
auto TOW = std::vector<uint64_t>(num_epoch);
|
||||
auto WN = std::vector<uint32_t>(num_epoch);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -453,24 +459,28 @@ int32_t Glonass_Ca_Dll_Pll_C_Aid_Tracking_cc::save_matfile() const
|
||||
{
|
||||
for (int64_t i = 0; i < num_epoch; i++)
|
||||
{
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_VE[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_E[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_P[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_L[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_VL[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&Prompt_I[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&Prompt_Q[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&PRN_start_sample_count[i]), sizeof(uint64_t));
|
||||
dump_file.read(reinterpret_cast<char *>(&acc_carrier_phase_rad[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_doppler_hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_freq_chips[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_filt_hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_chips[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_filt_chips[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&CN0_SNV_dB_Hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_lock_test[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&aux1[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&acc_carrier_phase_rad[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_doppler_hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_freq_chips[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_filt_hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_chips[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_filt_chips[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&CN0_SNV_dB_Hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_lock_test[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&aux1[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&aux2[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&PRN[i]), sizeof(uint32_t));
|
||||
dump_file.read(reinterpret_cast<char *>(&TOW[i]), sizeof(uint64_t));
|
||||
dump_file.read(reinterpret_cast<char *>(&WN[i]), sizeof(uint32_t));
|
||||
}
|
||||
}
|
||||
dump_file.close();
|
||||
@@ -496,18 +506,20 @@ int32_t Glonass_Ca_Dll_Pll_C_Aid_Tracking_cc::save_matfile() const
|
||||
write_matlab_var<2, float>("Prompt_I", Prompt_I.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("Prompt_Q", Prompt_Q.data(), matfp, dims);
|
||||
write_matlab_var<2, uint64_t>("PRN_start_sample_count", PRN_start_sample_count.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("acc_carrier_phase_rad", acc_carrier_phase_rad.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carrier_doppler_hz", carrier_doppler_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("code_freq_chips", code_freq_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carr_error_hz", carr_error_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carr_error_filt_hz", carr_error_filt_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("code_error_chips", code_error_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("code_error_filt_chips", code_error_filt_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("CN0_SNV_dB_Hz", CN0_SNV_dB_Hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carrier_lock_test", carrier_lock_test.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("aux1", aux1.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("acc_carrier_phase_rad", acc_carrier_phase_rad.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carrier_doppler_hz", carrier_doppler_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("code_freq_chips", code_freq_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carr_error_hz", carr_error_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carr_error_filt_hz", carr_error_filt_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("code_error_chips", code_error_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("code_error_filt_chips", code_error_filt_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("CN0_SNV_dB_Hz", CN0_SNV_dB_Hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carrier_lock_test", carrier_lock_test.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("aux1", aux1.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("aux2", aux2.data(), matfp, dims);
|
||||
write_matlab_var<2, uint32_t>("PRN", PRN.data(), matfp, dims);
|
||||
write_matlab_var<2, uint64_t>("TOW", TOW.data(), matfp, dims);
|
||||
write_matlab_var<2, uint32_t>("WN", WN.data(), matfp, dims);
|
||||
}
|
||||
Mat_Close(matfp);
|
||||
return 0;
|
||||
@@ -911,6 +923,12 @@ int Glonass_Ca_Dll_Pll_C_Aid_Tracking_cc::general_work(int noutput_items __attri
|
||||
// PRN
|
||||
uint32_t prn_ = d_acquisition_gnss_synchro->PRN;
|
||||
d_dump_file.write(reinterpret_cast<char *>(&prn_), sizeof(uint32_t));
|
||||
// TOW
|
||||
uint64_t tow_ = 0;
|
||||
d_dump_file.write(reinterpret_cast<char *>(&tow_), sizeof(uint64_t));
|
||||
// Week Number
|
||||
uint32_t wn_ = 0;
|
||||
d_dump_file.write(reinterpret_cast<char *>(&wn_), sizeof(uint32_t));
|
||||
}
|
||||
catch (const std::ofstream::failure &e)
|
||||
{
|
||||
|
||||
@@ -323,10 +323,10 @@ int32_t Glonass_Ca_Dll_Pll_C_Aid_Tracking_sc::save_matfile() const
|
||||
{
|
||||
// READ DUMP FILE
|
||||
std::ifstream::pos_type size;
|
||||
const int32_t number_of_double_vars = 11;
|
||||
const int32_t number_of_float_vars = 5;
|
||||
const int32_t epoch_size_bytes = sizeof(uint64_t) + sizeof(double) * number_of_double_vars +
|
||||
sizeof(float) * number_of_float_vars + sizeof(uint32_t);
|
||||
const int32_t number_of_double_vars = 1;
|
||||
const int32_t number_of_float_vars = 19;
|
||||
const int32_t epoch_size_bytes = 2 * sizeof(uint64_t) + sizeof(double) * number_of_double_vars +
|
||||
sizeof(float) * number_of_float_vars + 2 * sizeof(uint32_t);
|
||||
std::ifstream dump_file;
|
||||
dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit);
|
||||
try
|
||||
@@ -350,24 +350,28 @@ int32_t Glonass_Ca_Dll_Pll_C_Aid_Tracking_sc::save_matfile() const
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
auto abs_VE = std::vector<float>(num_epoch);
|
||||
auto abs_E = std::vector<float>(num_epoch);
|
||||
auto abs_P = std::vector<float>(num_epoch);
|
||||
auto abs_L = std::vector<float>(num_epoch);
|
||||
auto abs_VL = std::vector<float>(num_epoch);
|
||||
auto Prompt_I = std::vector<float>(num_epoch);
|
||||
auto Prompt_Q = std::vector<float>(num_epoch);
|
||||
auto PRN_start_sample_count = std::vector<uint64_t>(num_epoch);
|
||||
auto acc_carrier_phase_rad = std::vector<double>(num_epoch);
|
||||
auto carrier_doppler_hz = std::vector<double>(num_epoch);
|
||||
auto code_freq_chips = std::vector<double>(num_epoch);
|
||||
auto carr_error_hz = std::vector<double>(num_epoch);
|
||||
auto carr_error_filt_hz = std::vector<double>(num_epoch);
|
||||
auto code_error_chips = std::vector<double>(num_epoch);
|
||||
auto code_error_filt_chips = std::vector<double>(num_epoch);
|
||||
auto CN0_SNV_dB_Hz = std::vector<double>(num_epoch);
|
||||
auto carrier_lock_test = std::vector<double>(num_epoch);
|
||||
auto aux1 = std::vector<double>(num_epoch);
|
||||
auto acc_carrier_phase_rad = std::vector<float>(num_epoch);
|
||||
auto carrier_doppler_hz = std::vector<float>(num_epoch);
|
||||
auto code_freq_chips = std::vector<float>(num_epoch);
|
||||
auto carr_error_hz = std::vector<float>(num_epoch);
|
||||
auto carr_error_filt_hz = std::vector<float>(num_epoch);
|
||||
auto code_error_chips = std::vector<float>(num_epoch);
|
||||
auto code_error_filt_chips = std::vector<float>(num_epoch);
|
||||
auto CN0_SNV_dB_Hz = std::vector<float>(num_epoch);
|
||||
auto carrier_lock_test = std::vector<float>(num_epoch);
|
||||
auto aux1 = std::vector<float>(num_epoch);
|
||||
auto aux2 = std::vector<double>(num_epoch);
|
||||
auto PRN = std::vector<uint32_t>(num_epoch);
|
||||
auto TOW = std::vector<uint64_t>(num_epoch);
|
||||
auto WN = std::vector<uint32_t>(num_epoch);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -375,24 +379,28 @@ int32_t Glonass_Ca_Dll_Pll_C_Aid_Tracking_sc::save_matfile() const
|
||||
{
|
||||
for (int64_t i = 0; i < num_epoch; i++)
|
||||
{
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_VE[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_E[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_P[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_L[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_VL[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&Prompt_I[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&Prompt_Q[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&PRN_start_sample_count[i]), sizeof(uint64_t));
|
||||
dump_file.read(reinterpret_cast<char *>(&acc_carrier_phase_rad[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_doppler_hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_freq_chips[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_filt_hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_chips[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_filt_chips[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&CN0_SNV_dB_Hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_lock_test[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&aux1[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&acc_carrier_phase_rad[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_doppler_hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_freq_chips[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_filt_hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_chips[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_filt_chips[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&CN0_SNV_dB_Hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_lock_test[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&aux1[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&aux2[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&PRN[i]), sizeof(uint32_t));
|
||||
dump_file.read(reinterpret_cast<char *>(&TOW[i]), sizeof(uint64_t));
|
||||
dump_file.read(reinterpret_cast<char *>(&WN[i]), sizeof(uint32_t));
|
||||
}
|
||||
}
|
||||
dump_file.close();
|
||||
@@ -418,18 +426,20 @@ int32_t Glonass_Ca_Dll_Pll_C_Aid_Tracking_sc::save_matfile() const
|
||||
write_matlab_var<2, float>("Prompt_I", Prompt_I.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("Prompt_Q", Prompt_Q.data(), matfp, dims);
|
||||
write_matlab_var<2, uint64_t>("PRN_start_sample_count", PRN_start_sample_count.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("acc_carrier_phase_rad", acc_carrier_phase_rad.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carrier_doppler_hz", carrier_doppler_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("code_freq_chips", code_freq_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carr_error_hz", carr_error_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carr_error_filt_hz", carr_error_filt_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("code_error_chips", code_error_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("code_error_filt_chips", code_error_filt_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("CN0_SNV_dB_Hz", CN0_SNV_dB_Hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carrier_lock_test", carrier_lock_test.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("aux1", aux1.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("acc_carrier_phase_rad", acc_carrier_phase_rad.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carrier_doppler_hz", carrier_doppler_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("code_freq_chips", code_freq_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carr_error_hz", carr_error_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carr_error_filt_hz", carr_error_filt_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("code_error_chips", code_error_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("code_error_filt_chips", code_error_filt_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("CN0_SNV_dB_Hz", CN0_SNV_dB_Hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carrier_lock_test", carrier_lock_test.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("aux1", aux1.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("aux2", aux2.data(), matfp, dims);
|
||||
write_matlab_var<2, uint32_t>("PRN", PRN.data(), matfp, dims);
|
||||
write_matlab_var<2, uint64_t>("TOW", TOW.data(), matfp, dims);
|
||||
write_matlab_var<2, uint32_t>("WN", WN.data(), matfp, dims);
|
||||
}
|
||||
Mat_Close(matfp);
|
||||
return 0;
|
||||
@@ -879,6 +889,12 @@ int Glonass_Ca_Dll_Pll_C_Aid_Tracking_sc::general_work(int noutput_items __attri
|
||||
// PRN
|
||||
uint32_t prn_ = d_acquisition_gnss_synchro->PRN;
|
||||
d_dump_file.write(reinterpret_cast<char *>(&prn_), sizeof(uint32_t));
|
||||
// TOW
|
||||
uint64_t tow_ = 0;
|
||||
d_dump_file.write(reinterpret_cast<char *>(&tow_), sizeof(uint64_t));
|
||||
// Week Number
|
||||
uint32_t wn_ = 0;
|
||||
d_dump_file.write(reinterpret_cast<char *>(&wn_), sizeof(uint32_t));
|
||||
}
|
||||
catch (const std::ofstream::failure &e)
|
||||
{
|
||||
|
||||
@@ -349,10 +349,10 @@ int32_t Glonass_Ca_Dll_Pll_Tracking_cc::save_matfile() const
|
||||
{
|
||||
// READ DUMP FILE
|
||||
std::ifstream::pos_type size;
|
||||
const int32_t number_of_double_vars = 11;
|
||||
const int32_t number_of_float_vars = 5;
|
||||
const int32_t epoch_size_bytes = sizeof(uint64_t) + sizeof(double) * number_of_double_vars +
|
||||
sizeof(float) * number_of_float_vars + sizeof(uint32_t);
|
||||
const int32_t number_of_double_vars = 1;
|
||||
const int32_t number_of_float_vars = 19;
|
||||
const int32_t epoch_size_bytes = 2 * sizeof(uint64_t) + sizeof(double) * number_of_double_vars +
|
||||
sizeof(float) * number_of_float_vars + 2 * sizeof(uint32_t);
|
||||
std::ifstream dump_file;
|
||||
dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit);
|
||||
try
|
||||
@@ -376,24 +376,28 @@ int32_t Glonass_Ca_Dll_Pll_Tracking_cc::save_matfile() const
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
auto abs_VE = std::vector<float>(num_epoch);
|
||||
auto abs_E = std::vector<float>(num_epoch);
|
||||
auto abs_P = std::vector<float>(num_epoch);
|
||||
auto abs_L = std::vector<float>(num_epoch);
|
||||
auto abs_VL = std::vector<float>(num_epoch);
|
||||
auto Prompt_I = std::vector<float>(num_epoch);
|
||||
auto Prompt_Q = std::vector<float>(num_epoch);
|
||||
auto PRN_start_sample_count = std::vector<uint64_t>(num_epoch);
|
||||
auto acc_carrier_phase_rad = std::vector<double>(num_epoch);
|
||||
auto carrier_doppler_hz = std::vector<double>(num_epoch);
|
||||
auto code_freq_chips = std::vector<double>(num_epoch);
|
||||
auto carr_error_hz = std::vector<double>(num_epoch);
|
||||
auto carr_error_filt_hz = std::vector<double>(num_epoch);
|
||||
auto code_error_chips = std::vector<double>(num_epoch);
|
||||
auto code_error_filt_chips = std::vector<double>(num_epoch);
|
||||
auto CN0_SNV_dB_Hz = std::vector<double>(num_epoch);
|
||||
auto carrier_lock_test = std::vector<double>(num_epoch);
|
||||
auto aux1 = std::vector<double>(num_epoch);
|
||||
auto acc_carrier_phase_rad = std::vector<float>(num_epoch);
|
||||
auto carrier_doppler_hz = std::vector<float>(num_epoch);
|
||||
auto code_freq_chips = std::vector<float>(num_epoch);
|
||||
auto carr_error_hz = std::vector<float>(num_epoch);
|
||||
auto carr_error_filt_hz = std::vector<float>(num_epoch);
|
||||
auto code_error_chips = std::vector<float>(num_epoch);
|
||||
auto code_error_filt_chips = std::vector<float>(num_epoch);
|
||||
auto CN0_SNV_dB_Hz = std::vector<float>(num_epoch);
|
||||
auto carrier_lock_test = std::vector<float>(num_epoch);
|
||||
auto aux1 = std::vector<float>(num_epoch);
|
||||
auto aux2 = std::vector<double>(num_epoch);
|
||||
auto PRN = std::vector<uint32_t>(num_epoch);
|
||||
auto TOW = std::vector<uint64_t>(num_epoch);
|
||||
auto WN = std::vector<uint32_t>(num_epoch);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -401,24 +405,28 @@ int32_t Glonass_Ca_Dll_Pll_Tracking_cc::save_matfile() const
|
||||
{
|
||||
for (int64_t i = 0; i < num_epoch; i++)
|
||||
{
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_VE[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_E[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_P[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_L[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&abs_VL[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&Prompt_I[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&Prompt_Q[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&PRN_start_sample_count[i]), sizeof(uint64_t));
|
||||
dump_file.read(reinterpret_cast<char *>(&acc_carrier_phase_rad[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_doppler_hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_freq_chips[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_filt_hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_chips[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_filt_chips[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&CN0_SNV_dB_Hz[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_lock_test[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&aux1[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&acc_carrier_phase_rad[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_doppler_hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_freq_chips[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carr_error_filt_hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_chips[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&code_error_filt_chips[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&CN0_SNV_dB_Hz[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&carrier_lock_test[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&aux1[i]), sizeof(float));
|
||||
dump_file.read(reinterpret_cast<char *>(&aux2[i]), sizeof(double));
|
||||
dump_file.read(reinterpret_cast<char *>(&PRN[i]), sizeof(uint32_t));
|
||||
dump_file.read(reinterpret_cast<char *>(&TOW[i]), sizeof(uint64_t));
|
||||
dump_file.read(reinterpret_cast<char *>(&WN[i]), sizeof(uint32_t));
|
||||
}
|
||||
}
|
||||
dump_file.close();
|
||||
@@ -444,18 +452,20 @@ int32_t Glonass_Ca_Dll_Pll_Tracking_cc::save_matfile() const
|
||||
write_matlab_var<2, float>("Prompt_I", Prompt_I.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("Prompt_Q", Prompt_Q.data(), matfp, dims);
|
||||
write_matlab_var<2, uint64_t>("PRN_start_sample_count", PRN_start_sample_count.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("acc_carrier_phase_rad", acc_carrier_phase_rad.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carrier_doppler_hz", carrier_doppler_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("code_freq_chips", code_freq_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carr_error_hz", carr_error_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carr_error_filt_hz", carr_error_filt_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("code_error_chips", code_error_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("code_error_filt_chips", code_error_filt_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("CN0_SNV_dB_Hz", CN0_SNV_dB_Hz.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("carrier_lock_test", carrier_lock_test.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("aux1", aux1.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("acc_carrier_phase_rad", acc_carrier_phase_rad.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carrier_doppler_hz", carrier_doppler_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("code_freq_chips", code_freq_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carr_error_hz", carr_error_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carr_error_filt_hz", carr_error_filt_hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("code_error_chips", code_error_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("code_error_filt_chips", code_error_filt_chips.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("CN0_SNV_dB_Hz", CN0_SNV_dB_Hz.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("carrier_lock_test", carrier_lock_test.data(), matfp, dims);
|
||||
write_matlab_var<2, float>("aux1", aux1.data(), matfp, dims);
|
||||
write_matlab_var<2, double>("aux2", aux2.data(), matfp, dims);
|
||||
write_matlab_var<2, uint32_t>("PRN", PRN.data(), matfp, dims);
|
||||
write_matlab_var<2, uint64_t>("TOW", TOW.data(), matfp, dims);
|
||||
write_matlab_var<2, uint32_t>("WN", WN.data(), matfp, dims);
|
||||
}
|
||||
Mat_Close(matfp);
|
||||
return 0;
|
||||
@@ -729,6 +739,12 @@ int Glonass_Ca_Dll_Pll_Tracking_cc::general_work(int noutput_items __attribute__
|
||||
// PRN
|
||||
uint32_t prn_ = d_acquisition_gnss_synchro->PRN;
|
||||
d_dump_file.write(reinterpret_cast<char *>(&prn_), sizeof(uint32_t));
|
||||
// TOW
|
||||
uint64_t tow_ = 0;
|
||||
d_dump_file.write(reinterpret_cast<char *>(&tow_), sizeof(uint64_t));
|
||||
// Week Number
|
||||
uint32_t wn_ = 0;
|
||||
d_dump_file.write(reinterpret_cast<char *>(&wn_), sizeof(uint32_t));
|
||||
}
|
||||
catch (const std::ofstream::failure &e)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user