diff --git a/source/RobotAPI/libraries/SimpleJsonLogger/SimpleJsonLoggerEntry.cpp b/source/RobotAPI/libraries/SimpleJsonLogger/SimpleJsonLoggerEntry.cpp index a288078a9178d1259b2283affad03c754d0b3310..fde6f96c95f289bbc8d80fd2f4f5be5763726e9e 100644 --- a/source/RobotAPI/libraries/SimpleJsonLogger/SimpleJsonLoggerEntry.cpp +++ b/source/RobotAPI/libraries/SimpleJsonLogger/SimpleJsonLoggerEntry.cpp @@ -71,6 +71,11 @@ void SimpleJsonLoggerEntry::Add(const std::string& key, const std::vector<float> obj->add(key, ToArr(value)); } +void SimpleJsonLoggerEntry::Add(const std::string& key, const std::map<std::string, float>& value) +{ + obj->add(key, ToObj(value)); +} + JsonArrayPtr SimpleJsonLoggerEntry::ToArr(const Eigen::VectorXf& vec) { @@ -101,6 +106,16 @@ JsonObjectPtr SimpleJsonLoggerEntry::ToObj(Eigen::Vector3f vec) return obj; } +JsonObjectPtr SimpleJsonLoggerEntry::ToObj(const std::map<std::string, float>& value) +{ + JsonObjectPtr obj(new JsonObject); + for (const std::pair<std::string, float>& pair : value) + { + obj->add(pair.first, JsonValue::Create(pair.second)); + } + return obj; +} + JsonArrayPtr SimpleJsonLoggerEntry::ToArr(Eigen::Matrix4f mat) { JsonArrayPtr arr(new JsonArray); diff --git a/source/RobotAPI/libraries/SimpleJsonLogger/SimpleJsonLoggerEntry.h b/source/RobotAPI/libraries/SimpleJsonLogger/SimpleJsonLoggerEntry.h index 44034658024bfb8cb498b7e1f6d50cb4a1c726f9..9565419e5d15017c8a2bf1e937ec1615a740186f 100644 --- a/source/RobotAPI/libraries/SimpleJsonLogger/SimpleJsonLoggerEntry.h +++ b/source/RobotAPI/libraries/SimpleJsonLogger/SimpleJsonLoggerEntry.h @@ -27,6 +27,7 @@ #include <ArmarXGui/libraries/StructuralJson/JsonObject.h> #include <Eigen/Dense> +#include <map> namespace armarx { @@ -46,10 +47,12 @@ namespace armarx void Add(const std::string& key, const std::string& value); void Add(const std::string& key, float value); void Add(const std::string& key, const std::vector<float>& value); + void Add(const std::string& key, const std::map<std::string, float>& value); static JsonArrayPtr ToArr(const Eigen::VectorXf& vec); static JsonArrayPtr ToArr(const std::vector<float>& vec); static JsonObjectPtr ToObj(Eigen::Vector3f vec); + static JsonObjectPtr ToObj(const std::map<std::string, float>& value); static JsonArrayPtr ToArr(Eigen::Matrix4f mat); static JsonArrayPtr MatrixToArr(Eigen::MatrixXf mat);