SMACC2
Loading...
Searching...
No Matches
smacc2_client_library
cl_px4_mr
src
cl_px4_mr
client_behaviors
cb_load_kml_mission.cpp
Go to the documentation of this file.
1
// Copyright 2026 RobosoftAI Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#include <
cl_px4_mr/client_behaviors/cb_load_kml_mission.hpp
>
16
#include <
cl_px4_mr/components/cp_kml_mission_loader.hpp
>
17
18
namespace
cl_px4_mr
19
{
20
21
CbLoadKmlMission::CbLoadKmlMission
(
22
std::string absoluteKmlPath, std::vector<GeoPoint> fallbackBackbone)
23
: path_(std::move(absoluteKmlPath)), fallback_(std::move(fallbackBackbone))
24
{
25
}
26
27
void
CbLoadKmlMission::onEntry
()
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
}
63
64
void
CbLoadKmlMission::onExit
() {}
65
66
}
// namespace cl_px4_mr
cb_load_kml_mission.hpp
cl_px4_mr::CbLoadKmlMission::onEntry
void onEntry() override
Definition
cb_load_kml_mission.cpp:27
cl_px4_mr::CbLoadKmlMission::kmlLoader_
CpKmlMissionLoader * kmlLoader_
Definition
cb_load_kml_mission.hpp:63
cl_px4_mr::CbLoadKmlMission::CbLoadKmlMission
CbLoadKmlMission(std::string absoluteKmlPath, std::vector< GeoPoint > fallbackBackbone={})
Definition
cb_load_kml_mission.cpp:21
cl_px4_mr::CbLoadKmlMission::onExit
void onExit() override
Definition
cb_load_kml_mission.cpp:64
cl_px4_mr::CbLoadKmlMission::path_
std::string path_
Definition
cb_load_kml_mission.hpp:64
cl_px4_mr::CbLoadKmlMission::fallback_
std::vector< GeoPoint > fallback_
Definition
cb_load_kml_mission.hpp:65
cl_px4_mr::CbPx4ClientBehaviorBase::postPx4Success
void postPx4Success()
Definition
cb_px4_client_behavior_base.hpp:121
cl_px4_mr::CbPx4ClientBehaviorBase::postPx4Failure
void postPx4Failure()
Definition
cb_px4_client_behavior_base.hpp:129
cl_px4_mr::CpKmlMissionLoader::setMission
void setMission(std::vector< GeoPoint > points, const std::string &source)
Definition
cp_kml_mission_loader.cpp:206
cl_px4_mr::CpKmlMissionLoader::loadFile
KmlLoadResult loadFile(const std::string &absolutePath)
Definition
cp_kml_mission_loader.cpp:167
smacc2::ISmaccClientBehavior::getLogger
virtual rclcpp::Logger getLogger() const
Definition
smacc_client_behavior_base.cpp:43
cp_kml_mission_loader.hpp
cl_px4_mr
Definition
cl_px4_mr.hpp:30
cl_px4_mr::KmlLoadResult
Definition
cp_kml_mission_loader.hpp:34
cl_px4_mr::KmlLoadResult::ok
bool ok
Definition
cp_kml_mission_loader.hpp:35
cl_px4_mr::KmlLoadResult::error
std::string error
Definition
cp_kml_mission_loader.hpp:36
cl_px4_mr::KmlLoadResult::pointCount
size_t pointCount
Definition
cp_kml_mission_loader.hpp:37
Generated by
1.12.0