diff --git a/source/RobotAPI/libraries/armem/CMakeLists.txt b/source/RobotAPI/libraries/armem/CMakeLists.txt index 5feda749b6fc3eb3e1f601812b778e71b20c099b..afd231ffbbbf219b044331dc21f672fbac0274b1 100644 --- a/source/RobotAPI/libraries/armem/CMakeLists.txt +++ b/source/RobotAPI/libraries/armem/CMakeLists.txt @@ -9,6 +9,7 @@ set(LIBS ArmarXCore RemoteGui aron + aroncommon ) set(LIB_FILES diff --git a/source/RobotAPI/libraries/armem/client/Writer.cpp b/source/RobotAPI/libraries/armem/client/Writer.cpp index 7ffeeca7a71a8ea312565b4e96cf3833300f0fcd..3c4edce62f6cbc0b2d2dc908e673fbe06afe6f53 100644 --- a/source/RobotAPI/libraries/armem/client/Writer.cpp +++ b/source/RobotAPI/libraries/armem/client/Writer.cpp @@ -1,6 +1,7 @@ #include "Writer.h" #include <ArmarXCore/core/exceptions/local/ExpressionException.h> +#include <ArmarXCore/core/time/ice_conversions.h> #include "../error.h" @@ -111,10 +112,10 @@ namespace armarx::armem::client * anyway. */ - const Time timeSent = armem::Time::now(); + const Time timeSent = armem::Time::Now(); for (data::EntityUpdate& update : commit.updates) { - update.timeSentMicroSeconds = timeSent.toMicroSeconds(); + toIce(update.timeSent, timeSent); } data::CommitResult result; diff --git a/source/RobotAPI/libraries/armem/core/Commit.h b/source/RobotAPI/libraries/armem/core/Commit.h index 433703a5ac8bc3f05727cffa86be073781c4dcf1..8a1da207528940d0db22dd004faae5b15e3d07f3 100644 --- a/source/RobotAPI/libraries/armem/core/Commit.h +++ b/source/RobotAPI/libraries/armem/core/Commit.h @@ -36,7 +36,7 @@ namespace armarx::armem * @brief Time when this entity update was created (e.g. time of image recording). * This is the key of the entity's history. */ - Time timeCreated = Time::microSeconds(-1); + Time timeCreated = Time::Invalid(); // OPTIONAL @@ -52,14 +52,14 @@ namespace armarx::armem * * Set automatically when sending the commit. */ - Time timeSent = Time::microSeconds(-1); + Time timeSent = Time::Invalid(); /** * @brief Time when this update arrived at the memory server. * * Set by memory server on arrival. */ - Time timeArrived = Time::microSeconds(-1); + Time timeArrived = Time::Invalid(); friend std::ostream& operator<<(std::ostream& os, const EntityUpdate& rhs); @@ -74,7 +74,7 @@ namespace armarx::armem bool success = false; MemoryID snapshotID; - Time timeArrived = Time::microSeconds(-1); + Time timeArrived = Time::Invalid(); std::string errorMessage; diff --git a/source/RobotAPI/libraries/armem/core/MemoryID.cpp b/source/RobotAPI/libraries/armem/core/MemoryID.cpp index f3b8c662ddef099b18dc09e03a81f21bd7de2bde..5757bf196839920b3feaa7e3f27a840c785a14e0 100644 --- a/source/RobotAPI/libraries/armem/core/MemoryID.cpp +++ b/source/RobotAPI/libraries/armem/core/MemoryID.cpp @@ -251,7 +251,7 @@ namespace armarx::armem { return getEntitySnapshotID(); } - if (timestamp != Time::microSeconds(-1)) + if (timestamp.isValid()) { return getEntityID(); } @@ -350,7 +350,7 @@ namespace armarx::armem std::string MemoryID::timestampStr() const { - return hasTimestamp() ? std::to_string(timestamp.toMicroSeconds()) : ""; + return hasTimestamp() ? std::to_string(timestamp.toMicroSecondsSinceEpoch()) : ""; } std::string MemoryID::instanceIndexStr() const @@ -358,9 +358,9 @@ namespace armarx::armem return hasInstanceIndex() ? std::to_string(instanceIndex) : ""; } - IceUtil::Time MemoryID::timestampFromStr(const std::string& string) + Time MemoryID::timestampFromStr(const std::string& string) { - return Time::microSeconds(parseInteger(string, "timestamp")); + return Time(Duration::MicroSeconds(parseInteger(string, "timestamp"))); } int MemoryID::instanceIndexFromStr(const std::string& string) @@ -506,7 +506,7 @@ namespace armarx::armem return false; } - if (general.timestamp.toMicroSeconds() < 0) + if (general.timestamp.isInvalid()) { return true; } diff --git a/source/RobotAPI/libraries/armem/core/MemoryID.h b/source/RobotAPI/libraries/armem/core/MemoryID.h index d583e752258d69e8271e30be2a2d091493aa18cc..64850ddefa9d2e92cc924e33d765317a8895c067 100644 --- a/source/RobotAPI/libraries/armem/core/MemoryID.h +++ b/source/RobotAPI/libraries/armem/core/MemoryID.h @@ -1,5 +1,6 @@ #pragma once +#include <functional> // for std::hash #include <string> #include <vector> @@ -52,7 +53,7 @@ namespace armarx::armem std::string coreSegmentName = ""; std::string providerSegmentName = ""; std::string entityName = ""; - Time timestamp = Time::microSeconds(-1); + Time timestamp = Time::Invalid(); int instanceIndex = -1; @@ -67,7 +68,7 @@ namespace armarx::armem const std::string& coreSegmentName, const std::string& providerSegmentName = "", const std::string& entityName = "", - Time timestamp = Time::microSeconds(-1), + Time timestamp = Time::Invalid(), int instanceIndex = -1); @@ -97,27 +98,27 @@ namespace armarx::armem bool hasMemoryName() const { - return !memoryName.empty(); + return not memoryName.empty(); } bool hasCoreSegmentName() const { - return !coreSegmentName.empty(); + return not coreSegmentName.empty(); } bool hasProviderSegmentName() const { - return !providerSegmentName.empty(); + return not providerSegmentName.empty(); } bool hasEntityName() const { - return !entityName.empty(); + return not entityName.empty(); } bool hasTimestamp() const { - return timestamp.toMicroSeconds() >= 0; + return timestamp.isValid(); } void clearTimestamp() { - timestamp = Time::microSeconds(-1); + timestamp = Time::Invalid(); } bool hasInstanceIndex() const { @@ -208,7 +209,7 @@ namespace armarx::armem bool operator ==(const MemoryID& other) const; inline bool operator !=(const MemoryID& other) const { - return !(*this == other); + return not (*this == other); } bool operator< (const MemoryID& rhs) const; @@ -218,11 +219,11 @@ namespace armarx::armem } inline bool operator<=(const MemoryID& rhs) const { - return !operator> (rhs); + return not operator> (rhs); } inline bool operator>=(const MemoryID& rhs) const { - return !operator< (rhs); + return not operator< (rhs); } friend std::ostream& operator<<(std::ostream& os, const MemoryID id); diff --git a/source/RobotAPI/libraries/armem/core/aron_conversions.cpp b/source/RobotAPI/libraries/armem/core/aron_conversions.cpp index 4eafef35a33f746b5c8b898598ac6273cce7030e..62ff85270b07c63907d6a264eee2f73fb0d3c472 100644 --- a/source/RobotAPI/libraries/armem/core/aron_conversions.cpp +++ b/source/RobotAPI/libraries/armem/core/aron_conversions.cpp @@ -1,5 +1,6 @@ #include "aron_conversions.h" +#include <RobotAPI/libraries/aron/common/aron_conversions/armarx.h> #include <RobotAPI/libraries/armem/core/MemoryID.h> #include <RobotAPI/libraries/armem/aron/MemoryID.aron.generated.h> @@ -10,7 +11,7 @@ void armarx::armem::fromAron(const arondto::MemoryID& dto, MemoryID& bo) bo.coreSegmentName = dto.coreSegmentName; bo.providerSegmentName = dto.providerSegmentName; bo.entityName = dto.entityName; - bo.timestamp = dto.timestamp; + fromAron(dto.timestamp, bo.timestamp); bo.instanceIndex = dto.instanceIndex; } @@ -20,7 +21,7 @@ void armarx::armem::toAron(arondto::MemoryID& dto, const MemoryID& bo) dto.coreSegmentName = bo.coreSegmentName; dto.providerSegmentName = bo.providerSegmentName; dto.entityName = bo.entityName; - dto.timestamp = bo.timestamp; + toAron(dto.timestamp, bo.timestamp); dto.instanceIndex = bo.instanceIndex; } diff --git a/source/RobotAPI/libraries/armem/core/aron_conversions.h b/source/RobotAPI/libraries/armem/core/aron_conversions.h index 064aafe8d7bd4ea964aa1e020ca692d8eed45bf2..f0b1a26591333440dd41dcd5471a30c061e48f38 100644 --- a/source/RobotAPI/libraries/armem/core/aron_conversions.h +++ b/source/RobotAPI/libraries/armem/core/aron_conversions.h @@ -1,12 +1,16 @@ #pragma once -#include "forward_declarations.h" - #include <ostream> +#include "forward_declarations.h" + namespace armarx::armem { + // Implemented in <RobotAPI/libraries/aron/common/aron_conversions/armarx.h> + // void fromAron(const IceUtil::Time& dto, Time& bo); + // void toAron(IceUtil::Time& dto, const Time& bo); + void fromAron(const arondto::MemoryID& dto, MemoryID& bo); void toAron(arondto::MemoryID& dto, const MemoryID& bo); } diff --git a/source/RobotAPI/libraries/armem/core/base/EntityBase.h b/source/RobotAPI/libraries/armem/core/base/EntityBase.h index 9b34e11bd3d53e896f38cd2c3301c2c35dcdffd9..5a3b55a80d88316b2754f4ed8a86c8ae53ca8872 100644 --- a/source/RobotAPI/libraries/armem/core/base/EntityBase.h +++ b/source/RobotAPI/libraries/armem/core/base/EntityBase.h @@ -311,7 +311,7 @@ namespace armarx::armem::base */ const EntitySnapshotT* findLatestSnapshotBeforeOrAt(const Time& time) const { - return findLatestSnapshotBefore(time + Time::microSeconds(1)); + return findLatestSnapshotBefore(time + Duration::MicroSeconds(1)); } /** @@ -339,7 +339,7 @@ namespace armarx::armem::base */ const EntitySnapshotT* findFirstSnapshotAfter(const Time& time) const { - return findFirstSnapshotAfter(time - Time::microSeconds(1)); + return findFirstSnapshotAfter(time - Duration::MicroSeconds(1)); } @@ -418,7 +418,7 @@ namespace armarx::armem::base template <class FunctionT> void forEachSnapshotBeforeOrAt(const Time& time, FunctionT&& func) const { - getSnapshotsBefore(time + Time::microSeconds(1), func); + getSnapshotsBefore(time + Duration::MicroSeconds(1), func); } @@ -432,9 +432,9 @@ namespace armarx::armem::base void forEachSnapshotInTimeRange(const Time& min, const Time& max, FunctionT&& func) const { // Returns an iterator pointing to the first element that is not less than (i.e. greater or equal to) key. - auto begin = min.toMicroSeconds() > 0 ? this->_container.lower_bound(min) : this->_container.begin(); + auto begin = min.isValid() ? this->_container.lower_bound(min) : this->_container.begin(); // Returns an iterator pointing to the first element that is *greater than* key. - auto end = max.toMicroSeconds() > 0 ? this->_container.upper_bound(max) : this->_container.end(); + auto end = max.isValid() ? this->_container.upper_bound(max) : this->_container.end(); for (auto it = begin; it != end && it != this->_container.end(); ++it) { diff --git a/source/RobotAPI/libraries/armem/core/base/ice_conversions.cpp b/source/RobotAPI/libraries/armem/core/base/ice_conversions.cpp index 1e19f25a7b08671b1e3f65ea2649f056a107361a..a71881a57851833f91debb68c1f026f2b1fb7859 100644 --- a/source/RobotAPI/libraries/armem/core/base/ice_conversions.cpp +++ b/source/RobotAPI/libraries/armem/core/base/ice_conversions.cpp @@ -1,5 +1,7 @@ #include "ice_conversions.h" +#include <ArmarXCore/core/time/ice_conversions.h> + #include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h> #include <RobotAPI/libraries/aron/core/type/variant/container/Object.h> @@ -50,19 +52,20 @@ namespace armarx::armem::base } namespace armarx::armem { + void base::toIce(data::EntityInstanceMetadata& ice, const EntityInstanceMetadata& metadata) { ice.confidence = metadata.confidence; - toIce(ice.timeArrivedMicroSeconds, metadata.timeArrived); - toIce(ice.timeCreatedMicroSeconds, metadata.timeCreated); - toIce(ice.timeSentMicroSeconds, metadata.timeSent); + toIce(ice.timeArrived, metadata.timeArrived); + toIce(ice.timeCreated, metadata.timeCreated); + toIce(ice.timeSent, metadata.timeSent); } void base::fromIce(const data::EntityInstanceMetadata& ice, EntityInstanceMetadata& metadata) { metadata.confidence = ice.confidence; - fromIce(ice.timeArrivedMicroSeconds, metadata.timeArrived); - fromIce(ice.timeCreatedMicroSeconds, metadata.timeCreated); - fromIce(ice.timeSentMicroSeconds, metadata.timeSent); + fromIce(ice.timeArrived, metadata.timeArrived); + fromIce(ice.timeCreated, metadata.timeCreated); + fromIce(ice.timeSent, metadata.timeSent); } diff --git a/source/RobotAPI/libraries/armem/core/base/ice_conversions.h b/source/RobotAPI/libraries/armem/core/base/ice_conversions.h index 21316623c9484f46db177d122642170822561c13..a660ad488cab36fb28cb7b6fe2013c60006c1ee0 100644 --- a/source/RobotAPI/libraries/armem/core/base/ice_conversions.h +++ b/source/RobotAPI/libraries/armem/core/base/ice_conversions.h @@ -86,7 +86,7 @@ namespace armarx::armem::base ice.history.clear(); entity.forEachSnapshot([&ice](const auto & snapshot) { - armem::toIce(ice.history[armem::toIce<long>(snapshot.time())], snapshot); + armem::toIce(ice.history[toIce<armarx::core::time::dto::DateTime>(snapshot.time())], snapshot); }); } template <class ...Args> diff --git a/source/RobotAPI/libraries/armem/core/forward_declarations.h b/source/RobotAPI/libraries/armem/core/forward_declarations.h index 9a2bbf88161cc77a4625491ece0b210abdea0b57..4b6d382665bc5e5471836c028a0f00a9b859e1f1 100644 --- a/source/RobotAPI/libraries/armem/core/forward_declarations.h +++ b/source/RobotAPI/libraries/armem/core/forward_declarations.h @@ -2,7 +2,10 @@ #include <ArmarXCore/core/time/forward_declarations.h> + +namespace IceInternal { + template<typename T> class Handle; } namespace armarx::armem @@ -61,3 +64,22 @@ namespace armarx::armem::server::wm class Memory; } +namespace armarx::armem::data +{ + struct MemoryID; + struct Commit; + struct CommitResult; + struct EntityUpdate; + struct EntityUpdateResult; +} + +namespace armarx::armem::actions +{ + class Menu; +} + +namespace armarx::armem::actions::data +{ + class Menu; + using MenuPtr = ::IceInternal::Handle<Menu>; +} diff --git a/source/RobotAPI/libraries/armem/core/ice_conversions.cpp b/source/RobotAPI/libraries/armem/core/ice_conversions.cpp index 20df9176bb562ab9025c001451d6fef23793d504..1dd76ae471eab7f3041b7ea835891f53d6df3f3f 100644 --- a/source/RobotAPI/libraries/armem/core/ice_conversions.cpp +++ b/source/RobotAPI/libraries/armem/core/ice_conversions.cpp @@ -1,17 +1,20 @@ #include "ice_conversions.h" +#include <ArmarXCore/core/time/ice_conversions.h> + #include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h> +#include <RobotAPI/interface/armem/actions.h> +#include <RobotAPI/interface/armem/commit.h> +#include <RobotAPI/interface/armem/memory.h> -void IceUtil::toIce(long& ice, const IceUtil::Time& time) -{ - ice = time.toMicroSeconds(); -} +#include "ice_conversions_templates.h" + +#include "actions.h" +#include "Commit.h" +#include "MemoryID.h" +#include "Time.h" -void IceUtil::fromIce(const long& ice, IceUtil::Time& time) -{ - time = Time::microSeconds(ice); -} namespace armarx { @@ -22,7 +25,7 @@ namespace armarx ice.coreSegmentName = id.coreSegmentName; ice.providerSegmentName = id.providerSegmentName; ice.entityName = id.entityName; - toIce(ice.timestampMicroSeconds, id.timestamp); + toIce(ice.timestamp, id.timestamp); ice.instanceIndex = id.instanceIndex; } @@ -32,7 +35,7 @@ namespace armarx id.coreSegmentName = ice.coreSegmentName; id.providerSegmentName = ice.providerSegmentName; id.entityName = ice.entityName; - fromIce(ice.timestampMicroSeconds, id.timestamp); + fromIce(ice.timestamp, id.timestamp); id.instanceIndex = ice.instanceIndex; } @@ -85,10 +88,10 @@ namespace armarx std::transform(ice.instancesData.begin(), ice.instancesData.end(), std::back_inserter(update.instancesData), aron::data::Dict::FromAronDictDTO); - update.timeCreated = Time::microSeconds(ice.timeCreatedMicroSeconds); + fromIce(ice.timeCreated, update.timeCreated); update.confidence = ice.confidence; - update.timeSent = Time::microSeconds(ice.timeSentMicroSeconds); + fromIce(ice.timeSent, update.timeSent); } void armem::toIce(data::EntityUpdate& ice, const EntityUpdate& update) @@ -100,17 +103,17 @@ namespace armarx std::transform(update.instancesData.begin(), update.instancesData.end(), std::back_inserter(ice.instancesData), aron::data::Dict::ToAronDictDTO); - ice.timeCreatedMicroSeconds = update.timeCreated.toMicroSeconds(); + toIce(ice.timeCreated, update.timeCreated); ice.confidence = update.confidence; - ice.timeSentMicroSeconds = update.timeSent.toMicroSeconds(); + toIce(ice.timeSent, update.timeSent); } void armem::fromIce(const data::EntityUpdateResult& ice, EntityUpdateResult& result) { result.success = ice.success; fromIce(ice.snapshotID, result.snapshotID); - result.timeArrived = Time::microSeconds(ice.timeArrivedMicroSeconds); + fromIce(ice.timeArrived, result.timeArrived); result.errorMessage = ice.errorMessage; } @@ -118,7 +121,7 @@ namespace armarx { ice.success = result.success; toIce(ice.snapshotID, result.snapshotID); - ice.timeArrivedMicroSeconds = result.timeArrived.toMicroSeconds(); + toIce(ice.timeArrived, result.timeArrived); ice.errorMessage = result.errorMessage; } diff --git a/source/RobotAPI/libraries/armem/core/ice_conversions.h b/source/RobotAPI/libraries/armem/core/ice_conversions.h index a8ef35e7938f07f14a81b8ecb731e2470b395c97..2a4daf725a32bb9ca12a5865be8207b87076871a 100644 --- a/source/RobotAPI/libraries/armem/core/ice_conversions.h +++ b/source/RobotAPI/libraries/armem/core/ice_conversions.h @@ -1,23 +1,6 @@ #pragma once -#include <RobotAPI/interface/armem/actions.h> -#include <RobotAPI/interface/armem/commit.h> -#include <RobotAPI/interface/armem/memory.h> - -#include "ice_conversions_templates.h" - -#include "actions.h" -#include "Commit.h" -#include "MemoryID.h" -#include "Time.h" - - -namespace IceUtil -{ - // Define in original namespace to allow ADL. - void toIce(long& ice, const Time& time); - void fromIce(const long& ice, Time& time); -} +#include "forward_declarations.h" namespace armarx::armem @@ -48,5 +31,6 @@ namespace armarx::armem void fromIce(const actions::data::MenuPtr& ice, actions::Menu& menu); void toIce(actions::data::MenuPtr& ice, const actions::Menu& menu); + } diff --git a/source/RobotAPI/libraries/armem/core/json_conversions.cpp b/source/RobotAPI/libraries/armem/core/json_conversions.cpp index e4da9d89b5e04351e5e528132406a962470364e3..2a6f2a1f6cbff1d7d348d92f9ea7b482b6c25b3b 100644 --- a/source/RobotAPI/libraries/armem/core/json_conversions.cpp +++ b/source/RobotAPI/libraries/armem/core/json_conversions.cpp @@ -9,7 +9,7 @@ void armarx::armem::to_json(nlohmann::json& j, const MemoryID& bo) j["coreSegmentName"] = bo.coreSegmentName; j["providerSegmentName"] = bo.providerSegmentName; j["entityName"] = bo.entityName; - j["timestamp_usec"] = bo.timestamp.toMicroSeconds(); + j["timestamp_usec"] = bo.timestamp.toMicroSecondsSinceEpoch(); j["timestamp_datetime"] = toDateTimeMilliSeconds(bo.timestamp); j["instanceIndex"] = bo.instanceIndex; } @@ -20,7 +20,7 @@ void armarx::armem::from_json(const nlohmann::json& j, MemoryID& bo) j.at("coreSegmentName").get_to(bo.coreSegmentName); j.at("providerSegmentName").get_to(bo.providerSegmentName); j.at("entityName").get_to(bo.entityName); - bo.timestamp = Time::microSeconds(j.at("timestamp_usec").get<int64_t>()); + bo.timestamp = Time(Duration::MicroSeconds(j.at("timestamp_usec").get<int64_t>())); // j.at("timestamp_datetime").get_to(toDateTimeMilliSeconds(bo.timestamp)); j.at("instanceIndex").get_to(bo.instanceIndex); } diff --git a/source/RobotAPI/libraries/armem/core/wm/aron_conversions.cpp b/source/RobotAPI/libraries/armem/core/wm/aron_conversions.cpp index dacedd5e05177028fea42114a3dd02d4b609ad9a..d24ce36b544670f5e24e72177f64b839be52fc0d 100644 --- a/source/RobotAPI/libraries/armem/core/wm/aron_conversions.cpp +++ b/source/RobotAPI/libraries/armem/core/wm/aron_conversions.cpp @@ -23,13 +23,13 @@ void armarx::armem::from_aron(const aron::data::DictPtr& metadata, const aron::d e.data() = data; auto timeCreated = aron::data::Long::DynamicCastAndCheck(metadata->getElement(DATA_WRAPPER_TIME_CREATED_FIELD)); - m.timeCreated = Time::microSeconds(timeCreated->toAronLongDTO()->value); + m.timeCreated = Time(Duration::MicroSeconds(timeCreated->toAronLongDTO()->value)); auto timeSent = aron::data::Long::DynamicCastAndCheck(metadata->getElement(DATA_WRAPPER_TIME_SENT_FIELD)); - m.timeSent = Time::microSeconds(timeSent->toAronLongDTO()->value); + m.timeSent = Time(Duration::MicroSeconds(timeSent->toAronLongDTO()->value)); auto timeArrived = aron::data::Long::DynamicCastAndCheck(metadata->getElement(DATA_WRAPPER_TIME_ARRIVED_FIELD)); - m.timeArrived = Time::microSeconds(timeArrived->toAronLongDTO()->value); + m.timeArrived = Time(Duration::MicroSeconds(timeArrived->toAronLongDTO()->value)); auto confidence = aron::data::Double::DynamicCastAndCheck(metadata->getElement(DATA_WRAPPER_CONFIDENCE_FIELD)); m.confidence = static_cast<float>(confidence->toAronDoubleDTO()->value); @@ -42,20 +42,20 @@ void armarx::armem::to_aron(aron::data::DictPtr& metadata, aron::data::DictPtr& metadata = std::make_shared<aron::data::Dict>(); auto timeWrapped = std::make_shared<aron::data::Long>(); - timeWrapped->setValue(Time::now().toMicroSeconds()); + timeWrapped->setValue(Time::Now().toMicroSecondsSinceEpoch()); metadata->addElement(DATA_WRAPPER_TIME_STORED_FIELD, timeWrapped); const wm::EntityInstanceMetadata& m = e.metadata(); auto timeCreated = std::make_shared<aron::data::Long>(); - timeCreated->setValue(m.timeCreated.toMicroSeconds()); + timeCreated->setValue(m.timeCreated.toMicroSecondsSinceEpoch()); metadata->addElement(DATA_WRAPPER_TIME_CREATED_FIELD, timeCreated); auto timeSent = std::make_shared<aron::data::Long>(); - timeSent->setValue(m.timeSent.toMicroSeconds()); + timeSent->setValue(m.timeSent.toMicroSecondsSinceEpoch()); metadata->addElement(DATA_WRAPPER_TIME_SENT_FIELD, timeSent); auto timeArrived = std::make_shared<aron::data::Long>(); - timeArrived->setValue(m.timeArrived.toMicroSeconds()); + timeArrived->setValue(m.timeArrived.toMicroSecondsSinceEpoch()); metadata->addElement(DATA_WRAPPER_TIME_ARRIVED_FIELD, timeArrived); auto confidence = std::make_shared<aron::data::Double>(); diff --git a/source/RobotAPI/libraries/armem/core/wm/ice_conversions.cpp b/source/RobotAPI/libraries/armem/core/wm/ice_conversions.cpp index ba6c9782e0e2663ee9395fde31956d5fdbfc2ad2..826bf6d9f2f980cd99bbd35a38a2357f585b5f79 100644 --- a/source/RobotAPI/libraries/armem/core/wm/ice_conversions.cpp +++ b/source/RobotAPI/libraries/armem/core/wm/ice_conversions.cpp @@ -1,5 +1,6 @@ #include "ice_conversions.h" +#include <RobotAPI/libraries/armem/core/ice_conversions.h> #include <RobotAPI/libraries/armem/core/base/ice_conversions.h>