Skip to content
Snippets Groups Projects

Resolve "Enable Standard Point Positioning (SPP) computation"

3 files
+ 51
34
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -39,19 +39,22 @@ int createObsAndNav(Observations* observations, char* obs_path, Navigation* nav
obs_t obs;
obs.data = (obsd_t *) malloc(sizeof(obsd_t)*MAXSAT);
/* header */
std::cout << "------------" << std::endl;
std::cout << "Observations" << std::endl;
std::cout << "------------" << std::endl;
if (readrnx(obs_path, rcv, opt, &obs, NULL, NULL))
{
obs.data[0].P[0] = 22352029.710;
obs.data[1].P[0] = 20876138.578;
obs.data[2].P[0] = 20922649.533;
obs.data[3].P[0] = 24736002.147;
obs.data[4].P[0] = 21596022.619;
sortobs(&obs);
obs.data[0].P[0] = 21597659.275;
obs.data[1].P[0] = 22348322.550;
obs.data[2].P[0] = 20873167.574;
obs.data[3].P[0] = 20920707.830;
std::cout << "Obs number: " << obs.n << std::endl;
sortobs(&obs);
}
@@ -65,7 +68,7 @@ int createObsAndNav(Observations* observations, char* obs_path, Navigation* nav
for (int i=0; i < obs.n; i++)
{
std::cout << "time: " << obs.data[i].time.time << " | sat: " << int(obs.data[i].sat) << " | rcv: " << obs.data[i].rcv <<
std::cout << "time: " << time_str(obs.data[i].time, 3) << " | sat: " << int(obs.data[i].sat) << " | rcv: " << obs.data[i].rcv <<
" | SNR: " << obs.data[i].SNR[0] << " | LLI: " << obs.data[i].LLI[0] << " | code: " << obs.data[i].code[0] <<
" | L: " << obs.data[i].L[0] << " | P: " << obs.data[i].P[0] << " | D: " << obs.data[i].D[0] << std::endl;
observations->pushObservation(obs.data[i]);
@@ -73,17 +76,22 @@ int createObsAndNav(Observations* observations, char* obs_path, Navigation* nav
free(obs.data);
/* header */
std::cout << "----------" << std::endl;
std::cout << "Navigation" << std::endl;
std::cout << "----------" << std::endl;
/* Load _nav attribute into nav variable */
nav_t nav = navigation->getNavigation();
if (readrnx(nav_path, rcv, opt, NULL, &nav, NULL))
{
std::cout << "Navigation file loaded" << std::endl;
std::cout << "GPS satellites: " << nav.n << std::endl;
std::cout << "GLONASS satellites: " << nav.ng << std::endl;
std::cout << "SBAS satellites: " << nav.ns << std::endl;
std::cout << "Almanac satellites: " << nav.na << std::endl;
std::cout << "Navigation file loaded." << std::endl;
std::cout << "GPS satellites in navigation file: " << nav.n << std::endl;
std::cout << "GLONASS satellites in navigation file: " << nav.ng << std::endl;
std::cout << "SBAS satellites in navigation file: " << nav.ns << std::endl;
std::cout << "Almanac satellites in navigation file: " << nav.na << std::endl;
uniqnav(&nav);
}
@@ -110,17 +118,13 @@ int createObsAndNav(Observations* observations, char* obs_path, Navigation* nav
{
std::cout << i << " SBAS Sat Id: " << nav.seph[i].sat << std::endl;
}
/* Load nav into Navigation object*/
navigation->setNavigation(nav);
std::cout << "Navigation message loaded to Navigation class." << std::endl;
return 1;
}
@@ -142,22 +146,25 @@ int main(int argc, char *argv[])
// create Navigation object
Navigation navigation;
createObsAndNav(&observations, "/home/jlaplaza/gitlab/gnss_utils/src/examples/raw_201805171357.obs" ,&navigation, "/home/jlaplaza/gitlab/gnss_utils/src/examples/raw_201805171357.nav");
createObsAndNav(&observations, "/home/jlaplaza/gitlab/gnss_utils/src/examples/raw_201805171357.obs", &navigation, "/home/jlaplaza/gitlab/gnss_utils/src/examples/raw_201805171357.nav");
nav_t nav2 = navigation.getNavigation();
nav_t nav = navigation.getNavigation();
std::cout << "Navigation eph number " << nav2.n << std::endl;
std::cout << "Navigation eph number " << nav.n << std::endl;
/* Set processing options */
/* header */
std::cout << "------------------" << std::endl;
std::cout << "Processing options" << std::endl;
std::cout << "------------------" << std::endl;
prcopt_t prcopt = prcopt_default;
prcopt.mode = PMODE_SINGLE;
prcopt.soltype = 0;
prcopt.nf = 1;
prcopt.navsys = SYS_GPS;
prcopt.elmin = 1.05; // 60 degrees = 1.05 rad
//prcopt.elmin = 1.05; // 60 degrees = 1.05 rad
prcopt.sateph = EPHOPT_BRDC;
prcopt.ionoopt = IONOOPT_OFF;
prcopt.tropopt = TROPOPT_OFF;
@@ -171,8 +178,13 @@ int main(int argc, char *argv[])
std::cout << "Processing options defined" << std::endl;
//Compute fix
//Compute spp
/* header */
std::cout << "-----------" << std::endl;
std::cout << "pntpos call" << std::endl;
std::cout << "-----------" << std::endl;
int stat;
sol_t solb={{0}};
@@ -181,15 +193,20 @@ int main(int argc, char *argv[])
std::vector<obsd_t> obs = observations.getObservations();
std::cout << "obs: " << obs[0].P[0] << std::endl;
nav_t nav = navigation.getNavigation();
for (int i=0; i < obs.size(); i++)
{
std::cout << "time: " << time_str(obs[i].time, 3) << " | sat: " << int(obs[i].sat) << " | rcv: " << obs[i].rcv <<
" | SNR: " << obs[i].SNR[0] << " | LLI: " << obs[i].LLI[0] << " | code: " << obs[i].code[0] <<
" | L: " << obs[i].L[0] << " | P: " << obs[i].P[0] << " | D: " << obs[i].D[0] << std::endl;
}
stat = pntpos(&(obs[0]), obs.size(), &nav, &prcopt, &solb, NULL, NULL, msg);
std::cout << "obs.size(): " << obs.size() << std::endl;
stat = pntpos(&obs[0], obs.size(), &nav, &prcopt, &solb, NULL, NULL, msg);
std::cout << "msg: " << msg << std::endl;
std::cout << "Stat: " << stat << std::endl;
std::cout << "sol.stat: " << solb.stat << std::endl;
std::cout << "Position: " << solb.rr[0] << ", " << solb.rr[1] << ", " << solb.rr[2] << std::endl;
Loading