From a53e2bdac292e606706b6d5624b5191e15b10506 Mon Sep 17 00:00:00 2001 From: dwlee Date: Fri, 19 Dec 2014 15:52:02 +0900 Subject: [PATCH 1/3] add exception handler onStart function --- .../rocon_rosjava_core/master_info/MasterInfo.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java b/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java index e841eee..61e39e1 100644 --- a/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java +++ b/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java @@ -33,9 +33,15 @@ public MasterInfo() { } @Override public void onStart(final ConnectedNode connectedNode) { - RosTopicInfo topicInformation = new RosTopicInfo(connectedNode); - String topicName = topicInformation.findTopic("rocon_std_msgs/MasterInfo"); - this.masterInfoListener.connect(connectedNode, topicName, rocon_std_msgs.MasterInfo._TYPE); + try{ + RosTopicInfo topicInformation = new RosTopicInfo(connectedNode); + String topicName = topicInformation.findTopic("rocon_std_msgs/MasterInfo"); + this.masterInfoListener.connect(connectedNode, topicName, rocon_std_msgs.MasterInfo._TYPE); + } catch (RosRuntimeException e){ + return; + } + + } /** From 19210b583be9e64e1631e0d5e3a782a4d302debe Mon Sep 17 00:00:00 2001 From: dwlee Date: Fri, 19 Dec 2014 15:52:56 +0900 Subject: [PATCH 2/3] increased timeout for low spec device --- .../rocon_rosjava_core/rosjava_utils/ListenerNode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/ListenerNode.java b/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/ListenerNode.java index 88f5988..67739ce 100644 --- a/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/ListenerNode.java +++ b/rosjava_utils/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/rosjava_utils/ListenerNode.java @@ -64,7 +64,7 @@ public void waitForResponse() throws ListenerException, TimeoutException { throw new ListenerException(e); } // timeout. - if ( count == 20 ) { + if ( count == 50 ) { this.errorMessage = "timed out waiting for a " + subscriber.getTopicName() + "publication"; throw new TimeoutException(this.errorMessage); } From 0881a3bd8b5dd11f595b79afdae02de2bc4ed199 Mon Sep 17 00:00:00 2001 From: dwlee Date: Sat, 14 Feb 2015 15:27:19 +0900 Subject: [PATCH 3/3] master info error throw not just return --- .../master_info/MasterInfo.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java b/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java index 8e842e5..76332f9 100644 --- a/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java +++ b/master_info/src/main/java/com/github/robotics_in_concert/rocon_rosjava_core/master_info/MasterInfo.java @@ -9,11 +9,13 @@ import com.github.robotics_in_concert.rocon_rosjava_core.rosjava_utils.RosTopicInfo; import com.google.common.collect.Lists; +import org.ros.exception.RosRuntimeException; import org.ros.internal.loader.CommandLineLoader; import org.ros.namespace.GraphName; import org.ros.node.AbstractNodeMain; import org.ros.node.ConnectedNode; import org.ros.node.DefaultNodeMainExecutor; +import org.ros.node.Node; import org.ros.node.NodeConfiguration; import org.ros.node.NodeMainExecutor; @@ -25,24 +27,25 @@ public class MasterInfo extends AbstractNodeMain { - private ListenerNode masterInfoListener; + private ListenerNode masterInfoListener; + public MasterInfo() { + this.masterInfoListener = new ListenerNode(); + } - public MasterInfo() { - this.masterInfoListener = new ListenerNode(); - } @Override - public void onStart(final ConnectedNode connectedNode) { + public void onStart (final ConnectedNode connectedNode) { try{ RosTopicInfo topicInformation = new RosTopicInfo(connectedNode); String topicName = topicInformation.findTopic("rocon_std_msgs/MasterInfo"); this.masterInfoListener.connect(connectedNode, topicName, rocon_std_msgs.MasterInfo._TYPE); } catch (RosRuntimeException e){ - return; + try { + throw new MasterInfoException(e.getMessage()); + } catch (MasterInfoException e1) { + e1.printStackTrace(); + } } - - } - /** * Wait for data to come in. This uses a default timeout * set by ListenerNode.