mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 07:13:03 +00:00 
			
		
		
		
	Changing C-styled cast by C++ style
This commit is contained in:
		| @@ -347,7 +347,7 @@ bool galileo_e1_ls_pvt::get_PVT(std::map<int,Gnss_Synchro> gnss_pseudoranges_map | ||||
|             d_position_UTC_time = p_time; | ||||
|             LOG(INFO) << "Galileo Position at TOW=" << galileo_current_time << " in ECEF (X,Y,Z) = " << mypos; | ||||
|  | ||||
|             cart2geo((double)mypos(0), (double)mypos(1), (double)mypos(2), 4); | ||||
|             cart2geo(static_cast<double>(mypos(0)), static_cast<double>(mypos(1)), static_cast<double>(mypos(2)), 4); | ||||
|             //ToDo: Find an Observables/PVT random bug with some satellite configurations that gives an erratic PVT solution (i.e. height>50 km) | ||||
|             if (d_height_m > 50000) | ||||
|                 { | ||||
| @@ -366,17 +366,17 @@ bool galileo_e1_ls_pvt::get_PVT(std::map<int,Gnss_Synchro> gnss_pseudoranges_map | ||||
|             // 1- Rotation matrix from ECEF coordinates to ENU coordinates | ||||
|             // ref: http://www.navipedia.net/index.php/Transformations_between_ECEF_and_ENU_coordinates | ||||
|             arma::mat F = arma::zeros(3,3); | ||||
|             F(0,0) = -sin(GPS_TWO_PI*(d_longitude_d/360.0)); | ||||
|             F(0,1) = -sin(GPS_TWO_PI*(d_latitude_d/360.0))*cos(GPS_TWO_PI*(d_longitude_d/360.0)); | ||||
|             F(0,2) = cos(GPS_TWO_PI*(d_latitude_d/360.0))*cos(GPS_TWO_PI*(d_longitude_d/360.0)); | ||||
|             F(0,0) = -sin(GPS_TWO_PI * (d_longitude_d/360.0)); | ||||
|             F(0,1) = -sin(GPS_TWO_PI * (d_latitude_d/360.0)) * cos(GPS_TWO_PI * (d_longitude_d/360.0)); | ||||
|             F(0,2) = cos(GPS_TWO_PI * (d_latitude_d/360.0)) * cos(GPS_TWO_PI * (d_longitude_d/360.0)); | ||||
|  | ||||
|             F(1,0) = cos((GPS_TWO_PI*d_longitude_d)/360.0); | ||||
|             F(1,1) = -sin((GPS_TWO_PI*d_latitude_d)/360.0)*sin((GPS_TWO_PI*d_longitude_d)/360.0); | ||||
|             F(1,2) = cos((GPS_TWO_PI*d_latitude_d/360.0))*sin((GPS_TWO_PI*d_longitude_d)/360.0); | ||||
|             F(1,0) = cos((GPS_TWO_PI * d_longitude_d)/360.0); | ||||
|             F(1,1) = -sin((GPS_TWO_PI * d_latitude_d)/360.0) * sin((GPS_TWO_PI * d_longitude_d)/360.0); | ||||
|             F(1,2) = cos((GPS_TWO_PI * d_latitude_d/360.0)) * sin((GPS_TWO_PI * d_longitude_d)/360.0); | ||||
|  | ||||
|             F(2,0) = 0; | ||||
|             F(2,1) = cos((GPS_TWO_PI*d_latitude_d)/360.0); | ||||
|             F(2,2) = sin((GPS_TWO_PI*d_latitude_d/360.0)); | ||||
|             F(2,1) = cos((GPS_TWO_PI * d_latitude_d)/360.0); | ||||
|             F(2,2) = sin((GPS_TWO_PI * d_latitude_d/360.0)); | ||||
|  | ||||
|             // 2- Apply the rotation to the latest covariance matrix (available in ECEF from LS) | ||||
|             arma::mat Q_ECEF = d_Q.submat(0, 0, 2, 2); | ||||
| @@ -384,7 +384,7 @@ bool galileo_e1_ls_pvt::get_PVT(std::map<int,Gnss_Synchro> gnss_pseudoranges_map | ||||
|  | ||||
|             try | ||||
|             { | ||||
|                     DOP_ENU = arma::htrans(F)*Q_ECEF*F; | ||||
|                     DOP_ENU = arma::htrans(F) * Q_ECEF * F; | ||||
|                     d_GDOP  = sqrt(arma::trace(DOP_ENU));                       // Geometric DOP | ||||
|                     d_PDOP  = sqrt(DOP_ENU(0,0) + DOP_ENU(1,1) + DOP_ENU(2,2)); // PDOP | ||||
|                     d_HDOP  = sqrt(DOP_ENU(0,0) + DOP_ENU(1,1));                // HDOP | ||||
| @@ -461,9 +461,9 @@ bool galileo_e1_ls_pvt::get_PVT(std::map<int,Gnss_Synchro> gnss_pseudoranges_map | ||||
|                                     d_avg_longitude_d = d_avg_longitude_d + d_hist_longitude_d.at(i); | ||||
|                                     d_avg_height_m  = d_avg_height_m + d_hist_height_m.at(i); | ||||
|                                 } | ||||
|                             d_avg_latitude_d = d_avg_latitude_d / (double)d_averaging_depth; | ||||
|                             d_avg_longitude_d = d_avg_longitude_d / (double)d_averaging_depth; | ||||
|                             d_avg_height_m = d_avg_height_m / (double)d_averaging_depth; | ||||
|                             d_avg_latitude_d = d_avg_latitude_d / static_cast<double>(d_averaging_depth); | ||||
|                             d_avg_longitude_d = d_avg_longitude_d / static_cast<double>(d_averaging_depth); | ||||
|                             d_avg_height_m = d_avg_height_m / static_cast<double>(d_averaging_depth); | ||||
|                             b_valid_position = true; | ||||
|                             return true; //indicates that the returned position is valid | ||||
|                         } | ||||
| @@ -514,9 +514,9 @@ void galileo_e1_ls_pvt::cart2geo(double X, double Y, double Z, int elipsoid_sele | ||||
|     const double f[5] = {1/297, 1/298.247, 1/298.26, 1/298.257222101, 1/298.257223563}; | ||||
|  | ||||
|     double lambda  = atan2(Y, X); | ||||
|     double ex2 = (2 - f[elipsoid_selection]) * f[elipsoid_selection] / ((1 - f[elipsoid_selection])*(1 - f[elipsoid_selection])); | ||||
|     double ex2 = (2 - f[elipsoid_selection]) * f[elipsoid_selection] / ((1 - f[elipsoid_selection]) * (1 - f[elipsoid_selection])); | ||||
|     double c = a[elipsoid_selection] * sqrt(1+ex2); | ||||
|     double phi = atan(Z / ((sqrt(X*X + Y*Y)*(1 - (2 - f[elipsoid_selection])) * f[elipsoid_selection]))); | ||||
|     double phi = atan(Z / ((sqrt(X * X + Y * Y) * (1 - (2 - f[elipsoid_selection])) * f[elipsoid_selection]))); | ||||
|  | ||||
|     double h = 0.1; | ||||
|     double oldh = 0; | ||||
| @@ -526,8 +526,8 @@ void galileo_e1_ls_pvt::cart2geo(double X, double Y, double Z, int elipsoid_sele | ||||
|         { | ||||
|             oldh = h; | ||||
|             N = c / sqrt(1 + ex2 * (cos(phi) * cos(phi))); | ||||
|             phi = atan(Z / ((sqrt(X*X + Y*Y) * (1 - (2 - f[elipsoid_selection]) * f[elipsoid_selection] *N / (N + h) )))); | ||||
|             h = sqrt(X*X + Y*Y) / cos(phi) - N; | ||||
|             phi = atan(Z / ((sqrt(X * X + Y * Y) * (1 - (2 - f[elipsoid_selection]) * f[elipsoid_selection] * N / (N + h) )))); | ||||
|             h = sqrt(X * X + Y * Y) / cos(phi) - N; | ||||
|             iterations = iterations + 1; | ||||
|             if (iterations > 100) | ||||
|                 { | ||||
| @@ -582,7 +582,7 @@ void galileo_e1_ls_pvt::togeod(double *dphi, double *dlambda, double *h, double | ||||
|         } | ||||
|  | ||||
|     // first guess | ||||
|     double P = sqrt(X*X + Y*Y); // P is distance from spin axis | ||||
|     double P = sqrt(X * X + Y * Y); // P is distance from spin axis | ||||
|  | ||||
|     //direct calculation of longitude | ||||
|     if (P > 1.0E-20) | ||||
| @@ -600,7 +600,7 @@ void galileo_e1_ls_pvt::togeod(double *dphi, double *dlambda, double *h, double | ||||
|             *dlambda = *dlambda + 360.0; | ||||
|         } | ||||
|  | ||||
|     double r = sqrt(P*P + Z*Z); // r is distance from origin (0,0,0) | ||||
|     double r = sqrt(P * P + Z * Z); // r is distance from origin (0,0,0) | ||||
|  | ||||
|     double sinphi; | ||||
|     if (r > 1.0E-20) | ||||
| @@ -621,7 +621,7 @@ void galileo_e1_ls_pvt::togeod(double *dphi, double *dlambda, double *h, double | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|     *h = r - a*(1 - sinphi*sinphi/finv); | ||||
|     *h = r - a * (1 - sinphi * sinphi/finv); | ||||
|  | ||||
|     // iterate | ||||
|     double cosphi; | ||||
| @@ -636,18 +636,18 @@ void galileo_e1_ls_pvt::togeod(double *dphi, double *dlambda, double *h, double | ||||
|             cosphi = cos(*dphi); | ||||
|  | ||||
|             // compute radius of curvature in prime vertical direction | ||||
|             N_phi = a / sqrt(1 - esq*sinphi*sinphi); | ||||
|             N_phi = a / sqrt(1 - esq * sinphi * sinphi); | ||||
|  | ||||
|             //    compute residuals in P and Z | ||||
|             dP = P - (N_phi + (*h)) * cosphi; | ||||
|             dZ = Z - (N_phi*oneesq + (*h)) * sinphi; | ||||
|             dZ = Z - (N_phi * oneesq + (*h)) * sinphi; | ||||
|  | ||||
|             //    update height and latitude | ||||
|             *h = *h + (sinphi*dZ + cosphi*dP); | ||||
|             *dphi = *dphi + (cosphi*dZ - sinphi*dP)/(N_phi + (*h)); | ||||
|             *h = *h + (sinphi * dZ + cosphi * dP); | ||||
|             *dphi = *dphi + (cosphi * dZ - sinphi * dP)/(N_phi + (*h)); | ||||
|  | ||||
|             //     test for convergence | ||||
|             if ((dP*dP + dZ*dZ) < tolsq) | ||||
|             if ((dP * dP + dZ * dZ) < tolsq) | ||||
|                 { | ||||
|                     break; | ||||
|                 } | ||||
| @@ -693,12 +693,12 @@ void galileo_e1_ls_pvt::topocent(double *Az, double *El, double *D, arma::vec x, | ||||
|     arma::mat F = arma::zeros(3,3); | ||||
|  | ||||
|     F(0,0) = -sl; | ||||
|     F(0,1) = -sb*cl; | ||||
|     F(0,2) = cb*cl; | ||||
|     F(0,1) = -sb * cl; | ||||
|     F(0,2) = cb * cl; | ||||
|  | ||||
|     F(1,0) = cl; | ||||
|     F(1,1) = -sb*sl; | ||||
|     F(1,2) = cb*sl; | ||||
|     F(1,1) = -sb * sl; | ||||
|     F(1,2) = cb * sl; | ||||
|  | ||||
|     F(2,0) = 0; | ||||
|     F(2,1) = cb; | ||||
| @@ -713,7 +713,7 @@ void galileo_e1_ls_pvt::topocent(double *Az, double *El, double *D, arma::vec x, | ||||
|     double U = local_vector(2); | ||||
|  | ||||
|     double hor_dis; | ||||
|     hor_dis = sqrt(E*E + N*N); | ||||
|     hor_dis = sqrt(E * E + N * N); | ||||
|  | ||||
|     if (hor_dis < 1.0E-20) | ||||
|         { | ||||
| @@ -731,7 +731,7 @@ void galileo_e1_ls_pvt::topocent(double *Az, double *El, double *D, arma::vec x, | ||||
|             *Az = *Az + 360.0; | ||||
|         } | ||||
|  | ||||
|     *D = sqrt(dx(0)*dx(0) + dx(1)*dx(1) + dx(2)*dx(2)); | ||||
|     *D = sqrt(dx(0) * dx(0) + dx(1) * dx(1) + dx(2) * dx(2)); | ||||
| } | ||||
|  | ||||
| void galileo_e1_ls_pvt::tropo(double *ddr_m, double sinel, double hsta_km, double p_mb, double t_kel, double hum, double hp_km, double htkel_km, double hhum_km) | ||||
| @@ -764,7 +764,7 @@ void galileo_e1_ls_pvt::tropo(double *ddr_m, double sinel, double hsta_km, doubl | ||||
|     const double em     = -978.77 / (2.8704e6 * tlapse * 1.0e-5); | ||||
|  | ||||
|     double tkhum  = t_kel + tlapse * (hhum_km - htkel_km); | ||||
|     double atkel  = 7.5*(tkhum - 273.15) / (237.3 + tkhum - 273.15); | ||||
|     double atkel  = 7.5 * (tkhum - 273.15) / (237.3 + tkhum - 273.15); | ||||
|     double e0     = 0.0611 * hum * pow(10, atkel); | ||||
|     double tksea  = t_kel - tlapse * htkel_km; | ||||
|     double tkelh  = tksea + tlapse * hhum_km; | ||||
|   | ||||
| @@ -332,7 +332,7 @@ bool gps_l1_ca_ls_pvt::get_PVT(std::map<int,Gnss_Synchro> gnss_pseudoranges_map, | ||||
|             } | ||||
|             // Compute UTC time and print PVT solution | ||||
|             double secondsperweek = 604800.0; // number of seconds in one week (7*24*60*60) | ||||
|             boost::posix_time::time_duration t = boost::posix_time::seconds(utc + secondsperweek*(double)GPS_week); | ||||
|             boost::posix_time::time_duration t = boost::posix_time::seconds(utc + secondsperweek * static_cast<double>(GPS_week)); | ||||
|             // 22 August 1999 last GPS time roll over | ||||
|             boost::posix_time::ptime p_time(boost::gregorian::date(1999, 8, 22), t); | ||||
|             d_position_UTC_time = p_time; | ||||
| @@ -441,9 +441,9 @@ bool gps_l1_ca_ls_pvt::get_PVT(std::map<int,Gnss_Synchro> gnss_pseudoranges_map, | ||||
|                                     d_avg_longitude_d = d_avg_longitude_d + d_hist_longitude_d.at(i); | ||||
|                                     d_avg_height_m  = d_avg_height_m + d_hist_height_m.at(i); | ||||
|                                 } | ||||
|                             d_avg_latitude_d = d_avg_latitude_d / (double)d_averaging_depth; | ||||
|                             d_avg_longitude_d = d_avg_longitude_d / (double)d_averaging_depth; | ||||
|                             d_avg_height_m = d_avg_height_m / (double)d_averaging_depth; | ||||
|                             d_avg_latitude_d = d_avg_latitude_d / static_cast<double>(d_averaging_depth); | ||||
|                             d_avg_longitude_d = d_avg_longitude_d / static_cast<double>(d_averaging_depth); | ||||
|                             d_avg_height_m = d_avg_height_m / static_cast<double>(d_averaging_depth); | ||||
|                             b_valid_position = true; | ||||
|                             return true; //indicates that the returned position is valid | ||||
|                         } | ||||
|   | ||||
| @@ -416,7 +416,7 @@ bool hybrid_ls_pvt::get_PVT(std::map<int,Gnss_Synchro> gnss_pseudoranges_map, do | ||||
|             d_position_UTC_time = p_time; | ||||
|             LOG(INFO) << "HYBRID Position at TOW=" << hybrid_current_time << " in ECEF (X,Y,Z) = " << mypos; | ||||
|  | ||||
|             cart2geo((double)mypos(0), (double)mypos(1), (double)mypos(2), 4); | ||||
|             cart2geo(static_cast<double>(mypos(0)), static_cast<double>(mypos(1)), static_cast<double>(mypos(2)), 4); | ||||
|             //ToDo: Find an Observables/PVT random bug with some satellite configurations that gives an erratic PVT solution (i.e. height>50 km) | ||||
|             if (d_height_m > 50000) | ||||
|                 { | ||||
| @@ -535,9 +535,9 @@ bool hybrid_ls_pvt::get_PVT(std::map<int,Gnss_Synchro> gnss_pseudoranges_map, do | ||||
|                                     d_avg_longitude_d = d_avg_longitude_d + d_hist_longitude_d.at(i); | ||||
|                                     d_avg_height_m  = d_avg_height_m + d_hist_height_m.at(i); | ||||
|                                 } | ||||
|                             d_avg_latitude_d = d_avg_latitude_d / (double)d_averaging_depth; | ||||
|                             d_avg_longitude_d = d_avg_longitude_d / (double)d_averaging_depth; | ||||
|                             d_avg_height_m = d_avg_height_m / (double)d_averaging_depth; | ||||
|                             d_avg_latitude_d = d_avg_latitude_d / static_cast<double>(d_averaging_depth); | ||||
|                             d_avg_longitude_d = d_avg_longitude_d / static_cast<double>(d_averaging_depth); | ||||
|                             d_avg_height_m = d_avg_height_m / static_cast<double>(d_averaging_depth); | ||||
|                             b_valid_position = true; | ||||
|                             return true; //indicates that the returned position is valid | ||||
|                         } | ||||
|   | ||||
| @@ -222,8 +222,8 @@ std::string Nmea_Printer::latitude_to_hm(double lat) | ||||
|             north = true; | ||||
|         } | ||||
|  | ||||
|     int deg = (int)lat; | ||||
|     double mins = lat - (double)deg; | ||||
|     int deg = static_cast<int>(lat); | ||||
|     double mins = lat - static_cast<double>(deg); | ||||
|     mins *= 60.0 ; | ||||
|     std::ostringstream out_string; | ||||
|     out_string.setf(std::ios::fixed, std::ios::floatfield); | ||||
| @@ -271,7 +271,7 @@ std::string Nmea_Printer::longitude_to_hm(double longitude) | ||||
|     out_string.precision(4); | ||||
|     out_string << mins; | ||||
|  | ||||
|     if (east==true) | ||||
|     if (east == true) | ||||
|         { | ||||
|             out_string << ",E"; | ||||
|         } | ||||
| @@ -361,7 +361,7 @@ std::string Nmea_Printer::get_GPRMC() | ||||
|             sentence_str << ",V"; | ||||
|         }; | ||||
|  | ||||
|     if (d_PVT_data->d_flag_averaging==true) | ||||
|     if (d_PVT_data->d_flag_averaging == true) | ||||
|         { | ||||
|             // Latitude ddmm.mmmm,(N or S) | ||||
|             sentence_str << "," << latitude_to_hm(d_PVT_data->d_avg_latitude_d); | ||||
|   | ||||
| @@ -268,7 +268,7 @@ float GalileoE1Pcps8msAmbiguousAcquisition::calculate_threshold(float pfa) | ||||
|     DLOG(INFO) << "Channel " << channel_ << "  Pfa = " << pfa; | ||||
|  | ||||
|     unsigned int ncells = vector_length_*frequency_bins; | ||||
|     double exponent = 1/(double)ncells; | ||||
|     double exponent = 1 / static_cast<double>(ncells); | ||||
|     double val = pow(1.0 - pfa,exponent); | ||||
|     double lambda = double(vector_length_); | ||||
|     boost::math::exponential_distribution<double> mydist (lambda); | ||||
|   | ||||
| @@ -277,9 +277,9 @@ float GalileoE1PcpsAmbiguousAcquisition::calculate_threshold(float pfa) | ||||
|  | ||||
| 	DLOG(INFO) <<"Channel "<<channel_<<"  Pfa = "<< pfa; | ||||
|  | ||||
|     unsigned int ncells = vector_length_*frequency_bins; | ||||
| 	double exponent = 1/(double)ncells; | ||||
| 	double val = pow(1.0-pfa,exponent); | ||||
|     unsigned int ncells = vector_length_ * frequency_bins; | ||||
| 	double exponent = 1 / static_cast<double>(ncells); | ||||
| 	double val = pow(1.0 - pfa,exponent); | ||||
|     double lambda = double(vector_length_); | ||||
| 	boost::math::exponential_distribution<double> mydist (lambda); | ||||
| 	float threshold = (float)quantile(mydist,val); | ||||
|   | ||||
| @@ -64,7 +64,7 @@ GalileoE1PcpsCccwsrAmbiguousAcquisition::GalileoE1PcpsCccwsrAmbiguousAcquisition | ||||
|  | ||||
|     if (sampled_ms_ % 4 != 0) | ||||
|         { | ||||
|             sampled_ms_ = (int)(sampled_ms_/4) * 4; | ||||
|             sampled_ms_ = static_cast<int>(sampled_ms_ / 4) * 4; | ||||
|             LOG(WARNING) << "coherent_integration_time should be multiple of " | ||||
|                                   << "Galileo code length (4 ms). coherent_integration_time = " | ||||
|                                   << sampled_ms_ << " ms will be used."; | ||||
| @@ -82,7 +82,7 @@ GalileoE1PcpsCccwsrAmbiguousAcquisition::GalileoE1PcpsCccwsrAmbiguousAcquisition | ||||
|             / (Galileo_E1_CODE_CHIP_RATE_HZ | ||||
|                     / Galileo_E1_B_CODE_LENGTH_CHIPS)); | ||||
|  | ||||
|     vector_length_ = code_length_ * (int)(sampled_ms_/4); | ||||
|     vector_length_ = code_length_ * static_cast<int>(sampled_ms_ / 4); | ||||
|  | ||||
|     int samples_per_ms = code_length_ / 4; | ||||
|  | ||||
|   | ||||
| @@ -305,7 +305,7 @@ float GalileoE1PcpsQuickSyncAmbiguousAcquisition::calculate_threshold(float pfa) | ||||
|     DLOG(INFO) <<"Channel "<<channel_<<"  Pfa = "<< pfa; | ||||
|  | ||||
|     unsigned int ncells = code_length_/folding_factor_ * frequency_bins; | ||||
|     double exponent = 1 / (double)ncells; | ||||
|     double exponent = 1 / static_cast<double>(ncells); | ||||
|     double val = pow(1.0 - pfa, exponent); | ||||
|     double lambda = double(code_length_/folding_factor_); | ||||
|     boost::math::exponential_distribution<double> mydist (lambda); | ||||
|   | ||||
| @@ -268,10 +268,10 @@ float GalileoE1PcpsTongAmbiguousAcquisition::calculate_threshold(float pfa) | ||||
| 	 	frequency_bins++; | ||||
| 	} | ||||
|  | ||||
| 	DLOG(INFO) <<"Channel "<<channel_<<"  Pfa = "<< pfa; | ||||
| 	DLOG(INFO) << "Channel " << channel_ << "  Pfa = " << pfa; | ||||
|  | ||||
| 	unsigned int ncells = vector_length_*frequency_bins; | ||||
| 	double exponent = 1/(double)ncells; | ||||
| 	unsigned int ncells = vector_length_ * frequency_bins; | ||||
| 	double exponent = 1 / static_cast<double>(ncells); | ||||
| 	double val = pow(1.0-pfa,exponent); | ||||
| 	double lambda = double(vector_length_); | ||||
| 	boost::math::exponential_distribution<double> mydist (lambda); | ||||
|   | ||||
| @@ -293,9 +293,9 @@ float GalileoE5aNoncoherentIQAcquisitionCaf::calculate_threshold(float pfa) | ||||
|         { | ||||
|             frequency_bins++; | ||||
|         } | ||||
|     DLOG(INFO) << "Channel " << channel_<< "  Pfa = " << pfa; | ||||
|     unsigned int ncells = vector_length_*frequency_bins; | ||||
|     double exponent = 1/(double)ncells; | ||||
|     DLOG(INFO) << "Channel " << channel_ << "  Pfa = " << pfa; | ||||
|     unsigned int ncells = vector_length_ * frequency_bins; | ||||
|     double exponent = 1 / static_cast<double>(ncells); | ||||
|     double val = pow(1.0 - pfa, exponent); | ||||
|     double lambda = double(vector_length_); | ||||
|     boost::math::exponential_distribution<double> mydist (lambda); | ||||
|   | ||||
| @@ -254,8 +254,8 @@ float GpsL1CaPcpsAcquisition::calculate_threshold(float pfa) | ||||
|             frequency_bins++; | ||||
|         } | ||||
|     DLOG(INFO) << "Channel " << channel_<< "  Pfa = " << pfa; | ||||
|     unsigned int ncells = vector_length_*frequency_bins; | ||||
|     double exponent = 1/(double)ncells; | ||||
|     unsigned int ncells = vector_length_ * frequency_bins; | ||||
|     double exponent = 1 / static_cast<double>(ncells); | ||||
|     double val = pow(1.0 - pfa, exponent); | ||||
|     double lambda = double(vector_length_); | ||||
|     boost::math::exponential_distribution<double> mydist (lambda); | ||||
|   | ||||
| @@ -250,11 +250,11 @@ float GpsL1CaPcpsMultithreadAcquisition::calculate_threshold(float pfa) | ||||
| 	 	frequency_bins++; | ||||
| 	} | ||||
|  | ||||
| 	DLOG(INFO) <<"Channel "<<channel_<<"  Pfa = "<< pfa; | ||||
| 	DLOG(INFO) << "Channel "<< channel_ << "  Pfa = " << pfa; | ||||
|  | ||||
| 	unsigned int ncells = vector_length_*frequency_bins; | ||||
| 	double exponent = 1/(double)ncells; | ||||
| 	double val = pow(1.0-pfa,exponent); | ||||
| 	unsigned int ncells = vector_length_ * frequency_bins; | ||||
| 	double exponent = 1 / static_cast<double>(ncells); | ||||
| 	double val = pow(1.0 - pfa, exponent); | ||||
| 	double lambda = double(vector_length_); | ||||
| 	boost::math::exponential_distribution<double> mydist (lambda); | ||||
| 	float threshold = (float)quantile(mydist,val); | ||||
|   | ||||
| @@ -249,11 +249,11 @@ float GpsL1CaPcpsOpenClAcquisition::calculate_threshold(float pfa) | ||||
| 	 	frequency_bins++; | ||||
| 	} | ||||
|  | ||||
| 	DLOG(INFO) <<"Channel "<<channel_<<"  Pfa = "<< pfa; | ||||
| 	DLOG(INFO) << "Channel " << channel_ << "  Pfa = " << pfa; | ||||
|  | ||||
| 	unsigned int ncells = vector_length_*frequency_bins; | ||||
| 	double exponent = 1/(double)ncells; | ||||
| 	double val = pow(1.0-pfa,exponent); | ||||
| 	unsigned int ncells = vector_length_ * frequency_bins; | ||||
| 	double exponent = 1 / static_cast<double>(ncells); | ||||
| 	double val = pow(1.0 - pfa, exponent); | ||||
| 	double lambda = double(vector_length_); | ||||
| 	boost::math::exponential_distribution<double> mydist (lambda); | ||||
| 	float threshold = (float)quantile(mydist,val); | ||||
|   | ||||
| @@ -286,10 +286,10 @@ float GpsL1CaPcpsQuickSyncAcquisition::calculate_threshold(float pfa) | ||||
|             frequency_bins++; | ||||
|         } | ||||
|     DLOG(INFO) << "Channel " << channel_<< "  Pfa = " << pfa; | ||||
|     unsigned int ncells = (code_length_/folding_factor_)*frequency_bins; | ||||
|     double exponent = 1/(double)ncells; | ||||
|     unsigned int ncells = (code_length_ / folding_factor_) * frequency_bins; | ||||
|     double exponent = 1 / static_cast<double>(ncells); | ||||
|     double val = pow(1.0 - pfa, exponent); | ||||
|     double lambda = double((code_length_/folding_factor_)); | ||||
|     double lambda = double((code_length_ / folding_factor_)); | ||||
|     boost::math::exponential_distribution<double> mydist (lambda); | ||||
|     float threshold = (float)quantile(mydist,val); | ||||
|  | ||||
|   | ||||
| @@ -239,14 +239,14 @@ float GpsL1CaPcpsTongAcquisition::calculate_threshold(float pfa) | ||||
|             frequency_bins++; | ||||
|         } | ||||
|  | ||||
| 	DLOG(INFO) <<"Channel "<<channel_<<"  Pfa = "<< pfa; | ||||
| 	DLOG(INFO) << "Channel "<< channel_ <<"   Pfa = "<< pfa; | ||||
|  | ||||
| 	unsigned int ncells = vector_length_*frequency_bins; | ||||
| 	double exponent = 1/(double)ncells; | ||||
| 	double val = pow(1.0-pfa,exponent); | ||||
| 	unsigned int ncells = vector_length_ * frequency_bins; | ||||
| 	double exponent = 1 / static_cast<double>(ncells); | ||||
| 	double val = pow(1.0 - pfa,exponent); | ||||
| 	double lambda = double(vector_length_); | ||||
| 	boost::math::exponential_distribution<double> mydist (lambda); | ||||
| 	float threshold = (float)quantile(mydist,val); | ||||
| 	float threshold = (float)quantile(mydist, val); | ||||
|  | ||||
| 	return threshold; | ||||
| } | ||||
|   | ||||
| @@ -249,8 +249,8 @@ void galileo_e5a_noncoherentIQ_acquisition_caf_cc::init() | ||||
|  | ||||
|     // Count the number of bins | ||||
|     d_num_doppler_bins = 0; | ||||
|     for (int doppler = (int)(-d_doppler_max); | ||||
|          doppler <= (int)d_doppler_max; | ||||
|     for (int doppler = static_cast<int>(-d_doppler_max); | ||||
|          doppler <= static_cast<int>(d_doppler_max); | ||||
|          doppler += d_doppler_step) | ||||
|     { | ||||
|         d_num_doppler_bins++; | ||||
| @@ -261,7 +261,7 @@ void galileo_e5a_noncoherentIQ_acquisition_caf_cc::init() | ||||
|     for (unsigned int doppler_index = 0; doppler_index < d_num_doppler_bins; doppler_index++) | ||||
|         { | ||||
|             d_grid_doppler_wipeoffs[doppler_index] = static_cast<gr_complex*>(volk_malloc(d_fft_size * sizeof(gr_complex), volk_get_alignment())); | ||||
|             int doppler = -(int)d_doppler_max + d_doppler_step*doppler_index; | ||||
|             int doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|             complex_exp_gen_conj(d_grid_doppler_wipeoffs[doppler_index], | ||||
|                                  d_freq + doppler, d_fs_in, d_fft_size); | ||||
|         } | ||||
| @@ -329,17 +329,17 @@ int galileo_e5a_noncoherentIQ_acquisition_caf_cc::general_work(int noutput_items | ||||
| 	    { | ||||
| 		const gr_complex *in = (const gr_complex *)input_items[0]; //Get the input samples pointer | ||||
| 		unsigned int buff_increment; | ||||
| 		if (ninput_items[0]+d_buffer_count <= d_fft_size) | ||||
| 		if (ninput_items[0] + d_buffer_count <= d_fft_size) | ||||
| 		    { | ||||
| 			buff_increment = ninput_items[0]; | ||||
| 		    } | ||||
| 		else | ||||
| 		    { | ||||
| 			buff_increment = (d_fft_size-d_buffer_count); | ||||
| 			buff_increment = (d_fft_size - d_buffer_count); | ||||
| 		    } | ||||
| 		memcpy(&d_inbuffer[d_buffer_count], in, sizeof(gr_complex)*buff_increment); | ||||
| 		memcpy(&d_inbuffer[d_buffer_count], in, sizeof(gr_complex) * buff_increment); | ||||
| 		// If buffer will be full in next iteration | ||||
| 		if (d_buffer_count >= d_fft_size-d_gr_stream_buffer) | ||||
| 		if (d_buffer_count >= d_fft_size - d_gr_stream_buffer) | ||||
| 		    { | ||||
| 			d_state=2; | ||||
| 		    } | ||||
| @@ -370,7 +370,7 @@ int galileo_e5a_noncoherentIQ_acquisition_caf_cc::general_work(int noutput_items | ||||
| 		float magt_IB = 0.0; | ||||
| 		float magt_QA = 0.0; | ||||
| 		float magt_QB = 0.0; | ||||
| 		float fft_normalization_factor = (float)d_fft_size * (float)d_fft_size; | ||||
| 		float fft_normalization_factor = static_cast<float>(d_fft_size) * static_cast<float>(d_fft_size); | ||||
| 		d_input_power = 0.0; | ||||
| 		d_mag = 0.0; | ||||
| 		d_well_count++; | ||||
| @@ -384,14 +384,14 @@ int galileo_e5a_noncoherentIQ_acquisition_caf_cc::general_work(int noutput_items | ||||
| 		// 1- Compute the input signal power estimation | ||||
| 		volk_32fc_magnitude_squared_32f(d_magnitudeIA, d_inbuffer, d_fft_size); | ||||
| 		volk_32f_accumulator_s32f(&d_input_power, d_magnitudeIA, d_fft_size); | ||||
| 		d_input_power /= (float)d_fft_size; | ||||
| 		d_input_power /= static_cast<float>(d_fft_size); | ||||
|  | ||||
| 		// 2- Doppler frequency search loop | ||||
| 		for (unsigned int doppler_index = 0; doppler_index < d_num_doppler_bins; doppler_index++) | ||||
| 		    { | ||||
| 			// doppler search steps | ||||
|  | ||||
| 			doppler = -(int)d_doppler_max + d_doppler_step * doppler_index; | ||||
| 			doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|  | ||||
| 			volk_32fc_x2_multiply_32fc(d_fft_if->get_inbuf(), d_inbuffer, | ||||
| 			                             d_grid_doppler_wipeoffs[doppler_index], d_fft_size); | ||||
| @@ -543,8 +543,8 @@ int galileo_e5a_noncoherentIQ_acquisition_caf_cc::general_work(int noutput_items | ||||
| 				// restarted between consecutive dwells in multidwell operation. | ||||
| 				if (d_test_statistics < (d_mag / d_input_power) || !d_bit_transition_flag) | ||||
| 				    { | ||||
| 					d_gnss_synchro->Acq_delay_samples = (double)(indext % d_samples_per_code); | ||||
| 					d_gnss_synchro->Acq_doppler_hz = (double)doppler; | ||||
| 					d_gnss_synchro->Acq_delay_samples = static_cast<double>(indext % d_samples_per_code); | ||||
| 					d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler); | ||||
| 					d_gnss_synchro->Acq_samplestamp_samples = d_sample_counter; | ||||
|  | ||||
| 					// 5- Compute the test statistics and compare to the threshold | ||||
| @@ -585,88 +585,88 @@ int galileo_e5a_noncoherentIQ_acquisition_caf_cc::general_work(int noutput_items | ||||
| 		    { | ||||
| 		        int CAF_bins_half; | ||||
| 		        float* accum = static_cast<float*>(volk_malloc(sizeof(float), volk_get_alignment())); | ||||
| 		        CAF_bins_half = d_CAF_window_hz/(2*d_doppler_step); | ||||
| 		        CAF_bins_half = d_CAF_window_hz / (2 * d_doppler_step); | ||||
| 		        float weighting_factor; | ||||
| 		        weighting_factor = 0.5/(float)CAF_bins_half; | ||||
| 		        weighting_factor = 0.5 / static_cast<float>(CAF_bins_half); | ||||
| 		        //			weighting_factor = 0; | ||||
| 		        //			std::cout << "weighting_factor " << weighting_factor << std::endl; | ||||
| 		        // Initialize first iterations | ||||
| 		        for (int doppler_index=0;doppler_index<CAF_bins_half;doppler_index++) | ||||
| 		        for (int doppler_index=0; doppler_index < CAF_bins_half; doppler_index++) | ||||
| 		            { | ||||
| 		                d_CAF_vector[doppler_index] = 0; | ||||
| 		                // volk_32f_accumulator_s32f_a(&d_CAF_vector[doppler_index], d_CAF_vector_I, CAF_bins_half+doppler_index+1); | ||||
| 		                for (int i = 0; i < CAF_bins_half+doppler_index+1; i++) | ||||
| 		                for (int i = 0; i < CAF_bins_half + doppler_index + 1; i++) | ||||
| 		                    { | ||||
| 		                        d_CAF_vector[doppler_index] += d_CAF_vector_I[i] * (1-weighting_factor*(unsigned int)(abs(doppler_index - i))); | ||||
| 		                        d_CAF_vector[doppler_index] += d_CAF_vector_I[i] * (1 - weighting_factor * static_cast<unsigned int>(abs(doppler_index - i))); | ||||
| 		                    } | ||||
| 		                // d_CAF_vector[doppler_index] /= CAF_bins_half+doppler_index+1; | ||||
| 		                d_CAF_vector[doppler_index] /= 1+CAF_bins_half+doppler_index - weighting_factor*CAF_bins_half*(CAF_bins_half+1)/2 - weighting_factor*doppler_index*(doppler_index+1)/2; // triangles = [n*(n+1)/2] | ||||
| 		                d_CAF_vector[doppler_index] /= 1 + CAF_bins_half+doppler_index - weighting_factor * CAF_bins_half * (CAF_bins_half + 1) / 2 - weighting_factor*doppler_index*(doppler_index+1)/2; // triangles = [n*(n+1)/2] | ||||
| 		                if (d_both_signal_components) | ||||
| 		                    { | ||||
| 		                        accum[0] = 0; | ||||
| 		                        // volk_32f_accumulator_s32f_a(&accum[0], d_CAF_vector_Q, CAF_bins_half+doppler_index+1); | ||||
| 		                        for (int i = 0; i < CAF_bins_half+doppler_index+1; i++) | ||||
| 		                            { | ||||
| 		                                accum[0] += d_CAF_vector_Q[i] * (1-weighting_factor*(unsigned int)(abs(doppler_index - i))); | ||||
| 		                                accum[0] += d_CAF_vector_Q[i] * (1 - weighting_factor * static_cast<unsigned int>(abs(doppler_index - i))); | ||||
| 		                            } | ||||
| 		                        // accum[0] /= CAF_bins_half+doppler_index+1; | ||||
| 		                        accum[0] /= 1+CAF_bins_half+doppler_index - weighting_factor*CAF_bins_half*(CAF_bins_half+1)/2 - weighting_factor*doppler_index*(doppler_index+1)/2; // triangles = [n*(n+1)/2] | ||||
| 		                        accum[0] /= 1+CAF_bins_half+doppler_index - weighting_factor * CAF_bins_half * (CAF_bins_half + 1) / 2 - weighting_factor * doppler_index * (doppler_index + 1) / 2; // triangles = [n*(n+1)/2] | ||||
| 		                        d_CAF_vector[doppler_index] += accum[0]; | ||||
| 		                    } | ||||
| 		            } | ||||
| 		        // Body loop | ||||
| 		        for (unsigned int doppler_index=CAF_bins_half;doppler_index<d_num_doppler_bins-CAF_bins_half;doppler_index++) | ||||
| 		        for (unsigned int doppler_index = CAF_bins_half;doppler_index<d_num_doppler_bins-CAF_bins_half;doppler_index++) | ||||
| 		            { | ||||
| 		                d_CAF_vector[doppler_index] = 0; | ||||
| 		                //				volk_32f_accumulator_s32f_a(&d_CAF_vector[doppler_index], &d_CAF_vector_I[doppler_index-CAF_bins_half], 2*CAF_bins_half+1); | ||||
| 		                for (int i = doppler_index-CAF_bins_half; i < doppler_index+CAF_bins_half+1; i++) | ||||
| 		                    { | ||||
| 		                        d_CAF_vector[doppler_index] += d_CAF_vector_I[i] * (1-weighting_factor*(unsigned int)(abs(doppler_index - i))); | ||||
| 		                        d_CAF_vector[doppler_index] += d_CAF_vector_I[i] * (1-weighting_factor * static_cast<unsigned int>(abs(doppler_index - i))); | ||||
| 		                    } | ||||
| 		                //				d_CAF_vector[doppler_index] /= 2*CAF_bins_half+1; | ||||
| 		                d_CAF_vector[doppler_index] /= 1+2*CAF_bins_half - 2*weighting_factor*CAF_bins_half*(CAF_bins_half+1)/2; | ||||
| 		                d_CAF_vector[doppler_index] /= 1 + 2 * CAF_bins_half - 2  *weighting_factor * CAF_bins_half * (CAF_bins_half + 1) / 2; | ||||
| 		                if (d_both_signal_components) | ||||
| 		                    { | ||||
| 		                        accum[0] = 0; | ||||
| 		                        //					volk_32f_accumulator_s32f_a(&accum[0], &d_CAF_vector_Q[doppler_index-CAF_bins_half], 2*CAF_bins_half); | ||||
| 		                        for (int i = doppler_index-CAF_bins_half; i < doppler_index+CAF_bins_half+1; i++) | ||||
| 		                            { | ||||
| 		                                accum[0] += d_CAF_vector_Q[i] * (1-weighting_factor*(unsigned int)(abs(doppler_index - i))); | ||||
| 		                                accum[0] += d_CAF_vector_Q[i] * (1  -weighting_factor * static_cast<unsigned int>(abs(doppler_index - i))); | ||||
| 		                            } | ||||
| 		                        //					accum[0] /= 2*CAF_bins_half+1; | ||||
| 		                        accum[0] /= 1+2*CAF_bins_half - 2*weighting_factor*CAF_bins_half*(CAF_bins_half+1)/2; | ||||
| 		                        accum[0] /= 1+2*CAF_bins_half - 2*weighting_factor * CAF_bins_half * (CAF_bins_half + 1) / 2; | ||||
| 		                        d_CAF_vector[doppler_index] += accum[0]; | ||||
| 		                    } | ||||
| 		            } | ||||
| 		        // Final iterations | ||||
| 		        for (unsigned int doppler_index=d_num_doppler_bins-CAF_bins_half;doppler_index<d_num_doppler_bins;doppler_index++) | ||||
| 		        for (unsigned int doppler_index = d_num_doppler_bins - CAF_bins_half;doppler_index<d_num_doppler_bins;doppler_index++) | ||||
| 		            { | ||||
| 		                d_CAF_vector[doppler_index] = 0; | ||||
| 		                //				volk_32f_accumulator_s32f_a(&d_CAF_vector[doppler_index], &d_CAF_vector_I[doppler_index-CAF_bins_half], CAF_bins_half + (d_num_doppler_bins-doppler_index)); | ||||
| 		                for (int i = doppler_index-CAF_bins_half; i < d_num_doppler_bins; i++) | ||||
| 		                for (int i = doppler_index - CAF_bins_half; i < d_num_doppler_bins; i++) | ||||
| 		                    { | ||||
| 		                        d_CAF_vector[doppler_index] += d_CAF_vector_I[i] * (1-weighting_factor*(abs(doppler_index - i))); | ||||
| 		                        d_CAF_vector[doppler_index] += d_CAF_vector_I[i] * (1 - weighting_factor * (abs(doppler_index - i))); | ||||
| 		                    } | ||||
| 		                //				d_CAF_vector[doppler_index] /= CAF_bins_half+(d_num_doppler_bins-doppler_index); | ||||
| 		                d_CAF_vector[doppler_index] /= 1+CAF_bins_half+(d_num_doppler_bins-doppler_index-1) -weighting_factor*CAF_bins_half*(CAF_bins_half+1)/2 -weighting_factor*(d_num_doppler_bins-doppler_index-1)*(d_num_doppler_bins-doppler_index)/2; | ||||
| 		                d_CAF_vector[doppler_index] /= 1+CAF_bins_half+(d_num_doppler_bins-doppler_index-1) - weighting_factor * CAF_bins_half * (CAF_bins_half + 1) / 2 - weighting_factor * (d_num_doppler_bins - doppler_index - 1) * (d_num_doppler_bins - doppler_index) / 2; | ||||
| 		                if (d_both_signal_components) | ||||
| 		                    { | ||||
| 		                        accum[0] = 0; | ||||
| 		                        //					volk_32f_accumulator_s32f_a(&accum[0], &d_CAF_vector_Q[doppler_index-CAF_bins_half], CAF_bins_half + (d_num_doppler_bins-doppler_index)); | ||||
| 		                        for (int i = doppler_index-CAF_bins_half; i < d_num_doppler_bins; i++) | ||||
| 		                            { | ||||
| 		                                accum[0] += d_CAF_vector_Q[i] * (1-weighting_factor*(abs(doppler_index - i))); | ||||
| 		                                accum[0] += d_CAF_vector_Q[i] * (1 - weighting_factor * (abs(doppler_index - i))); | ||||
| 		                            } | ||||
| 		                        //					accum[0] /= CAF_bins_half+(d_num_doppler_bins-doppler_index); | ||||
| 		                        accum[0] /= 1+CAF_bins_half+(d_num_doppler_bins-doppler_index-1) -weighting_factor*CAF_bins_half*(CAF_bins_half+1)/2 -weighting_factor*(d_num_doppler_bins-doppler_index-1)*(d_num_doppler_bins-doppler_index)/2; | ||||
| 		                        accum[0] /= 1 + CAF_bins_half + (d_num_doppler_bins - doppler_index - 1) - weighting_factor * CAF_bins_half * (CAF_bins_half + 1) / 2 - weighting_factor * (d_num_doppler_bins - doppler_index - 1) * (d_num_doppler_bins - doppler_index) / 2; | ||||
| 		                        d_CAF_vector[doppler_index] += accum[0]; | ||||
| 		                    } | ||||
| 		            } | ||||
|  | ||||
| 		        // Recompute the maximum doppler peak | ||||
| 		        volk_32f_index_max_16u(&indext, d_CAF_vector, d_num_doppler_bins); | ||||
| 		        doppler = -(int)d_doppler_max + d_doppler_step*indext; | ||||
| 		        d_gnss_synchro->Acq_doppler_hz = (double)doppler; | ||||
| 		        doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * indext; | ||||
| 		        d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler); | ||||
| 		        // Dump if required, appended at the end of the file | ||||
| 		        if (d_dump) | ||||
| 		            { | ||||
|   | ||||
| @@ -149,8 +149,8 @@ void galileo_pcps_8ms_acquisition_cc::init() | ||||
|  | ||||
|     // Count the number of bins | ||||
|     d_num_doppler_bins = 0; | ||||
|     for (int doppler = (int)(-d_doppler_max); | ||||
|          doppler <= (int)d_doppler_max; | ||||
|     for (int doppler = static_cast<int>(-d_doppler_max); | ||||
|          doppler <= static_cast<int>(d_doppler_max); | ||||
|          doppler += d_doppler_step) | ||||
|     { | ||||
|         d_num_doppler_bins++; | ||||
| @@ -161,9 +161,8 @@ void galileo_pcps_8ms_acquisition_cc::init() | ||||
|     for (unsigned int doppler_index=0; doppler_index < d_num_doppler_bins; doppler_index++) | ||||
|         { | ||||
|             d_grid_doppler_wipeoffs[doppler_index] = static_cast<gr_complex*>(volk_malloc(d_fft_size * sizeof(gr_complex), volk_get_alignment())); | ||||
|             int doppler = -(int)d_doppler_max + d_doppler_step*doppler_index; | ||||
|             complex_exp_gen_conj(d_grid_doppler_wipeoffs[doppler_index], | ||||
|                                  d_freq + doppler, d_fs_in, d_fft_size); | ||||
|             int doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|             complex_exp_gen_conj(d_grid_doppler_wipeoffs[doppler_index], d_freq + doppler, d_fs_in, d_fft_size); | ||||
|         } | ||||
| } | ||||
|  | ||||
| @@ -209,7 +208,7 @@ int galileo_pcps_8ms_acquisition_cc::general_work(int noutput_items, | ||||
|             float magt_A = 0.0; | ||||
|             float magt_B = 0.0; | ||||
|             const gr_complex *in = (const gr_complex *)input_items[0]; //Get the input samples pointer | ||||
|             float fft_normalization_factor = (float)d_fft_size * (float)d_fft_size; | ||||
|             float fft_normalization_factor = static_cast<float>(d_fft_size) * static_cast<float>(d_fft_size); | ||||
|             d_input_power = 0.0; | ||||
|             d_mag = 0.0; | ||||
|  | ||||
| @@ -226,14 +225,14 @@ int galileo_pcps_8ms_acquisition_cc::general_work(int noutput_items, | ||||
|             // 1- Compute the input signal power estimation | ||||
|             volk_32fc_magnitude_squared_32f(d_magnitude, in, d_fft_size); | ||||
|             volk_32f_accumulator_s32f(&d_input_power, d_magnitude, d_fft_size); | ||||
|             d_input_power /= (float)d_fft_size; | ||||
|             d_input_power /= static_cast<float>(d_fft_size); | ||||
|  | ||||
|             // 2- Doppler frequency search loop | ||||
|             for (unsigned int doppler_index = 0; doppler_index < d_num_doppler_bins; doppler_index++) | ||||
|                 { | ||||
|                     // doppler search steps | ||||
|  | ||||
|                     doppler = -(int)d_doppler_max + d_doppler_step*doppler_index; | ||||
|                     doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|  | ||||
|                     volk_32fc_x2_multiply_32fc(d_fft_if->get_inbuf(), in, | ||||
|                                 d_grid_doppler_wipeoffs[doppler_index], d_fft_size); | ||||
| @@ -290,8 +289,8 @@ int galileo_pcps_8ms_acquisition_cc::general_work(int noutput_items, | ||||
|                     if (d_mag < magt) | ||||
|                         { | ||||
|                             d_mag = magt; | ||||
|                             d_gnss_synchro->Acq_delay_samples = (double)(indext % d_samples_per_code); | ||||
|                             d_gnss_synchro->Acq_doppler_hz = (double)doppler; | ||||
|                             d_gnss_synchro->Acq_delay_samples = static_cast<double>(indext % d_samples_per_code); | ||||
|                             d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler); | ||||
|                             d_gnss_synchro->Acq_samplestamp_samples = d_sample_counter; | ||||
|                         } | ||||
|  | ||||
|   | ||||
| @@ -140,8 +140,8 @@ void pcps_acquisition_cc::init() | ||||
|  | ||||
|     // Count the number of bins | ||||
|     d_num_doppler_bins = 0; | ||||
|     for (int doppler = (int)(-d_doppler_max); | ||||
|          doppler <= (int)d_doppler_max; | ||||
|     for (int doppler = static_cast<int>(-d_doppler_max); | ||||
|          doppler <= static_cast<int>(d_doppler_max); | ||||
|          doppler += d_doppler_step) | ||||
|     { | ||||
|         d_num_doppler_bins++; | ||||
| @@ -153,7 +153,7 @@ void pcps_acquisition_cc::init() | ||||
|     for (unsigned int doppler_index = 0; doppler_index < d_num_doppler_bins; doppler_index++) | ||||
|         { | ||||
|             d_grid_doppler_wipeoffs[doppler_index] = static_cast<gr_complex*>(volk_malloc(d_fft_size * sizeof(gr_complex), volk_get_alignment())); | ||||
|             int doppler = -(int)d_doppler_max + d_doppler_step * doppler_index; | ||||
|             int doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|             complex_exp_gen_conj(d_grid_doppler_wipeoffs[doppler_index], d_freq + doppler, d_fs_in, d_fft_size); | ||||
|         } | ||||
| } | ||||
| @@ -206,7 +206,7 @@ int pcps_acquisition_cc::general_work(int noutput_items, | ||||
|             unsigned int indext = 0; | ||||
|             float magt = 0.0; | ||||
|             const gr_complex *in = (const gr_complex *)input_items[0]; //Get the input samples pointer | ||||
|             float fft_normalization_factor = (float)d_fft_size * (float)d_fft_size; | ||||
|             float fft_normalization_factor = static_cast<float>(d_fft_size) * static_cast<float>(d_fft_size); | ||||
|             d_input_power = 0.0; | ||||
|             d_mag = 0.0; | ||||
|  | ||||
| @@ -223,14 +223,14 @@ int pcps_acquisition_cc::general_work(int noutput_items, | ||||
|             // 1- Compute the input signal power estimation | ||||
|             volk_32fc_magnitude_squared_32f(d_magnitude, in, d_fft_size); | ||||
|             volk_32f_accumulator_s32f(&d_input_power, d_magnitude, d_fft_size); | ||||
|             d_input_power /= (float)d_fft_size; | ||||
|             d_input_power /= static_cast<float>(d_fft_size); | ||||
|  | ||||
|             // 2- Doppler frequency search loop | ||||
|             for (unsigned int doppler_index=0; doppler_index < d_num_doppler_bins; doppler_index++) | ||||
|                 { | ||||
|                     // doppler search steps | ||||
|  | ||||
|                     doppler = -(int)d_doppler_max + d_doppler_step * doppler_index; | ||||
|                     doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|  | ||||
|                     volk_32fc_x2_multiply_32fc(d_fft_if->get_inbuf(), in, | ||||
|                                 d_grid_doppler_wipeoffs[doppler_index], d_fft_size); | ||||
| @@ -268,8 +268,8 @@ int pcps_acquisition_cc::general_work(int noutput_items, | ||||
|                             // restarted between consecutive dwells in multidwell operation. | ||||
|                             if (d_test_statistics < (d_mag / d_input_power) || !d_bit_transition_flag) | ||||
|                             { | ||||
|                                 d_gnss_synchro->Acq_delay_samples = (double)(indext % d_samples_per_code); | ||||
|                                 d_gnss_synchro->Acq_doppler_hz = (double)doppler; | ||||
|                                 d_gnss_synchro->Acq_delay_samples = static_cast<double>(indext % d_samples_per_code); | ||||
|                                 d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler); | ||||
|                                 d_gnss_synchro->Acq_samplestamp_samples = d_sample_counter; | ||||
|  | ||||
|                                 // 5- Compute the test statistics and compare to the threshold | ||||
|   | ||||
| @@ -187,7 +187,7 @@ void pcps_acquisition_fine_doppler_cc::update_carrier_wipeoff() | ||||
|             doppler_hz = d_config_doppler_min + d_doppler_step*doppler_index; | ||||
|             // doppler search steps | ||||
|             // compute the carrier doppler wipe-off signal and store it | ||||
|             phase_step_rad = (float)GPS_TWO_PI*doppler_hz / (float)d_fs_in; | ||||
|             phase_step_rad = static_cast<float>(GPS_TWO_PI) * doppler_hz / static_cast<float>(d_fs_in); | ||||
|             d_grid_doppler_wipeoffs[doppler_index] = new gr_complex[d_fft_size]; | ||||
|             fxp_nco(d_grid_doppler_wipeoffs[doppler_index], d_fft_size,0, phase_step_rad); | ||||
|         } | ||||
| @@ -214,15 +214,15 @@ double pcps_acquisition_fine_doppler_cc::search_maximum() | ||||
|         } | ||||
|  | ||||
|     // Normalize the maximum value to correct the scale factor introduced by FFTW | ||||
|     fft_normalization_factor = (float)d_fft_size * (float)d_fft_size;; | ||||
|     fft_normalization_factor = static_cast<float>(d_fft_size) * static_cast<float>(d_fft_size); | ||||
|     magt = magt / (fft_normalization_factor * fft_normalization_factor); | ||||
|  | ||||
|     // 5- Compute the test statistics and compare to the threshold | ||||
|     d_test_statistics = magt/(d_input_power*std::sqrt(d_well_count)); | ||||
|  | ||||
|     // 4- record the maximum peak and the associated synchronization parameters | ||||
|     d_gnss_synchro->Acq_delay_samples = (double)index_time; | ||||
|     d_gnss_synchro->Acq_doppler_hz = (double)(index_doppler * d_doppler_step + d_config_doppler_min); | ||||
|     d_gnss_synchro->Acq_delay_samples = static_cast<double>(index_time); | ||||
|     d_gnss_synchro->Acq_doppler_hz = static_cast<double>(index_doppler * d_doppler_step + d_config_doppler_min); | ||||
|     d_gnss_synchro->Acq_samplestamp_samples = d_sample_counter; | ||||
|  | ||||
|     // Record results to file if required | ||||
| @@ -250,7 +250,7 @@ float pcps_acquisition_fine_doppler_cc::estimate_input_power(gr_vector_const_voi | ||||
|     float power = 0; | ||||
|     volk_32fc_magnitude_squared_32f(d_magnitude, in, d_fft_size); | ||||
|     volk_32f_accumulator_s32f(&power, d_magnitude, d_fft_size); | ||||
|     power /= (float)d_fft_size; | ||||
|     power /= static_cast<float>(d_fft_size); | ||||
|     return power; | ||||
| } | ||||
|  | ||||
| @@ -305,6 +305,7 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler(gr_vector_const_void_star | ||||
|     int zero_padding_factor = 16; | ||||
|     int fft_size_extended = d_fft_size * zero_padding_factor; | ||||
|     gr::fft::fft_complex *fft_operator = new gr::fft::fft_complex(fft_size_extended, true); | ||||
|  | ||||
|     //zero padding the entire vector | ||||
|     memset(fft_operator->get_inbuf(), 0, fft_size_extended * sizeof(gr_complex)); | ||||
|  | ||||
| @@ -313,9 +314,8 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler(gr_vector_const_void_star | ||||
|  | ||||
|     gps_l1_ca_code_gen_complex_sampled(code_replica, d_gnss_synchro->PRN, d_fs_in, 0); | ||||
|  | ||||
|     int shift_index = (int)d_gnss_synchro->Acq_delay_samples; | ||||
|     int shift_index = static_cast<int>(d_gnss_synchro->Acq_delay_samples); | ||||
|  | ||||
|     //std::cout<<"shift_index="<<shift_index<<std::endl; | ||||
|     // Rotate to align the local code replica using acquisition time delay estimation | ||||
|     if (shift_index != 0) | ||||
|         { | ||||
| @@ -336,9 +336,7 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler(gr_vector_const_void_star | ||||
|     volk_32fc_magnitude_squared_32f(p_tmp_vector, fft_operator->get_outbuf(), fft_size_extended); | ||||
|  | ||||
|     unsigned int tmp_index_freq = 0; | ||||
|     volk_32f_index_max_16u(&tmp_index_freq,p_tmp_vector,fft_size_extended); | ||||
|  | ||||
|     //std::cout<<"FFT maximum index present at "<<tmp_index_freq<<std::endl; | ||||
|     volk_32f_index_max_16u(&tmp_index_freq, p_tmp_vector, fft_size_extended); | ||||
|  | ||||
|     //case even | ||||
|     int counter = 0; | ||||
| @@ -347,20 +345,20 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler(gr_vector_const_void_star | ||||
|  | ||||
|     for (int k=0; k < (fft_size_extended / 2); k++) | ||||
|         { | ||||
|             fftFreqBins[counter] = (((float)d_fs_in / 2.0) * (float)k) / ((float)fft_size_extended / 2.0); | ||||
|             fftFreqBins[counter] = ((static_cast<float>(d_fs_in) / 2.0) * static_cast<float>(k)) / (static_cast<float>(fft_size_extended) / 2.0); | ||||
|             counter++; | ||||
|         } | ||||
|  | ||||
|     for (int k = fft_size_extended / 2; k > 0; k--) | ||||
|         { | ||||
|             fftFreqBins[counter] = ((-(float)d_fs_in / 2) * (float)k) / ((float)fft_size_extended / 2.0); | ||||
|             fftFreqBins[counter] = ((-static_cast<float>(d_fs_in) / 2) * static_cast<float>(k)) / (static_cast<float>(fft_size_extended) / 2.0); | ||||
|             counter++; | ||||
|         } | ||||
|  | ||||
|     // 5. Update the Doppler estimation in Hz | ||||
|     if (abs(fftFreqBins[tmp_index_freq] - d_gnss_synchro->Acq_doppler_hz) < 1000) | ||||
|         { | ||||
|             d_gnss_synchro->Acq_doppler_hz = (double)fftFreqBins[tmp_index_freq]; | ||||
|             d_gnss_synchro->Acq_doppler_hz = static_cast<double>(fftFreqBins[tmp_index_freq]); | ||||
|             //std::cout<<"FFT maximum present at "<<fftFreqBins[tmp_index_freq]<<" [Hz]"<<std::endl; | ||||
|         } | ||||
|     else | ||||
|   | ||||
| @@ -230,7 +230,7 @@ void pcps_assisted_acquisition_cc::redefine_grid() | ||||
|             doppler_hz = d_doppler_min + d_doppler_step*doppler_index; | ||||
|             // doppler search steps | ||||
|             // compute the carrier doppler wipe-off signal and store it | ||||
|             phase_step_rad = (float)GPS_TWO_PI*doppler_hz / (float)d_fs_in; | ||||
|             phase_step_rad = static_cast<float>(GPS_TWO_PI) * doppler_hz / static_cast<float>(d_fs_in); | ||||
|             d_grid_doppler_wipeoffs[doppler_index] = new gr_complex[d_fft_size]; | ||||
|             fxp_nco(d_grid_doppler_wipeoffs[doppler_index], d_fft_size, 0, phase_step_rad); | ||||
|         } | ||||
| @@ -258,15 +258,15 @@ double pcps_assisted_acquisition_cc::search_maximum() | ||||
|         } | ||||
|  | ||||
|     // Normalize the maximum value to correct the scale factor introduced by FFTW | ||||
|     fft_normalization_factor = (float)d_fft_size * (float)d_fft_size; | ||||
|     fft_normalization_factor = static_cast<float>(d_fft_size) * static_cast<float>(d_fft_size); | ||||
|     magt = magt / (fft_normalization_factor * fft_normalization_factor); | ||||
|  | ||||
|     // 5- Compute the test statistics and compare to the threshold | ||||
|     d_test_statistics = 2 * d_fft_size * magt /(d_input_power*d_well_count); | ||||
|     d_test_statistics = 2 * d_fft_size * magt / (d_input_power * d_well_count); | ||||
|  | ||||
|     // 4- record the maximum peak and the associated synchronization parameters | ||||
|     d_gnss_synchro->Acq_delay_samples = (double)index_time; | ||||
|     d_gnss_synchro->Acq_doppler_hz = (double)(index_doppler*d_doppler_step + d_doppler_min); | ||||
|     d_gnss_synchro->Acq_delay_samples = static_cast<double>(index_time); | ||||
|     d_gnss_synchro->Acq_doppler_hz = static_cast<double>(index_doppler * d_doppler_step + d_doppler_min); | ||||
|     d_gnss_synchro->Acq_samplestamp_samples = d_sample_counter; | ||||
|  | ||||
|     // Record results to file if required | ||||
| @@ -300,7 +300,7 @@ float pcps_assisted_acquisition_cc::estimate_input_power(gr_vector_const_void_st | ||||
|     float power; | ||||
|     volk_32f_accumulator_s32f(&power, p_const_tmp_vector, d_fft_size); | ||||
|     volk_free(p_tmp_vector); | ||||
|     return ( power / (float)d_fft_size); | ||||
|     return ( power / static_cast<float>(d_fft_size)); | ||||
| } | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -137,7 +137,7 @@ void pcps_cccwsr_acquisition_cc::set_local_code(std::complex<float>* code_data, | ||||
|         std::complex<float>* code_pilot) | ||||
| { | ||||
|     // Data code (E1B) | ||||
|     memcpy(d_fft_if->get_inbuf(), code_data, sizeof(gr_complex)*d_fft_size); | ||||
|     memcpy(d_fft_if->get_inbuf(), code_data, sizeof(gr_complex) * d_fft_size); | ||||
|  | ||||
|     d_fft_if->execute(); // We need the FFT of local code | ||||
|  | ||||
| @@ -145,12 +145,12 @@ void pcps_cccwsr_acquisition_cc::set_local_code(std::complex<float>* code_data, | ||||
|     volk_32fc_conjugate_32fc(d_fft_code_data,d_fft_if->get_outbuf(),d_fft_size); | ||||
|  | ||||
|     // Pilot code (E1C) | ||||
|     memcpy(d_fft_if->get_inbuf(), code_pilot, sizeof(gr_complex)*d_fft_size); | ||||
|     memcpy(d_fft_if->get_inbuf(), code_pilot, sizeof(gr_complex) * d_fft_size); | ||||
|  | ||||
|     d_fft_if->execute(); // We need the FFT of local code | ||||
|  | ||||
|     //Conjugate the local code, | ||||
|     volk_32fc_conjugate_32fc(d_fft_code_pilot,d_fft_if->get_outbuf(),d_fft_size); | ||||
|     volk_32fc_conjugate_32fc(d_fft_code_pilot, d_fft_if->get_outbuf(), d_fft_size); | ||||
| } | ||||
|  | ||||
| void pcps_cccwsr_acquisition_cc::init() | ||||
| @@ -163,8 +163,8 @@ void pcps_cccwsr_acquisition_cc::init() | ||||
|  | ||||
|     // Count the number of bins | ||||
|     d_num_doppler_bins = 0; | ||||
|     for (int doppler = (int)(-d_doppler_max); | ||||
|          doppler <= (int)d_doppler_max; | ||||
|     for (int doppler = static_cast<int>(-d_doppler_max); | ||||
|          doppler <= static_cast<int>(d_doppler_max); | ||||
|          doppler += d_doppler_step) | ||||
|     { | ||||
|         d_num_doppler_bins++; | ||||
| @@ -176,7 +176,7 @@ void pcps_cccwsr_acquisition_cc::init() | ||||
|         { | ||||
|             d_grid_doppler_wipeoffs[doppler_index] = static_cast<gr_complex*>(volk_malloc(d_fft_size * sizeof(gr_complex), volk_get_alignment())); | ||||
|  | ||||
|             int doppler = -(int)d_doppler_max + d_doppler_step * doppler_index; | ||||
|             int doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|             complex_exp_gen_conj(d_grid_doppler_wipeoffs[doppler_index], | ||||
|                                  d_freq + doppler, d_fs_in, d_fft_size); | ||||
|         } | ||||
| @@ -223,7 +223,7 @@ int pcps_cccwsr_acquisition_cc::general_work(int noutput_items, | ||||
|             float magt_plus = 0.0; | ||||
|             float magt_minus = 0.0; | ||||
|             const gr_complex *in = (const gr_complex *)input_items[0]; //Get the input samples pointer | ||||
|             float fft_normalization_factor = (float)d_fft_size * (float)d_fft_size; | ||||
|             float fft_normalization_factor = static_cast<float>(d_fft_size) * static_cast<float>(d_fft_size); | ||||
|  | ||||
|             d_sample_counter += d_fft_size; // sample counter | ||||
|  | ||||
| @@ -238,14 +238,14 @@ int pcps_cccwsr_acquisition_cc::general_work(int noutput_items, | ||||
|             // 1- Compute the input signal power estimation | ||||
|             volk_32fc_magnitude_squared_32f(d_magnitude, in, d_fft_size); | ||||
|             volk_32f_accumulator_s32f(&d_input_power, d_magnitude, d_fft_size); | ||||
|             d_input_power /= (float)d_fft_size; | ||||
|             d_input_power /= static_cast<float>(d_fft_size); | ||||
|  | ||||
|             // 2- Doppler frequency search loop | ||||
|             for (unsigned int doppler_index = 0; doppler_index < d_num_doppler_bins; doppler_index++) | ||||
|                 { | ||||
|                     // doppler search steps | ||||
|  | ||||
|                     doppler = -(int)d_doppler_max + d_doppler_step * doppler_index; | ||||
|                     doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|  | ||||
|                     volk_32fc_x2_multiply_32fc(d_fft_if->get_inbuf(), in, | ||||
|                                 d_grid_doppler_wipeoffs[doppler_index], d_fft_size); | ||||
| @@ -314,8 +314,8 @@ int pcps_cccwsr_acquisition_cc::general_work(int noutput_items, | ||||
|                     if (d_mag < magt) | ||||
|                         { | ||||
|                             d_mag = magt; | ||||
|                             d_gnss_synchro->Acq_delay_samples = (double)(indext % d_samples_per_code); | ||||
|                             d_gnss_synchro->Acq_doppler_hz = (double)doppler; | ||||
|                             d_gnss_synchro->Acq_delay_samples = static_cast<double>(indext % d_samples_per_code); | ||||
|                             d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler); | ||||
|                             d_gnss_synchro->Acq_samplestamp_samples = d_sample_counter; | ||||
|                         } | ||||
|  | ||||
|   | ||||
| @@ -105,7 +105,7 @@ pcps_opencl_acquisition_cc::pcps_opencl_acquisition_cc( | ||||
|     d_well_count = 0; | ||||
|     d_doppler_max = doppler_max; | ||||
|     d_fft_size = d_sampled_ms * d_samples_per_ms; | ||||
|     d_fft_size_pow2 = pow(2, ceil(log2(2*d_fft_size))); | ||||
|     d_fft_size_pow2 = pow(2, ceil(log2(2 * d_fft_size))); | ||||
|     d_mag = 0; | ||||
|     d_input_power = 0.0; | ||||
|     d_num_doppler_bins = 0; | ||||
| @@ -298,8 +298,8 @@ void pcps_opencl_acquisition_cc::init() | ||||
|  | ||||
|     // Count the number of bins | ||||
|     d_num_doppler_bins = 0; | ||||
|     for (int doppler = (int)(-d_doppler_max); | ||||
|          doppler <= (int)d_doppler_max; | ||||
|     for (int doppler = static_cast<int>(-d_doppler_max); | ||||
|          doppler <= static_cast<int>(d_doppler_max); | ||||
|          doppler += d_doppler_step) | ||||
|     { | ||||
|         d_num_doppler_bins++; | ||||
| @@ -316,7 +316,7 @@ void pcps_opencl_acquisition_cc::init() | ||||
|         { | ||||
|             d_grid_doppler_wipeoffs[doppler_index] = static_cast<gr_complex*>(volk_malloc(d_fft_size * sizeof(gr_complex), volk_get_alignment())); | ||||
|  | ||||
|             int doppler= -(int)d_doppler_max + d_doppler_step * doppler_index; | ||||
|             int doppler= -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|             complex_exp_gen_conj(d_grid_doppler_wipeoffs[doppler_index], | ||||
|                                  d_freq + doppler, d_fs_in, d_fft_size); | ||||
|  | ||||
| @@ -381,7 +381,7 @@ void pcps_opencl_acquisition_cc::acquisition_core_volk() | ||||
|     int doppler; | ||||
|     unsigned int indext = 0; | ||||
|     float magt = 0.0; | ||||
|     float fft_normalization_factor = (float)d_fft_size * (float)d_fft_size; | ||||
|     float fft_normalization_factor = static_cast<float>(d_fft_size) * static_cast<float>(d_fft_size); | ||||
|     gr_complex* in = d_in_buffer[d_well_count]; | ||||
|     unsigned long int samplestamp = d_sample_counter_buffer[d_well_count]; | ||||
|  | ||||
| @@ -399,13 +399,13 @@ void pcps_opencl_acquisition_cc::acquisition_core_volk() | ||||
|     // 1- Compute the input signal power estimation | ||||
|     volk_32fc_magnitude_squared_32f(d_magnitude, in, d_fft_size); | ||||
|     volk_32f_accumulator_s32f(&d_input_power, d_magnitude, d_fft_size); | ||||
|     d_input_power /= (float)d_fft_size; | ||||
|     d_input_power /= static_cast<float>(d_fft_size); | ||||
|  | ||||
|     // 2- Doppler frequency search loop | ||||
|     for (unsigned int doppler_index = 0; doppler_index < d_num_doppler_bins; doppler_index++) | ||||
|         { | ||||
|             // doppler search steps | ||||
|             doppler = -(int)d_doppler_max + d_doppler_step*doppler_index; | ||||
|             doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|              | ||||
|             volk_32fc_x2_multiply_32fc(d_fft_if->get_inbuf(), in, | ||||
|                         d_grid_doppler_wipeoffs[doppler_index], d_fft_size); | ||||
| @@ -443,8 +443,8 @@ void pcps_opencl_acquisition_cc::acquisition_core_volk() | ||||
|                     // restarted between consecutive dwells in multidwell operation. | ||||
|                     if (d_test_statistics < (d_mag / d_input_power) || !d_bit_transition_flag) | ||||
|                     { | ||||
|                         d_gnss_synchro->Acq_delay_samples = (double)(indext % d_samples_per_code); | ||||
|                         d_gnss_synchro->Acq_doppler_hz = (double)doppler; | ||||
|                         d_gnss_synchro->Acq_delay_samples = static_cast<double>(indext % d_samples_per_code); | ||||
|                         d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler); | ||||
|                         d_gnss_synchro->Acq_samplestamp_samples = samplestamp; | ||||
|  | ||||
|                         // 5- Compute the test statistics and compare to the threshold | ||||
| @@ -503,7 +503,7 @@ void pcps_opencl_acquisition_cc::acquisition_core_opencl() | ||||
|     int doppler; | ||||
|     unsigned int indext = 0; | ||||
|     float magt = 0.0; | ||||
|     float fft_normalization_factor = ((float)d_fft_size_pow2 * (float)d_fft_size); //This works, but I am not sure why. | ||||
|     float fft_normalization_factor = (static_cast<float>(d_fft_size_pow2) * static_cast<float>(d_fft_size)); //This works, but I am not sure why. | ||||
|     gr_complex* in = d_in_buffer[d_well_count]; | ||||
|     unsigned long int samplestamp = d_sample_counter_buffer[d_well_count]; | ||||
|  | ||||
| @@ -531,7 +531,7 @@ void pcps_opencl_acquisition_cc::acquisition_core_opencl() | ||||
|     // 1- Compute the input signal power estimation | ||||
|     volk_32fc_magnitude_squared_32f(d_magnitude, in, d_fft_size); | ||||
|     volk_32f_accumulator_s32f(&d_input_power, d_magnitude, d_fft_size); | ||||
|     d_input_power /= (float)d_fft_size; | ||||
|     d_input_power /= static_cast<float>(d_fft_size); | ||||
|  | ||||
|     cl::Kernel kernel; | ||||
|  | ||||
| @@ -540,7 +540,7 @@ void pcps_opencl_acquisition_cc::acquisition_core_opencl() | ||||
|         { | ||||
|             // doppler search steps | ||||
|  | ||||
|             doppler = -(int)d_doppler_max + d_doppler_step*doppler_index; | ||||
|             doppler = -static_cast<int>(d_doppler_max) + d_doppler_step*doppler_index; | ||||
|  | ||||
|             //Multiply input signal with doppler wipe-off | ||||
|             kernel = cl::Kernel(d_cl_program, "mult_vectors"); | ||||
| @@ -605,8 +605,8 @@ void pcps_opencl_acquisition_cc::acquisition_core_opencl() | ||||
|                     // restarted between consecutive dwells in multidwell operation. | ||||
|                     if (d_test_statistics < (d_mag / d_input_power) || !d_bit_transition_flag) | ||||
|                     { | ||||
|                         d_gnss_synchro->Acq_delay_samples = (double)(indext % d_samples_per_code); | ||||
|                         d_gnss_synchro->Acq_doppler_hz = (double)doppler; | ||||
|                         d_gnss_synchro->Acq_delay_samples = static_cast<double>(indext % d_samples_per_code); | ||||
|                         d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler); | ||||
|                         d_gnss_synchro->Acq_samplestamp_samples = samplestamp; | ||||
|  | ||||
|                         // 5- Compute the test statistics and compare to the threshold | ||||
| @@ -702,7 +702,7 @@ int pcps_opencl_acquisition_cc::general_work(int noutput_items, | ||||
|                     // Fill internal buffer with d_max_dwells signal blocks. This step ensures that | ||||
|                     // consecutive signal blocks will be processed in multi-dwell operation. This is | ||||
|                     // essential when d_bit_transition_flag = true. | ||||
|                     unsigned int num_dwells = std::min((int)(d_max_dwells-d_in_dwell_count), ninput_items[0]); | ||||
|                     unsigned int num_dwells = std::min(static_cast<int>(d_max_dwells-d_in_dwell_count), ninput_items[0]); | ||||
|                     for (unsigned int i = 0; i < num_dwells; i++) | ||||
|                         { | ||||
|                             memcpy(d_in_buffer[d_in_dwell_count++], (gr_complex*)input_items[i], | ||||
| @@ -711,7 +711,7 @@ int pcps_opencl_acquisition_cc::general_work(int noutput_items, | ||||
|                             d_sample_counter_buffer.push_back(d_sample_counter); | ||||
|                         } | ||||
|  | ||||
|                     if (ninput_items[0] > (int)num_dwells) | ||||
|                     if (ninput_items[0] > static_cast<int>(num_dwells)) | ||||
|                         { | ||||
|                             d_sample_counter += d_fft_size * (ninput_items[0] - num_dwells); | ||||
|                         } | ||||
|   | ||||
| @@ -187,8 +187,8 @@ void pcps_quicksync_acquisition_cc::init() | ||||
|  | ||||
|     // Count the number of bins | ||||
|     d_num_doppler_bins = 0; | ||||
|     for (int doppler = (int)(-d_doppler_max); | ||||
|             doppler <= (int)(d_doppler_max); | ||||
|     for (int doppler = static_cast<int>(-d_doppler_max); | ||||
|             doppler <= static_cast<int>(d_doppler_max); | ||||
|             doppler += d_doppler_step) | ||||
|         { | ||||
|             d_num_doppler_bins++; | ||||
| @@ -199,7 +199,7 @@ void pcps_quicksync_acquisition_cc::init() | ||||
|     for (unsigned int doppler_index = 0; doppler_index < d_num_doppler_bins; doppler_index++) | ||||
|         { | ||||
|             d_grid_doppler_wipeoffs[doppler_index] = static_cast<gr_complex*>(volk_malloc(d_samples_per_code * d_folding_factor * sizeof(gr_complex), volk_get_alignment())); | ||||
|             int doppler = -(int)d_doppler_max + d_doppler_step * doppler_index; | ||||
|             int doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|             complex_exp_gen_conj(d_grid_doppler_wipeoffs[doppler_index], | ||||
|                     d_freq + doppler, d_fs_in, | ||||
|                     d_samples_per_code * d_folding_factor); | ||||
| @@ -273,7 +273,7 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items, | ||||
|             /*Stores a copy of the folded version of the signal.This is used for | ||||
|             the FFT operations in future steps of excecution*/ | ||||
|             // gr_complex in_folded[d_fft_size]; | ||||
|             float fft_normalization_factor = (float)d_fft_size * (float)d_fft_size; | ||||
|             float fft_normalization_factor = static_cast<float>(d_fft_size) * static_cast<float>(d_fft_size); | ||||
|  | ||||
|             d_input_power = 0.0; | ||||
|             d_mag = 0.0; | ||||
| @@ -299,7 +299,7 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items, | ||||
|                being performed in a signal of size nxp */ | ||||
|             volk_32fc_magnitude_squared_32f(d_magnitude, in, d_samples_per_code * d_folding_factor); | ||||
|             volk_32f_accumulator_s32f(&d_input_power, d_magnitude, d_samples_per_code * d_folding_factor); | ||||
|             d_input_power /= (float)(d_samples_per_code * d_folding_factor); | ||||
|             d_input_power /= static_cast<float>(d_samples_per_code * d_folding_factor); | ||||
|  | ||||
|             for (unsigned int doppler_index = 0; doppler_index < d_num_doppler_bins; doppler_index++) | ||||
|                 { | ||||
| @@ -312,7 +312,7 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items, | ||||
|                     /*Doppler search steps and then multiplication of the incoming | ||||
|                     signal with the doppler wipeoffs to eliminate frequency offset | ||||
|                      */ | ||||
|                     doppler = -(int)d_doppler_max + d_doppler_step*doppler_index; | ||||
|                     doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|  | ||||
|                     /*Perform multiplication of the incoming signal with the | ||||
|                    complex exponential vector. This removes the frequency doppler | ||||
| @@ -324,7 +324,7 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items, | ||||
|                     /*Perform folding of the carrier wiped-off incoming signal. Since | ||||
|                    superlinear method is being used the folding factor in the | ||||
|                    incoming raw data signal is of d_folding_factor^2*/ | ||||
|                     for ( int i = 0; i < (int)(d_folding_factor*d_folding_factor); i++) | ||||
|                     for ( int i = 0; i < static_cast<int>(d_folding_factor * d_folding_factor); i++) | ||||
|                         { | ||||
|                             std::transform ((in_temp + i * d_fft_size), | ||||
|                                     (in_temp + ((i + 1) * d_fft_size)) , | ||||
| @@ -357,7 +357,7 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items, | ||||
|                     // (1 / (fft_normalization_factor * fft_normalization_factor)), d_fft_size); | ||||
|                     volk_32f_index_max_16u(&indext, d_magnitude_folded, d_fft_size); | ||||
|  | ||||
|                     magt = d_magnitude_folded[indext]/ (fft_normalization_factor * fft_normalization_factor); | ||||
|                     magt = d_magnitude_folded[indext] / (fft_normalization_factor * fft_normalization_factor); | ||||
|  | ||||
|                     delete d_signal_folded; | ||||
|  | ||||
| @@ -380,26 +380,25 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items, | ||||
|                                     gr_complex complex_acumulator[100]; | ||||
|                                     //gr_complex complex_acumulator[d_folding_factor]; | ||||
|  | ||||
|                                     for (int i = 0; i < (int)d_folding_factor; i++) | ||||
|                                     for (int i = 0; i < static_cast<int>(d_folding_factor); i++) | ||||
|                                         { | ||||
|                                             d_possible_delay[i] = detected_delay_samples_folded + (i)*d_fft_size; | ||||
|                                             d_possible_delay[i] = detected_delay_samples_folded + (i) * d_fft_size; | ||||
|                                         } | ||||
|  | ||||
|                                     for ( int i = 0; i < (int)d_folding_factor; i++) | ||||
|                                     for ( int i = 0; i < static_cast<int>(d_folding_factor); i++) | ||||
|                                         { | ||||
|  | ||||
|                                             /*Copy a signal of 1 code length into suggested buffer. | ||||
|                                                                       The copied signal must have doppler effect corrected*/ | ||||
|                                             memcpy(in_1code,&in_temp[d_possible_delay[i]], | ||||
|                                                     sizeof(gr_complex)*(d_samples_per_code)); | ||||
|                                                     sizeof(gr_complex) * (d_samples_per_code)); | ||||
|  | ||||
|                                             /*Perform multiplication of the unmodified local | ||||
|                                                               generated code with the incoming signal with doppler | ||||
|                                                               effect corrected and accumulates its value. This | ||||
|                                                               is indeed correlation in time for an specific value | ||||
|                                                               of a shift*/ | ||||
|                                             volk_32fc_x2_multiply_32fc(corr_output, in_1code, | ||||
|                                                     d_code, d_samples_per_code); | ||||
|                                             volk_32fc_x2_multiply_32fc(corr_output, in_1code, d_code, d_samples_per_code); | ||||
|  | ||||
|                                             for(int j = 0; j < d_samples_per_code; j++) | ||||
|                                                 { | ||||
| @@ -412,8 +411,8 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items, | ||||
|                                     volk_32f_index_max_16u(&indext, d_corr_output_f, d_folding_factor); | ||||
|  | ||||
|                                     /*Now save the real code phase in the gnss_syncro block for use in other stages*/ | ||||
|                                     d_gnss_synchro->Acq_delay_samples = (double)(d_possible_delay[indext]); | ||||
|                                     d_gnss_synchro->Acq_doppler_hz = (double)doppler; | ||||
|                                     d_gnss_synchro->Acq_delay_samples = static_cast<double>(d_possible_delay[indext]); | ||||
|                                     d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler); | ||||
|                                     d_gnss_synchro->Acq_samplestamp_samples = d_sample_counter; | ||||
|  | ||||
|                                     /* 5- Compute the test statistics and compare to the threshold d_test_statistics = 2 * d_fft_size * d_mag / d_input_power;*/ | ||||
| @@ -488,7 +487,7 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items, | ||||
|             DLOG(INFO) << "test statistics threshold " << d_threshold; | ||||
|             DLOG(INFO) << "folding factor " << d_folding_factor; | ||||
|             DLOG(INFO) << "possible delay correlation output"; | ||||
|             for (int i = 0; i < (int)d_folding_factor; i++) DLOG(INFO) << d_possible_delay[i] <<"\t\t\t"<<d_corr_output_f[i]; | ||||
|             for (int i = 0; i < static_cast<int>(d_folding_factor); i++) DLOG(INFO) << d_possible_delay[i] << "\t\t\t" << d_corr_output_f[i]; | ||||
|             DLOG(INFO) << "code phase " << d_gnss_synchro->Acq_delay_samples; | ||||
|             DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz; | ||||
|             DLOG(INFO) << "magnitude folded " << d_mag; | ||||
| @@ -517,7 +516,7 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items, | ||||
|             DLOG(INFO) << "test statistics threshold " << d_threshold; | ||||
|             DLOG(INFO) << "folding factor "<<d_folding_factor; | ||||
|             DLOG(INFO) << "possible delay	corr output"; | ||||
|             for (int i = 0; i < (int)d_folding_factor; i++) DLOG(INFO) << d_possible_delay[i] << "\t\t\t" << d_corr_output_f[i]; | ||||
|             for (int i = 0; i < static_cast<int>(d_folding_factor); i++) DLOG(INFO) << d_possible_delay[i] << "\t\t\t" << d_corr_output_f[i]; | ||||
|             DLOG(INFO) << "code phase " << d_gnss_synchro->Acq_delay_samples; | ||||
|             DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz; | ||||
|             DLOG(INFO) << "magnitude folded " << d_mag; | ||||
|   | ||||
| @@ -158,8 +158,8 @@ void pcps_tong_acquisition_cc::init() | ||||
|  | ||||
|     // Count the number of bins | ||||
|     d_num_doppler_bins = 0; | ||||
|     for (int doppler = (int)(-d_doppler_max); | ||||
|          doppler <= (int)d_doppler_max; | ||||
|     for (int doppler = static_cast<int>(-d_doppler_max); | ||||
|          doppler <= static_cast<int>(d_doppler_max); | ||||
|          doppler += d_doppler_step) | ||||
|     { | ||||
|         d_num_doppler_bins++; | ||||
| @@ -172,7 +172,7 @@ void pcps_tong_acquisition_cc::init() | ||||
|         { | ||||
|             d_grid_doppler_wipeoffs[doppler_index] = static_cast<gr_complex*>(volk_malloc(d_fft_size * sizeof(gr_complex), volk_get_alignment())); | ||||
|  | ||||
|             int doppler = -(int)d_doppler_max + d_doppler_step * doppler_index; | ||||
|             int doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|  | ||||
|             complex_exp_gen_conj(d_grid_doppler_wipeoffs[doppler_index], | ||||
|                                  d_freq + doppler, d_fs_in, d_fft_size); | ||||
| @@ -232,7 +232,7 @@ int pcps_tong_acquisition_cc::general_work(int noutput_items, | ||||
|             unsigned int indext = 0; | ||||
|             float magt = 0.0; | ||||
|             const gr_complex *in = (const gr_complex *)input_items[0]; //Get the input samples pointer | ||||
|             float fft_normalization_factor = (float)d_fft_size * (float)d_fft_size; | ||||
|             float fft_normalization_factor = static_cast<float>(d_fft_size) * static_cast<float>(d_fft_size); | ||||
|             d_input_power = 0.0; | ||||
|             d_mag = 0.0; | ||||
|  | ||||
| @@ -249,14 +249,14 @@ int pcps_tong_acquisition_cc::general_work(int noutput_items, | ||||
|             // 1- Compute the input signal power estimation | ||||
|             volk_32fc_magnitude_squared_32f(d_magnitude, in, d_fft_size); | ||||
|             volk_32f_accumulator_s32f(&d_input_power, d_magnitude, d_fft_size); | ||||
|             d_input_power /= (float)d_fft_size; | ||||
|             d_input_power /= static_cast<float>(d_fft_size); | ||||
|  | ||||
|             // 2- Doppler frequency search loop | ||||
|             for (unsigned int doppler_index = 0; doppler_index < d_num_doppler_bins; doppler_index++) | ||||
|                 { | ||||
|                     // doppler search steps | ||||
|  | ||||
|                     doppler = -(int)d_doppler_max + d_doppler_step*doppler_index; | ||||
|                     doppler = -static_cast<int>(d_doppler_max) + d_doppler_step * doppler_index; | ||||
|  | ||||
|                     volk_32fc_x2_multiply_32fc(d_fft_if->get_inbuf(), in, | ||||
|                                 d_grid_doppler_wipeoffs[doppler_index], d_fft_size); | ||||
| @@ -293,8 +293,8 @@ int pcps_tong_acquisition_cc::general_work(int noutput_items, | ||||
|                     if (d_mag < magt) | ||||
|                         { | ||||
|                             d_mag = magt; | ||||
|                             d_gnss_synchro->Acq_delay_samples = (double)(indext % d_samples_per_code); | ||||
|                             d_gnss_synchro->Acq_doppler_hz = (double)doppler; | ||||
|                             d_gnss_synchro->Acq_delay_samples = static_cast<double>(indext % d_samples_per_code); | ||||
|                             d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler); | ||||
|                             d_gnss_synchro->Acq_samplestamp_samples = d_sample_counter; | ||||
|                         } | ||||
|  | ||||
|   | ||||
| @@ -456,7 +456,7 @@ int galileo_e5a_telemetry_decoder_cc::general_work (int noutput_items, gr_vector | ||||
| 					    { | ||||
| 						d_CRC_error_counter = 0; | ||||
| 						d_flag_preamble = true; //valid preamble indicator (initialized to false every work()) | ||||
| 						d_preamble_time_seconds = in[0][0].Tracking_timestamp_secs - ((double)(GALILEO_FNAV_CODES_PER_PAGE+GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD); //record the PRN start sample index associated to the preamble start. | ||||
| 						d_preamble_time_seconds = in[0][0].Tracking_timestamp_secs - (static_cast<double>(GALILEO_FNAV_CODES_PER_PAGE+GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD); //record the PRN start sample index associated to the preamble start. | ||||
| 						if (!d_flag_frame_sync) | ||||
| 						    { | ||||
| 							d_flag_frame_sync = true; | ||||
| @@ -505,25 +505,25 @@ int galileo_e5a_telemetry_decoder_cc::general_work (int noutput_items, gr_vector | ||||
| 	    if (d_nav.flag_TOW_1 == true) | ||||
| 		{ | ||||
| 		    d_TOW_at_Preamble = d_nav.FNAV_TOW_1; | ||||
| 		    d_TOW_at_current_symbol = d_TOW_at_Preamble + ((double)(GALILEO_FNAV_CODES_PER_PAGE+GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD); | ||||
| 		    d_TOW_at_current_symbol = d_TOW_at_Preamble + (static_cast<double>(GALILEO_FNAV_CODES_PER_PAGE+GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD); | ||||
| 		    d_nav.flag_TOW_1 = false; | ||||
| 		} | ||||
| 	    if (d_nav.flag_TOW_2 == true) | ||||
| 		{ | ||||
| 		    d_TOW_at_Preamble = d_nav.FNAV_TOW_2; | ||||
| 		    d_TOW_at_current_symbol = d_TOW_at_Preamble + ((double)(GALILEO_FNAV_CODES_PER_PAGE+GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD); | ||||
| 		    d_TOW_at_current_symbol = d_TOW_at_Preamble + (static_cast<double>(GALILEO_FNAV_CODES_PER_PAGE+GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD); | ||||
| 		    d_nav.flag_TOW_2 = false; | ||||
| 		} | ||||
| 	    if (d_nav.flag_TOW_3 == true) | ||||
| 		{ | ||||
| 		    d_TOW_at_Preamble = d_nav.FNAV_TOW_3; | ||||
| 		    d_TOW_at_current_symbol = d_TOW_at_Preamble + ((double)(GALILEO_FNAV_CODES_PER_PAGE+GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD); | ||||
| 		    d_TOW_at_current_symbol = d_TOW_at_Preamble + (static_cast<double>(GALILEO_FNAV_CODES_PER_PAGE+GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD); | ||||
| 		    d_nav.flag_TOW_3 = false; | ||||
| 		} | ||||
| 	    if (d_nav.flag_TOW_4 == true) | ||||
| 		{ | ||||
| 		    d_TOW_at_Preamble = d_nav.FNAV_TOW_4; | ||||
| 		    d_TOW_at_current_symbol = d_TOW_at_Preamble + ((double)(GALILEO_FNAV_CODES_PER_PAGE+GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD); | ||||
| 		    d_TOW_at_current_symbol = d_TOW_at_Preamble + (static_cast<double>(GALILEO_FNAV_CODES_PER_PAGE+GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD); | ||||
| 		    d_nav.flag_TOW_4 = false; | ||||
| 		} | ||||
| 	    else | ||||
|   | ||||
| @@ -67,7 +67,7 @@ double Galileo_Utc_Model::GST_to_UTC_time(double t_e, int WN) | ||||
|                      * the GST/Utc relationship is given by | ||||
|                      */ | ||||
|                     //std::cout<<"GST->UTC case a"<<std::endl; | ||||
|                     Delta_t_Utc =  Delta_tLS_6 + A0_6 + A1_6 * (t_e - t0t_6 + 604800 * (double)((WN % 256) - WNot_6)); | ||||
|                     Delta_t_Utc =  Delta_tLS_6 + A0_6 + A1_6 * (t_e - t0t_6 + 604800 * static_cast<double>((WN % 256) - WNot_6)); | ||||
|                     t_Utc_daytime = fmod(t_e - Delta_t_Utc, 86400); | ||||
|                 } | ||||
|             else | ||||
| @@ -78,7 +78,7 @@ double Galileo_Utc_Model::GST_to_UTC_time(double t_e, int WN) | ||||
|                      * the effective time is computed according to the following equations: | ||||
|                      */ | ||||
|                     //std::cout<<"GST->UTC case b"<<std::endl; | ||||
|                     Delta_t_Utc =  Delta_tLS_6 + A0_6 + A1_6 * (t_e - t0t_6 + 604800 * (double)((WN % 256) - WNot_6)); | ||||
|                     Delta_t_Utc =  Delta_tLS_6 + A0_6 + A1_6 * (t_e - t0t_6 + 604800 * static_cast<double>((WN % 256) - WNot_6)); | ||||
|                     double W = fmod(t_e - Delta_t_Utc - 43200, 86400) + 43200; | ||||
|                     t_Utc_daytime = fmod(W, 86400 + Delta_tLSF_6 - Delta_tLS_6); | ||||
|                     //implement something to handle a leap second event! | ||||
| @@ -94,7 +94,7 @@ double Galileo_Utc_Model::GST_to_UTC_time(double t_e, int WN) | ||||
|              * the following equation: | ||||
|              */ | ||||
|             //std::cout<<"GST->UTC case c"<<std::endl; | ||||
|             Delta_t_Utc = Delta_tLSF_6 + A0_6 + A1_6 * (t_e - t0t_6 + 604800 * (double)((WN % 256) - WNot_6)); | ||||
|             Delta_t_Utc = Delta_tLSF_6 + A0_6 + A1_6 * (t_e - t0t_6 + 604800 * static_cast<double>((WN % 256) - WNot_6)); | ||||
|             t_Utc_daytime = fmod(t_e - Delta_t_Utc, 86400); | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -47,7 +47,7 @@ double Gps_Utc_Model::utc_time(double gpstime_corrected, int i_GPS_week) | ||||
| { | ||||
|     double t_utc; | ||||
|     double t_utc_daytime; | ||||
|     double Delta_t_UTC =  d_DeltaT_LS + d_A0 + d_A1 * (gpstime_corrected - d_t_OT + 604800 * (double)(i_GPS_week - i_WN_T)); | ||||
|     double Delta_t_UTC =  d_DeltaT_LS + d_A0 + d_A1 * (gpstime_corrected - d_t_OT + 604800 * static_cast<double>(i_GPS_week - i_WN_T)); | ||||
|  | ||||
|     // Determine if the effectivity time of the leap second event is in the past | ||||
|     int  weeksToLeapSecondEvent = i_WN_LSF - i_GPS_week; | ||||
| @@ -87,7 +87,7 @@ double Gps_Utc_Model::utc_time(double gpstime_corrected, int i_GPS_week) | ||||
|                         } | ||||
|                     if ( (gpstime_corrected - secondOfLeapSecondEvent) > 21600) | ||||
|                         { | ||||
|                             Delta_t_UTC = d_DeltaT_LSF + d_A0 + d_A1 * (gpstime_corrected - d_t_OT + 604800*(double)(i_GPS_week - i_WN_T)); | ||||
|                             Delta_t_UTC = d_DeltaT_LSF + d_A0 + d_A1 * (gpstime_corrected - d_t_OT + 604800 * static_cast<double>(i_GPS_week - i_WN_T)); | ||||
|                             t_utc_daytime = fmod(gpstime_corrected - Delta_t_UTC, 86400); | ||||
|                         } | ||||
|                 } | ||||
| @@ -99,7 +99,7 @@ double Gps_Utc_Model::utc_time(double gpstime_corrected, int i_GPS_week) | ||||
|              * WNLSF and DN values, is in the "past" (relative to the user's current time), | ||||
|              * and the user<65>s current time does not fall in the time span as given above | ||||
|              * in 20.3.3.5.2.4b,*/ | ||||
|             Delta_t_UTC = d_DeltaT_LSF + d_A0 + d_A1 * (gpstime_corrected - d_t_OT + 604800 * (double)(i_GPS_week - i_WN_T)); | ||||
|             Delta_t_UTC = d_DeltaT_LSF + d_A0 + d_A1 * (gpstime_corrected - d_t_OT + 604800 * static_cast<double>(i_GPS_week - i_WN_T)); | ||||
|             t_utc_daytime = fmod(gpstime_corrected - Delta_t_UTC, 86400); | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -178,7 +178,7 @@ int main(int argc, char** argv) | ||||
|     gettimeofday(&tv, NULL); | ||||
|     long long int end = tv.tv_sec * 1000000 + tv.tv_usec; | ||||
|     std::cout << "Total GNSS-SDR run time " | ||||
|               << ((double)(end - begin))/1000000.0 | ||||
|               << (static_cast<double>(end - begin)) / 1000000.0 | ||||
|               << " [seconds]" << std::endl; | ||||
|  | ||||
|     google::ShutDownCommandLineFlags(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez