def test_rosnode_ping_all(self): import rosnode cmd = 'rosnode' pinged, unpinged = rosnode.rosnode_ping_all(verbose=False) self.assert_('/rosout' in pinged) with fakestdout() as b: pinged, unpinged = rosnode.rosnode_ping_all(verbose=True) self.assert_('xmlrpc reply' in b.getvalue()) self.assert_('/rosout' in pinged)
def update_nodes(self): # first update the listed nodes by the ros master self.listed_nodes = rosnode.get_node_names() for listed_node in self.listed_nodes: if listed_node not in self.tracked_nodes and not self.is_neglected_node(listed_node): rospy.loginfo("Added '%s' to node_alive_server" % listed_node) self.tracked_nodes.append(listed_node) if listed_node not in self.seen_nodes: self.seen_nodes.append(listed_node) # then ping all nodes and check if they're online self.alive_nodes = [] (ping_nodes, _) = rosnode_ping_all() for alive_node in ping_nodes: self.alive_nodes.append(alive_node)
def ping_check(ctx): if not ctx.system_state or not ctx.nodes: return _, unpinged = rosnode.rosnode_ping_all() return unpinged
def own_rosnode_cleanup(): pinged, unpinged = rosnode.rosnode_ping_all() if unpinged: master = rosgraph.Master(rosnode.ID) # noinspection PyTypeChecker rosnode.cleanup_master_blacklist(master, unpinged)