SMACC2
Loading...
Searching...
No Matches
cl_px4_mr::CbLoadKmlMission Class Reference

#include <cb_load_kml_mission.hpp>

Inheritance diagram for cl_px4_mr::CbLoadKmlMission:
Inheritance graph
Collaboration diagram for cl_px4_mr::CbLoadKmlMission:
Collaboration graph

Public Member Functions

 CbLoadKmlMission (std::string absoluteKmlPath, std::vector< GeoPoint > fallbackBackbone={})
 
void setFilePath (const std::string &absoluteKmlPath)
 
void setFallback (std::vector< GeoPoint > fallbackBackbone)
 
template<typename TOrthogonal , typename TSourceObject >
void onStateOrthogonalAllocation ()
 
void onEntry () override
 
void onExit () override
 
- Public Member Functions inherited from cl_px4_mr::CbPx4ClientBehaviorBase
template<typename TOrthogonal , typename TSourceObject >
void onStateOrthogonalAllocation ()
 
virtual ~CbPx4ClientBehaviorBase ()
 
void setTimeout (std::chrono::milliseconds timeout)
 
bool hasTimeout () const
 
void update () override
 
- Public Member Functions inherited from smacc2::SmaccAsyncClientBehavior
template<typename TOrthogonal , typename TSourceObject >
void onStateOrthogonalAllocation ()
 
virtual ~SmaccAsyncClientBehavior ()
 
template<typename TCallback , typename T >
smacc2::SmaccSignalConnection onSuccess (TCallback callback, T *object)
 
template<typename TCallback , typename T >
smacc2::SmaccSignalConnection onFinished (TCallback callback, T *object)
 
template<typename TCallback , typename T >
smacc2::SmaccSignalConnection onFailure (TCallback callback, T *object)
 
void requestForceFinish ()
 
void executeOnEntry () override
 
void executeOnExit () override
 
void waitOnEntryThread (bool requestFinish)
 
template<typename TCallbackMethod , typename T >
smacc2::SmaccSignalConnection onSuccess (TCallbackMethod callback, T *object)
 
template<typename TCallbackMethod , typename T >
smacc2::SmaccSignalConnection onFinished (TCallbackMethod callback, T *object)
 
template<typename TCallbackMethod , typename T >
smacc2::SmaccSignalConnection onFailure (TCallbackMethod callback, T *object)
 
- Public Member Functions inherited from smacc2::ISmaccClientBehavior
 ISmaccClientBehavior ()
 
virtual ~ISmaccClientBehavior ()
 
ISmaccStateMachine * getStateMachine ()
 
std::string getName () const
 
template<typename SmaccClientType >
void requiresClient (SmaccClientType *&storage)
 
template<typename SmaccComponentType >
void requiresComponent (SmaccComponentType *&storage, ComponentRequirement requirementType=ComponentRequirement::SOFT)
 
template<typename SmaccComponentType >
void requiresComponent (std::string name, SmaccComponentType *&storage, ComponentRequirement requirementType=ComponentRequirement::SOFT)
 
- Public Member Functions inherited from smacc2::ISmaccUpdatable
 ISmaccUpdatable ()
 
 ISmaccUpdatable (rclcpp::Duration duration)
 
void executeUpdate (rclcpp::Node::SharedPtr node)
 
void setUpdatePeriod (rclcpp::Duration duration)
 

Private Attributes

CpKmlMissionLoader * kmlLoader_ = nullptr
 
std::string path_
 
std::vector< GeoPoint > fallback_
 

Additional Inherited Members

- Protected Member Functions inherited from cl_px4_mr::CbPx4ClientBehaviorBase
virtual void wireCompletionSignals ()
 
void postPx4Success ()
 
void postPx4Failure ()
 
- Protected Member Functions inherited from smacc2::SmaccAsyncClientBehavior
void postSuccessEvent ()
 
void postFailureEvent ()
 
virtual void dispose () override
 
bool isShutdownRequested ()
 onEntry is executed in a new thread. However the current state cannot be left until the onEntry thread finishes. This flag can be checked from the onEntry thread to force finishing the thread.
 
- Protected Member Functions inherited from smacc2::ISmaccClientBehavior
virtual void runtimeConfigure ()
 
template<typename EventType >
void postEvent (const EventType &ev)
 
template<typename EventType >
void postEvent ()
 
ISmaccState * getCurrentState ()
 
virtual rclcpp::Node::SharedPtr getNode () const
 
virtual rclcpp::Logger getLogger () const
 
- Protected Member Functions inherited from smacc2::ISmaccUpdatable
- Protected Attributes inherited from cl_px4_mr::CbPx4ClientBehaviorBase
CpVehicleCommand * vehicleCommand_ = nullptr
 
CpVehicleStatus * vehicleStatus_ = nullptr
 
CpTrajectorySetpoint * trajectorySetpoint_ = nullptr
 
CpGoalChecker * goalChecker_ = nullptr
 
CpVehicleLocalPosition * localPosition_ = nullptr
 
CpOffboardKeepAlive * offboardKeepAlive_ = nullptr
 

Detailed Description

Definition at line 40 of file cb_load_kml_mission.hpp.

Constructor & Destructor Documentation

◆ CbLoadKmlMission()

cl_px4_mr::CbLoadKmlMission::CbLoadKmlMission ( std::string absoluteKmlPath,
std::vector< GeoPoint > fallbackBackbone = {} )
explicit

Definition at line 21 of file cb_load_kml_mission.cpp.

23: path_(std::move(absoluteKmlPath)), fallback_(std::move(fallbackBackbone))
24{
25}
std::vector< GeoPoint > fallback_

Member Function Documentation

◆ onEntry()

void cl_px4_mr::CbLoadKmlMission::onEntry ( )
overridevirtual

Reimplemented from smacc2::ISmaccClientBehavior.

Definition at line 27 of file cb_load_kml_mission.cpp.

28{
29 if (kmlLoader_ == nullptr)
30 {
31 RCLCPP_ERROR(getLogger(), "CbLoadKmlMission: CpKmlMissionLoader component missing");
32 this->postPx4Failure();
33 return;
34 }
35
36 RCLCPP_INFO(getLogger(), "CbLoadKmlMission: loading backbone from '%s'", path_.c_str());
37 const KmlLoadResult result = kmlLoader_->loadFile(path_);
38
39 if (result.ok)
40 {
41 RCLCPP_INFO(
42 getLogger(), "CbLoadKmlMission: %zu backbone points loaded from file", result.pointCount);
43 this->postPx4Success();
44 return;
45 }
46
47 if (!fallback_.empty())
48 {
49 kmlLoader_->setMission(fallback_, "fallback:compiled-in");
50 RCLCPP_WARN(
51 getLogger(),
52 "CbLoadKmlMission: KML unavailable (%s) - using compiled-in fallback backbone (%zu points)",
53 result.error.c_str(), fallback_.size());
54 this->postPx4Success();
55 return;
56 }
57
58 RCLCPP_ERROR(
59 getLogger(), "CbLoadKmlMission: KML unavailable (%s) and no fallback backbone supplied",
60 result.error.c_str());
61 this->postPx4Failure();
62}
void setMission(std::vector< GeoPoint > points, const std::string &source)
KmlLoadResult loadFile(const std::string &absolutePath)
virtual rclcpp::Logger getLogger() const

References cl_px4_mr::KmlLoadResult::error, fallback_, smacc2::ISmaccClientBehavior::getLogger(), kmlLoader_, cl_px4_mr::CpKmlMissionLoader::loadFile(), cl_px4_mr::KmlLoadResult::ok, path_, cl_px4_mr::KmlLoadResult::pointCount, cl_px4_mr::CbPx4ClientBehaviorBase::postPx4Failure(), cl_px4_mr::CbPx4ClientBehaviorBase::postPx4Success(), and cl_px4_mr::CpKmlMissionLoader::setMission().

Here is the call graph for this function:

◆ onExit()

void cl_px4_mr::CbLoadKmlMission::onExit ( )
overridevirtual

Reimplemented from smacc2::ISmaccClientBehavior.

Definition at line 64 of file cb_load_kml_mission.cpp.

64{}

◆ onStateOrthogonalAllocation()

template<typename TOrthogonal , typename TSourceObject >
void cl_px4_mr::CbLoadKmlMission::onStateOrthogonalAllocation ( )
inline

◆ setFallback()

void cl_px4_mr::CbLoadKmlMission::setFallback ( std::vector< GeoPoint > fallbackBackbone)
inline

Definition at line 47 of file cb_load_kml_mission.hpp.

48 {
49 fallback_ = std::move(fallbackBackbone);
50 }

References fallback_.

◆ setFilePath()

void cl_px4_mr::CbLoadKmlMission::setFilePath ( const std::string & absoluteKmlPath)
inline

Definition at line 46 of file cb_load_kml_mission.hpp.

46{ path_ = absoluteKmlPath; }

References path_.

Member Data Documentation

◆ fallback_

std::vector<GeoPoint> cl_px4_mr::CbLoadKmlMission::fallback_
private

Definition at line 65 of file cb_load_kml_mission.hpp.

Referenced by onEntry(), and setFallback().

◆ kmlLoader_

CpKmlMissionLoader* cl_px4_mr::CbLoadKmlMission::kmlLoader_ = nullptr
private

Definition at line 63 of file cb_load_kml_mission.hpp.

Referenced by onEntry(), and onStateOrthogonalAllocation().

◆ path_

std::string cl_px4_mr::CbLoadKmlMission::path_
private

Definition at line 64 of file cb_load_kml_mission.hpp.

Referenced by onEntry(), and setFilePath().


The documentation for this class was generated from the following files: