diff --git a/src/examples/gnss_utils_test.cpp b/src/examples/gnss_utils_test.cpp index 362668760a97d51db5d049ed28d0f2be12e3556e..ad1074b97c4e0cb9df8fc5b8e437bcaabab15ed8 100644 --- a/src/examples/gnss_utils_test.cpp +++ b/src/examples/gnss_utils_test.cpp @@ -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; diff --git a/src/getPos.cpp b/src/getPos.cpp index 86b04164fd6578da5a2ea936d6d84fb7607d60b6..e250bb05c9d9bbbbab60b7f9586fb6690fb0ec1d 100644 --- a/src/getPos.cpp +++ b/src/getPos.cpp @@ -16,7 +16,7 @@ static int getPos(Observations observations, Navigation navigation, sol_t sol) 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; diff --git a/src/navigation.cpp b/src/navigation.cpp index e2a64f4a4cb2dae5b579465fd445d0157c55987a..72ae9658fa9bad0e32e939ba84ba8c4753ea0dd1 100644 --- a/src/navigation.cpp +++ b/src/navigation.cpp @@ -87,7 +87,7 @@ void Navigation::setNavigation(nav_t nav) */ - // _nav = nav; + _nav = nav; } const nav_t & Navigation::getNavigation() const