diff --git a/include/gnss/processor/processor_gnss_fix.h b/include/gnss/processor/processor_gnss_fix.h index fce80394e5c29fb52501b312d970a25b946052c5..66b8f506c8a7244c5621c88c252d67667b8ba955 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 84f18c30b53bc0d61cdaa269814fdd8576e63061..137f0b326a47f3d96fb2b5e9d3d4adbccea7d324 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 00d71c8ea1e5ffae633ab84e190e22ff8fa2c8c7..d84c8b19c1c70bcf3560c642fbcac641268217eb 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 b4efaea1fc846095dc71af477a1164005aa42105..578e0203ceed53593ae5f6c5c5fe85ce109f8ce5 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 2dd0a9179de1eb44b7726e6dd43702949b5bfd95..c2bb47b995d6b07205dc51d984b89d0bd279c141 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);