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