mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-15 20:50:33 +00:00
Stire results also when using the refinement stage
This commit is contained in:
parent
175f1355d5
commit
2a9a8f5b29
@ -335,6 +335,50 @@ void pcps_acquisition::send_negative_acquisition()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void pcps_acquisition::dump_results(unsigned int doppler_index, int effective_fft_size)
|
||||||
|
{
|
||||||
|
memcpy(grid_.colptr(doppler_index), d_magnitude, sizeof(float) * effective_fft_size);
|
||||||
|
if (doppler_index == (d_num_doppler_bins - 1))
|
||||||
|
{
|
||||||
|
std::string filename = acq_parameters.dump_filename;
|
||||||
|
filename.append("_");
|
||||||
|
filename.append(1, d_gnss_synchro->System);
|
||||||
|
filename.append("_");
|
||||||
|
filename.append(1, d_gnss_synchro->Signal[0]);
|
||||||
|
filename.append(1, d_gnss_synchro->Signal[1]);
|
||||||
|
filename.append("_sat_");
|
||||||
|
filename.append(std::to_string(d_gnss_synchro->PRN));
|
||||||
|
filename.append(".mat");
|
||||||
|
|
||||||
|
mat_t* matfp = Mat_CreateVer(filename.c_str(), NULL, MAT_FT_MAT73);
|
||||||
|
if (matfp == NULL)
|
||||||
|
{
|
||||||
|
std::cout << "Unable to create or open Acquisition dump file" << std::endl;
|
||||||
|
acq_parameters.dump = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
size_t dims[2] = {static_cast<size_t>(effective_fft_size), static_cast<size_t>(d_num_doppler_bins)};
|
||||||
|
matvar_t* matvar = Mat_VarCreate("grid", MAT_C_SINGLE, MAT_T_SINGLE, 2, dims, grid_.memptr(), 0);
|
||||||
|
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
|
||||||
|
Mat_VarFree(matvar);
|
||||||
|
|
||||||
|
dims[0] = static_cast<size_t>(1);
|
||||||
|
dims[1] = static_cast<size_t>(1);
|
||||||
|
matvar = Mat_VarCreate("doppler_max", MAT_C_UINT32, MAT_T_UINT32, 1, dims, &acq_parameters.doppler_max, 0);
|
||||||
|
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
|
||||||
|
Mat_VarFree(matvar);
|
||||||
|
|
||||||
|
matvar = Mat_VarCreate("doppler_step", MAT_C_UINT32, MAT_T_UINT32, 1, dims, &d_doppler_step, 0);
|
||||||
|
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
|
||||||
|
Mat_VarFree(matvar);
|
||||||
|
|
||||||
|
Mat_Close(matfp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void pcps_acquisition::acquisition_core(unsigned long int samp_count)
|
void pcps_acquisition::acquisition_core(unsigned long int samp_count)
|
||||||
{
|
{
|
||||||
gr::thread::scoped_lock lk(d_setlock);
|
gr::thread::scoped_lock lk(d_setlock);
|
||||||
@ -435,44 +479,7 @@ void pcps_acquisition::acquisition_core(unsigned long int samp_count)
|
|||||||
// Record results to file if required
|
// Record results to file if required
|
||||||
if (acq_parameters.dump)
|
if (acq_parameters.dump)
|
||||||
{
|
{
|
||||||
memcpy(grid_.colptr(doppler_index), d_magnitude, sizeof(float) * effective_fft_size);
|
pcps_acquisition::dump_results(doppler_index, effective_fft_size);
|
||||||
if (doppler_index == (d_num_doppler_bins - 1))
|
|
||||||
{
|
|
||||||
std::string filename = acq_parameters.dump_filename;
|
|
||||||
filename.append("_");
|
|
||||||
filename.append(1, d_gnss_synchro->System);
|
|
||||||
filename.append("_");
|
|
||||||
filename.append(1, d_gnss_synchro->Signal[0]);
|
|
||||||
filename.append(1, d_gnss_synchro->Signal[1]);
|
|
||||||
filename.append("_sat_");
|
|
||||||
filename.append(std::to_string(d_gnss_synchro->PRN));
|
|
||||||
filename.append(".mat");
|
|
||||||
mat_t* matfp = Mat_CreateVer(filename.c_str(), NULL, MAT_FT_MAT73);
|
|
||||||
if (matfp == NULL)
|
|
||||||
{
|
|
||||||
std::cout << "Unable to create or open Acquisition dump file" << std::endl;
|
|
||||||
acq_parameters.dump = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
size_t dims[2] = {static_cast<size_t>(effective_fft_size), static_cast<size_t>(d_num_doppler_bins)};
|
|
||||||
matvar_t* matvar = Mat_VarCreate("grid", MAT_C_SINGLE, MAT_T_SINGLE, 2, dims, grid_.memptr(), 0);
|
|
||||||
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
|
|
||||||
Mat_VarFree(matvar);
|
|
||||||
|
|
||||||
dims[0] = static_cast<size_t>(1);
|
|
||||||
dims[1] = static_cast<size_t>(1);
|
|
||||||
matvar = Mat_VarCreate("doppler_max", MAT_C_SINGLE, MAT_T_UINT32, 1, dims, &acq_parameters.doppler_max, 0);
|
|
||||||
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
|
|
||||||
Mat_VarFree(matvar);
|
|
||||||
|
|
||||||
matvar = Mat_VarCreate("doppler_step", MAT_C_SINGLE, MAT_T_UINT32, 1, dims, &d_doppler_step, 0);
|
|
||||||
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
|
|
||||||
Mat_VarFree(matvar);
|
|
||||||
|
|
||||||
Mat_Close(matfp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -538,6 +545,11 @@ void pcps_acquisition::acquisition_core(unsigned long int samp_count)
|
|||||||
d_test_statistics = d_mag / d_input_power;
|
d_test_statistics = d_mag / d_input_power;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Record results to file if required
|
||||||
|
if (acq_parameters.dump)
|
||||||
|
{
|
||||||
|
pcps_acquisition::dump_results(doppler_index, effective_fft_size);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lk.lock();
|
lk.lock();
|
||||||
|
@ -93,6 +93,8 @@ private:
|
|||||||
|
|
||||||
void send_positive_acquisition();
|
void send_positive_acquisition();
|
||||||
|
|
||||||
|
void dump_results(unsigned int doppler_index, int effective_fft_size);
|
||||||
|
|
||||||
Acq_Conf acq_parameters;
|
Acq_Conf acq_parameters;
|
||||||
bool d_active;
|
bool d_active;
|
||||||
bool d_worker_active;
|
bool d_worker_active;
|
||||||
|
Loading…
Reference in New Issue
Block a user