From aed850a29675377b88d5c13519eabfcec61f6ed8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Vallv=C3=A9=20Navarro?= <jvallve@iri.upc.edu>
Date: Thu, 11 Jun 2020 09:10:39 +0200
Subject: [PATCH] New pntpos output

---
 include/gnss_utils/gnss_utils.h |  3 ++-
 src/utils/rcv_position.cpp      | 20 +++++++++-----------
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/include/gnss_utils/gnss_utils.h b/include/gnss_utils/gnss_utils.h
index f2be565..66228d6 100644
--- a/include/gnss_utils/gnss_utils.h
+++ b/include/gnss_utils/gnss_utils.h
@@ -42,7 +42,8 @@ struct ComputePosOutput
   double          age;        // age of differential (s)
   double          ratio;      // AR ratio factor for valiation
 
-  int             pos_stat;  // return from pntpos 1:ok,0:error
+  bool            success;   // return from pntpos true/false
+  std::string     msg;       // message returned (in case of error)
   Eigen::Vector3d lat_lon;   // latitude_longitude_altitude
 
   std::map<int,Eigen::Vector2d> sat_azel; // azimuth and elevation of each satellite provided
diff --git a/src/utils/rcv_position.cpp b/src/utils/rcv_position.cpp
index 73c42e7..cfa392a 100644
--- a/src/utils/rcv_position.cpp
+++ b/src/utils/rcv_position.cpp
@@ -36,19 +36,17 @@ ComputePosOutput computePos(const GnssUtils::Observations& _observations,
   std::vector<double> sat_elevations(2 * _observations.size());
 
   // compute pose
-  output.pos_stat = pntpos(_observations.data(),
-                           _observations.size(),
-                           &(_navigation.getNavigation()),
-                           &_prcopt,
-                           &sol,
-                           sat_elevations.data(),
-                           sats_status,
-                           msg);
+  output.success = pntpos(_observations.data(),
+                          _observations.size(),
+                          &(_navigation.getNavigation()),
+                          &_prcopt,
+                          &sol,
+                          sat_elevations.data(),
+                          sats_status,
+                          msg);
 
   // Fill output struct
-  if (output.pos_stat == 0)
-    std::cout << "computePos: error in computing positioning, message: " << msg << "\n";
-
+  output.msg  = std::string(msg);
   output.time = sol.time.time;
   output.sec  = sol.time.sec;
   output.pos  = Eigen::Vector3d(sol.rr);
-- 
GitLab