3#include <experimental/memory>
14#include <RobotAPI/interface/skills/SkillManagerInterface.h>
15#include <RobotAPI/libraries/skills/core/aron/FluxioParameter.aron.generated.h>
26 if (type ==
"SPLITTER")
30 else if (type ==
"AND_MERGER")
34 else if (type ==
"LOOP_REPEAT")
38 else if (type ==
"LOOP_RETRY")
49 std::optional<std::string>
64 ARMARX_WARNING <<
"Unknown control node type: " <<
static_cast<int>(type);
69 std::optional<manager::dto::FluxioNode>
83 manager::dto::FluxioNode ret;
85 ret.nodeType = nt.value();
89 ret.controlType = ct.value();
91 manager::dto::FluxioIdentificator slottedNodeIdentificator;
98 ret.slottedNodeId = slottedNodeIdentificator;
100 manager::dto::FluxioParameterList params;
103 params.push_back(parameter.toManagerIce());
105 ret.parameters = params;
107 manager::dto::FluxioIdentificator emptyId;
111 ret.parameterId = emptyId;
112 ret.skillId = emptyId;
117 std::optional<manager::arondto::FluxioNode>
131 manager::arondto::FluxioNode ret;
133 ret.nodeType = nt.value();
137 ret.controlType = ct.value();
139 manager::arondto::FluxioIdentificator slottedNodeIdentificator;
146 ret.slottedNodeId = slottedNodeIdentificator;
149 std::vector<manager::arondto::FluxioParameter> params;
152 params.push_back(parameter.toAron());
154 ret.parameters = params;
156 manager::arondto::FluxioIdentificator emptyId;
160 ret.parameterId = emptyId;
161 ret.skillId = emptyId;
166 std::optional<FluxioControlNode>
168 const manager::dto::FluxioNode& i,
169 std::map<std::string, FluxioProfile>& profilesMap,
170 std::map<std::string, aron::type::ObjectPtr>& typesMap,
171 std::map<
const std::string,
const std::unique_ptr<FluxioNode>>& nodesMap)
181 const auto& slottedNodeIt = nodesMap.find(i.slottedNodeId.id);
182 if (slottedNodeIt == nodesMap.end())
184 ARMARX_INFO <<
"Slotted node not found: " << i.slottedNodeId.id;
192 std::map<std::string, FluxioParameter> paramsMap;
193 for (
const auto& parameter : i.parameters)
196 paramsMap.insert({parameter.id, param});
204 std::optional<FluxioControlNode>
206 const manager::arondto::FluxioNode& i,
207 std::map<std::string, FluxioProfile>& profilesMap,
208 std::map<std::string, aron::type::ObjectPtr>& typesMap,
209 std::map<
const std::string,
const std::unique_ptr<FluxioNode>>& nodesMap)
219 const auto& slottedNodeIt = nodesMap.find(i.slottedNodeId.id);
220 if (slottedNodeIt == nodesMap.end())
222 ARMARX_INFO <<
"Slotted node not found: " << i.slottedNodeId.id;
230 std::map<std::string, FluxioParameter> paramsMap;
231 for (
const auto& parameter : i.parameters)
234 paramsMap.insert({parameter.id, param});
#define ARMARX_INFO
The normal logging level.
#define ARMARX_WARNING
The logging level for unexpected behaviour, but not a serious problem.
This file is part of ArmarX.
FluxioNodeType FluxioNodeTypeFromString(const std::string &type)
std::optional< std::string > FluxioNodeTypeToString(const FluxioNodeType &type)
std::optional< std::string > FluxioControlNodeTypeToString(const FluxioControlNodeType &type)
FluxioControlNodeType FluxioControlNodeTypeFromString(const std::string &type)
This file offers overloads of toIce() and fromIce() functions for STL container types.
observer_ptr< _Tp > make_observer(_Tp *__p) noexcept
std::experimental::observer_ptr< FluxioNode > slottedNode
static std::optional< FluxioControlNode > FromIce(const manager::dto::FluxioNode &i, std::map< std::string, FluxioProfile > &profilesMap, std::map< std::string, aron::type::ObjectPtr > &typesMap, std::map< const std::string, const std::unique_ptr< FluxioNode > > &nodesMap)
std::optional< manager::arondto::FluxioNode > toAron() const override
FluxioControlNodeType controlType
std::optional< manager::dto::FluxioNode > toManagerIce() const override
std::map< std::string, FluxioParameter > parametersMap
static std::optional< FluxioControlNode > FromAron(const manager::arondto::FluxioNode &i, std::map< std::string, FluxioProfile > &profilesMap, std::map< std::string, aron::type::ObjectPtr > &typesMap, std::map< const std::string, const std::unique_ptr< FluxioNode > > &nodesMap)
static FluxioParameter FromIce(const manager::dto::FluxioParameter &i, std::map< std::string, FluxioProfile > &profilesMap, std::map< std::string, aron::type::ObjectPtr > &typesMap)
static FluxioParameter FromAron(const manager::arondto::FluxioParameter &i, std::map< std::string, FluxioProfile > &profilesMap, std::map< std::string, aron::type::ObjectPtr > &typesMap)