From df68516b4fe866ca4de066b24cc4ae81d3cbf8ed Mon Sep 17 00:00:00 2001 From: renan028 Date: Thu, 9 Jul 2020 22:22:13 -0300 Subject: [PATCH] fix ambiguous conversion --- Executor/src/skill_action.cpp | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/Executor/src/skill_action.cpp b/Executor/src/skill_action.cpp index 0a22e73..5859fb3 100644 --- a/Executor/src/skill_action.cpp +++ b/Executor/src/skill_action.cpp @@ -106,12 +106,33 @@ BT::NodeStatus SkillAction::convertResultToStatus(const std::string &result_stri const auto &output = json["outputs"]; for (auto it = output.begin(); it != output.end(); it++) { + if (it.value().is_boolean()) setOutput(it.key(), it.value().get()); - else if (it.value().is_number_integer()) - setOutput(it.key(), it.value().get()); - else if (it.value().is_number_float()) - setOutput(it.key(), it.value().get()); + else if (it.value().is_number_float()) { + try { + setOutput(it.key(), it.value().get()); + continue; + } + catch (...){}; + try { + setOutput(it.key(), it.value().get()); + continue; + } + catch (...){}; + } + else if (it.value().is_number_integer()) { + try { + setOutput(it.key(), it.value().get()); + continue; + } + catch (...){}; + try { + setOutput(it.key(), it.value().get()); + continue; + } + catch (...){}; + } else if (it.value().is_string()) setOutput(it.key(), it.value().get()); else