@@ -87,14 +87,16 @@ namespace tesseract_planning
8787TaskComposerNode::TaskComposerNode (std::string name,
8888 TaskComposerNodeType type,
8989 TaskComposerNodePorts ports,
90- bool conditional)
90+ bool conditional,
91+ int return_value_override)
9192 : name_(std::move(name))
9293 , ns_(name_)
9394 , type_(type)
9495 , uuid_(boost::uuids::random_generator()())
9596 , uuid_str_(boost::uuids::to_string(uuid_))
9697 , conditional_(conditional)
9798 , ports_(std::move(ports))
99+ , return_value_override_(return_value_override)
98100{
99101}
100102
@@ -126,6 +128,9 @@ TaskComposerNode::TaskComposerNode(std::string name,
126128
127129 output_keys_ = n.as <TaskComposerKeys>();
128130 }
131+
132+ if (YAML ::Node n = config[" return_value_override" ])
133+ return_value_override_ = n.as <int >();
129134 }
130135 catch (const std::exception& e)
131136 {
@@ -158,6 +163,12 @@ int TaskComposerNode::run(TaskComposerContext& context, OptionalTaskComposerExec
158163 try
159164 {
160165 results = runImpl (context, executor);
166+ if (return_value_override_ >= 0 )
167+ {
168+ results.return_value = return_value_override_;
169+ results.status_message += " (Return value overridden to " + std::to_string (return_value_override_) + " )" ;
170+ results.color = " yellow" ;
171+ }
161172 }
162173 catch (const std::exception& e)
163174 {
0 commit comments