aron_conversions.cpp
Go to the documentation of this file.
1 #include "aron_conversions.h"
2 
3 #include <algorithm>
4 #include <cstdint>
5 #include <iterator>
6 
7 #include <RobotAPI/interface/units/LaserScannerUnit.h>
9 #include <RobotAPI/libraries/armem_laser_scans/aron/LaserScan.aron.generated.h>
12 
13 #include "types.h"
14 
15 
17 {
18 
19  /************ fromAron ************/
21  fromAron(const arondto::SensorHeader& aronSensorHeader)
22  {
23  return {.agent = aronSensorHeader.agent,
24  .frame = aronSensorHeader.frame,
25  .timestamp = aron::fromAron<Time>(aronSensorHeader.timestamp)};
26  }
27 
28  void
29  fromAron(const arondto::LaserScanStamped& aronLaserScan, LaserScanStamped& laserScan)
30  {
31  laserScan.header = fromAron(aronLaserScan.header);
32  // laserScan.data = fromAron(aronLaserScan.data);
33  }
34 
35  void
36  fromAron(const arondto::LaserScanStamped& aronLaserScan,
37  LaserScan& laserScan,
38  std::int64_t& timestamp,
39  std::string& frame,
40  std::string& agentName)
41  {
42  const auto header = fromAron(aronLaserScan.header);
43 
44  // laserScan = fromAron(aronLaserScan.data);
45 
46  timestamp = header.timestamp.toMicroSecondsSinceEpoch();
47  frame = header.frame;
48  agentName = header.agent;
49  }
50 
51  /************ toAron ************/
52 
53  // auto toAron(const LaserScan& laserScan, aron::LaserScan& aronLaserScan)
54  // {
55  // aronLaserScan.scan = toAron(laserScan);
56  // }
57 
58  int64_t
59  toAron(const armem::Time& timestamp)
60  {
61  return timestamp.toMicroSecondsSinceEpoch();
62  }
63 
64  arondto::SensorHeader
65  toAron(const SensorHeader& sensorHeader)
66  {
67  arondto::SensorHeader aronSensorHeader;
68 
69  aronSensorHeader.agent = sensorHeader.agent;
70  aronSensorHeader.frame = sensorHeader.frame;
71  aron::toAron(aronSensorHeader.timestamp, sensorHeader.timestamp);
72 
73  return aronSensorHeader;
74  }
75 
76  void
77  toAron(const LaserScanStamped& laserScanStamped,
78  arondto::LaserScanStamped& aronLaserScanStamped)
79  {
80  aronLaserScanStamped.header = toAron(laserScanStamped.header);
81  // toAron(laserScanStamped.data, aronLaserScanStamped.data);
82  }
83 
84  void
85  toAron(const LaserScan& laserScan,
86  const armem::Time& timestamp,
87  const std::string& frame,
88  const std::string& agentName,
89  arondto::LaserScanStamped& aronLaserScanStamped)
90  {
91  const SensorHeader header{.agent = agentName, .frame = frame, .timestamp = timestamp};
92 
93  const LaserScanStamped laserScanStamped{.header = header, .data = laserScan};
94 
95  toAron(laserScanStamped, aronLaserScanStamped);
96  }
97 
98 
99 } // namespace armarx::armem::vision
armarx::armem::laser_scans::LaserScanStamped
Definition: types.h:40
armarx::armem::laser_scans::SensorHeader::timestamp
armem::Time timestamp
Definition: types.h:37
types.h
armarx::armem::laser_scans::SensorHeader::frame
std::string frame
Definition: types.h:36
armarx::armem::laser_scans::SensorHeader
Definition: types.h:33
armarx::armem::laser_scans::fromAron
SensorHeader fromAron(const arondto::SensorHeader &aronSensorHeader)
Definition: aron_conversions.cpp:21
armarx::core::time::DateTime::toMicroSecondsSinceEpoch
std::int64_t toMicroSecondsSinceEpoch() const
Definition: DateTime.cpp:95
armarx::armem::laser_scans::toAron
int64_t toAron(const armem::Time &timestamp)
Definition: aron_conversions.cpp:59
aron_conversions.h
aron_conversions.h
armarx::core::time::DateTime
Represents a point in time.
Definition: DateTime.h:24
armarx::armem::laser_scans::SensorHeader::agent
std::string agent
Definition: types.h:35
armarx::aron::toAron
void toAron(T &dto, const T &bo)
Framework for converting ARON DTOs (Data Transfer Objects) to C++ BOs (Business Objects) and back.
Definition: aron_conversions.h:74
armarx::armem::laser_scans::LaserScanStamped::header
SensorHeader header
Definition: types.h:42
armarx::armem::laser_scans
Definition: aron_conversions.cpp:16
NDArray.h