· Non-optimised multi-dwell acquisition with fine doppler estimation is now enabled in the block factory (It is used by the front-end calibration utility). It can be instantiated from the configuration file.

· Bug fixed in the configuration parser that prevented the use of non-integer thresholds
· Provisional patch added to disable the PVT output if the height is above 50 km (due to a random bug that appears with some satellite configurations..)




git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@407 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
Javier Arribas 2013-08-20 18:05:26 +00:00
parent c0e103aabc
commit 74817d6d07
3 changed files with 13 additions and 2 deletions

View File

@ -336,7 +336,12 @@ bool gps_l1_ca_ls_pvt::get_PVT(std::map<int,Gnss_Synchro> gnss_pseudoranges_map,
mypos = leastSquarePos(satpos, obs, W);
DLOG(INFO) << "(new)Position at TOW=" << GPS_current_time << " in ECEF (X,Y,Z) = " << mypos << std::endl;
gps_l1_ca_ls_pvt::cart2geo(mypos(0), mypos(1), 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)
{
b_valid_position=false;
return false; //erratic PVT
}
// 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);

View File

@ -84,7 +84,7 @@ Channel::Channel(ConfigurationInterface *configuration, unsigned int channel,
float threshold = configuration->property("Acquisition" + boost::lexical_cast<std::string>(channel_)
+ ".threshold",0.0);
if(threshold==0.0) threshold = configuration->property("Acquisition.threshold",0);
if(threshold==0.0) threshold = configuration->property("Acquisition.threshold",0.0);
acq_->set_threshold(threshold);

View File

@ -55,6 +55,7 @@
#include "freq_xlating_fir_filter.h"
#include "gps_l1_ca_pcps_acquisition.h"
#include "gps_l1_ca_pcps_assisted_acquisition.h"
#include "gps_l1_ca_pcps_acquisition_fine_doppler.h"
#include "galileo_e1_pcps_ambiguous_acquisition.h"
#include "gps_l1_ca_dll_pll_tracking.h"
#include "gps_l1_ca_dll_pll_optim_tracking.h"
@ -336,6 +337,11 @@ GNSSBlockInterface* GNSSBlockFactory::GetBlock(
block = new GalileoE1PcpsAmbiguousAcquisition(configuration, role, in_streams,
out_streams, queue);
}
else if (implementation.compare("GPS_L1_CA_PCPS_Acquisition_Fine_Doppler") == 0)
{
block = new GpsL1CaPcpsAcquisitionFineDoppler(configuration, role, in_streams,
out_streams, queue);
}
// TRACKING BLOCKS -------------------------------------------------------------
else if (implementation.compare("GPS_L1_CA_DLL_PLL_Tracking") == 0)