diff --git a/source/RobotAPI/libraries/armem/CMakeLists.txt b/source/RobotAPI/libraries/armem/CMakeLists.txt index 3e0900893a8d8e7a0145b1ec2a4951e94ae85b6a..38d9515cc25818652636ca4b8c5e969eaaf9519a 100644 --- a/source/RobotAPI/libraries/armem/CMakeLists.txt +++ b/source/RobotAPI/libraries/armem/CMakeLists.txt @@ -35,6 +35,7 @@ set(LIB_FILES core/Time.cpp core/ice_conversions.cpp core/aron_conversions.cpp + core/json_conversions.cpp core/base/detail/MemoryItem.cpp core/base/detail/MaxHistorySize.cpp @@ -136,6 +137,7 @@ set(LIB_HEADERS core/SuccessHeader.h core/Time.h core/aron_conversions.h + core/json_conversions.h core/ice_conversions.h core/ice_conversions_templates.h diff --git a/source/RobotAPI/libraries/armem/core/json_conversions.cpp b/source/RobotAPI/libraries/armem/core/json_conversions.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e4da9d89b5e04351e5e528132406a962470364e3 --- /dev/null +++ b/source/RobotAPI/libraries/armem/core/json_conversions.cpp @@ -0,0 +1,26 @@ +#include "json_conversions.h" + +#include <RobotAPI/libraries/armem/core/MemoryID.h> + + +void armarx::armem::to_json(nlohmann::json& j, const MemoryID& bo) +{ + j["memoryName"] = bo.memoryName; + j["coreSegmentName"] = bo.coreSegmentName; + j["providerSegmentName"] = bo.providerSegmentName; + j["entityName"] = bo.entityName; + j["timestamp_usec"] = bo.timestamp.toMicroSeconds(); + j["timestamp_datetime"] = toDateTimeMilliSeconds(bo.timestamp); + j["instanceIndex"] = bo.instanceIndex; +} + +void armarx::armem::from_json(const nlohmann::json& j, MemoryID& bo) +{ + j.at("memoryName").get_to(bo.memoryName); + 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>()); + // j.at("timestamp_datetime").get_to(toDateTimeMilliSeconds(bo.timestamp)); + j.at("instanceIndex").get_to(bo.instanceIndex); +} diff --git a/source/RobotAPI/libraries/armem/core/json_conversions.h b/source/RobotAPI/libraries/armem/core/json_conversions.h new file mode 100644 index 0000000000000000000000000000000000000000..86e508c228fe57063216c2f1c6fa7710066992bc --- /dev/null +++ b/source/RobotAPI/libraries/armem/core/json_conversions.h @@ -0,0 +1,12 @@ +#pragma once + +#include <SimoxUtility/json/json.hpp> + + +namespace armarx::armem +{ + class MemoryID; + + void to_json(nlohmann::json& j, const MemoryID& bo); + void from_json(const nlohmann::json& j, MemoryID& bo); +}