diff --git a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp index 02325df8c3333ffa5671bcdc109e04ff6edc4ceb..4dda540b2596801f1492c4ae8ac532455af002a4 100644 --- a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp +++ b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp @@ -164,7 +164,23 @@ namespace armarx::armem::server::robot_state::proprioception std::string key = split.size() == 4 ? (fieldName + "." + split.at(3)) : fieldName; - dto.extra[key] = getValueAs<float>(value); + + switch (value.entry.type) + { + case RobotUnitDataStreaming::NodeTypeFloat: + dto.extra[key] = getValueAs<float>(value); + break; + case RobotUnitDataStreaming::NodeTypeInt: + dto.extra[key] = getValueAs<int>(value); + break; + case RobotUnitDataStreaming::NodeTypeLong: + dto.extra[key] = getValueAs<long>(value); + break; + default: + ARMARX_DEBUG << "Cannot handle extra field '" << key << "' of type " + << RobotUnitDataStreaming::DataEntryNames.to_name(value.entry.type); + break; + } } }