From f27ba742bc79bb940ecd041de49fb742459d4764 Mon Sep 17 00:00:00 2001
From: jcasals <jcasals@iri.upc.edu>
Date: Thu, 18 Jul 2019 11:47:48 +0200
Subject: [PATCH] Added storeCapture & storeKeyframe

---
 include/gnss/processor/processor_gnss_fix.h        | 14 +++++++++++++-
 .../gnss/processor/processor_gnss_single_diff.h    | 14 +++++++++++++-
 include/gnss/sensor/sensor_gnss.h                  |  2 +-
 src/processor/processor_gnss_fix.cpp               |  9 +++++++++
 src/processor/processor_gnss_single_diff.cpp       |  8 ++++++++
 5 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/include/gnss/processor/processor_gnss_fix.h b/include/gnss/processor/processor_gnss_fix.h
index fce80394e..66b8f506c 100644
--- a/include/gnss/processor/processor_gnss_fix.h
+++ b/include/gnss/processor/processor_gnss_fix.h
@@ -21,7 +21,7 @@ struct ProcessorParamsGnssFix : public ProcessorParamsBase
     Scalar dist_traveled;
     Scalar enu_map_init_dist_min;
     ProcessorParamsGnssFix() = default;
-    ProcessorParamsGnssFix(std::string _unique_name, const paramsServer& _server):
+    ProcessorParamsGnssFix(std::string _unique_name, const ParamsServer& _server):
         ProcessorParamsBase(_unique_name, _server)
     {
         time_th                 = _server.getParam<Scalar>(_unique_name + "/time_th");
@@ -77,6 +77,18 @@ class ProcessorGnssFix : public ProcessorBase
          */
         virtual bool triggerInKeyFrame(FrameBasePtr _keyframe_ptr, const Scalar& _time_tolerance) override {return false;}
 
+        /** \brief store key frame
+        *
+        * Returns true if the key frame should be stored
+        */
+        virtual bool storeKeyFrame(FrameBasePtr) override;
+
+        /** \brief store capture
+        *
+        * Returns true if the capture should be stored
+        */
+        virtual bool storeCapture(CaptureBasePtr) override;
+
         virtual bool voteForKeyFrame() override;
 
     private:
diff --git a/include/gnss/processor/processor_gnss_single_diff.h b/include/gnss/processor/processor_gnss_single_diff.h
index 84f18c30b..137f0b326 100644
--- a/include/gnss/processor/processor_gnss_single_diff.h
+++ b/include/gnss/processor/processor_gnss_single_diff.h
@@ -21,7 +21,7 @@ struct ProcessorParamsGnssSingleDiff : public ProcessorParamsBase
     Scalar dist_traveled;
     Scalar enu_map_init_dist_min;
     ProcessorParamsGnssSingleDiff() = default;
-    ProcessorParamsGnssSingleDiff(std::string _unique_name, const paramsServer& _server):
+    ProcessorParamsGnssSingleDiff(std::string _unique_name, const ParamsServer& _server):
         ProcessorParamsBase(_unique_name, _server)
     {
         time_th                 = _server.getParam<Scalar>(_unique_name + "/time_th");
@@ -66,6 +66,18 @@ class ProcessorGnssSingleDiff : public ProcessorBase
          */
         virtual void processKeyFrame(FrameBasePtr _keyframe, const Scalar& _time_tolerance) override {};
 
+        /** \brief store key frame
+        *
+        * Returns true if the key frame should be stored
+        */
+        virtual bool storeKeyFrame(FrameBasePtr) override;
+
+        /** \brief store capture
+        *
+        * Returns true if the capture should be stored
+        */
+        virtual bool storeCapture(CaptureBasePtr) override;
+
         /** \brief trigger in capture
          *
          * Returns true if processCapture() should be called after the provided capture arrived.
diff --git a/include/gnss/sensor/sensor_gnss.h b/include/gnss/sensor/sensor_gnss.h
index 00d71c8ea..d84c8b19c 100644
--- a/include/gnss/sensor/sensor_gnss.h
+++ b/include/gnss/sensor/sensor_gnss.h
@@ -21,7 +21,7 @@ struct IntrinsicsGnss : public IntrinsicsBase
         bool translation_fixed_ = false;
         virtual ~IntrinsicsGnss() = default;
         IntrinsicsGnss() = default;
-        IntrinsicsGnss(std::string _unique_name, const paramsServer& _server):
+        IntrinsicsGnss(std::string _unique_name, const ParamsServer& _server):
             IntrinsicsBase(_unique_name, _server)
         {
             extrinsics_fixed_ = _server.getParam<bool>(_unique_name + "/extrinsics_fixed");
diff --git a/src/processor/processor_gnss_fix.cpp b/src/processor/processor_gnss_fix.cpp
index b4efaea1f..578e0203c 100644
--- a/src/processor/processor_gnss_fix.cpp
+++ b/src/processor/processor_gnss_fix.cpp
@@ -10,6 +10,7 @@ namespace wolf
 ProcessorGnssFix::ProcessorGnssFix(ProcessorParamsGnssFixPtr _params_gnss, SensorGnssPtr _sensor_gnss) :
         ProcessorBase("GNSS FIX", _params_gnss),
         sensor_gnss_(_sensor_gnss),
+
         params_gnss_(_params_gnss),
         first_capture_(nullptr)
 {
@@ -155,6 +156,14 @@ bool ProcessorGnssFix::voteForKeyFrame()
     return false;
 }
 
+bool ProcessorGnssFix::storeKeyFrame(FrameBasePtr _frame_ptr)
+{
+    return true;
+}
+bool ProcessorGnssFix::storeCapture(CaptureBasePtr _cap_ptr)
+{
+    return false;
+}
 void ProcessorGnssFix::configure(SensorBasePtr _sensor)
 {
     sensor_gnss_ = std::static_pointer_cast<SensorGnss>(_sensor);
diff --git a/src/processor/processor_gnss_single_diff.cpp b/src/processor/processor_gnss_single_diff.cpp
index 2dd0a9179..c2bb47b99 100644
--- a/src/processor/processor_gnss_single_diff.cpp
+++ b/src/processor/processor_gnss_single_diff.cpp
@@ -129,6 +129,14 @@ bool ProcessorGnssSingleDiff::voteForKeyFrame()
     return false;
 }
 
+bool ProcessorGnssSingleDiff::storeKeyFrame(FrameBasePtr _frame_ptr)
+{
+    return true;
+}
+bool ProcessorGnssSingleDiff::storeCapture(CaptureBasePtr _cap_ptr)
+{
+    return false;
+}
 void ProcessorGnssSingleDiff::configure(SensorBasePtr _sensor)
 {
     sensor_gnss_ = std::static_pointer_cast<SensorGnss>(_sensor);
-- 
GitLab