17 #include <armarx/navigation/memory/aron/LaserScannerFeatures.aron.generated.h>
29 return "mem.nav.laser_scanner_features.";
51 if (query.
name.empty())
54 return sel.entities().all();
56 return sel.entities().withName(query.
name);
59 entitySel.snapshots().beforeOrAtTime(query.
timestamp);
64 std::vector<LaserScannerFeatures>
67 if (providerSegment.
empty())
90 std::vector<LaserScannerFeatures> laserScannerFeatures;
99 ARMARX_VERBOSE <<
"Empty history for " << entity.id();
107 armem::tryCast<arondto::LaserScannerFeatures>(entityInstance))
109 LaserScannerFeatures& f = laserScannerFeatures.emplace_back();
110 fromAron(o.value(), f);
117 return laserScannerFeatures;
121 Reader::queryData(
const Query& query)
const
123 const auto qb = buildQuery(query);
129 ARMARX_DEBUG <<
"[MappingDataReader] result: " << qResult;
131 if (not qResult.success)
133 ARMARX_WARNING <<
"Failed to query data from memory: " << qResult.errorMessage;
134 return {.features = {},
135 .status = Result::Status::Error,
136 .errorMessage = qResult.errorMessage};
139 const auto coreSegment = qResult.memory.getCoreSegment(properties().coreSegmentName);
140 if (not coreSegment.hasProviderSegment(query.
providerName))
143 return {.features = {},
144 .status = Result::Status::Error,
145 .errorMessage =
"Provider segment " + query.
providerName +
" does not exist"};
150 qResult.memory.getCoreSegment(properties().coreSegmentName)
164 return {.features = features,
166 .status = Result::Status::Success,