mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-14 20:20:35 +00:00
Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into next
This commit is contained in:
commit
913795b5f6
@ -53,7 +53,7 @@ IncludeCategories:
|
|||||||
Priority: 1
|
Priority: 1
|
||||||
- Regex: '^.*(boost|gflags|glog|gnsssdr|gnuradio|gpstk|gsl|gtest|pmt|uhd|volk)/'
|
- Regex: '^.*(boost|gflags|glog|gnsssdr|gnuradio|gpstk|gsl|gtest|pmt|uhd|volk)/'
|
||||||
Priority: 2
|
Priority: 2
|
||||||
- Regex: '^.*(armadillo|matio|pugixml)'
|
- Regex: '^.*(armadillo|iio|matio|pugixml)'
|
||||||
Priority: 2
|
Priority: 2
|
||||||
- Regex: '.*'
|
- Regex: '.*'
|
||||||
Priority: 3
|
Priority: 3
|
||||||
|
@ -74,7 +74,6 @@ Checks: '-*,
|
|||||||
modernize-use-default-member-init,
|
modernize-use-default-member-init,
|
||||||
modernize-deprecated-headers,
|
modernize-deprecated-headers,
|
||||||
modernize-loop-convert,
|
modernize-loop-convert,
|
||||||
modernize-pass-by-value,
|
|
||||||
modernize-raw-string-literal,
|
modernize-raw-string-literal,
|
||||||
modernize-redundant-void-arg,
|
modernize-redundant-void-arg,
|
||||||
modernize-return-braced-init-list,
|
modernize-return-braced-init-list,
|
||||||
|
@ -147,6 +147,12 @@ accepted:
|
|||||||
dependencies, they must be available as packages in [Debian OldStable](https://wiki.debian.org/DebianOldStable).
|
dependencies, they must be available as packages in [Debian OldStable](https://wiki.debian.org/DebianOldStable).
|
||||||
* Write tests.
|
* Write tests.
|
||||||
* Follow our [coding style guide](https://gnss-sdr.org/coding-style/).
|
* Follow our [coding style guide](https://gnss-sdr.org/coding-style/).
|
||||||
|
Specifically, please make sure that you have applied
|
||||||
|
[clang-format](https://clang.llvm.org/docs/ClangFormat.html) and
|
||||||
|
[clang-tidy](https://clang.llvm.org/extra/clang-tidy/) to your changes before
|
||||||
|
you do your pull request. Please check the
|
||||||
|
[final recommendations](https://gnss-sdr.org/coding-style/#final-recommendations)
|
||||||
|
for guidelines on how to apply those tools.
|
||||||
* Write a descriptive and detailed summary. Please consider that
|
* Write a descriptive and detailed summary. Please consider that
|
||||||
reviewing pull requests is hard, so include as much information as
|
reviewing pull requests is hard, so include as much information as
|
||||||
possible to make your pull request's intent clear.
|
possible to make your pull request's intent clear.
|
||||||
|
@ -4,9 +4,8 @@ Before submitting your pull request, please make sure the following is done:
|
|||||||
1. You undertake the [Contributor Covenant Code of Conduct](https://github.com/gnss-sdr/gnss-sdr/blob/master/CODE_OF_CONDUCT.md).
|
1. You undertake the [Contributor Covenant Code of Conduct](https://github.com/gnss-sdr/gnss-sdr/blob/master/CODE_OF_CONDUCT.md).
|
||||||
2. If you are a first-time contributor, after your pull request you will be asked to sign an Individual Contributor License Agreement ([CLA](https://en.wikipedia.org/wiki/Contributor_License_Agreement)) before your code gets accepted into `master`. This license is for your protection as a Contributor as well as for the protection of [CTTC](http://www.cttc.es/); it does not change your rights to use your own contributions for any other purpose. Except for the license granted therein to CTTC and recipients of software distributed by CTTC, you reserve all right, title, and interest in and to your contributions. The information you provide in that CLA will be maintained in accordance with [CTTC's privacy policy](http://www.cttc.es/privacy/).
|
2. If you are a first-time contributor, after your pull request you will be asked to sign an Individual Contributor License Agreement ([CLA](https://en.wikipedia.org/wiki/Contributor_License_Agreement)) before your code gets accepted into `master`. This license is for your protection as a Contributor as well as for the protection of [CTTC](http://www.cttc.es/); it does not change your rights to use your own contributions for any other purpose. Except for the license granted therein to CTTC and recipients of software distributed by CTTC, you reserve all right, title, and interest in and to your contributions. The information you provide in that CLA will be maintained in accordance with [CTTC's privacy policy](http://www.cttc.es/privacy/).
|
||||||
3. You have read the [Contributing Guidelines](https://github.com/gnss-sdr/gnss-sdr/blob/master/CONTRIBUTING.md).
|
3. You have read the [Contributing Guidelines](https://github.com/gnss-sdr/gnss-sdr/blob/master/CONTRIBUTING.md).
|
||||||
4. You have read the [coding style guide](https://gnss-sdr.org/coding-style/).
|
4. You have read the [coding style guide](https://gnss-sdr.org/coding-style/). Specifically, you have read [about clang-format](https://gnss-sdr.org/coding-style/#use-tools-for-automated-code-formatting) and [about clang-tidy](https://gnss-sdr.org/coding-style/#use-code-linters), and you have applied those tools to your changes.
|
||||||
5. Specifically, you have read [about clang-format](https://gnss-sdr.org/coding-style/#use-tools-for-automated-code-formatting) and you have applied it.
|
5. You have forked the [gnss-sdr upstream repository](https://github.com/gnss-sdr/gnss-sdr) and have created your branch from `next` (or any other currently living branch in the upstream repository).
|
||||||
6. You have forked the [gnss-sdr upstream repository](https://github.com/gnss-sdr/gnss-sdr) and have created your branch from `next` (or any other currently living branch in the upstream repository).
|
6. Please include a description of your changes here.
|
||||||
7. Please include a description of your changes here.
|
|
||||||
|
|
||||||
**Please feel free to delete this line and the above text once you have read it and in case you want to go on with your pull request, and explain your intend below.**
|
**Please feel free to delete this line and the above text once you have read it and in case you want to go on with your pull request, and explain your intend below.**
|
||||||
|
@ -28,8 +28,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_RTKLIB_PVT_GS_H
|
#ifndef GNSS_SDR_RTKLIB_PVT_GS_H_
|
||||||
#define GNSS_SDR_RTKLIB_PVT_GS_H
|
#define GNSS_SDR_RTKLIB_PVT_GS_H_
|
||||||
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "rtklib.h"
|
#include "rtklib.h"
|
||||||
@ -252,4 +252,4 @@ private:
|
|||||||
boost::posix_time::time_duration d_utc_diff_time;
|
boost::posix_time::time_duration d_utc_diff_time;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_RTKLIB_PVT_GS_H_
|
||||||
|
@ -224,7 +224,7 @@ arma::vec Ls_Pvt::leastSquarePos(const arma::mat& satpos, const arma::vec& obs,
|
|||||||
// --- Correct satellite position (do to earth rotation) -------
|
// --- Correct satellite position (do to earth rotation) -------
|
||||||
Rot_X = Ls_Pvt::rotateSatellite(traveltime, X.col(i)); // armadillo
|
Rot_X = Ls_Pvt::rotateSatellite(traveltime, X.col(i)); // armadillo
|
||||||
|
|
||||||
//--- Find DOA and range of satellites
|
// -- Find DOA and range of satellites
|
||||||
double* azim = nullptr;
|
double* azim = nullptr;
|
||||||
double* elev = nullptr;
|
double* elev = nullptr;
|
||||||
double* dist = nullptr;
|
double* dist = nullptr;
|
||||||
@ -254,7 +254,7 @@ arma::vec Ls_Pvt::leastSquarePos(const arma::mat& satpos, const arma::vec& obs,
|
|||||||
// --- Apply the corrections ----------------------------------------
|
// --- Apply the corrections ----------------------------------------
|
||||||
omc(i) = (obs(i) - norm(Rot_X - pos.subvec(0, 2), 2) - pos(3) - trop); // Armadillo
|
omc(i) = (obs(i) - norm(Rot_X - pos.subvec(0, 2), 2) - pos(3) - trop); // Armadillo
|
||||||
|
|
||||||
//--- Construct the A matrix ---------------------------------------
|
// -- Construct the A matrix ---------------------------------------
|
||||||
// Armadillo
|
// Armadillo
|
||||||
A(i, 0) = (-(Rot_X(0) - pos(0))) / obs(i);
|
A(i, 0) = (-(Rot_X(0) - pos(0))) / obs(i);
|
||||||
A(i, 1) = (-(Rot_X(1) - pos(1))) / obs(i);
|
A(i, 1) = (-(Rot_X(1) - pos(1))) / obs(i);
|
||||||
@ -262,10 +262,10 @@ arma::vec Ls_Pvt::leastSquarePos(const arma::mat& satpos, const arma::vec& obs,
|
|||||||
A(i, 3) = 1.0;
|
A(i, 3) = 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--- Find position update ---------------------------------------------
|
// -- Find position update ---------------------------------------------
|
||||||
x = arma::solve(w * A, w * omc); // Armadillo
|
x = arma::solve(w * A, w * omc); // Armadillo
|
||||||
|
|
||||||
//--- Apply position update --------------------------------------------
|
// -- Apply position update --------------------------------------------
|
||||||
pos = pos + x;
|
pos = pos + x;
|
||||||
if (arma::norm(x, 2) < 1e-4)
|
if (arma::norm(x, 2) < 1e-4)
|
||||||
{
|
{
|
||||||
|
@ -72,7 +72,7 @@ Pvt_Conf::Pvt_Conf()
|
|||||||
xml_output_path = std::string(".");
|
xml_output_path = std::string(".");
|
||||||
rtcm_output_file_path = std::string(".");
|
rtcm_output_file_path = std::string(".");
|
||||||
|
|
||||||
enable_rx_clock_correction=true;
|
enable_rx_clock_correction = true;
|
||||||
monitor_enabled = false;
|
monitor_enabled = false;
|
||||||
protobuf_enabled = true;
|
protobuf_enabled = true;
|
||||||
udp_port = 0;
|
udp_port = 0;
|
||||||
|
@ -70,16 +70,16 @@ arma::vec Pvt_Solution::rotateSatellite(double const traveltime, const arma::vec
|
|||||||
* X_sat_rot - rotated satellite's coordinates (ECEF)
|
* X_sat_rot - rotated satellite's coordinates (ECEF)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//--- Find rotation angle --------------------------------------------------
|
// -- Find rotation angle --------------------------------------------------
|
||||||
double omegatau;
|
double omegatau;
|
||||||
omegatau = OMEGA_EARTH_DOT * traveltime;
|
omegatau = OMEGA_EARTH_DOT * traveltime;
|
||||||
|
|
||||||
//--- Build a rotation matrix ----------------------------------------------
|
// -- Build a rotation matrix ----------------------------------------------
|
||||||
arma::mat R3 = {{cos(omegatau), sin(omegatau), 0.0},
|
arma::mat R3 = {{cos(omegatau), sin(omegatau), 0.0},
|
||||||
{-sin(omegatau), cos(omegatau), 0.0},
|
{-sin(omegatau), cos(omegatau), 0.0},
|
||||||
{0.0, 0.0, 1.0}};
|
{0.0, 0.0, 1.0}};
|
||||||
|
|
||||||
//--- Do the rotation ------------------------------------------------------
|
// -- Do the rotation ------------------------------------------------------
|
||||||
arma::vec X_sat_rot;
|
arma::vec X_sat_rot;
|
||||||
X_sat_rot = R3 * X_sat;
|
X_sat_rot = R3 * X_sat;
|
||||||
return X_sat_rot;
|
return X_sat_rot;
|
||||||
|
@ -87,11 +87,11 @@ namespace errorlib = boost::system;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
Rtklib_Solver::Rtklib_Solver(int nchannels, std::string dump_filename, bool flag_dump_to_file, bool flag_dump_to_mat, const rtk_t &rtk)
|
Rtklib_Solver::Rtklib_Solver(int nchannels, const std::string &dump_filename, bool flag_dump_to_file, bool flag_dump_to_mat, const rtk_t &rtk)
|
||||||
{
|
{
|
||||||
// init empty ephemeris for all the available GNSS channels
|
// init empty ephemeris for all the available GNSS channels
|
||||||
d_nchannels = nchannels;
|
d_nchannels = nchannels;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
d_flag_dump_enabled = flag_dump_to_file;
|
d_flag_dump_enabled = flag_dump_to_file;
|
||||||
d_flag_dump_mat_enabled = flag_dump_to_mat;
|
d_flag_dump_mat_enabled = flag_dump_to_mat;
|
||||||
this->set_averaging_flag(false);
|
this->set_averaging_flag(false);
|
||||||
|
@ -89,7 +89,7 @@
|
|||||||
class Rtklib_Solver : public Pvt_Solution
|
class Rtklib_Solver : public Pvt_Solution
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Rtklib_Solver(int nchannels, std::string dump_filename, bool flag_dump_to_file, bool flag_dump_to_mat, const rtk_t& rtk);
|
Rtklib_Solver(int nchannels, const std::string& dump_filename, bool flag_dump_to_file, bool flag_dump_to_mat, const rtk_t& rtk);
|
||||||
~Rtklib_Solver();
|
~Rtklib_Solver();
|
||||||
|
|
||||||
bool get_PVT(const std::map<int, Gnss_Synchro>& gnss_observables_map, bool flag_averaging);
|
bool get_PVT(const std::map<int, Gnss_Synchro>& gnss_observables_map, bool flag_averaging);
|
||||||
@ -139,4 +139,4 @@ private:
|
|||||||
bool save_matfile();
|
bool save_matfile();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_RTKLIB_SOLVER_H_
|
||||||
|
@ -79,7 +79,7 @@ GalileoE1Pcps8msAmbiguousAcquisition::GalileoE1Pcps8msAmbiguousAcquisition(
|
|||||||
dump_filename_ = configuration_->property(role + ".dump_filename",
|
dump_filename_ = configuration_->property(role + ".dump_filename",
|
||||||
default_dump_filename);
|
default_dump_filename);
|
||||||
|
|
||||||
//--- Find number of samples per spreading code (4 ms) -----------------
|
// -- Find number of samples per spreading code (4 ms) -----------------
|
||||||
code_length_ = round(
|
code_length_ = round(
|
||||||
fs_in_ / (GALILEO_E1_CODE_CHIP_RATE_CPS / GALILEO_E1_B_CODE_LENGTH_CHIPS));
|
fs_in_ / (GALILEO_E1_CODE_CHIP_RATE_CPS / GALILEO_E1_B_CODE_LENGTH_CHIPS));
|
||||||
|
|
||||||
|
@ -107,14 +107,14 @@ GalileoE1PcpsAmbiguousAcquisition::GalileoE1PcpsAmbiguousAcquisition(
|
|||||||
acq_parameters_.resampler_ratio = decimation;
|
acq_parameters_.resampler_ratio = decimation;
|
||||||
acq_parameters_.resampled_fs = acq_parameters_.fs_in / static_cast<int>(acq_parameters_.resampler_ratio);
|
acq_parameters_.resampled_fs = acq_parameters_.fs_in / static_cast<int>(acq_parameters_.resampler_ratio);
|
||||||
}
|
}
|
||||||
//--- Find number of samples per spreading code (4 ms) -----------------
|
// -- Find number of samples per spreading code (4 ms) -----------------
|
||||||
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(acq_parameters_.resampled_fs) / (GALILEO_E1_CODE_CHIP_RATE_CPS / GALILEO_E1_B_CODE_LENGTH_CHIPS)));
|
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(acq_parameters_.resampled_fs) / (GALILEO_E1_CODE_CHIP_RATE_CPS / GALILEO_E1_B_CODE_LENGTH_CHIPS)));
|
||||||
acq_parameters_.samples_per_ms = static_cast<float>(acq_parameters_.resampled_fs) * 0.001;
|
acq_parameters_.samples_per_ms = static_cast<float>(acq_parameters_.resampled_fs) * 0.001;
|
||||||
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GALILEO_E1_CODE_CHIP_RATE_CPS) * static_cast<float>(acq_parameters_.resampled_fs)));
|
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GALILEO_E1_CODE_CHIP_RATE_CPS) * static_cast<float>(acq_parameters_.resampled_fs)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//--- Find number of samples per spreading code (4 ms) -----------------
|
// -- Find number of samples per spreading code (4 ms) -----------------
|
||||||
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(fs_in_) / (GALILEO_E1_CODE_CHIP_RATE_CPS / GALILEO_E1_B_CODE_LENGTH_CHIPS)));
|
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(fs_in_) / (GALILEO_E1_CODE_CHIP_RATE_CPS / GALILEO_E1_B_CODE_LENGTH_CHIPS)));
|
||||||
acq_parameters_.samples_per_ms = static_cast<float>(fs_in_) * 0.001;
|
acq_parameters_.samples_per_ms = static_cast<float>(fs_in_) * 0.001;
|
||||||
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GALILEO_E1_CODE_CHIP_RATE_CPS) * static_cast<float>(acq_parameters_.fs_in)));
|
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GALILEO_E1_CODE_CHIP_RATE_CPS) * static_cast<float>(acq_parameters_.fs_in)));
|
||||||
|
@ -77,7 +77,7 @@ GalileoE1PcpsCccwsrAmbiguousAcquisition::GalileoE1PcpsCccwsrAmbiguousAcquisition
|
|||||||
dump_filename_ = configuration_->property(role + ".dump_filename",
|
dump_filename_ = configuration_->property(role + ".dump_filename",
|
||||||
default_dump_filename);
|
default_dump_filename);
|
||||||
|
|
||||||
//--- Find number of samples per spreading code (4 ms) -----------------
|
// -- Find number of samples per spreading code (4 ms) -----------------
|
||||||
|
|
||||||
code_length_ = round(
|
code_length_ = round(
|
||||||
fs_in_ / (GALILEO_E1_CODE_CHIP_RATE_CPS / GALILEO_E1_B_CODE_LENGTH_CHIPS));
|
fs_in_ / (GALILEO_E1_CODE_CHIP_RATE_CPS / GALILEO_E1_B_CODE_LENGTH_CHIPS));
|
||||||
|
@ -81,7 +81,7 @@ GalileoE1PcpsTongAmbiguousAcquisition::GalileoE1PcpsTongAmbiguousAcquisition(
|
|||||||
dump_filename_ = configuration_->property(role + ".dump_filename",
|
dump_filename_ = configuration_->property(role + ".dump_filename",
|
||||||
default_dump_filename);
|
default_dump_filename);
|
||||||
|
|
||||||
//--- Find number of samples per spreading code (4 ms) -----------------
|
// -- Find number of samples per spreading code (4 ms) -----------------
|
||||||
|
|
||||||
code_length_ = round(
|
code_length_ = round(
|
||||||
fs_in_ / (GALILEO_E1_CODE_CHIP_RATE_CPS / GALILEO_E1_B_CODE_LENGTH_CHIPS));
|
fs_in_ / (GALILEO_E1_CODE_CHIP_RATE_CPS / GALILEO_E1_B_CODE_LENGTH_CHIPS));
|
||||||
|
@ -89,7 +89,7 @@ GalileoE5aNoncoherentIQAcquisitionCaf::GalileoE5aNoncoherentIQAcquisitionCaf(
|
|||||||
dump_filename_ = configuration_->property(role + ".dump_filename", default_dump_filename);
|
dump_filename_ = configuration_->property(role + ".dump_filename", default_dump_filename);
|
||||||
bit_transition_flag_ = configuration_->property(role + ".bit_transition_flag", false);
|
bit_transition_flag_ = configuration_->property(role + ".bit_transition_flag", false);
|
||||||
|
|
||||||
//--- Find number of samples per spreading code (1ms)-------------------------
|
// -- Find number of samples per spreading code (1ms)-------------------------
|
||||||
code_length_ = round(static_cast<double>(fs_in_) / GALILEO_E5A_CODE_CHIP_RATE_CPS * static_cast<double>(GALILEO_E5A_CODE_LENGTH_CHIPS));
|
code_length_ = round(static_cast<double>(fs_in_) / GALILEO_E5A_CODE_CHIP_RATE_CPS * static_cast<double>(GALILEO_E5A_CODE_LENGTH_CHIPS));
|
||||||
|
|
||||||
vector_length_ = code_length_ * sampled_ms_;
|
vector_length_ = code_length_ * sampled_ms_;
|
||||||
|
@ -105,7 +105,7 @@ GalileoE5aPcpsAcquisition::GalileoE5aPcpsAcquisition(ConfigurationInterface* con
|
|||||||
acq_parameters_.resampled_fs = acq_parameters_.fs_in / static_cast<int>(acq_parameters_.resampler_ratio);
|
acq_parameters_.resampled_fs = acq_parameters_.fs_in / static_cast<int>(acq_parameters_.resampler_ratio);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(acq_parameters_.resampled_fs) / (GALILEO_E5A_CODE_CHIP_RATE_CPS / GALILEO_E5A_CODE_LENGTH_CHIPS)));
|
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(acq_parameters_.resampled_fs) / (GALILEO_E5A_CODE_CHIP_RATE_CPS / GALILEO_E5A_CODE_LENGTH_CHIPS)));
|
||||||
acq_parameters_.samples_per_ms = static_cast<float>(acq_parameters_.resampled_fs) * 0.001;
|
acq_parameters_.samples_per_ms = static_cast<float>(acq_parameters_.resampled_fs) * 0.001;
|
||||||
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GALILEO_E5A_CODE_CHIP_RATE_CPS) * static_cast<float>(acq_parameters_.resampled_fs)));
|
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GALILEO_E5A_CODE_CHIP_RATE_CPS) * static_cast<float>(acq_parameters_.resampled_fs)));
|
||||||
@ -113,13 +113,13 @@ GalileoE5aPcpsAcquisition::GalileoE5aPcpsAcquisition(ConfigurationInterface* con
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
acq_parameters_.resampled_fs = fs_in_;
|
acq_parameters_.resampled_fs = fs_in_;
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(fs_in_) / (GALILEO_E5A_CODE_CHIP_RATE_CPS / GALILEO_E5A_CODE_LENGTH_CHIPS)));
|
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(fs_in_) / (GALILEO_E5A_CODE_CHIP_RATE_CPS / GALILEO_E5A_CODE_LENGTH_CHIPS)));
|
||||||
acq_parameters_.samples_per_ms = static_cast<float>(fs_in_) * 0.001;
|
acq_parameters_.samples_per_ms = static_cast<float>(fs_in_) * 0.001;
|
||||||
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GALILEO_E5A_CODE_CHIP_RATE_CPS) * static_cast<float>(acq_parameters_.fs_in)));
|
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GALILEO_E5A_CODE_CHIP_RATE_CPS) * static_cast<float>(acq_parameters_.fs_in)));
|
||||||
}
|
}
|
||||||
|
|
||||||
//--- Find number of samples per spreading code (1ms)-------------------------
|
// -- Find number of samples per spreading code (1ms)-------------------------
|
||||||
code_length_ = static_cast<unsigned int>(std::round(static_cast<double>(fs_in_) / GALILEO_E5A_CODE_CHIP_RATE_CPS * static_cast<double>(GALILEO_E5A_CODE_LENGTH_CHIPS)));
|
code_length_ = static_cast<unsigned int>(std::round(static_cast<double>(fs_in_) / GALILEO_E5A_CODE_CHIP_RATE_CPS * static_cast<double>(GALILEO_E5A_CODE_LENGTH_CHIPS)));
|
||||||
vector_length_ = code_length_ * sampled_ms_;
|
vector_length_ = code_length_ * sampled_ms_;
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcquisition(
|
|||||||
acq_parameters_.resampler_ratio = decimation;
|
acq_parameters_.resampler_ratio = decimation;
|
||||||
acq_parameters_.resampled_fs = acq_parameters_.fs_in / static_cast<int>(acq_parameters_.resampler_ratio);
|
acq_parameters_.resampled_fs = acq_parameters_.fs_in / static_cast<int>(acq_parameters_.resampler_ratio);
|
||||||
}
|
}
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(acq_parameters_.resampled_fs) / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS)));
|
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(acq_parameters_.resampled_fs) / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS)));
|
||||||
acq_parameters_.samples_per_ms = static_cast<float>(acq_parameters_.resampled_fs) * 0.001;
|
acq_parameters_.samples_per_ms = static_cast<float>(acq_parameters_.resampled_fs) * 0.001;
|
||||||
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil(GPS_L1_CA_CHIP_PERIOD_S * static_cast<float>(acq_parameters_.resampled_fs)));
|
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil(GPS_L1_CA_CHIP_PERIOD_S * static_cast<float>(acq_parameters_.resampled_fs)));
|
||||||
@ -115,7 +115,7 @@ GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcquisition(
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
acq_parameters_.resampled_fs = fs_in_;
|
acq_parameters_.resampled_fs = fs_in_;
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(fs_in_) / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS)));
|
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(fs_in_) / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS)));
|
||||||
acq_parameters_.samples_per_ms = static_cast<float>(fs_in_) * 0.001;
|
acq_parameters_.samples_per_ms = static_cast<float>(fs_in_) * 0.001;
|
||||||
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil(GPS_L1_CA_CHIP_PERIOD_S * static_cast<float>(acq_parameters_.fs_in)));
|
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil(GPS_L1_CA_CHIP_PERIOD_S * static_cast<float>(acq_parameters_.fs_in)));
|
||||||
|
@ -77,7 +77,7 @@ GpsL1CaPcpsAcquisitionFineDoppler::GpsL1CaPcpsAcquisitionFineDoppler(
|
|||||||
|
|
||||||
acq_parameters.blocking_on_standby = configuration->property(role + ".blocking_on_standby", false);
|
acq_parameters.blocking_on_standby = configuration->property(role + ".blocking_on_standby", false);
|
||||||
|
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
vector_length_ = round(fs_in_ / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS));
|
vector_length_ = round(fs_in_ / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS));
|
||||||
acq_parameters.samples_per_ms = vector_length_;
|
acq_parameters.samples_per_ms = vector_length_;
|
||||||
code_ = std::vector<std::complex<float>>(vector_length_);
|
code_ = std::vector<std::complex<float>>(vector_length_);
|
||||||
|
@ -80,7 +80,7 @@ GpsL1CaPcpsOpenClAcquisition::GpsL1CaPcpsOpenClAcquisition(
|
|||||||
dump_filename_ = configuration_->property(role + ".dump_filename",
|
dump_filename_ = configuration_->property(role + ".dump_filename",
|
||||||
default_dump_filename);
|
default_dump_filename);
|
||||||
|
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = round(fs_in_ / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS));
|
code_length_ = round(fs_in_ / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS));
|
||||||
|
|
||||||
vector_length_ = code_length_ * sampled_ms_;
|
vector_length_ = code_length_ * sampled_ms_;
|
||||||
|
@ -65,7 +65,7 @@ GpsL1CaPcpsQuickSyncAcquisition::GpsL1CaPcpsQuickSyncAcquisition(
|
|||||||
}
|
}
|
||||||
sampled_ms_ = configuration_->property(role + ".coherent_integration_time_ms", 4);
|
sampled_ms_ = configuration_->property(role + ".coherent_integration_time_ms", 4);
|
||||||
|
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = round(fs_in_ / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS));
|
code_length_ = round(fs_in_ / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS));
|
||||||
|
|
||||||
/* Calculate the folding factor value based on the calculations */
|
/* Calculate the folding factor value based on the calculations */
|
||||||
|
@ -71,7 +71,7 @@ GpsL1CaPcpsTongAcquisition::GpsL1CaPcpsTongAcquisition(
|
|||||||
|
|
||||||
dump_filename_ = configuration_->property(role + ".dump_filename", default_dump_filename);
|
dump_filename_ = configuration_->property(role + ".dump_filename", default_dump_filename);
|
||||||
|
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = round(fs_in_ / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS));
|
code_length_ = round(fs_in_ / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS));
|
||||||
|
|
||||||
vector_length_ = code_length_ * sampled_ms_;
|
vector_length_ = code_length_ * sampled_ms_;
|
||||||
|
@ -111,7 +111,7 @@ GpsL2MPcpsAcquisition::GpsL2MPcpsAcquisition(
|
|||||||
acq_parameters_.resampled_fs = acq_parameters_.fs_in / static_cast<int>(acq_parameters_.resampler_ratio);
|
acq_parameters_.resampled_fs = acq_parameters_.fs_in / static_cast<int>(acq_parameters_.resampler_ratio);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(acq_parameters_.resampled_fs) / (GPS_L2_M_CODE_RATE_CPS / GPS_L2_M_CODE_LENGTH_CHIPS)));
|
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(acq_parameters_.resampled_fs) / (GPS_L2_M_CODE_RATE_CPS / GPS_L2_M_CODE_LENGTH_CHIPS)));
|
||||||
acq_parameters_.samples_per_ms = static_cast<float>(acq_parameters_.resampled_fs) * 0.001;
|
acq_parameters_.samples_per_ms = static_cast<float>(acq_parameters_.resampled_fs) * 0.001;
|
||||||
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GPS_L2_M_CODE_RATE_CPS) * static_cast<float>(acq_parameters_.resampled_fs)));
|
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GPS_L2_M_CODE_RATE_CPS) * static_cast<float>(acq_parameters_.resampled_fs)));
|
||||||
@ -119,7 +119,7 @@ GpsL2MPcpsAcquisition::GpsL2MPcpsAcquisition(
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
acq_parameters_.resampled_fs = fs_in_;
|
acq_parameters_.resampled_fs = fs_in_;
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(fs_in_) / (GPS_L2_M_CODE_RATE_CPS / GPS_L2_M_CODE_LENGTH_CHIPS)));
|
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(fs_in_) / (GPS_L2_M_CODE_RATE_CPS / GPS_L2_M_CODE_LENGTH_CHIPS)));
|
||||||
acq_parameters_.samples_per_ms = static_cast<float>(fs_in_) * 0.001;
|
acq_parameters_.samples_per_ms = static_cast<float>(fs_in_) * 0.001;
|
||||||
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GPS_L2_M_CODE_RATE_CPS) * static_cast<float>(acq_parameters_.fs_in)));
|
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GPS_L2_M_CODE_RATE_CPS) * static_cast<float>(acq_parameters_.fs_in)));
|
||||||
|
@ -118,7 +118,7 @@ GpsL5iPcpsAcquisition::GpsL5iPcpsAcquisition(
|
|||||||
acq_parameters_.resampled_fs = acq_parameters_.fs_in / static_cast<int>(acq_parameters_.resampler_ratio);
|
acq_parameters_.resampled_fs = acq_parameters_.fs_in / static_cast<int>(acq_parameters_.resampler_ratio);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(acq_parameters_.resampled_fs) / (GPS_L5I_CODE_RATE_CPS / GPS_L5I_CODE_LENGTH_CHIPS)));
|
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(acq_parameters_.resampled_fs) / (GPS_L5I_CODE_RATE_CPS / GPS_L5I_CODE_LENGTH_CHIPS)));
|
||||||
acq_parameters_.samples_per_ms = static_cast<float>(acq_parameters_.resampled_fs) * 0.001;
|
acq_parameters_.samples_per_ms = static_cast<float>(acq_parameters_.resampled_fs) * 0.001;
|
||||||
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GPS_L5I_CODE_RATE_CPS) * static_cast<float>(acq_parameters_.resampled_fs)));
|
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GPS_L5I_CODE_RATE_CPS) * static_cast<float>(acq_parameters_.resampled_fs)));
|
||||||
@ -126,7 +126,7 @@ GpsL5iPcpsAcquisition::GpsL5iPcpsAcquisition(
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
acq_parameters_.resampled_fs = fs_in_;
|
acq_parameters_.resampled_fs = fs_in_;
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(fs_in_) / (GPS_L5I_CODE_RATE_CPS / GPS_L5I_CODE_LENGTH_CHIPS)));
|
code_length_ = static_cast<unsigned int>(std::floor(static_cast<double>(fs_in_) / (GPS_L5I_CODE_RATE_CPS / GPS_L5I_CODE_LENGTH_CHIPS)));
|
||||||
acq_parameters_.samples_per_ms = static_cast<float>(fs_in_) * 0.001;
|
acq_parameters_.samples_per_ms = static_cast<float>(fs_in_) * 0.001;
|
||||||
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GPS_L5I_CODE_RATE_CPS) * static_cast<float>(acq_parameters_.fs_in)));
|
acq_parameters_.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / GPS_L5I_CODE_RATE_CPS) * static_cast<float>(acq_parameters_.fs_in)));
|
||||||
|
@ -78,7 +78,7 @@ GpsL5iPcpsAcquisitionFpga::GpsL5iPcpsAcquisitionFpga(
|
|||||||
uint32_t sampled_ms = configuration_->property(role + ".coherent_integration_time_ms", 1);
|
uint32_t sampled_ms = configuration_->property(role + ".coherent_integration_time_ms", 1);
|
||||||
acq_parameters.sampled_ms = sampled_ms;
|
acq_parameters.sampled_ms = sampled_ms;
|
||||||
|
|
||||||
//--- Find number of samples per spreading code -------------------------
|
// -- Find number of samples per spreading code -------------------------
|
||||||
auto code_length = static_cast<uint32_t>(std::round(static_cast<double>(fs_in) / (GPS_L5I_CODE_RATE_CPS / static_cast<double>(GPS_L5I_CODE_LENGTH_CHIPS))));
|
auto code_length = static_cast<uint32_t>(std::round(static_cast<double>(fs_in) / (GPS_L5I_CODE_RATE_CPS / static_cast<double>(GPS_L5I_CODE_LENGTH_CHIPS))));
|
||||||
acq_parameters.code_length = code_length;
|
acq_parameters.code_length = code_length;
|
||||||
// The FPGA can only use FFT lengths that are a power of two.
|
// The FPGA can only use FFT lengths that are a power of two.
|
||||||
|
@ -52,14 +52,14 @@ galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr galileo_e5a_noncoherentIQ_make
|
|||||||
int samples_per_ms, int samples_per_code,
|
int samples_per_ms, int samples_per_code,
|
||||||
bool bit_transition_flag,
|
bool bit_transition_flag,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string &dump_filename,
|
||||||
bool both_signal_components_,
|
bool both_signal_components_,
|
||||||
int CAF_window_hz_,
|
int CAF_window_hz_,
|
||||||
int Zero_padding_)
|
int Zero_padding_)
|
||||||
{
|
{
|
||||||
return galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr(
|
return galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr(
|
||||||
new galileo_e5a_noncoherentIQ_acquisition_caf_cc(sampled_ms, max_dwells, doppler_max, fs_in, samples_per_ms,
|
new galileo_e5a_noncoherentIQ_acquisition_caf_cc(sampled_ms, max_dwells, doppler_max, fs_in, samples_per_ms,
|
||||||
samples_per_code, bit_transition_flag, dump, std::move(dump_filename), both_signal_components_, CAF_window_hz_, Zero_padding_));
|
samples_per_code, bit_transition_flag, dump, dump_filename, both_signal_components_, CAF_window_hz_, Zero_padding_));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ galileo_e5a_noncoherentIQ_acquisition_caf_cc::galileo_e5a_noncoherentIQ_acquisit
|
|||||||
int samples_per_code,
|
int samples_per_code,
|
||||||
bool bit_transition_flag,
|
bool bit_transition_flag,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string &dump_filename,
|
||||||
bool both_signal_components_,
|
bool both_signal_components_,
|
||||||
int CAF_window_hz_,
|
int CAF_window_hz_,
|
||||||
int Zero_padding_) : gr::block("galileo_e5a_noncoherentIQ_acquisition_caf_cc",
|
int Zero_padding_) : gr::block("galileo_e5a_noncoherentIQ_acquisition_caf_cc",
|
||||||
@ -136,7 +136,7 @@ galileo_e5a_noncoherentIQ_acquisition_caf_cc::galileo_e5a_noncoherentIQ_acquisit
|
|||||||
|
|
||||||
// For dumping samples into a file
|
// For dumping samples into a file
|
||||||
d_dump = dump;
|
d_dump = dump;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
|
|
||||||
d_doppler_resolution = 0;
|
d_doppler_resolution = 0;
|
||||||
d_threshold = 0;
|
d_threshold = 0;
|
||||||
|
@ -60,7 +60,7 @@ galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr galileo_e5a_noncoherentIQ_make
|
|||||||
int samples_per_ms, int samples_per_code,
|
int samples_per_ms, int samples_per_code,
|
||||||
bool bit_transition_flag,
|
bool bit_transition_flag,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
bool both_signal_components_,
|
bool both_signal_components_,
|
||||||
int CAF_window_hz_,
|
int CAF_window_hz_,
|
||||||
int Zero_padding_);
|
int Zero_padding_);
|
||||||
@ -186,7 +186,7 @@ private:
|
|||||||
int samples_per_ms, int samples_per_code,
|
int samples_per_ms, int samples_per_code,
|
||||||
bool bit_transition_flag,
|
bool bit_transition_flag,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
bool both_signal_components_,
|
bool both_signal_components_,
|
||||||
int CAF_window_hz_,
|
int CAF_window_hz_,
|
||||||
int Zero_padding_);
|
int Zero_padding_);
|
||||||
@ -198,7 +198,7 @@ private:
|
|||||||
int samples_per_ms, int samples_per_code,
|
int samples_per_ms, int samples_per_code,
|
||||||
bool bit_transition_flag,
|
bool bit_transition_flag,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
bool both_signal_components_,
|
bool both_signal_components_,
|
||||||
int CAF_window_hz_,
|
int CAF_window_hz_,
|
||||||
int Zero_padding_);
|
int Zero_padding_);
|
||||||
|
@ -46,11 +46,11 @@ galileo_pcps_8ms_acquisition_cc_sptr galileo_pcps_8ms_make_acquisition_cc(
|
|||||||
int64_t fs_in,
|
int64_t fs_in,
|
||||||
int32_t samples_per_ms,
|
int32_t samples_per_ms,
|
||||||
int32_t samples_per_code,
|
int32_t samples_per_code,
|
||||||
bool dump, std::string dump_filename)
|
bool dump, const std::string &dump_filename)
|
||||||
{
|
{
|
||||||
return galileo_pcps_8ms_acquisition_cc_sptr(
|
return galileo_pcps_8ms_acquisition_cc_sptr(
|
||||||
new galileo_pcps_8ms_acquisition_cc(sampled_ms, max_dwells, doppler_max, fs_in, samples_per_ms,
|
new galileo_pcps_8ms_acquisition_cc(sampled_ms, max_dwells, doppler_max, fs_in, samples_per_ms,
|
||||||
samples_per_code, dump, std::move(dump_filename)));
|
samples_per_code, dump, dump_filename));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -62,9 +62,9 @@ galileo_pcps_8ms_acquisition_cc::galileo_pcps_8ms_acquisition_cc(
|
|||||||
int32_t samples_per_ms,
|
int32_t samples_per_ms,
|
||||||
int32_t samples_per_code,
|
int32_t samples_per_code,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename) : gr::block("galileo_pcps_8ms_acquisition_cc",
|
const std::string &dump_filename) : gr::block("galileo_pcps_8ms_acquisition_cc",
|
||||||
gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms),
|
gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms),
|
||||||
gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms))
|
gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms))
|
||||||
{
|
{
|
||||||
this->message_port_register_out(pmt::mp("events"));
|
this->message_port_register_out(pmt::mp("events"));
|
||||||
d_sample_counter = 0ULL; // SAMPLE COUNTER
|
d_sample_counter = 0ULL; // SAMPLE COUNTER
|
||||||
@ -94,7 +94,7 @@ galileo_pcps_8ms_acquisition_cc::galileo_pcps_8ms_acquisition_cc(
|
|||||||
|
|
||||||
// For dumping samples into a file
|
// For dumping samples into a file
|
||||||
d_dump = dump;
|
d_dump = dump;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
|
|
||||||
d_doppler_resolution = 0;
|
d_doppler_resolution = 0;
|
||||||
d_threshold = 0;
|
d_threshold = 0;
|
||||||
|
@ -55,7 +55,7 @@ galileo_pcps_8ms_make_acquisition_cc(uint32_t sampled_ms,
|
|||||||
int32_t samples_per_ms,
|
int32_t samples_per_ms,
|
||||||
int32_t samples_per_code,
|
int32_t samples_per_code,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This class implements a Parallel Code Phase Search Acquisition for
|
* \brief This class implements a Parallel Code Phase Search Acquisition for
|
||||||
@ -177,7 +177,7 @@ private:
|
|||||||
int32_t samples_per_ms,
|
int32_t samples_per_ms,
|
||||||
int32_t samples_per_code,
|
int32_t samples_per_code,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
galileo_pcps_8ms_acquisition_cc(
|
galileo_pcps_8ms_acquisition_cc(
|
||||||
uint32_t sampled_ms,
|
uint32_t sampled_ms,
|
||||||
@ -187,7 +187,7 @@ private:
|
|||||||
int32_t samples_per_ms,
|
int32_t samples_per_ms,
|
||||||
int32_t samples_per_code,
|
int32_t samples_per_code,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
void calculate_magnitudes(
|
void calculate_magnitudes(
|
||||||
gr_complex* fft_begin,
|
gr_complex* fft_begin,
|
||||||
|
@ -50,20 +50,20 @@ extern Concurrent_Map<Gps_Acq_Assist> global_gps_acq_assist_map;
|
|||||||
pcps_assisted_acquisition_cc_sptr pcps_make_assisted_acquisition_cc(
|
pcps_assisted_acquisition_cc_sptr pcps_make_assisted_acquisition_cc(
|
||||||
int32_t max_dwells, uint32_t sampled_ms, int32_t doppler_max, int32_t doppler_min,
|
int32_t max_dwells, uint32_t sampled_ms, int32_t doppler_max, int32_t doppler_min,
|
||||||
int64_t fs_in, int32_t samples_per_ms, bool dump,
|
int64_t fs_in, int32_t samples_per_ms, bool dump,
|
||||||
std::string dump_filename)
|
const std::string &dump_filename)
|
||||||
{
|
{
|
||||||
return pcps_assisted_acquisition_cc_sptr(
|
return pcps_assisted_acquisition_cc_sptr(
|
||||||
new pcps_assisted_acquisition_cc(max_dwells, sampled_ms, doppler_max, doppler_min,
|
new pcps_assisted_acquisition_cc(max_dwells, sampled_ms, doppler_max, doppler_min,
|
||||||
fs_in, samples_per_ms, dump, std::move(dump_filename)));
|
fs_in, samples_per_ms, dump, dump_filename));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pcps_assisted_acquisition_cc::pcps_assisted_acquisition_cc(
|
pcps_assisted_acquisition_cc::pcps_assisted_acquisition_cc(
|
||||||
int32_t max_dwells, uint32_t sampled_ms, int32_t doppler_max, int32_t doppler_min,
|
int32_t max_dwells, uint32_t sampled_ms, int32_t doppler_max, int32_t doppler_min,
|
||||||
int64_t fs_in, int32_t samples_per_ms, bool dump,
|
int64_t fs_in, int32_t samples_per_ms, bool dump,
|
||||||
std::string dump_filename) : gr::block("pcps_assisted_acquisition_cc",
|
const std::string &dump_filename) : gr::block("pcps_assisted_acquisition_cc",
|
||||||
gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
||||||
gr::io_signature::make(0, 0, sizeof(gr_complex)))
|
gr::io_signature::make(0, 0, sizeof(gr_complex)))
|
||||||
{
|
{
|
||||||
this->message_port_register_out(pmt::mp("events"));
|
this->message_port_register_out(pmt::mp("events"));
|
||||||
d_sample_counter = 0ULL; // SAMPLE COUNTER
|
d_sample_counter = 0ULL; // SAMPLE COUNTER
|
||||||
@ -90,7 +90,7 @@ pcps_assisted_acquisition_cc::pcps_assisted_acquisition_cc(
|
|||||||
|
|
||||||
// For dumping samples into a file
|
// For dumping samples into a file
|
||||||
d_dump = dump;
|
d_dump = dump;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
|
|
||||||
d_doppler_resolution = 0;
|
d_doppler_resolution = 0;
|
||||||
d_threshold = 0;
|
d_threshold = 0;
|
||||||
|
@ -70,7 +70,7 @@ pcps_assisted_acquisition_cc_sptr pcps_make_assisted_acquisition_cc(
|
|||||||
int32_t doppler_min,
|
int32_t doppler_min,
|
||||||
int64_t fs_in,
|
int64_t fs_in,
|
||||||
int32_t samples_per_ms,
|
int32_t samples_per_ms,
|
||||||
bool dump, std::string dump_filename);
|
bool dump, const std::string& dump_filename);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This class implements a Parallel Code Phase Search Acquisition.
|
* \brief This class implements a Parallel Code Phase Search Acquisition.
|
||||||
@ -181,12 +181,12 @@ private:
|
|||||||
pcps_make_assisted_acquisition_cc(int32_t max_dwells, uint32_t sampled_ms,
|
pcps_make_assisted_acquisition_cc(int32_t max_dwells, uint32_t sampled_ms,
|
||||||
int32_t doppler_max, int32_t doppler_min, int64_t fs_in,
|
int32_t doppler_max, int32_t doppler_min, int64_t fs_in,
|
||||||
int32_t samples_per_ms, bool dump,
|
int32_t samples_per_ms, bool dump,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
pcps_assisted_acquisition_cc(int32_t max_dwells, uint32_t sampled_ms,
|
pcps_assisted_acquisition_cc(int32_t max_dwells, uint32_t sampled_ms,
|
||||||
int32_t doppler_max, int32_t doppler_min, int64_t fs_in,
|
int32_t doppler_max, int32_t doppler_min, int64_t fs_in,
|
||||||
int32_t samples_per_ms, bool dump,
|
int32_t samples_per_ms, bool dump,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
void calculate_magnitudes(gr_complex* fft_begin, int32_t doppler_shift,
|
void calculate_magnitudes(gr_complex* fft_begin, int32_t doppler_shift,
|
||||||
int32_t doppler_offset);
|
int32_t doppler_offset);
|
||||||
|
@ -52,11 +52,11 @@ pcps_cccwsr_acquisition_cc_sptr pcps_cccwsr_make_acquisition_cc(
|
|||||||
int64_t fs_in,
|
int64_t fs_in,
|
||||||
int32_t samples_per_ms,
|
int32_t samples_per_ms,
|
||||||
int32_t samples_per_code,
|
int32_t samples_per_code,
|
||||||
bool dump, std::string dump_filename)
|
bool dump, const std::string &dump_filename)
|
||||||
{
|
{
|
||||||
return pcps_cccwsr_acquisition_cc_sptr(
|
return pcps_cccwsr_acquisition_cc_sptr(
|
||||||
new pcps_cccwsr_acquisition_cc(sampled_ms, max_dwells, doppler_max, fs_in,
|
new pcps_cccwsr_acquisition_cc(sampled_ms, max_dwells, doppler_max, fs_in,
|
||||||
samples_per_ms, samples_per_code, dump, std::move(dump_filename)));
|
samples_per_ms, samples_per_code, dump, dump_filename));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -68,9 +68,9 @@ pcps_cccwsr_acquisition_cc::pcps_cccwsr_acquisition_cc(
|
|||||||
int32_t samples_per_ms,
|
int32_t samples_per_ms,
|
||||||
int32_t samples_per_code,
|
int32_t samples_per_code,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename) : gr::block("pcps_cccwsr_acquisition_cc",
|
const std::string &dump_filename) : gr::block("pcps_cccwsr_acquisition_cc",
|
||||||
gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms),
|
gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms),
|
||||||
gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms))
|
gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms))
|
||||||
{
|
{
|
||||||
this->message_port_register_out(pmt::mp("events"));
|
this->message_port_register_out(pmt::mp("events"));
|
||||||
d_sample_counter = 0ULL; // SAMPLE COUNTER
|
d_sample_counter = 0ULL; // SAMPLE COUNTER
|
||||||
@ -104,7 +104,7 @@ pcps_cccwsr_acquisition_cc::pcps_cccwsr_acquisition_cc(
|
|||||||
|
|
||||||
// For dumping samples into a file
|
// For dumping samples into a file
|
||||||
d_dump = dump;
|
d_dump = dump;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
|
|
||||||
d_doppler_resolution = 0;
|
d_doppler_resolution = 0;
|
||||||
d_threshold = 0;
|
d_threshold = 0;
|
||||||
|
@ -61,7 +61,7 @@ pcps_cccwsr_acquisition_cc_sptr pcps_cccwsr_make_acquisition_cc(
|
|||||||
int32_t samples_per_ms,
|
int32_t samples_per_ms,
|
||||||
int32_t samples_per_code,
|
int32_t samples_per_code,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This class implements a Parallel Code Phase Search Acquisition with
|
* \brief This class implements a Parallel Code Phase Search Acquisition with
|
||||||
@ -179,12 +179,12 @@ private:
|
|||||||
pcps_cccwsr_make_acquisition_cc(uint32_t sampled_ms, uint32_t max_dwells,
|
pcps_cccwsr_make_acquisition_cc(uint32_t sampled_ms, uint32_t max_dwells,
|
||||||
uint32_t doppler_max, int64_t fs_in,
|
uint32_t doppler_max, int64_t fs_in,
|
||||||
int32_t samples_per_ms, int32_t samples_per_code,
|
int32_t samples_per_ms, int32_t samples_per_code,
|
||||||
bool dump, std::string dump_filename);
|
bool dump, const std::string& dump_filename);
|
||||||
|
|
||||||
pcps_cccwsr_acquisition_cc(uint32_t sampled_ms, uint32_t max_dwells,
|
pcps_cccwsr_acquisition_cc(uint32_t sampled_ms, uint32_t max_dwells,
|
||||||
uint32_t doppler_max, int64_t fs_in,
|
uint32_t doppler_max, int64_t fs_in,
|
||||||
int32_t samples_per_ms, int32_t samples_per_code,
|
int32_t samples_per_ms, int32_t samples_per_code,
|
||||||
bool dump, std::string dump_filename);
|
bool dump, const std::string& dump_filename);
|
||||||
|
|
||||||
void calculate_magnitudes(gr_complex* fft_begin, int32_t doppler_shift,
|
void calculate_magnitudes(gr_complex* fft_begin, int32_t doppler_shift,
|
||||||
int32_t doppler_offset);
|
int32_t doppler_offset);
|
||||||
|
@ -50,7 +50,7 @@ pcps_quicksync_acquisition_cc_sptr pcps_quicksync_make_acquisition_cc(
|
|||||||
int32_t samples_per_code,
|
int32_t samples_per_code,
|
||||||
bool bit_transition_flag,
|
bool bit_transition_flag,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename)
|
const std::string& dump_filename)
|
||||||
{
|
{
|
||||||
return pcps_quicksync_acquisition_cc_sptr(
|
return pcps_quicksync_acquisition_cc_sptr(
|
||||||
new pcps_quicksync_acquisition_cc(
|
new pcps_quicksync_acquisition_cc(
|
||||||
@ -59,7 +59,7 @@ pcps_quicksync_acquisition_cc_sptr pcps_quicksync_make_acquisition_cc(
|
|||||||
fs_in, samples_per_ms,
|
fs_in, samples_per_ms,
|
||||||
samples_per_code,
|
samples_per_code,
|
||||||
bit_transition_flag,
|
bit_transition_flag,
|
||||||
dump, std::move(dump_filename)));
|
dump, dump_filename));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -70,9 +70,9 @@ pcps_quicksync_acquisition_cc::pcps_quicksync_acquisition_cc(
|
|||||||
int32_t samples_per_ms, int32_t samples_per_code,
|
int32_t samples_per_ms, int32_t samples_per_code,
|
||||||
bool bit_transition_flag,
|
bool bit_transition_flag,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename) : gr::block("pcps_quicksync_acquisition_cc",
|
const std::string& dump_filename) : gr::block("pcps_quicksync_acquisition_cc",
|
||||||
gr::io_signature::make(1, 1, (sizeof(gr_complex) * sampled_ms * samples_per_ms)),
|
gr::io_signature::make(1, 1, (sizeof(gr_complex) * sampled_ms * samples_per_ms)),
|
||||||
gr::io_signature::make(0, 0, (sizeof(gr_complex) * sampled_ms * samples_per_ms)))
|
gr::io_signature::make(0, 0, (sizeof(gr_complex) * sampled_ms * samples_per_ms)))
|
||||||
{
|
{
|
||||||
this->message_port_register_out(pmt::mp("events"));
|
this->message_port_register_out(pmt::mp("events"));
|
||||||
d_sample_counter = 0ULL; // SAMPLE COUNTER
|
d_sample_counter = 0ULL; // SAMPLE COUNTER
|
||||||
@ -112,7 +112,7 @@ pcps_quicksync_acquisition_cc::pcps_quicksync_acquisition_cc(
|
|||||||
|
|
||||||
// For dumping samples into a file
|
// For dumping samples into a file
|
||||||
d_dump = dump;
|
d_dump = dump;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
|
|
||||||
d_code_folded = std::vector<gr_complex>(d_fft_size, lv_cmake(0.0F, 0.0F));
|
d_code_folded = std::vector<gr_complex>(d_fft_size, lv_cmake(0.0F, 0.0F));
|
||||||
d_signal_folded.reserve(d_fft_size);
|
d_signal_folded.reserve(d_fft_size);
|
||||||
|
@ -79,7 +79,7 @@ pcps_quicksync_acquisition_cc_sptr pcps_quicksync_make_acquisition_cc(
|
|||||||
int32_t samples_per_code,
|
int32_t samples_per_code,
|
||||||
bool bit_transition_flag,
|
bool bit_transition_flag,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This class implements a Parallel Code Phase Search Acquisition with
|
* \brief This class implements a Parallel Code Phase Search Acquisition with
|
||||||
@ -202,7 +202,7 @@ private:
|
|||||||
int32_t samples_per_ms, int32_t samples_per_code,
|
int32_t samples_per_ms, int32_t samples_per_code,
|
||||||
bool bit_transition_flag,
|
bool bit_transition_flag,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
pcps_quicksync_acquisition_cc(uint32_t folding_factor,
|
pcps_quicksync_acquisition_cc(uint32_t folding_factor,
|
||||||
uint32_t sampled_ms, uint32_t max_dwells,
|
uint32_t sampled_ms, uint32_t max_dwells,
|
||||||
@ -210,7 +210,7 @@ private:
|
|||||||
int32_t samples_per_ms, int32_t samples_per_code,
|
int32_t samples_per_ms, int32_t samples_per_code,
|
||||||
bool bit_transition_flag,
|
bool bit_transition_flag,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
void calculate_magnitudes(gr_complex* fft_begin, int32_t doppler_shift,
|
void calculate_magnitudes(gr_complex* fft_begin, int32_t doppler_shift,
|
||||||
int32_t doppler_offset);
|
int32_t doppler_offset);
|
||||||
|
@ -68,11 +68,11 @@ pcps_tong_acquisition_cc_sptr pcps_tong_make_acquisition_cc(
|
|||||||
uint32_t tong_init_val,
|
uint32_t tong_init_val,
|
||||||
uint32_t tong_max_val,
|
uint32_t tong_max_val,
|
||||||
uint32_t tong_max_dwells,
|
uint32_t tong_max_dwells,
|
||||||
bool dump, std::string dump_filename)
|
bool dump, const std::string &dump_filename)
|
||||||
{
|
{
|
||||||
return pcps_tong_acquisition_cc_sptr(
|
return pcps_tong_acquisition_cc_sptr(
|
||||||
new pcps_tong_acquisition_cc(sampled_ms, doppler_max, fs_in, samples_per_ms, samples_per_code,
|
new pcps_tong_acquisition_cc(sampled_ms, doppler_max, fs_in, samples_per_ms, samples_per_code,
|
||||||
tong_init_val, tong_max_val, tong_max_dwells, dump, std::move(dump_filename)));
|
tong_init_val, tong_max_val, tong_max_dwells, dump, dump_filename));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -86,9 +86,9 @@ pcps_tong_acquisition_cc::pcps_tong_acquisition_cc(
|
|||||||
uint32_t tong_max_val,
|
uint32_t tong_max_val,
|
||||||
uint32_t tong_max_dwells,
|
uint32_t tong_max_dwells,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename) : gr::block("pcps_tong_acquisition_cc",
|
const std::string &dump_filename) : gr::block("pcps_tong_acquisition_cc",
|
||||||
gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms),
|
gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms),
|
||||||
gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms))
|
gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms))
|
||||||
{
|
{
|
||||||
this->message_port_register_out(pmt::mp("events"));
|
this->message_port_register_out(pmt::mp("events"));
|
||||||
d_sample_counter = 0ULL; // SAMPLE COUNTER
|
d_sample_counter = 0ULL; // SAMPLE COUNTER
|
||||||
@ -120,7 +120,7 @@ pcps_tong_acquisition_cc::pcps_tong_acquisition_cc(
|
|||||||
|
|
||||||
// For dumping samples into a file
|
// For dumping samples into a file
|
||||||
d_dump = dump;
|
d_dump = dump;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
|
|
||||||
d_doppler_resolution = 0;
|
d_doppler_resolution = 0;
|
||||||
d_threshold = 0;
|
d_threshold = 0;
|
||||||
|
@ -77,7 +77,7 @@ pcps_tong_acquisition_cc_sptr pcps_tong_make_acquisition_cc(
|
|||||||
uint32_t tong_max_val,
|
uint32_t tong_max_val,
|
||||||
uint32_t tong_max_dwells,
|
uint32_t tong_max_dwells,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This class implements a Parallel Code Phase Search Acquisition with
|
* \brief This class implements a Parallel Code Phase Search Acquisition with
|
||||||
@ -195,13 +195,13 @@ private:
|
|||||||
int64_t fs_in, int32_t samples_per_ms,
|
int64_t fs_in, int32_t samples_per_ms,
|
||||||
int32_t samples_per_code, uint32_t tong_init_val,
|
int32_t samples_per_code, uint32_t tong_init_val,
|
||||||
uint32_t tong_max_val, uint32_t tong_max_dwells,
|
uint32_t tong_max_val, uint32_t tong_max_dwells,
|
||||||
bool dump, std::string dump_filename);
|
bool dump, const std::string& dump_filename);
|
||||||
|
|
||||||
pcps_tong_acquisition_cc(uint32_t sampled_ms, uint32_t doppler_max,
|
pcps_tong_acquisition_cc(uint32_t sampled_ms, uint32_t doppler_max,
|
||||||
int64_t fs_in, int32_t samples_per_ms,
|
int64_t fs_in, int32_t samples_per_ms,
|
||||||
int32_t samples_per_code, uint32_t tong_init_val,
|
int32_t samples_per_code, uint32_t tong_init_val,
|
||||||
uint32_t tong_max_val, uint32_t tong_max_dwells,
|
uint32_t tong_max_val, uint32_t tong_max_dwells,
|
||||||
bool dump, std::string dump_filename);
|
bool dump, const std::string& dump_filename);
|
||||||
|
|
||||||
void calculate_magnitudes(gr_complex* fft_begin, int32_t doppler_shift,
|
void calculate_magnitudes(gr_complex* fft_begin, int32_t doppler_shift,
|
||||||
int32_t doppler_offset);
|
int32_t doppler_offset);
|
||||||
|
@ -211,7 +211,7 @@ void Fpga_Acquisition::configure_acquisition()
|
|||||||
d_map_base[0] = d_select_queue;
|
d_map_base[0] = d_select_queue;
|
||||||
d_map_base[1] = d_vector_length;
|
d_map_base[1] = d_vector_length;
|
||||||
d_map_base[2] = d_nsamples;
|
d_map_base[2] = d_nsamples;
|
||||||
d_map_base[7] = static_cast<int32_t>(log2(static_cast<float>(d_vector_length))); // log2 FFTlength
|
d_map_base[7] = static_cast<int32_t>(std::log2(static_cast<float>(d_vector_length))); // log2 FFTlength
|
||||||
d_map_base[12] = d_excludelimit;
|
d_map_base[12] = d_excludelimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,17 +40,17 @@
|
|||||||
#include <utility> // for std::move
|
#include <utility> // for std::move
|
||||||
|
|
||||||
|
|
||||||
Channel::Channel(ConfigurationInterface* configuration, uint32_t channel, std::shared_ptr<AcquisitionInterface> acq,
|
Channel::Channel(ConfigurationInterface* configuration, uint32_t channel, const std::shared_ptr<AcquisitionInterface>& acq,
|
||||||
std::shared_ptr<TrackingInterface> trk, std::shared_ptr<TelemetryDecoderInterface> nav,
|
const std::shared_ptr<TrackingInterface>& trk, const std::shared_ptr<TelemetryDecoderInterface>& nav,
|
||||||
std::string role, std::string implementation, std::shared_ptr<Concurrent_Queue<pmt::pmt_t> > queue)
|
const std::string& role, const std::string& implementation, const std::shared_ptr<Concurrent_Queue<pmt::pmt_t> >& queue)
|
||||||
{
|
{
|
||||||
acq_ = std::move(acq);
|
acq_ = acq;
|
||||||
trk_ = std::move(trk);
|
trk_ = trk;
|
||||||
nav_ = std::move(nav);
|
nav_ = nav;
|
||||||
role_ = std::move(role);
|
role_ = role;
|
||||||
implementation_ = std::move(implementation);
|
implementation_ = implementation;
|
||||||
channel_ = channel;
|
channel_ = channel;
|
||||||
queue_ = std::move(queue);
|
queue_ = queue;
|
||||||
channel_fsm_ = std::make_shared<ChannelFsm>();
|
channel_fsm_ = std::make_shared<ChannelFsm>();
|
||||||
|
|
||||||
flag_enable_fpga = configuration->property("GNSS-SDR.enable_FPGA", false);
|
flag_enable_fpga = configuration->property("GNSS-SDR.enable_FPGA", false);
|
||||||
|
@ -65,9 +65,9 @@ class Channel : public ChannelInterface
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//! Constructor
|
//! Constructor
|
||||||
Channel(ConfigurationInterface* configuration, uint32_t channel, std::shared_ptr<AcquisitionInterface> acq,
|
Channel(ConfigurationInterface* configuration, uint32_t channel, const std::shared_ptr<AcquisitionInterface>& acq,
|
||||||
std::shared_ptr<TrackingInterface> trk, std::shared_ptr<TelemetryDecoderInterface> nav,
|
const std::shared_ptr<TrackingInterface>& trk, const std::shared_ptr<TelemetryDecoderInterface>& nav,
|
||||||
std::string role, std::string implementation, std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue);
|
const std::string& role, const std::string& implementation, const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue);
|
||||||
|
|
||||||
~Channel() = default; //!< Destructor
|
~Channel() = default; //!< Destructor
|
||||||
|
|
||||||
|
@ -30,8 +30,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_CHANNEL_FSM_H
|
#ifndef GNSS_SDR_CHANNEL_FSM_H_
|
||||||
#define GNSS_SDR_CHANNEL_FSM_H
|
#define GNSS_SDR_CHANNEL_FSM_H_
|
||||||
|
|
||||||
#include "acquisition_interface.h"
|
#include "acquisition_interface.h"
|
||||||
#include "concurrent_queue.h"
|
#include "concurrent_queue.h"
|
||||||
@ -83,4 +83,4 @@ private:
|
|||||||
std::mutex mx;
|
std::mutex mx;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GNSS_SDR_CHANNEL_FSM_H
|
#endif // GNSS_SDR_CHANNEL_FSM_H_
|
||||||
|
@ -28,8 +28,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_CHANNEL_MSG_RECEIVER_CC_H
|
#ifndef GNSS_SDR_CHANNEL_MSG_RECEIVER_CC_H_
|
||||||
#define GNSS_SDR_CHANNEL_MSG_RECEIVER_CC_H
|
#define GNSS_SDR_CHANNEL_MSG_RECEIVER_CC_H_
|
||||||
|
|
||||||
#include "channel_fsm.h"
|
#include "channel_fsm.h"
|
||||||
#include <gnuradio/block.h>
|
#include <gnuradio/block.h>
|
||||||
@ -58,4 +58,4 @@ private:
|
|||||||
void msg_handler_events(pmt::pmt_t msg);
|
void msg_handler_events(pmt::pmt_t msg);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_CHANNEL_MSG_RECEIVER_CC_H_
|
||||||
|
@ -81,4 +81,4 @@ private:
|
|||||||
bool connected_;
|
bool connected_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /*GNSS_SDR_SIGNAL_CONDITIONER_H_*/
|
#endif // GNSS_SDR_SIGNAL_CONDITIONER_H_
|
||||||
|
@ -79,4 +79,4 @@ private:
|
|||||||
bool connected_;
|
bool connected_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /*GNSS_SDR_SIGNAL_CONDITIONER_H_*/
|
#endif // GNSS_SDR_SIGNAL_CONDITIONER_H_
|
||||||
|
@ -57,4 +57,4 @@ private:
|
|||||||
interleaved_byte_to_complex_byte();
|
interleaved_byte_to_complex_byte();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_INTERLEAVED_BYTE_TO_COMPLEX_BYTE_H_
|
||||||
|
@ -28,8 +28,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_BEAMFORMER_H
|
#ifndef GNSS_SDR_BEAMFORMER_H_
|
||||||
#define GNSS_SDR_BEAMFORMER_H
|
#define GNSS_SDR_BEAMFORMER_H_
|
||||||
|
|
||||||
#include <gnuradio/sync_block.h>
|
#include <gnuradio/sync_block.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@ -58,4 +58,4 @@ private:
|
|||||||
std::vector<gr_complex> weight_vector = std::vector<gr_complex>(GNSS_SDR_BEAMFORMER_CHANNELS, gr_complex(1.0, 0.0));
|
std::vector<gr_complex> weight_vector = std::vector<gr_complex>(GNSS_SDR_BEAMFORMER_CHANNELS, gr_complex(1.0, 0.0));
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_BEAMFORMER_H_
|
||||||
|
@ -29,8 +29,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_GEOFUNCTIONS_H
|
#ifndef GNSS_SDR_GEOFUNCTIONS_H_
|
||||||
#define GNSS_SDR_GEOFUNCTIONS_H
|
#define GNSS_SDR_GEOFUNCTIONS_H_
|
||||||
|
|
||||||
#if ARMA_NO_BOUND_CHECKING
|
#if ARMA_NO_BOUND_CHECKING
|
||||||
#define ARMA_NO_DEBUG 1
|
#define ARMA_NO_DEBUG 1
|
||||||
@ -185,4 +185,4 @@ double clsin(const arma::colvec &ar, int degree, double argument);
|
|||||||
*/
|
*/
|
||||||
void clksin(const arma::colvec &ar, int degree, double arg_real, double arg_imag, double *re, double *im);
|
void clksin(const arma::colvec &ar, int degree, double arg_real, double arg_imag, double *re, double *im);
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_GEOFUNCTIONS_H_
|
||||||
|
@ -41,18 +41,18 @@ template <class T>
|
|||||||
class Gnss_circular_deque
|
class Gnss_circular_deque
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Gnss_circular_deque(); //!< Default constructor
|
Gnss_circular_deque(); //!< Default constructor
|
||||||
Gnss_circular_deque(const unsigned int max_size, const unsigned int nchann); //!< nchann = number of channels; max_size = channel capacity
|
Gnss_circular_deque(unsigned int max_size, unsigned int nchann); //!< nchann = number of channels; max_size = channel capacity
|
||||||
unsigned int size(const unsigned int ch); //!< Returns the number of available elements in a channel
|
unsigned int size(unsigned int ch); //!< Returns the number of available elements in a channel
|
||||||
T& at(const unsigned int ch, const unsigned int pos); //!< Returns a reference to an element with bount checking
|
T& at(unsigned int ch, unsigned int pos); //!< Returns a reference to an element with bount checking
|
||||||
const T& get(const unsigned int ch, const unsigned int pos) const; //!< Returns a reference to an element without bound checking
|
const T& get(unsigned int ch, unsigned int pos) const; //!< Returns a const reference to an element without bound checking
|
||||||
T& front(const unsigned int ch); //!< Returns a reference to the first element in the deque
|
T& front(unsigned int ch); //!< Returns a reference to the first element in the deque
|
||||||
T& back(const unsigned int ch); //!< Returns a reference to the last element in the deque
|
T& back(unsigned int ch); //!< Returns a reference to the last element in the deque
|
||||||
void push_back(const unsigned int ch, const T& new_data); //!< Inserts an element at the end of the deque
|
void push_back(unsigned int ch, const T& new_data); //!< Inserts an element at the end of the deque
|
||||||
void pop_front(const unsigned int ch); //!< Removes the first element of the deque
|
void pop_front(unsigned int ch); //!< Removes the first element of the deque
|
||||||
void clear(const unsigned int ch); //!< Removes all the elements of the deque (Sets size to 0). Capacity is not modified
|
void clear(unsigned int ch); //!< Removes all the elements of the deque (Sets size to 0). Capacity is not modified
|
||||||
void reset(const unsigned int max_size, const unsigned int nchann); //!< Removes all the elements in all the channels. Re-sets the number of channels and their capacity
|
void reset(unsigned int max_size, unsigned int nchann); //!< Removes all the elements in all the channels. Re-sets the number of channels and their capacity
|
||||||
void reset(); //!< Removes all the channels (Sets nchann to 0)
|
void reset(); //!< Removes all the channels (Sets nchann to 0)
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<boost::circular_buffer<T>> d_data;
|
std::vector<boost::circular_buffer<T>> d_data;
|
||||||
@ -67,56 +67,56 @@ Gnss_circular_deque<T>::Gnss_circular_deque()
|
|||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
Gnss_circular_deque<T>::Gnss_circular_deque(const unsigned int max_size, const unsigned int nchann)
|
Gnss_circular_deque<T>::Gnss_circular_deque(unsigned int max_size, unsigned int nchann)
|
||||||
{
|
{
|
||||||
reset(max_size, nchann);
|
reset(max_size, nchann);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
unsigned int Gnss_circular_deque<T>::size(const unsigned int ch)
|
unsigned int Gnss_circular_deque<T>::size(unsigned int ch)
|
||||||
{
|
{
|
||||||
return d_data.at(ch).size();
|
return d_data[ch].size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
T& Gnss_circular_deque<T>::back(const unsigned int ch)
|
T& Gnss_circular_deque<T>::back(unsigned int ch)
|
||||||
{
|
{
|
||||||
return d_data.at(ch).back();
|
return d_data[ch].back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
T& Gnss_circular_deque<T>::front(const unsigned int ch)
|
T& Gnss_circular_deque<T>::front(unsigned int ch)
|
||||||
{
|
{
|
||||||
return d_data.at(ch).front();
|
return d_data[ch].front();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
T& Gnss_circular_deque<T>::at(const unsigned int ch, const unsigned int pos)
|
T& Gnss_circular_deque<T>::at(unsigned int ch, unsigned int pos)
|
||||||
{
|
{
|
||||||
return d_data.at(ch).at(pos);
|
return d_data.at(ch).at(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
const T& Gnss_circular_deque<T>::get(const unsigned int ch, const unsigned int pos) const
|
const T& Gnss_circular_deque<T>::get(unsigned int ch, unsigned int pos) const
|
||||||
{
|
{
|
||||||
return d_data[ch][pos];
|
return d_data[ch][pos];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
void Gnss_circular_deque<T>::clear(const unsigned int ch)
|
void Gnss_circular_deque<T>::clear(unsigned int ch)
|
||||||
{
|
{
|
||||||
d_data.at(ch).clear();
|
d_data[ch].clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
void Gnss_circular_deque<T>::reset(const unsigned int max_size, const unsigned int nchann)
|
void Gnss_circular_deque<T>::reset(unsigned int max_size, unsigned int nchann)
|
||||||
{
|
{
|
||||||
d_data.clear();
|
d_data.clear();
|
||||||
if (max_size > 0 and nchann > 0)
|
if (max_size > 0 and nchann > 0)
|
||||||
@ -137,16 +137,16 @@ void Gnss_circular_deque<T>::reset()
|
|||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
void Gnss_circular_deque<T>::pop_front(const unsigned int ch)
|
void Gnss_circular_deque<T>::pop_front(unsigned int ch)
|
||||||
{
|
{
|
||||||
d_data.at(ch).pop_front();
|
d_data[ch].pop_front();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
void Gnss_circular_deque<T>::push_back(const unsigned int ch, const T& new_data)
|
void Gnss_circular_deque<T>::push_back(unsigned int ch, const T& new_data)
|
||||||
{
|
{
|
||||||
d_data.at(ch).push_back(new_data);
|
d_data[ch].push_back(new_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* GNSS_SDR_CIRCULAR_DEQUE_H_ */
|
#endif /* GNSS_SDR_CIRCULAR_DEQUE_H_ */
|
||||||
|
@ -7809,7 +7809,7 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
template <
|
template <
|
||||||
@ -12904,7 +12904,7 @@ struct functionImplementation_<T0,
|
|||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
template <
|
template <
|
||||||
typename T0, typename T1 = detail::NullType, typename T2 = detail::NullType,
|
typename T0, typename T1 = detail::NullType, typename T2 = detail::NullType,
|
||||||
@ -12975,7 +12975,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#undef __ERR_STR
|
#undef __ERR_STR
|
||||||
#if !defined(__CL_USER_OVERRIDE_ERROR_STRINGS)
|
#if !defined(__CL_USER_OVERRIDE_ERROR_STRINGS)
|
||||||
|
@ -131,7 +131,8 @@ clFFT_ExecuteInterleaved(cl_command_queue queue, clFFT_Plan Plan, cl_int batchSi
|
|||||||
return CL_INVALID_VALUE;
|
return CL_INVALID_VALUE;
|
||||||
|
|
||||||
cl_int err;
|
cl_int err;
|
||||||
size_t gWorkItems, lWorkItems;
|
size_t gWorkItems;
|
||||||
|
size_t lWorkItems;
|
||||||
int inPlaceDone;
|
int inPlaceDone;
|
||||||
|
|
||||||
cl_int isInPlace = data_in == data_out ? 1 : 0;
|
cl_int isInPlace = data_in == data_out ? 1 : 0;
|
||||||
@ -229,7 +230,8 @@ clFFT_ExecutePlannar(cl_command_queue queue, clFFT_Plan Plan, cl_int batchSize,
|
|||||||
return CL_INVALID_VALUE;
|
return CL_INVALID_VALUE;
|
||||||
|
|
||||||
cl_int err;
|
cl_int err;
|
||||||
size_t gWorkItems, lWorkItems;
|
size_t gWorkItems;
|
||||||
|
size_t lWorkItems;
|
||||||
int inPlaceDone;
|
int inPlaceDone;
|
||||||
|
|
||||||
cl_int isInPlace = ((data_in_real == data_out_real) && (data_in_imag == data_out_imag)) ? 1 : 0;
|
cl_int isInPlace = ((data_in_real == data_out_real) && (data_in_imag == data_out_imag)) ? 1 : 0;
|
||||||
|
@ -243,7 +243,8 @@ insertGlobalLoadsAndTranspose(string &kernelString, int N, int numWorkItemsPerXF
|
|||||||
{
|
{
|
||||||
int log2NumWorkItemsPerXForm = (int)log2(numWorkItemsPerXForm);
|
int log2NumWorkItemsPerXForm = (int)log2(numWorkItemsPerXForm);
|
||||||
int groupSize = numWorkItemsPerXForm * numXFormsPerWG;
|
int groupSize = numWorkItemsPerXForm * numXFormsPerWG;
|
||||||
int i, j;
|
int i;
|
||||||
|
int j;
|
||||||
int lMemSize = 0;
|
int lMemSize = 0;
|
||||||
|
|
||||||
if (numXFormsPerWG > 1)
|
if (numXFormsPerWG > 1)
|
||||||
@ -446,7 +447,10 @@ static int
|
|||||||
insertGlobalStoresAndTranspose(string &kernelString, int N, int maxRadix, int Nr, int numWorkItemsPerXForm, int numXFormsPerWG, int mem_coalesce_width, clFFT_DataFormat dataFormat)
|
insertGlobalStoresAndTranspose(string &kernelString, int N, int maxRadix, int Nr, int numWorkItemsPerXForm, int numXFormsPerWG, int mem_coalesce_width, clFFT_DataFormat dataFormat)
|
||||||
{
|
{
|
||||||
int groupSize = numWorkItemsPerXForm * numXFormsPerWG;
|
int groupSize = numWorkItemsPerXForm * numXFormsPerWG;
|
||||||
int i, j, k, ind;
|
int i;
|
||||||
|
int j;
|
||||||
|
int k;
|
||||||
|
int ind;
|
||||||
int lMemSize = 0;
|
int lMemSize = 0;
|
||||||
int numIter = maxRadix / Nr;
|
int numIter = maxRadix / Nr;
|
||||||
string indent = string("");
|
string indent = string("");
|
||||||
@ -597,7 +601,8 @@ insertfftKernel(string &kernelString, int Nr, int numIter)
|
|||||||
static void
|
static void
|
||||||
insertTwiddleKernel(string &kernelString, int Nr, int numIter, int Nprev, int len, int numWorkItemsPerXForm)
|
insertTwiddleKernel(string &kernelString, int Nr, int numIter, int Nprev, int len, int numWorkItemsPerXForm)
|
||||||
{
|
{
|
||||||
int z, k;
|
int z;
|
||||||
|
int k;
|
||||||
int logNPrev = (int)log2(Nprev);
|
int logNPrev = (int)log2(Nprev);
|
||||||
|
|
||||||
for (z = 0; z < numIter; z++)
|
for (z = 0; z < numIter; z++)
|
||||||
@ -662,7 +667,8 @@ getPadding(int numWorkItemsPerXForm, int Nprev, int numWorkItemsReq, int numXFor
|
|||||||
static void
|
static void
|
||||||
insertLocalStores(string &kernelString, int numIter, int Nr, int numWorkItemsPerXForm, int numWorkItemsReq, int offset, string &comp)
|
insertLocalStores(string &kernelString, int numIter, int Nr, int numWorkItemsPerXForm, int numWorkItemsReq, int offset, string &comp)
|
||||||
{
|
{
|
||||||
int z, k;
|
int z;
|
||||||
|
int k;
|
||||||
|
|
||||||
for (z = 0; z < numIter; z++)
|
for (z = 0; z < numIter; z++)
|
||||||
{
|
{
|
||||||
@ -787,8 +793,10 @@ createLocalMemfftKernelString(cl_fft_plan *plan)
|
|||||||
}
|
}
|
||||||
assert(tmpLen == n && "product of radices choosen doesnt match the length of signal\n");
|
assert(tmpLen == n && "product of radices choosen doesnt match the length of signal\n");
|
||||||
|
|
||||||
int offset, midPad;
|
int offset;
|
||||||
string localString(""), kernelName("");
|
int midPad;
|
||||||
|
string localString("");
|
||||||
|
string kernelName("");
|
||||||
|
|
||||||
clFFT_DataFormat dataFormat = plan->format;
|
clFFT_DataFormat dataFormat = plan->format;
|
||||||
string *kernelString = plan->kernel_string;
|
string *kernelString = plan->kernel_string;
|
||||||
@ -938,11 +946,16 @@ void getGlobalRadixInfo(int n, int *radix, int *R1, int *R2, int *numRadices)
|
|||||||
static void
|
static void
|
||||||
createGlobalFFTKernelString(cl_fft_plan *plan, int n, int BS, cl_fft_kernel_dir dir, int vertBS)
|
createGlobalFFTKernelString(cl_fft_plan *plan, int n, int BS, cl_fft_kernel_dir dir, int vertBS)
|
||||||
{
|
{
|
||||||
int i, j, k, t;
|
int i;
|
||||||
|
int j;
|
||||||
|
int k;
|
||||||
|
int t;
|
||||||
int radixArr[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
int radixArr[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||||
int R1Arr[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
int R1Arr[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||||
int R2Arr[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
int R2Arr[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||||
int radix, R1, R2;
|
int radix;
|
||||||
|
int R1;
|
||||||
|
int R2;
|
||||||
int numRadices;
|
int numRadices;
|
||||||
|
|
||||||
int maxThreadsPerBlock = plan->max_work_item_per_workgroup;
|
int maxThreadsPerBlock = plan->max_work_item_per_workgroup;
|
||||||
@ -955,7 +968,8 @@ createGlobalFFTKernelString(cl_fft_plan *plan, int n, int BS, cl_fft_kernel_dir
|
|||||||
|
|
||||||
int numPasses = numRadices;
|
int numPasses = numRadices;
|
||||||
|
|
||||||
string localString(""), kernelName("");
|
string localString("");
|
||||||
|
string kernelName("");
|
||||||
string *kernelString = plan->kernel_string;
|
string *kernelString = plan->kernel_string;
|
||||||
cl_fft_kernel_info **kInfo = &plan->kernel_info;
|
cl_fft_kernel_info **kInfo = &plan->kernel_info;
|
||||||
int kCount = 0;
|
int kCount = 0;
|
||||||
|
@ -220,7 +220,7 @@ int getMaxKernelWorkGroupSize(cl_fft_plan *plan, unsigned int *max_wg_size, unsi
|
|||||||
|
|
||||||
#define ERR_MACRO(err) \
|
#define ERR_MACRO(err) \
|
||||||
{ \
|
{ \
|
||||||
if (err != CL_SUCCESS) \
|
if ((err) != CL_SUCCESS) \
|
||||||
{ \
|
{ \
|
||||||
if (error_code) \
|
if (error_code) \
|
||||||
*error_code = err; \
|
*error_code = err; \
|
||||||
@ -381,7 +381,8 @@ void clFFT_DestroyPlan(clFFT_Plan plan)
|
|||||||
|
|
||||||
void clFFT_DumpPlan(clFFT_Plan Plan, FILE *file)
|
void clFFT_DumpPlan(clFFT_Plan Plan, FILE *file)
|
||||||
{
|
{
|
||||||
size_t gDim, lDim;
|
size_t gDim;
|
||||||
|
size_t lDim;
|
||||||
FILE *out;
|
FILE *out;
|
||||||
if (!file)
|
if (!file)
|
||||||
out = stdout;
|
out = stdout;
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
/* constants and macros ------------------------------------------------------*/
|
/* constants and macros ------------------------------------------------------*/
|
||||||
|
|
||||||
#define SQR_SOL(x) ((x) < 0.0 ? -(x) * (x) : (x) * (x))
|
#define SQR_SOL(x) ((x) < 0.0 ? -(x) * (x) : (x) * (x))
|
||||||
#define SQRT_SOL(x) ((x) < 0.0 ? 0.0 : sqrt(x))
|
#define SQRT_SOL(x) ((x) < 0.0 ? 0.0 : std::sqrt(x))
|
||||||
|
|
||||||
const int MAXFIELD = 64; /* max number of fields in a record */
|
const int MAXFIELD = 64; /* max number of fields in a record */
|
||||||
|
|
||||||
|
@ -334,7 +334,6 @@ static inline void volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn_a_sse3(lv_16sc
|
|||||||
#endif /* LV_HAVE_SSE3 */
|
#endif /* LV_HAVE_SSE3 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef LV_HAVE_SSE3
|
#ifdef LV_HAVE_SSE3
|
||||||
#include <pmmintrin.h>
|
#include <pmmintrin.h>
|
||||||
|
|
||||||
|
@ -131,7 +131,6 @@ static inline void volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic_a_sse3(lv_
|
|||||||
#endif // SSE3
|
#endif // SSE3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef LV_HAVE_SSE3
|
#ifdef LV_HAVE_SSE3
|
||||||
static inline void volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic_u_sse3(lv_16sc_t* result, const lv_16sc_t* local_code, const lv_16sc_t* in, unsigned int num_points)
|
static inline void volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic_u_sse3(lv_16sc_t* result, const lv_16sc_t* local_code, const lv_16sc_t* in, unsigned int num_points)
|
||||||
{
|
{
|
||||||
@ -194,7 +193,6 @@ static inline void volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic_a_avx2(lv_
|
|||||||
#endif // AVX2
|
#endif // AVX2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef LV_HAVE_AVX2
|
#ifdef LV_HAVE_AVX2
|
||||||
static inline void volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic_u_avx2(lv_16sc_t* result, const lv_16sc_t* local_code, const lv_16sc_t* in, unsigned int num_points)
|
static inline void volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic_u_avx2(lv_16sc_t* result, const lv_16sc_t* local_code, const lv_16sc_t* in, unsigned int num_points)
|
||||||
{
|
{
|
||||||
|
@ -189,7 +189,6 @@ static inline void volk_gnsssdr_8ic_magnitude_squared_8i_a_sse3(char* magnitudeV
|
|||||||
#endif /* LV_HAVE_SSSE3 */
|
#endif /* LV_HAVE_SSSE3 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef LV_HAVE_ORC
|
#ifdef LV_HAVE_ORC
|
||||||
|
|
||||||
extern void volk_gnsssdr_8ic_magnitude_squared_8i_a_orc_impl(char* magnitudeVector, const lv_8sc_t* complexVector, unsigned int num_points);
|
extern void volk_gnsssdr_8ic_magnitude_squared_8i_a_orc_impl(char* magnitudeVector, const lv_8sc_t* complexVector, unsigned int num_points);
|
||||||
|
@ -66,9 +66,9 @@ namespace errorlib = boost::system;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
hybrid_observables_gs_sptr hybrid_observables_gs_make(unsigned int nchannels_in, unsigned int nchannels_out, bool dump, bool dump_mat, std::string dump_filename)
|
hybrid_observables_gs_sptr hybrid_observables_gs_make(unsigned int nchannels_in, unsigned int nchannels_out, bool dump, bool dump_mat, const std::string &dump_filename)
|
||||||
{
|
{
|
||||||
return hybrid_observables_gs_sptr(new hybrid_observables_gs(nchannels_in, nchannels_out, dump, dump_mat, std::move(dump_filename)));
|
return hybrid_observables_gs_sptr(new hybrid_observables_gs(nchannels_in, nchannels_out, dump, dump_mat, dump_filename));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -76,9 +76,9 @@ hybrid_observables_gs::hybrid_observables_gs(uint32_t nchannels_in,
|
|||||||
uint32_t nchannels_out,
|
uint32_t nchannels_out,
|
||||||
bool dump,
|
bool dump,
|
||||||
bool dump_mat,
|
bool dump_mat,
|
||||||
std::string dump_filename) : gr::block("hybrid_observables_gs",
|
const std::string &dump_filename) : gr::block("hybrid_observables_gs",
|
||||||
gr::io_signature::make(nchannels_in, nchannels_in, sizeof(Gnss_Synchro)),
|
gr::io_signature::make(nchannels_in, nchannels_in, sizeof(Gnss_Synchro)),
|
||||||
gr::io_signature::make(nchannels_out, nchannels_out, sizeof(Gnss_Synchro)))
|
gr::io_signature::make(nchannels_out, nchannels_out, sizeof(Gnss_Synchro)))
|
||||||
{
|
{
|
||||||
// PVT input message port
|
// PVT input message port
|
||||||
this->message_port_register_in(pmt::mp("pvt_to_observables"));
|
this->message_port_register_in(pmt::mp("pvt_to_observables"));
|
||||||
@ -89,7 +89,7 @@ hybrid_observables_gs::hybrid_observables_gs(uint32_t nchannels_in,
|
|||||||
|
|
||||||
d_dump = dump;
|
d_dump = dump;
|
||||||
d_dump_mat = dump_mat and d_dump;
|
d_dump_mat = dump_mat and d_dump;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
d_nchannels_out = nchannels_out;
|
d_nchannels_out = nchannels_out;
|
||||||
d_nchannels_in = nchannels_in;
|
d_nchannels_in = nchannels_in;
|
||||||
d_gnss_synchro_history = std::make_shared<Gnss_circular_deque<Gnss_Synchro>>(1000, d_nchannels_out);
|
d_gnss_synchro_history = std::make_shared<Gnss_circular_deque<Gnss_Synchro>>(1000, d_nchannels_out);
|
||||||
|
@ -31,8 +31,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef GNSS_SDR_HYBRID_OBSERVABLES_GS_H
|
#ifndef GNSS_SDR_HYBRID_OBSERVABLES_GS_H_
|
||||||
#define GNSS_SDR_HYBRID_OBSERVABLES_GS_H
|
#define GNSS_SDR_HYBRID_OBSERVABLES_GS_H_
|
||||||
|
|
||||||
#include <boost/circular_buffer.hpp> // for boost::circular_buffer
|
#include <boost/circular_buffer.hpp> // for boost::circular_buffer
|
||||||
#include <boost/shared_ptr.hpp> // for boost::shared_ptr
|
#include <boost/shared_ptr.hpp> // for boost::shared_ptr
|
||||||
@ -57,7 +57,7 @@ hybrid_observables_gs_sptr hybrid_observables_gs_make(
|
|||||||
unsigned int nchannels_out,
|
unsigned int nchannels_out,
|
||||||
bool dump,
|
bool dump,
|
||||||
bool dump_mat,
|
bool dump_mat,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This class implements a block that computes observables
|
* \brief This class implements a block that computes observables
|
||||||
@ -76,14 +76,14 @@ private:
|
|||||||
uint32_t nchannels_out,
|
uint32_t nchannels_out,
|
||||||
bool dump,
|
bool dump,
|
||||||
bool dump_mat,
|
bool dump_mat,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
hybrid_observables_gs(
|
hybrid_observables_gs(
|
||||||
uint32_t nchannels_in,
|
uint32_t nchannels_in,
|
||||||
uint32_t nchannels_out,
|
uint32_t nchannels_out,
|
||||||
bool dump,
|
bool dump,
|
||||||
bool dump_mat,
|
bool dump_mat,
|
||||||
std::string dump_filename);
|
const std::string& dump_filename);
|
||||||
|
|
||||||
bool T_rx_TOW_set; // rx time follow GPST
|
bool T_rx_TOW_set; // rx time follow GPST
|
||||||
bool d_dump;
|
bool d_dump;
|
||||||
@ -105,4 +105,4 @@ private:
|
|||||||
int32_t save_matfile();
|
int32_t save_matfile();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_HYBRID_OBSERVABLES_GS_H_
|
||||||
|
@ -29,8 +29,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CB_H
|
#ifndef GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CB_H_
|
||||||
#define GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CB_H
|
#define GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CB_H_
|
||||||
|
|
||||||
#include <gnuradio/block.h>
|
#include <gnuradio/block.h>
|
||||||
#include <volk/volk.h>
|
#include <volk/volk.h>
|
||||||
@ -84,4 +84,4 @@ private:
|
|||||||
uint32_t d_phase_step;
|
uint32_t d_phase_step;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CS_H */
|
#endif // GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CB_H_
|
||||||
|
@ -36,8 +36,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CC_H
|
#ifndef GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CC_H_
|
||||||
#define GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CC_H
|
#define GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CC_H_
|
||||||
|
|
||||||
#include <gnuradio/block.h>
|
#include <gnuradio/block.h>
|
||||||
#include <volk/volk.h>
|
#include <volk/volk.h>
|
||||||
@ -91,4 +91,4 @@ private:
|
|||||||
uint32_t d_phase_step;
|
uint32_t d_phase_step;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CC_H */
|
#endif // GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CC_H_
|
||||||
|
@ -29,8 +29,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CS_H
|
#ifndef GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CS_H_
|
||||||
#define GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CS_H
|
#define GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CS_H_
|
||||||
|
|
||||||
#include <gnuradio/block.h>
|
#include <gnuradio/block.h>
|
||||||
#include <volk/volk.h>
|
#include <volk/volk.h>
|
||||||
@ -84,4 +84,4 @@ private:
|
|||||||
uint32_t d_phase_step;
|
uint32_t d_phase_step;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CS_H */
|
#endif // GNSS_SDR_DIRECT_RESAMPLER_CONDITIONER_CS_H_
|
||||||
|
@ -49,12 +49,12 @@
|
|||||||
* a boost shared_ptr. This is effectively the public constructor.
|
* a boost shared_ptr. This is effectively the public constructor.
|
||||||
*/
|
*/
|
||||||
signal_generator_c_sptr
|
signal_generator_c_sptr
|
||||||
signal_make_generator_c(std::vector<std::string> signal1, std::vector<std::string> system, const std::vector<unsigned int> &PRN,
|
signal_make_generator_c(const std::vector<std::string> &signal1, const std::vector<std::string> &system, const std::vector<unsigned int> &PRN,
|
||||||
const std::vector<float> &CN0_dB, const std::vector<float> &doppler_Hz,
|
const std::vector<float> &CN0_dB, const std::vector<float> &doppler_Hz,
|
||||||
const std::vector<unsigned int> &delay_chips, const std::vector<unsigned int> &delay_sec, bool data_flag, bool noise_flag,
|
const std::vector<unsigned int> &delay_chips, const std::vector<unsigned int> &delay_sec, bool data_flag, bool noise_flag,
|
||||||
unsigned int fs_in, unsigned int vector_length, float BW_BB)
|
unsigned int fs_in, unsigned int vector_length, float BW_BB)
|
||||||
{
|
{
|
||||||
return gnuradio::get_initial_sptr(new signal_generator_c(std::move(signal1), std::move(system), PRN, CN0_dB, doppler_Hz, delay_chips, delay_sec,
|
return gnuradio::get_initial_sptr(new signal_generator_c(signal1, system, PRN, CN0_dB, doppler_Hz, delay_chips, delay_sec,
|
||||||
data_flag, noise_flag, fs_in, vector_length, BW_BB));
|
data_flag, noise_flag, fs_in, vector_length, BW_BB));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,8 +28,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_SIGNAL_GENERATOR_C_H
|
#ifndef GNSS_SDR_SIGNAL_GENERATOR_C_H_
|
||||||
#define GNSS_SDR_SIGNAL_GENERATOR_C_H
|
#define GNSS_SDR_SIGNAL_GENERATOR_C_H_
|
||||||
|
|
||||||
#include "gnss_signal.h"
|
#include "gnss_signal.h"
|
||||||
#include <gnuradio/block.h>
|
#include <gnuradio/block.h>
|
||||||
@ -60,8 +60,8 @@ using signal_generator_c_sptr = boost::shared_ptr<signal_generator_c>;
|
|||||||
* interface for creating new instances.
|
* interface for creating new instances.
|
||||||
*/
|
*/
|
||||||
signal_generator_c_sptr signal_make_generator_c(
|
signal_generator_c_sptr signal_make_generator_c(
|
||||||
std::vector<std::string> signal1,
|
const std::vector<std::string> &signal1,
|
||||||
std::vector<std::string> system,
|
const std::vector<std::string> &system,
|
||||||
const std::vector<unsigned int> &PRN,
|
const std::vector<unsigned int> &PRN,
|
||||||
const std::vector<float> &CN0_dB,
|
const std::vector<float> &CN0_dB,
|
||||||
const std::vector<float> &doppler_Hz,
|
const std::vector<float> &doppler_Hz,
|
||||||
@ -92,8 +92,8 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
friend signal_generator_c_sptr signal_make_generator_c(
|
friend signal_generator_c_sptr signal_make_generator_c(
|
||||||
std::vector<std::string> signal1,
|
const std::vector<std::string> &signal1,
|
||||||
std::vector<std::string> system,
|
const std::vector<std::string> &system,
|
||||||
const std::vector<unsigned int> &PRN,
|
const std::vector<unsigned int> &PRN,
|
||||||
const std::vector<float> &CN0_dB,
|
const std::vector<float> &CN0_dB,
|
||||||
const std::vector<float> &doppler_Hz,
|
const std::vector<float> &doppler_Hz,
|
||||||
@ -154,4 +154,4 @@ private:
|
|||||||
std::normal_distribution<float> normal_dist;
|
std::normal_distribution<float> normal_dist;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* GNSS_SDR_SIGNAL_GENERATOR_C_H */
|
#endif /* GNSS_SDR_SIGNAL_GENERATOR_C_H_ */
|
||||||
|
@ -36,15 +36,11 @@
|
|||||||
#include "ad9361_manager.h"
|
#include "ad9361_manager.h"
|
||||||
#include "configuration_interface.h"
|
#include "configuration_interface.h"
|
||||||
#include <glog/logging.h>
|
#include <glog/logging.h>
|
||||||
|
#include <iio.h>
|
||||||
#include <exception>
|
#include <exception>
|
||||||
#include <iostream> // for cout, endl
|
#include <iostream> // for cout, endl
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
#include <iio/iio.h>
|
|
||||||
#else
|
|
||||||
#include <iio.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configuration,
|
Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configuration,
|
||||||
const std::string& role, unsigned int in_stream, unsigned int out_stream,
|
const std::string& role, unsigned int in_stream, unsigned int out_stream,
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
FileSignalSource::FileSignalSource(ConfigurationInterface* configuration,
|
FileSignalSource::FileSignalSource(ConfigurationInterface* configuration,
|
||||||
const std::string& role, unsigned int in_streams, unsigned int out_streams,
|
const std::string& role, unsigned int in_streams, unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue) : role_(role), in_streams_(in_streams), out_streams_(out_streams), queue_(std::move(queue))
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue) : role_(role), in_streams_(in_streams), out_streams_(out_streams), queue_(queue)
|
||||||
{
|
{
|
||||||
std::string default_filename = "./example_capture.dat";
|
std::string default_filename = "./example_capture.dat";
|
||||||
std::string default_item_type = "short";
|
std::string default_item_type = "short";
|
||||||
|
@ -57,7 +57,7 @@ class FileSignalSource : public GNSSBlockInterface
|
|||||||
public:
|
public:
|
||||||
FileSignalSource(ConfigurationInterface* configuration, const std::string& role,
|
FileSignalSource(ConfigurationInterface* configuration, const std::string& role,
|
||||||
unsigned int in_streams, unsigned int out_streams,
|
unsigned int in_streams, unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue);
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue);
|
||||||
|
|
||||||
~FileSignalSource() = default;
|
~FileSignalSource() = default;
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
MultichannelFileSignalSource::MultichannelFileSignalSource(ConfigurationInterface* configuration,
|
MultichannelFileSignalSource::MultichannelFileSignalSource(ConfigurationInterface* configuration,
|
||||||
const std::string& role, unsigned int in_streams, unsigned int out_streams,
|
const std::string& role, unsigned int in_streams, unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue) : role_(role), in_streams_(in_streams), out_streams_(out_streams), queue_(std::move(queue))
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue) : role_(role), in_streams_(in_streams), out_streams_(out_streams), queue_(queue)
|
||||||
{
|
{
|
||||||
std::string default_filename = "./example_capture.dat";
|
std::string default_filename = "./example_capture.dat";
|
||||||
std::string default_item_type = "short";
|
std::string default_item_type = "short";
|
||||||
|
@ -58,7 +58,7 @@ class MultichannelFileSignalSource : public GNSSBlockInterface
|
|||||||
public:
|
public:
|
||||||
MultichannelFileSignalSource(ConfigurationInterface* configuration, const std::string& role,
|
MultichannelFileSignalSource(ConfigurationInterface* configuration, const std::string& role,
|
||||||
unsigned int in_streams, unsigned int out_streams,
|
unsigned int in_streams, unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue);
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue);
|
||||||
|
|
||||||
~MultichannelFileSignalSource() = default;
|
~MultichannelFileSignalSource() = default;
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
NsrFileSignalSource::NsrFileSignalSource(ConfigurationInterface* configuration,
|
NsrFileSignalSource::NsrFileSignalSource(ConfigurationInterface* configuration,
|
||||||
const std::string& role, unsigned int in_streams, unsigned int out_streams,
|
const std::string& role, unsigned int in_streams, unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue) : role_(role), in_streams_(in_streams), out_streams_(out_streams), queue_(std::move(queue))
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue) : role_(role), in_streams_(in_streams), out_streams_(out_streams), queue_(queue)
|
||||||
{
|
{
|
||||||
std::string default_filename = "../data/my_capture.dat";
|
std::string default_filename = "../data/my_capture.dat";
|
||||||
std::string default_item_type = "byte";
|
std::string default_item_type = "byte";
|
||||||
|
@ -57,7 +57,7 @@ class NsrFileSignalSource : public GNSSBlockInterface
|
|||||||
public:
|
public:
|
||||||
NsrFileSignalSource(ConfigurationInterface* configuration, const std::string& role,
|
NsrFileSignalSource(ConfigurationInterface* configuration, const std::string& role,
|
||||||
unsigned int in_streams, unsigned int out_streams,
|
unsigned int in_streams, unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue);
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue);
|
||||||
|
|
||||||
~NsrFileSignalSource() = default;
|
~NsrFileSignalSource() = default;
|
||||||
inline std::string role() override
|
inline std::string role() override
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
SpirFileSignalSource::SpirFileSignalSource(ConfigurationInterface* configuration,
|
SpirFileSignalSource::SpirFileSignalSource(ConfigurationInterface* configuration,
|
||||||
const std::string& role, unsigned int in_streams, unsigned int out_streams,
|
const std::string& role, unsigned int in_streams, unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue) : role_(role), in_streams_(in_streams), out_streams_(out_streams), queue_(std::move(queue))
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue) : role_(role), in_streams_(in_streams), out_streams_(out_streams), queue_(queue)
|
||||||
{
|
{
|
||||||
std::string default_filename = "../data/my_capture.dat";
|
std::string default_filename = "../data/my_capture.dat";
|
||||||
std::string default_item_type = "int";
|
std::string default_item_type = "int";
|
||||||
|
@ -55,7 +55,7 @@ class SpirFileSignalSource : public GNSSBlockInterface
|
|||||||
public:
|
public:
|
||||||
SpirFileSignalSource(ConfigurationInterface* configuration, const std::string& role,
|
SpirFileSignalSource(ConfigurationInterface* configuration, const std::string& role,
|
||||||
unsigned int in_streams, unsigned int out_streams,
|
unsigned int in_streams, unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue);
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue);
|
||||||
|
|
||||||
~SpirFileSignalSource() = default;
|
~SpirFileSignalSource() = default;
|
||||||
inline std::string role() override
|
inline std::string role() override
|
||||||
|
@ -45,10 +45,10 @@ TwoBitCpxFileSignalSource::TwoBitCpxFileSignalSource(ConfigurationInterface* con
|
|||||||
const std::string& role,
|
const std::string& role,
|
||||||
unsigned int in_streams,
|
unsigned int in_streams,
|
||||||
unsigned int out_streams,
|
unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue) : role_(role),
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue) : role_(role),
|
||||||
in_streams_(in_streams),
|
in_streams_(in_streams),
|
||||||
out_streams_(out_streams),
|
out_streams_(out_streams),
|
||||||
queue_(std::move(queue))
|
queue_(queue)
|
||||||
{
|
{
|
||||||
std::string default_filename = "../data/my_capture.dat";
|
std::string default_filename = "../data/my_capture.dat";
|
||||||
std::string default_item_type = "byte";
|
std::string default_item_type = "byte";
|
||||||
|
@ -61,7 +61,7 @@ public:
|
|||||||
const std::string& role,
|
const std::string& role,
|
||||||
unsigned int in_streams,
|
unsigned int in_streams,
|
||||||
unsigned int out_streams,
|
unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue);
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue);
|
||||||
|
|
||||||
~TwoBitCpxFileSignalSource() = default;
|
~TwoBitCpxFileSignalSource() = default;
|
||||||
inline std::string role() override
|
inline std::string role() override
|
||||||
|
@ -47,10 +47,10 @@ TwoBitPackedFileSignalSource::TwoBitPackedFileSignalSource(ConfigurationInterfac
|
|||||||
const std::string& role,
|
const std::string& role,
|
||||||
unsigned int in_streams,
|
unsigned int in_streams,
|
||||||
unsigned int out_streams,
|
unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue) : role_(role),
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue) : role_(role),
|
||||||
in_streams_(in_streams),
|
in_streams_(in_streams),
|
||||||
out_streams_(out_streams),
|
out_streams_(out_streams),
|
||||||
queue_(std::move(queue))
|
queue_(queue)
|
||||||
{
|
{
|
||||||
std::string default_filename = "../data/my_capture.dat";
|
std::string default_filename = "../data/my_capture.dat";
|
||||||
std::string default_item_type = "byte";
|
std::string default_item_type = "byte";
|
||||||
|
@ -60,7 +60,7 @@ class TwoBitPackedFileSignalSource : public GNSSBlockInterface
|
|||||||
public:
|
public:
|
||||||
TwoBitPackedFileSignalSource(ConfigurationInterface* configuration, const std::string& role,
|
TwoBitPackedFileSignalSource(ConfigurationInterface* configuration, const std::string& role,
|
||||||
unsigned int in_streams, unsigned int out_streams,
|
unsigned int in_streams, unsigned int out_streams,
|
||||||
std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue);
|
const std::shared_ptr<Concurrent_Queue<pmt::pmt_t>>& queue);
|
||||||
|
|
||||||
~TwoBitPackedFileSignalSource() = default;
|
~TwoBitPackedFileSignalSource() = default;
|
||||||
inline std::string role() override
|
inline std::string role() override
|
||||||
|
@ -98,7 +98,7 @@ private:
|
|||||||
size_t d_item_size;
|
size_t d_item_size;
|
||||||
bool d_IQ_swap;
|
bool d_IQ_swap;
|
||||||
boost::thread *d_pcap_thread;
|
boost::thread *d_pcap_thread;
|
||||||
void demux_samples(const gr_vector_void_star& output_items, int num_samples_readed);
|
void demux_samples(const gr_vector_void_star &output_items, int num_samples_readed);
|
||||||
void my_pcap_loop_thread(pcap_t *pcap_handle);
|
void my_pcap_loop_thread(pcap_t *pcap_handle);
|
||||||
void pcap_callback(u_char *args, const struct pcap_pkthdr *pkthdr, const u_char *packet);
|
void pcap_callback(u_char *args, const struct pcap_pkthdr *pkthdr, const u_char *packet);
|
||||||
static void static_pcap_callback(u_char *args, const struct pcap_pkthdr *pkthdr, const u_char *packet);
|
static void static_pcap_callback(u_char *args, const struct pcap_pkthdr *pkthdr, const u_char *packet);
|
||||||
|
@ -33,14 +33,10 @@
|
|||||||
#ifndef GNSS_SDR_AD9361_MANAGER_H_
|
#ifndef GNSS_SDR_AD9361_MANAGER_H_
|
||||||
#define GNSS_SDR_AD9361_MANAGER_H_
|
#define GNSS_SDR_AD9361_MANAGER_H_
|
||||||
|
|
||||||
|
#include <iio.h>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
#include <iio/iio.h>
|
|
||||||
#else
|
|
||||||
#include <iio.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* RX is input, TX is output */
|
/* RX is input, TX is output */
|
||||||
enum iodev
|
enum iodev
|
||||||
|
@ -30,8 +30,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_GS_H
|
#ifndef GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_GS_H_
|
||||||
#define GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_GS_H
|
#define GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_GS_H_
|
||||||
|
|
||||||
|
|
||||||
#include "beidou_dnav_navigation_message.h"
|
#include "beidou_dnav_navigation_message.h"
|
||||||
@ -124,4 +124,4 @@ private:
|
|||||||
std::ofstream d_dump_file;
|
std::ofstream d_dump_file;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_GS_H_
|
||||||
|
@ -28,8 +28,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_BEIDOU_B3I_TELEMETRY_DECODER_GS_H
|
#ifndef GNSS_SDR_BEIDOU_B3I_TELEMETRY_DECODER_GS_H_
|
||||||
#define GNSS_SDR_BEIDOU_B3I_TELEMETRY_DECODER_GS_H
|
#define GNSS_SDR_BEIDOU_B3I_TELEMETRY_DECODER_GS_H_
|
||||||
|
|
||||||
#include "beidou_dnav_navigation_message.h"
|
#include "beidou_dnav_navigation_message.h"
|
||||||
#include "gnss_satellite.h"
|
#include "gnss_satellite.h"
|
||||||
@ -121,4 +121,4 @@ private:
|
|||||||
std::ofstream d_dump_file;
|
std::ofstream d_dump_file;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_BEIDOU_B3I_TELEMETRY_DECODER_GS_H_
|
||||||
|
@ -29,8 +29,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef GNSS_SDR_GALILEO_TELEMETRY_DECODER_GS_H
|
#ifndef GNSS_SDR_GALILEO_TELEMETRY_DECODER_GS_H_
|
||||||
#define GNSS_SDR_GALILEO_TELEMETRY_DECODER_GS_H
|
#define GNSS_SDR_GALILEO_TELEMETRY_DECODER_GS_H_
|
||||||
|
|
||||||
|
|
||||||
#include "galileo_fnav_message.h"
|
#include "galileo_fnav_message.h"
|
||||||
@ -144,4 +144,4 @@ private:
|
|||||||
int32_t DataLength;
|
int32_t DataLength;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_GALILEO_TELEMETRY_DECODER_GS_H_
|
||||||
|
@ -29,8 +29,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_GS_H
|
#ifndef GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_GS_H_
|
||||||
#define GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_GS_H
|
#define GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_GS_H_
|
||||||
|
|
||||||
|
|
||||||
#include "GLONASS_L1_L2_CA.h"
|
#include "GLONASS_L1_L2_CA.h"
|
||||||
@ -123,4 +123,4 @@ private:
|
|||||||
std::ofstream d_dump_file;
|
std::ofstream d_dump_file;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_GS_H_
|
||||||
|
@ -28,8 +28,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_GS_H
|
#ifndef GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_GS_H_
|
||||||
#define GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_GS_H
|
#define GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_GS_H_
|
||||||
|
|
||||||
|
|
||||||
#include "GLONASS_L1_L2_CA.h"
|
#include "GLONASS_L1_L2_CA.h"
|
||||||
@ -121,4 +121,4 @@ private:
|
|||||||
std::ofstream d_dump_file;
|
std::ofstream d_dump_file;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_GS_H_
|
||||||
|
@ -28,8 +28,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_GS_H
|
#ifndef GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_GS_H_
|
||||||
#define GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_GS_H
|
#define GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_GS_H_
|
||||||
|
|
||||||
#include "GPS_L1_CA.h"
|
#include "GPS_L1_CA.h"
|
||||||
#include "gnss_satellite.h"
|
#include "gnss_satellite.h"
|
||||||
@ -117,4 +117,4 @@ private:
|
|||||||
std::ofstream d_dump_file;
|
std::ofstream d_dump_file;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_GS_H_
|
||||||
|
@ -27,8 +27,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_GS_H
|
#ifndef GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_GS_H_
|
||||||
#define GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_GS_H
|
#define GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_GS_H_
|
||||||
|
|
||||||
|
|
||||||
#include "gnss_satellite.h"
|
#include "gnss_satellite.h"
|
||||||
@ -102,4 +102,4 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_GS_H_
|
||||||
|
@ -27,8 +27,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_GPS_L5_TELEMETRY_DECODER_GS_H
|
#ifndef GNSS_SDR_GPS_L5_TELEMETRY_DECODER_GS_H_
|
||||||
#define GNSS_SDR_GPS_L5_TELEMETRY_DECODER_GS_H
|
#define GNSS_SDR_GPS_L5_TELEMETRY_DECODER_GS_H_
|
||||||
|
|
||||||
|
|
||||||
#include "GPS_L5.h" // for GPS_L5I_NH_CODE_LENGTH
|
#include "GPS_L5.h" // for GPS_L5I_NH_CODE_LENGTH
|
||||||
@ -98,4 +98,4 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_GPS_L5_TELEMETRY_DECODER_GS_H_
|
||||||
|
@ -28,8 +28,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_GS_H
|
#ifndef GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_GS_H_
|
||||||
#define GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_GS_H
|
#define GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_GS_H_
|
||||||
|
|
||||||
#include "gnss_satellite.h"
|
#include "gnss_satellite.h"
|
||||||
#include <boost/crc.hpp> // for crc_optimal
|
#include <boost/crc.hpp> // for crc_optimal
|
||||||
@ -169,4 +169,4 @@ private:
|
|||||||
} d_crc_verifier;
|
} d_crc_verifier;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_GS_H_
|
||||||
|
@ -35,8 +35,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_gps_l2_m_dll_pll_tracking_H_
|
#ifndef GNSS_SDR_GPS_L2_M_DLL_PLL_TRACKING_H_
|
||||||
#define GNSS_SDR_gps_l2_m_dll_pll_tracking_H_
|
#define GNSS_SDR_GPS_L2_M_DLL_PLL_TRACKING_H_
|
||||||
|
|
||||||
#include "dll_pll_veml_tracking.h"
|
#include "dll_pll_veml_tracking.h"
|
||||||
#include "tracking_interface.h"
|
#include "tracking_interface.h"
|
||||||
@ -105,4 +105,4 @@ private:
|
|||||||
unsigned int out_streams_;
|
unsigned int out_streams_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GNSS_SDR_gps_l2_m_dll_pll_tracking_H_
|
#endif // GNSS_SDR_GPS_L2_M_DLL_PLL_TRACKING_H_
|
||||||
|
@ -1000,7 +1000,7 @@ void dll_pll_veml_tracking::run_dll_pll()
|
|||||||
if (d_dll_filt_history.full())
|
if (d_dll_filt_history.full())
|
||||||
{
|
{
|
||||||
float avg_code_error_chips_s = std::accumulate(d_dll_filt_history.begin(), d_dll_filt_history.end(), 0.0) / static_cast<float>(d_dll_filt_history.capacity());
|
float avg_code_error_chips_s = std::accumulate(d_dll_filt_history.begin(), d_dll_filt_history.end(), 0.0) / static_cast<float>(d_dll_filt_history.capacity());
|
||||||
if (fabs(avg_code_error_chips_s) > 1.0)
|
if (std::fabs(avg_code_error_chips_s) > 1.0)
|
||||||
{
|
{
|
||||||
float carrier_doppler_error_hz = static_cast<float>(d_signal_carrier_freq) * avg_code_error_chips_s / static_cast<float>(d_code_chip_rate);
|
float carrier_doppler_error_hz = static_cast<float>(d_signal_carrier_freq) * avg_code_error_chips_s / static_cast<float>(d_code_chip_rate);
|
||||||
LOG(INFO) << "Detected and corrected carrier doppler error: " << carrier_doppler_error_hz << " [Hz] on sat " << Gnss_Satellite(systemName, d_acquisition_gnss_synchro->PRN);
|
LOG(INFO) << "Detected and corrected carrier doppler error: " << carrier_doppler_error_hz << " [Hz] on sat " << Gnss_Satellite(systemName, d_acquisition_gnss_synchro->PRN);
|
||||||
|
@ -29,8 +29,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_DLL_PLL_VEML_TRACKING_H
|
#ifndef GNSS_SDR_DLL_PLL_VEML_TRACKING_H_
|
||||||
#define GNSS_SDR_DLL_PLL_VEML_TRACKING_H
|
#define GNSS_SDR_DLL_PLL_VEML_TRACKING_H_
|
||||||
|
|
||||||
#include "cpu_multicorrelator_real_codes.h"
|
#include "cpu_multicorrelator_real_codes.h"
|
||||||
#include "dll_pll_conf.h"
|
#include "dll_pll_conf.h"
|
||||||
@ -216,4 +216,4 @@ private:
|
|||||||
bool d_dump_mat;
|
bool d_dump_mat;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GNSS_SDR_DLL_PLL_VEML_TRACKING_H
|
#endif // GNSS_SDR_DLL_PLL_VEML_TRACKING_H_
|
||||||
|
@ -54,7 +54,7 @@
|
|||||||
#include <pmt/pmt_sugar.h> // for mp
|
#include <pmt/pmt_sugar.h> // for mp
|
||||||
#include <volk_gnsssdr/volk_gnsssdr.h>
|
#include <volk_gnsssdr/volk_gnsssdr.h>
|
||||||
#include <algorithm> // for fill_n
|
#include <algorithm> // for fill_n
|
||||||
#include <cmath> // for fmod, round, floor
|
#include <cmath> // for fmod, round, floor, fabs
|
||||||
#include <exception> // for exception
|
#include <exception> // for exception
|
||||||
#include <iostream> // for cout, cerr
|
#include <iostream> // for cout, cerr
|
||||||
#include <map>
|
#include <map>
|
||||||
@ -746,7 +746,7 @@ void dll_pll_veml_tracking_fpga::run_dll_pll()
|
|||||||
if (d_dll_filt_history.full())
|
if (d_dll_filt_history.full())
|
||||||
{
|
{
|
||||||
float avg_code_error_chips_s = std::accumulate(d_dll_filt_history.begin(), d_dll_filt_history.end(), 0.0) / static_cast<float>(d_dll_filt_history.capacity());
|
float avg_code_error_chips_s = std::accumulate(d_dll_filt_history.begin(), d_dll_filt_history.end(), 0.0) / static_cast<float>(d_dll_filt_history.capacity());
|
||||||
if (fabs(avg_code_error_chips_s) > 1.0)
|
if (std::fabs(avg_code_error_chips_s) > 1.0)
|
||||||
{
|
{
|
||||||
float carrier_doppler_error_hz = static_cast<float>(d_signal_carrier_freq) * avg_code_error_chips_s / static_cast<float>(d_code_chip_rate);
|
float carrier_doppler_error_hz = static_cast<float>(d_signal_carrier_freq) * avg_code_error_chips_s / static_cast<float>(d_code_chip_rate);
|
||||||
LOG(INFO) << "Detected and corrected carrier doppler error: " << carrier_doppler_error_hz << " [Hz] on sat " << Gnss_Satellite(systemName, d_acquisition_gnss_synchro->PRN);
|
LOG(INFO) << "Detected and corrected carrier doppler error: " << carrier_doppler_error_hz << " [Hz] on sat " << Gnss_Satellite(systemName, d_acquisition_gnss_synchro->PRN);
|
||||||
|
@ -29,8 +29,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H
|
#ifndef GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H_
|
||||||
#define GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H
|
#define GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H_
|
||||||
|
|
||||||
#include "dll_pll_conf_fpga.h"
|
#include "dll_pll_conf_fpga.h"
|
||||||
#include "exponential_smoother.h"
|
#include "exponential_smoother.h"
|
||||||
@ -251,4 +251,4 @@ private:
|
|||||||
bool d_stop_tracking;
|
bool d_stop_tracking;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H
|
#endif // GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H_
|
||||||
|
@ -104,11 +104,11 @@ Galileo_E1_Tcp_Connector_Tracking_cc::Galileo_E1_Tcp_Connector_Tracking_cc(
|
|||||||
d_dump_filename = dump_filename;
|
d_dump_filename = dump_filename;
|
||||||
|
|
||||||
// Initialize tracking ==========================================
|
// Initialize tracking ==========================================
|
||||||
//--- DLL variables --------------------------------------------------------
|
// -- DLL variables --------------------------------------------------------
|
||||||
d_early_late_spc_chips = early_late_space_chips; // Define early-late offset (in chips)
|
d_early_late_spc_chips = early_late_space_chips; // Define early-late offset (in chips)
|
||||||
d_very_early_late_spc_chips = very_early_late_space_chips; // Define very-early-late offset (in chips)
|
d_very_early_late_spc_chips = very_early_late_space_chips; // Define very-early-late offset (in chips)
|
||||||
|
|
||||||
//--- TCP CONNECTOR variables --------------------------------------------------------
|
// -- TCP CONNECTOR variables --------------------------------------------------------
|
||||||
d_port_ch0 = port_ch0;
|
d_port_ch0 = port_ch0;
|
||||||
d_port = 0;
|
d_port = 0;
|
||||||
d_listen_connection = true;
|
d_listen_connection = true;
|
||||||
|
@ -36,8 +36,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_GALILEO_E1_TCP_CONNECTOR_TRACKING_CC_H
|
#ifndef GNSS_SDR_GALILEO_E1_TCP_CONNECTOR_TRACKING_CC_H_
|
||||||
#define GNSS_SDR_GALILEO_E1_TCP_CONNECTOR_TRACKING_CC_H
|
#define GNSS_SDR_GALILEO_E1_TCP_CONNECTOR_TRACKING_CC_H_
|
||||||
|
|
||||||
#include "cpu_multicorrelator.h"
|
#include "cpu_multicorrelator.h"
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
@ -185,4 +185,4 @@ private:
|
|||||||
std::string sys;
|
std::string sys;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GNSS_SDR_GALILEO_E1_TCP_CONNECTOR_TRACKING_CC_H
|
#endif // GNSS_SDR_GALILEO_E1_TCP_CONNECTOR_TRACKING_CC_H_
|
||||||
|
@ -65,7 +65,7 @@ glonass_l1_ca_dll_pll_c_aid_make_tracking_cc(
|
|||||||
int64_t fs_in,
|
int64_t fs_in,
|
||||||
uint32_t vector_length,
|
uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string &dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -74,7 +74,7 @@ glonass_l1_ca_dll_pll_c_aid_make_tracking_cc(
|
|||||||
float early_late_space_chips)
|
float early_late_space_chips)
|
||||||
{
|
{
|
||||||
return glonass_l1_ca_dll_pll_c_aid_tracking_cc_sptr(new glonass_l1_ca_dll_pll_c_aid_tracking_cc(
|
return glonass_l1_ca_dll_pll_c_aid_tracking_cc_sptr(new glonass_l1_ca_dll_pll_c_aid_tracking_cc(
|
||||||
fs_in, vector_length, dump, std::move(dump_filename), pll_bw_hz, dll_bw_hz, pll_bw_narrow_hz, dll_bw_narrow_hz, extend_correlation_ms, early_late_space_chips));
|
fs_in, vector_length, dump, dump_filename, pll_bw_hz, dll_bw_hz, pll_bw_narrow_hz, dll_bw_narrow_hz, extend_correlation_ms, early_late_space_chips));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -88,13 +88,13 @@ void glonass_l1_ca_dll_pll_c_aid_tracking_cc::forecast(int noutput_items,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void glonass_l1_ca_dll_pll_c_aid_tracking_cc::msg_handler_preamble_index(pmt::pmt_t msg)
|
void glonass_l1_ca_dll_pll_c_aid_tracking_cc::msg_handler_preamble_index(const pmt::pmt_t &msg)
|
||||||
{
|
{
|
||||||
// pmt::print(msg);
|
// pmt::print(msg);
|
||||||
DLOG(INFO) << "Extended correlation enabled for Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN);
|
DLOG(INFO) << "Extended correlation enabled for Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN);
|
||||||
if (d_enable_extended_integration == false) // avoid re-setting preamble indicator
|
if (d_enable_extended_integration == false) // avoid re-setting preamble indicator
|
||||||
{
|
{
|
||||||
d_preamble_timestamp_s = pmt::to_double(std::move(msg));
|
d_preamble_timestamp_s = pmt::to_double(msg);
|
||||||
d_enable_extended_integration = true;
|
d_enable_extended_integration = true;
|
||||||
d_preamble_synchronized = false;
|
d_preamble_synchronized = false;
|
||||||
}
|
}
|
||||||
@ -105,7 +105,7 @@ glonass_l1_ca_dll_pll_c_aid_tracking_cc::glonass_l1_ca_dll_pll_c_aid_tracking_cc
|
|||||||
int64_t fs_in,
|
int64_t fs_in,
|
||||||
uint32_t vector_length,
|
uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string &dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -126,7 +126,7 @@ glonass_l1_ca_dll_pll_c_aid_tracking_cc::glonass_l1_ca_dll_pll_c_aid_tracking_cc
|
|||||||
d_dump = dump;
|
d_dump = dump;
|
||||||
d_fs_in = fs_in;
|
d_fs_in = fs_in;
|
||||||
d_vector_length = vector_length;
|
d_vector_length = vector_length;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
d_correlation_length_samples = static_cast<int32_t>(d_vector_length);
|
d_correlation_length_samples = static_cast<int32_t>(d_vector_length);
|
||||||
|
|
||||||
// Initialize tracking ==========================================
|
// Initialize tracking ==========================================
|
||||||
|
@ -36,8 +36,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_CC_H
|
#ifndef GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_CC_H_
|
||||||
#define GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_CC_H
|
#define GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_CC_H_
|
||||||
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "tracking_2nd_DLL_filter.h"
|
#include "tracking_2nd_DLL_filter.h"
|
||||||
@ -60,7 +60,7 @@ glonass_l1_ca_dll_pll_c_aid_tracking_cc_sptr
|
|||||||
glonass_l1_ca_dll_pll_c_aid_make_tracking_cc(
|
glonass_l1_ca_dll_pll_c_aid_make_tracking_cc(
|
||||||
int64_t fs_in, uint32_t vector_length,
|
int64_t fs_in, uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -91,7 +91,7 @@ private:
|
|||||||
glonass_l1_ca_dll_pll_c_aid_make_tracking_cc(
|
glonass_l1_ca_dll_pll_c_aid_make_tracking_cc(
|
||||||
int64_t fs_in, uint32_t vector_length,
|
int64_t fs_in, uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -102,7 +102,7 @@ private:
|
|||||||
glonass_l1_ca_dll_pll_c_aid_tracking_cc(
|
glonass_l1_ca_dll_pll_c_aid_tracking_cc(
|
||||||
int64_t fs_in, uint32_t vector_length,
|
int64_t fs_in, uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -170,7 +170,7 @@ private:
|
|||||||
int32_t d_extend_correlation_ms;
|
int32_t d_extend_correlation_ms;
|
||||||
bool d_enable_extended_integration;
|
bool d_enable_extended_integration;
|
||||||
bool d_preamble_synchronized;
|
bool d_preamble_synchronized;
|
||||||
void msg_handler_preamble_index(pmt::pmt_t msg);
|
void msg_handler_preamble_index(const pmt::pmt_t& msg);
|
||||||
|
|
||||||
// Integration period in samples
|
// Integration period in samples
|
||||||
int32_t d_correlation_length_samples;
|
int32_t d_correlation_length_samples;
|
||||||
@ -201,4 +201,4 @@ private:
|
|||||||
int32_t save_matfile();
|
int32_t save_matfile();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_CC_H
|
#endif // GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_CC_H_
|
||||||
|
@ -63,7 +63,7 @@ glonass_l1_ca_dll_pll_c_aid_make_tracking_sc(
|
|||||||
int64_t fs_in,
|
int64_t fs_in,
|
||||||
uint32_t vector_length,
|
uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string &dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -72,7 +72,7 @@ glonass_l1_ca_dll_pll_c_aid_make_tracking_sc(
|
|||||||
float early_late_space_chips)
|
float early_late_space_chips)
|
||||||
{
|
{
|
||||||
return glonass_l1_ca_dll_pll_c_aid_tracking_sc_sptr(new glonass_l1_ca_dll_pll_c_aid_tracking_sc(
|
return glonass_l1_ca_dll_pll_c_aid_tracking_sc_sptr(new glonass_l1_ca_dll_pll_c_aid_tracking_sc(
|
||||||
fs_in, vector_length, dump, std::move(dump_filename), pll_bw_hz, dll_bw_hz, pll_bw_narrow_hz, dll_bw_narrow_hz, extend_correlation_ms, early_late_space_chips));
|
fs_in, vector_length, dump, dump_filename, pll_bw_hz, dll_bw_hz, pll_bw_narrow_hz, dll_bw_narrow_hz, extend_correlation_ms, early_late_space_chips));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -86,13 +86,13 @@ void glonass_l1_ca_dll_pll_c_aid_tracking_sc::forecast(int noutput_items,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void glonass_l1_ca_dll_pll_c_aid_tracking_sc::msg_handler_preamble_index(pmt::pmt_t msg)
|
void glonass_l1_ca_dll_pll_c_aid_tracking_sc::msg_handler_preamble_index(const pmt::pmt_t &msg)
|
||||||
{
|
{
|
||||||
// pmt::print(msg);
|
// pmt::print(msg);
|
||||||
DLOG(INFO) << "Extended correlation enabled for Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN);
|
DLOG(INFO) << "Extended correlation enabled for Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN);
|
||||||
if (d_enable_extended_integration == false) // avoid re-setting preamble indicator
|
if (d_enable_extended_integration == false) // avoid re-setting preamble indicator
|
||||||
{
|
{
|
||||||
d_preamble_timestamp_s = pmt::to_double(std::move(msg));
|
d_preamble_timestamp_s = pmt::to_double(msg);
|
||||||
d_enable_extended_integration = true;
|
d_enable_extended_integration = true;
|
||||||
d_preamble_synchronized = false;
|
d_preamble_synchronized = false;
|
||||||
}
|
}
|
||||||
@ -103,7 +103,7 @@ glonass_l1_ca_dll_pll_c_aid_tracking_sc::glonass_l1_ca_dll_pll_c_aid_tracking_sc
|
|||||||
int64_t fs_in,
|
int64_t fs_in,
|
||||||
uint32_t vector_length,
|
uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string &dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -122,7 +122,7 @@ glonass_l1_ca_dll_pll_c_aid_tracking_sc::glonass_l1_ca_dll_pll_c_aid_tracking_sc
|
|||||||
d_dump = dump;
|
d_dump = dump;
|
||||||
d_fs_in = fs_in;
|
d_fs_in = fs_in;
|
||||||
d_vector_length = vector_length;
|
d_vector_length = vector_length;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
d_correlation_length_samples = static_cast<int32_t>(d_vector_length);
|
d_correlation_length_samples = static_cast<int32_t>(d_vector_length);
|
||||||
|
|
||||||
// Initialize tracking ==========================================
|
// Initialize tracking ==========================================
|
||||||
@ -159,7 +159,7 @@ glonass_l1_ca_dll_pll_c_aid_tracking_sc::glonass_l1_ca_dll_pll_c_aid_tracking_sc
|
|||||||
|
|
||||||
multicorrelator_cpu_16sc.init(2 * d_correlation_length_samples, d_n_correlator_taps);
|
multicorrelator_cpu_16sc.init(2 * d_correlation_length_samples, d_n_correlator_taps);
|
||||||
|
|
||||||
//--- Perform initializations ------------------------------
|
// -- Perform initializations ------------------------------
|
||||||
// define initial code frequency basis of NCO
|
// define initial code frequency basis of NCO
|
||||||
d_code_freq_chips = GLONASS_L1_CA_CODE_RATE_CPS;
|
d_code_freq_chips = GLONASS_L1_CA_CODE_RATE_CPS;
|
||||||
// define residual code phase (in chips)
|
// define residual code phase (in chips)
|
||||||
|
@ -36,8 +36,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_SC_H
|
#ifndef GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_SC_H_
|
||||||
#define GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_SC_H
|
#define GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_SC_H_
|
||||||
|
|
||||||
#include "cpu_multicorrelator_16sc.h"
|
#include "cpu_multicorrelator_16sc.h"
|
||||||
#include "glonass_l1_signal_processing.h"
|
#include "glonass_l1_signal_processing.h"
|
||||||
@ -60,7 +60,7 @@ glonass_l1_ca_dll_pll_c_aid_tracking_sc_sptr
|
|||||||
glonass_l1_ca_dll_pll_c_aid_make_tracking_sc(
|
glonass_l1_ca_dll_pll_c_aid_make_tracking_sc(
|
||||||
int64_t fs_in, uint32_t vector_length,
|
int64_t fs_in, uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -91,7 +91,7 @@ private:
|
|||||||
glonass_l1_ca_dll_pll_c_aid_make_tracking_sc(
|
glonass_l1_ca_dll_pll_c_aid_make_tracking_sc(
|
||||||
int64_t fs_in, uint32_t vector_length,
|
int64_t fs_in, uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -102,7 +102,7 @@ private:
|
|||||||
glonass_l1_ca_dll_pll_c_aid_tracking_sc(
|
glonass_l1_ca_dll_pll_c_aid_tracking_sc(
|
||||||
int64_t fs_in, uint32_t vector_length,
|
int64_t fs_in, uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -167,7 +167,7 @@ private:
|
|||||||
bool d_preamble_synchronized;
|
bool d_preamble_synchronized;
|
||||||
double d_code_error_filt_chips_s;
|
double d_code_error_filt_chips_s;
|
||||||
double d_code_error_filt_chips_Ti;
|
double d_code_error_filt_chips_Ti;
|
||||||
void msg_handler_preamble_index(pmt::pmt_t msg);
|
void msg_handler_preamble_index(const pmt::pmt_t& msg);
|
||||||
|
|
||||||
// symbol history to detect bit transition
|
// symbol history to detect bit transition
|
||||||
std::deque<lv_16sc_t> d_E_history;
|
std::deque<lv_16sc_t> d_E_history;
|
||||||
@ -203,4 +203,4 @@ private:
|
|||||||
int32_t save_matfile();
|
int32_t save_matfile();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_SC_H
|
#endif // GNSS_SDR_GLONASS_L1_CA_DLL_PLL_C_AID_TRACKING_SC_H_
|
||||||
|
@ -62,13 +62,13 @@ glonass_l1_ca_dll_pll_make_tracking_cc(
|
|||||||
int64_t fs_in,
|
int64_t fs_in,
|
||||||
uint32_t vector_length,
|
uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string &dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float early_late_space_chips)
|
float early_late_space_chips)
|
||||||
{
|
{
|
||||||
return glonass_l1_ca_dll_pll_tracking_cc_sptr(new Glonass_L1_Ca_Dll_Pll_Tracking_cc(
|
return glonass_l1_ca_dll_pll_tracking_cc_sptr(new Glonass_L1_Ca_Dll_Pll_Tracking_cc(
|
||||||
fs_in, vector_length, dump, std::move(dump_filename), pll_bw_hz, dll_bw_hz, early_late_space_chips));
|
fs_in, vector_length, dump, dump_filename, pll_bw_hz, dll_bw_hz, early_late_space_chips));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ Glonass_L1_Ca_Dll_Pll_Tracking_cc::Glonass_L1_Ca_Dll_Pll_Tracking_cc(
|
|||||||
int64_t fs_in,
|
int64_t fs_in,
|
||||||
uint32_t vector_length,
|
uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string &dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float early_late_space_chips) : gr::block("Glonass_L1_Ca_Dll_Pll_Tracking_cc", gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
float early_late_space_chips) : gr::block("Glonass_L1_Ca_Dll_Pll_Tracking_cc", gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
||||||
@ -98,7 +98,7 @@ Glonass_L1_Ca_Dll_Pll_Tracking_cc::Glonass_L1_Ca_Dll_Pll_Tracking_cc(
|
|||||||
d_dump = dump;
|
d_dump = dump;
|
||||||
d_fs_in = fs_in;
|
d_fs_in = fs_in;
|
||||||
d_vector_length = vector_length;
|
d_vector_length = vector_length;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
|
|
||||||
d_current_prn_length_samples = static_cast<int32_t>(d_vector_length);
|
d_current_prn_length_samples = static_cast<int32_t>(d_vector_length);
|
||||||
|
|
||||||
|
@ -36,8 +36,8 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GNSS_SDR_GLONASS_L1_CA_DLL_PLL_TRACKING_CC_H
|
#ifndef GNSS_SDR_GLONASS_L1_CA_DLL_PLL_TRACKING_CC_H_
|
||||||
#define GNSS_SDR_GLONASS_L1_CA_DLL_PLL_TRACKING_CC_H
|
#define GNSS_SDR_GLONASS_L1_CA_DLL_PLL_TRACKING_CC_H_
|
||||||
|
|
||||||
#include "cpu_multicorrelator.h"
|
#include "cpu_multicorrelator.h"
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
@ -57,7 +57,7 @@ glonass_l1_ca_dll_pll_tracking_cc_sptr
|
|||||||
glonass_l1_ca_dll_pll_make_tracking_cc(
|
glonass_l1_ca_dll_pll_make_tracking_cc(
|
||||||
int64_t fs_in, uint32_t vector_length,
|
int64_t fs_in, uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float early_late_space_chips);
|
float early_late_space_chips);
|
||||||
@ -85,7 +85,7 @@ private:
|
|||||||
glonass_l1_ca_dll_pll_make_tracking_cc(
|
glonass_l1_ca_dll_pll_make_tracking_cc(
|
||||||
int64_t fs_in, uint32_t vector_length,
|
int64_t fs_in, uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float early_late_space_chips);
|
float early_late_space_chips);
|
||||||
@ -93,7 +93,7 @@ private:
|
|||||||
Glonass_L1_Ca_Dll_Pll_Tracking_cc(
|
Glonass_L1_Ca_Dll_Pll_Tracking_cc(
|
||||||
int64_t fs_in, uint32_t vector_length,
|
int64_t fs_in, uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string& dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float early_late_space_chips);
|
float early_late_space_chips);
|
||||||
@ -168,4 +168,4 @@ private:
|
|||||||
int32_t save_matfile();
|
int32_t save_matfile();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GNSS_SDR_GLONASS_L1_CA_DLL_PLL_TRACKING_CC_H
|
#endif // GNSS_SDR_GLONASS_L1_CA_DLL_PLL_TRACKING_CC_H_
|
||||||
|
@ -62,7 +62,7 @@ glonass_l2_ca_dll_pll_c_aid_make_tracking_cc(
|
|||||||
int64_t fs_in,
|
int64_t fs_in,
|
||||||
uint32_t vector_length,
|
uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string &dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -71,7 +71,7 @@ glonass_l2_ca_dll_pll_c_aid_make_tracking_cc(
|
|||||||
float early_late_space_chips)
|
float early_late_space_chips)
|
||||||
{
|
{
|
||||||
return glonass_l2_ca_dll_pll_c_aid_tracking_cc_sptr(new glonass_l2_ca_dll_pll_c_aid_tracking_cc(
|
return glonass_l2_ca_dll_pll_c_aid_tracking_cc_sptr(new glonass_l2_ca_dll_pll_c_aid_tracking_cc(
|
||||||
fs_in, vector_length, dump, std::move(dump_filename), pll_bw_hz, dll_bw_hz, pll_bw_narrow_hz, dll_bw_narrow_hz, extend_correlation_ms, early_late_space_chips));
|
fs_in, vector_length, dump, dump_filename, pll_bw_hz, dll_bw_hz, pll_bw_narrow_hz, dll_bw_narrow_hz, extend_correlation_ms, early_late_space_chips));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -85,13 +85,13 @@ void glonass_l2_ca_dll_pll_c_aid_tracking_cc::forecast(int noutput_items,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void glonass_l2_ca_dll_pll_c_aid_tracking_cc::msg_handler_preamble_index(pmt::pmt_t msg)
|
void glonass_l2_ca_dll_pll_c_aid_tracking_cc::msg_handler_preamble_index(const pmt::pmt_t &msg)
|
||||||
{
|
{
|
||||||
// pmt::print(msg);
|
// pmt::print(msg);
|
||||||
DLOG(INFO) << "Extended correlation enabled for Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN);
|
DLOG(INFO) << "Extended correlation enabled for Tracking CH " << d_channel << ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN);
|
||||||
if (d_enable_extended_integration == false) // avoid re-setting preamble indicator
|
if (d_enable_extended_integration == false) // avoid re-setting preamble indicator
|
||||||
{
|
{
|
||||||
d_preamble_timestamp_s = pmt::to_double(std::move(msg));
|
d_preamble_timestamp_s = pmt::to_double(msg);
|
||||||
d_enable_extended_integration = true;
|
d_enable_extended_integration = true;
|
||||||
d_preamble_synchronized = false;
|
d_preamble_synchronized = false;
|
||||||
}
|
}
|
||||||
@ -102,7 +102,7 @@ glonass_l2_ca_dll_pll_c_aid_tracking_cc::glonass_l2_ca_dll_pll_c_aid_tracking_cc
|
|||||||
int64_t fs_in,
|
int64_t fs_in,
|
||||||
uint32_t vector_length,
|
uint32_t vector_length,
|
||||||
bool dump,
|
bool dump,
|
||||||
std::string dump_filename,
|
const std::string &dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
float pll_bw_narrow_hz,
|
float pll_bw_narrow_hz,
|
||||||
@ -123,7 +123,7 @@ glonass_l2_ca_dll_pll_c_aid_tracking_cc::glonass_l2_ca_dll_pll_c_aid_tracking_cc
|
|||||||
d_dump = dump;
|
d_dump = dump;
|
||||||
d_fs_in = fs_in;
|
d_fs_in = fs_in;
|
||||||
d_vector_length = vector_length;
|
d_vector_length = vector_length;
|
||||||
d_dump_filename = std::move(dump_filename);
|
d_dump_filename = dump_filename;
|
||||||
d_correlation_length_samples = static_cast<int32_t>(d_vector_length);
|
d_correlation_length_samples = static_cast<int32_t>(d_vector_length);
|
||||||
|
|
||||||
// Initialize tracking ==========================================
|
// Initialize tracking ==========================================
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user