31 #include <console_bridge/console.h>
43 if (xml_element->Attribute(
"rising") ==
nullptr && xml_element->Attribute(
"falling") ==
nullptr)
44 std::throw_with_nested(std::runtime_error(
"Calibration: Missing both attribute 'rising' and 'falling', either "
45 "remove tag add attributes and values!"));
47 auto calibration = std::make_shared<tesseract_scene_graph::JointCalibration>();
48 if (xml_element->Attribute(
"rising") ==
nullptr && xml_element->Attribute(
"falling") !=
nullptr)
49 CONSOLE_BRIDGE_logDebug(
"Calibration: Missing attribute 'rising', using default value 0!");
51 if (xml_element->Attribute(
"rising") !=
nullptr && xml_element->Attribute(
"falling") ==
nullptr)
52 CONSOLE_BRIDGE_logDebug(
"Calibration: Missing attribute 'falling', using default value 0!");
54 auto xml_status = xml_element->QueryDoubleAttribute(
"rising", &(calibration->rising));
55 if (xml_status != tinyxml2::XML_NO_ATTRIBUTE && xml_status != tinyxml2::XML_SUCCESS)
56 std::throw_with_nested(std::runtime_error(
"Calibration: Error parsing attribute 'rising'!"));
58 xml_status = xml_element->QueryDoubleAttribute(
"falling", &(calibration->falling));
59 if (xml_status != tinyxml2::XML_NO_ATTRIBUTE && xml_status != tinyxml2::XML_SUCCESS)
60 std::throw_with_nested(std::runtime_error(
"Calibration: Error parsing attribute 'falling'!"));
66 writeCalibration(
const std::shared_ptr<const tesseract_scene_graph::JointCalibration>& calibration,
67 tinyxml2::XMLDocument& doc)
69 if (calibration ==
nullptr)
70 std::throw_with_nested(std::runtime_error(
"Calibration is nullptr and cannot be converted to XML"));
72 xml_element->SetAttribute(
"rising",
toString(calibration->rising).c_str());
73 xml_element->SetAttribute(
"falling",
toString(calibration->falling).c_str());