From 6e8e228b96a671a38a42dc539d6aab6d968abe95 Mon Sep 17 00:00:00 2001 From: PepMS <jmarti@iri.upc.edu> Date: Thu, 3 Oct 2019 13:19:00 +0200 Subject: [PATCH] Add option to computePos --- include/gnss_utils/gnss_utils.h | 7 ++++--- src/gnss_utils.cpp | 33 +++++++++++++++++---------------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/include/gnss_utils/gnss_utils.h b/include/gnss_utils/gnss_utils.h index 5de1c22..c09b7d2 100644 --- a/include/gnss_utils/gnss_utils.h +++ b/include/gnss_utils/gnss_utils.h @@ -19,7 +19,7 @@ extern "C" namespace GNSSUtils { - struct getPosOutput{ + struct fixPosOutput{ time_t time; double sec; Eigen::Vector3d pos; // position (m) @@ -37,8 +37,9 @@ namespace GNSSUtils Eigen::Vector3d lat_lon; // latitude_longitude_altitude }; - GNSSUtils::getPosOutput getPos(const std::shared_ptr<Observations> & _observations, - const std::shared_ptr<Navigation> & _navigation); + GNSSUtils::fixPosOutput computePos(const std::shared_ptr<Observations> & _observations, + const std::shared_ptr<Navigation> & _navigation, + const std::shared_ptr<prcopt_t> & _prcopt); Eigen::Vector3d ecefToLatLon(const Eigen::Vector3d & _ecef); } diff --git a/src/gnss_utils.cpp b/src/gnss_utils.cpp index ed36ae3..4025394 100644 --- a/src/gnss_utils.cpp +++ b/src/gnss_utils.cpp @@ -2,36 +2,37 @@ namespace GNSSUtils { - GNSSUtils::getPosOutput getPos(const std::shared_ptr<GNSSUtils::Observations> & _observations, - const std::shared_ptr<GNSSUtils::Navigation> & _navigation) + GNSSUtils::fixPosOutput computePos(const std::shared_ptr<GNSSUtils::Observations> & _observations, + const std::shared_ptr<GNSSUtils::Navigation> & _navigation, + const std::shared_ptr<prcopt_t> & _prcopt) { // Remove duplicated satellites uniqnav(&(_navigation->getNavigation())); // Define processing options - 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.sateph = EPHOPT_BRDC; - prcopt.ionoopt = IONOOPT_OFF; - prcopt.tropopt = TROPOPT_OFF; - prcopt.dynamics = 0; - prcopt.tidecorr = 0; - prcopt.sbascorr = SBSOPT_FCORR; + // 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.sateph = EPHOPT_BRDC; + // prcopt.ionoopt = IONOOPT_OFF; + // prcopt.tropopt = TROPOPT_OFF; + // prcopt.dynamics = 0; + // prcopt.tidecorr = 0; + // prcopt.sbascorr = SBSOPT_FCORR; // Define error msg char msg[128] = ""; - GNSSUtils::getPosOutput output; + GNSSUtils::fixPosOutput output; sol_t sol; sol = {{0}}; output.pos_stat = pntpos(&(_observations->getObservations()[0]), _observations->getObservations().size(), &(_navigation->getNavigation()), - &prcopt, &sol, NULL, NULL, msg); + _prcopt.get(), &sol, NULL, NULL, msg); output.time = sol.time.time; output.time = sol.time.sec; -- GitLab