Skip to content
Snippets Groups Projects
Commit 46abc553 authored by Ernesto Corbellini's avatar Ernesto Corbellini
Browse files

Added publisher for cancel message.

parent ad816627
No related branches found
No related tags found
No related merge requests found
...@@ -10,6 +10,7 @@ import org.ros.message.MessageListener; ...@@ -10,6 +10,7 @@ import org.ros.message.MessageListener;
import org.ros.internal.message.Message; import org.ros.internal.message.Message;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import actionlib_msgs.GoalStatusArray; import actionlib_msgs.GoalStatusArray;
import actionlib_msgs.GoalID;
public class ActionClient<T_ACTION_GOAL extends Message, public class ActionClient<T_ACTION_GOAL extends Message,
T_ACTION_FEEDBACK extends Message, T_ACTION_FEEDBACK extends Message,
...@@ -20,8 +21,7 @@ public class ActionClient<T_ACTION_GOAL extends Message, ...@@ -20,8 +21,7 @@ public class ActionClient<T_ACTION_GOAL extends Message,
String actionResultType; String actionResultType;
String actionFeedbackType; String actionFeedbackType;
Publisher<T_ACTION_GOAL> goalPublisher = null; Publisher<T_ACTION_GOAL> goalPublisher = null;
//Publisher<actionlib_msgs.cancel> clientCancel; Publisher<GoalID> cancelPublisher = null;
//Suscriber<actionlib_msgs.status> serverStatus;
Subscriber<T_ACTION_RESULT> serverResult = null; Subscriber<T_ACTION_RESULT> serverResult = null;
Subscriber<T_ACTION_FEEDBACK> serverFeedback = null; Subscriber<T_ACTION_FEEDBACK> serverFeedback = null;
Subscriber<GoalStatusArray> serverStatus = null; Subscriber<GoalStatusArray> serverStatus = null;
...@@ -48,15 +48,23 @@ public class ActionClient<T_ACTION_GOAL extends Message, ...@@ -48,15 +48,23 @@ public class ActionClient<T_ACTION_GOAL extends Message,
goalPublisher.publish(goal); goalPublisher.publish(goal);
} }
public void sendCancel(GoalID id) {
cancelPublisher.publish(id);
}
private void publishClient(ConnectedNode node) { private void publishClient(ConnectedNode node) {
goalPublisher = node.newPublisher(actionName + "/goal", actionGoalType); goalPublisher = node.newPublisher(actionName + "/goal", actionGoalType);
//clientCancel = connectedNode.newPublisher("fibonacci/cancel", cancelPublisher = node.newPublisher(actionName + "/cancel", GoalID._TYPE);
// actionlib_msgs.cancel._TYPE);
} }
private void unpublishClient() { private void unpublishClient() {
if (goalPublisher != null) { if (goalPublisher != null) {
goalPublisher.shutdown(5, TimeUnit.SECONDS); goalPublisher.shutdown(5, TimeUnit.SECONDS);
goalPublisher = null;
}
if (cancelPublisher != null) {
cancelPublisher.shutdown(5, TimeUnit.SECONDS);
cancelPublisher = null;
} }
} }
...@@ -89,22 +97,20 @@ public class ActionClient<T_ACTION_GOAL extends Message, ...@@ -89,22 +97,20 @@ public class ActionClient<T_ACTION_GOAL extends Message,
gotStatus(message); gotStatus(message);
} }
}); });
/*serverStatus = node.newSubscriber("fibonacci/status",
actionlib_msgs.status._TYPE);
serverFeedback = node.newSubscriber("fibonacci/feedback",
actionlib_tutorials.FibonacciActionFeedback._TYPE);*/
} }
private void unsubscribeToServer() { private void unsubscribeToServer() {
if (serverFeedback != null) { if (serverFeedback != null) {
serverFeedback.shutdown(5, TimeUnit.SECONDS); serverFeedback.shutdown(5, TimeUnit.SECONDS);
serverFeedback = null;
} }
if (serverResult != null) { if (serverResult != null) {
serverResult.shutdown(5, TimeUnit.SECONDS); serverResult.shutdown(5, TimeUnit.SECONDS);
serverResult = null;
} }
if (serverStatus != null) { if (serverStatus != null) {
serverStatus.shutdown(5, TimeUnit.SECONDS); serverStatus.shutdown(5, TimeUnit.SECONDS);
serverStatus = null;
} }
} }
......
...@@ -38,10 +38,10 @@ public class TestClient extends AbstractNodeMain implements ActionClientListener ...@@ -38,10 +38,10 @@ public class TestClient extends AbstractNodeMain implements ActionClientListener
goalMessage.setGoal(fibonacciGoal); goalMessage.setGoal(fibonacciGoal);
while (repeat > 0) { while (repeat > 0) {
sleep(10000);
System.out.println("Sending goal #" + repeat + "..."); System.out.println("Sending goal #" + repeat + "...");
ac.sendGoal(goalMessage); ac.sendGoal(goalMessage);
System.out.println("Goal sent."); System.out.println("Goal sent.");
sleep(10000);
//while(!resultReceived) sleep(100); //while(!resultReceived) sleep(100);
resultReceived = false; resultReceived = false;
repeat--; repeat--;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment