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

Added function to set the goal message.

Goal message is now treated as a generic message.
Added constructor with an action goal message.
parent 691e79e9
No related branches found
No related tags found
No related merge requests found
...@@ -26,9 +26,16 @@ import actionlib_msgs.GoalID; ...@@ -26,9 +26,16 @@ import actionlib_msgs.GoalID;
* Class to encapsulate the action goal object. * Class to encapsulate the action goal object.
* @author Ernesto Corbellini ecorbellini@ekumenlabs.com * @author Ernesto Corbellini ecorbellini@ekumenlabs.com
*/ */
public class ActionGoal<T_ACTION_GOAL extends Message, T_GOAL extends Message> { public class ActionGoal<T_ACTION_GOAL extends Message> {
private T_ACTION_GOAL goalMessage = null; private T_ACTION_GOAL goalMessage = null;
public ActionGoal(T_ACTION_GOAL ag) {
goalMessage = ag;
}
public ActionGoal() {
}
/** /**
* Return the sequence number of the action goal message's header. * Return the sequence number of the action goal message's header.
* @return The sequence number of the std_msgs.Header or -1 if there is an error. * @return The sequence number of the std_msgs.Header or -1 if there is an error.
...@@ -198,7 +205,7 @@ public class ActionGoal<T_ACTION_GOAL extends Message, T_GOAL extends Message> { ...@@ -198,7 +205,7 @@ public class ActionGoal<T_ACTION_GOAL extends Message, T_GOAL extends Message> {
try { try {
Method m = goalMessage.getClass().getMethod("getGoalId"); Method m = goalMessage.getClass().getMethod("getGoalId");
m.setAccessible(true); // workaround for known bug http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6924232 m.setAccessible(true); // workaround for known bug http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6924232
gid= (GoalID)m.invoke(goalMessage); gid = (GoalID)m.invoke(goalMessage);
} }
catch (Exception e) { catch (Exception e) {
e.printStackTrace(System.out); e.printStackTrace(System.out);
...@@ -219,13 +226,13 @@ public class ActionGoal<T_ACTION_GOAL extends Message, T_GOAL extends Message> { ...@@ -219,13 +226,13 @@ public class ActionGoal<T_ACTION_GOAL extends Message, T_GOAL extends Message> {
} }
public T_GOAL getGoalMessage() { public Message getGoalMessage() {
T_GOAL g = null; Message g = null;
if (goalMessage != null) { if (goalMessage != null) {
try { try {
Method m = goalMessage.getClass().getMethod("getGoal"); Method m = goalMessage.getClass().getMethod("getGoal");
m.setAccessible(true); // workaround for known bug http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6924232 m.setAccessible(true); // workaround for known bug http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6924232
g= (T_GOAL)m.invoke(goalMessage); g = (Message)m.invoke(goalMessage);
} }
catch (Exception e) { catch (Exception e) {
e.printStackTrace(System.out); e.printStackTrace(System.out);
...@@ -233,8 +240,18 @@ public class ActionGoal<T_ACTION_GOAL extends Message, T_GOAL extends Message> { ...@@ -233,8 +240,18 @@ public class ActionGoal<T_ACTION_GOAL extends Message, T_GOAL extends Message> {
} }
return g; return g;
} }
public void setGoalMessage(T_GOAL gm) {
public void setGoalMessage(Message gm) {
if (goalMessage != null) {
try {
Method m = goalMessage.getClass().getMethod("setGoal", Message.class);
m.setAccessible(true); // workaround for known bug http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6924232
m.invoke(goalMessage, gm);
}
catch (Exception e) {
e.printStackTrace(System.out);
}
}
} }
public boolean equals(ActionGoal ag) { public boolean equals(ActionGoal ag) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment