00001 #ifndef GRIPPERSETPOINTFACTORY_H_ 00002 #define GRIPPERSETPOINTFACTORY_H_ 00003 00004 #include <boost/cast.hpp> 00005 #include <boost/lexical_cast.hpp> 00006 #include "tinyxml.h" 00007 #include "nasa_common_logging/Logger.h" 00008 #include "robot_instance/XmlParserExceptions.h" 00009 #include <boost/shared_ptr.hpp> 00010 #include <boost/make_shared.hpp> // so users can easily create these pointers 00011 00012 struct GripperSetpoint 00013 { 00014 double jawPosition, jawPositionDelta; 00015 double expectedLoad, expectedLoadDelta; 00016 }; 00017 00018 typedef std::map< std::string, GripperSetpoint > GripperSetpointMap; 00019 typedef boost::shared_ptr<GripperSetpointMap> GripperSetpointMapPtr; 00020 00021 namespace GripperSetpointFactory 00022 { 00023 GripperSetpointMap::value_type fromXml(const std::string& xml); 00024 void fromFile(const std::string& filename, GripperSetpointMapPtr setpointMap); 00025 00026 namespace Private 00027 { 00028 const std::string getAttribute(TiXmlHandle handle, const std::string& attribute, bool required = true); 00029 }; 00030 }; 00031 00032 #endif /* GRIPPERSETPOINTFACTORY_H_ */