robot_conversions.cpp
Go to the documentation of this file.
1 #include "robot_conversions.h"
2 
3 #include <filesystem>
4 
6 
9 
10 #include <RobotAPI/libraries/armem_robot/aron/RobotDescription.aron.generated.h>
12 
14 
15 
16 namespace fs = ::std::filesystem;
17 
18 namespace armarx::armem::robot
19 {
20 
21  std::optional<RobotDescription> convertRobotDescription(const armem::wm::EntityInstance& instance)
22  {
23  arondto::RobotDescription aronRobotDescription;
24  try
25  {
26  aronRobotDescription.fromAron(instance.data());
27  }
28  catch (...)
29  {
30  ARMARX_WARNING << "Conversion to RobotDescription failed!";
31  return std::nullopt;
32  }
33 
34  RobotDescription robotDescription
35  {
36  .name = "",
37  .xml = ::armarx::PackagePath("", fs::path("")) // initialize empty, no default c'tor
38  };
39 
40  fromAron(aronRobotDescription, robotDescription);
41 
42  return robotDescription;
43  }
44 
45 
46  std::optional<RobotState> convertRobotState(const armem::wm::EntityInstance& instance)
47  {
48  arondto::Robot aronRobot;
49  try
50  {
51  aronRobot.fromAron(instance.data());
52  }
53  catch (...)
54  {
55  ARMARX_WARNING << "Conversion to RobotState failed!";
56  return std::nullopt;
57  }
58 
59  RobotState robotState;
60  fromAron(aronRobot.state, robotState);
61 
62  return robotState;
63  }
64 
65 } // namespace armarx::armem::robot
armarx::armem::robot
Definition: aron_conversions.cpp:10
armarx::armem::wm::EntityInstance
Client-side working entity instance.
Definition: memory_definitions.h:32
armarx::armem::robot::convertRobotState
std::optional< RobotState > convertRobotState(const armem::wm::EntityInstance &instance)
Definition: robot_conversions.cpp:46
armarx::armem::robot::RobotState
Definition: types.h:54
armarx::armem::robot::RobotDescription
Definition: types.h:17
armarx::armem::human::Robot
@ Robot
Definition: util.h:14
aron_conversions.h
aron_conversions.h
memory_definitions.h
aron_conversions.h
armarx::armem::robot::RobotDescription::name
std::string name
Definition: types.h:21
armarx::armem::robot::convertRobotDescription
std::optional< RobotDescription > convertRobotDescription(const armem::wm::EntityInstance &instance)
Definition: robot_conversions.cpp:21
armarx::armem::robot::fromAron
void fromAron(const arondto::Robot &dto, Robot &bo)
Definition: aron_conversions.cpp:15
Logging.h
robot_conversions.h
ARMARX_WARNING
#define ARMARX_WARNING
Definition: Logging.h:186
armarx::armem::base::EntityInstanceBase::data
const DataT & data() const
Definition: EntityInstanceBase.h:129
armarx::PackagePath
Definition: PackagePath.h:55