// Template specialization to converts a string to Position2D. namespace BT { template <> inline Position2D convertFromString(StringView str) { // The next line should be removed... printf("Converting string: \"%s\"\n", str.data() );
// We expect real numbers separated by semicolons auto parts = splitString(str, ';'); if (parts.size() != 2) { throw RuntimeError("invalid input)"); } else{ Position2D output; output.x = convertFromString<double>(parts[0]); output.y = convertFromString<double>(parts[1]); return output; } } } // end namespace BT
class PrintTarget: public SyncActionNode { public: PrintTarget(const std::string& name, const NodeConfiguration& config): SyncActionNode(name,config) {}
static PortsList providedPorts() { // Optionally, a port can have a human readable description const char* description = "Simply print the goal on console..."; return { InputPort<Position2D>("target", description) }; }