def spin(self):
# @todo: is this excessively hitting the master?
r = rospy.Rate(10.0)
while not rospy.is_shutdown():
for srv in self._local_services:
srv_uri = self._local_manager.lookup_service(srv)
if srv_uri:
self._foreign_manager.advertise_service(srv, srv_uri)
else:
self._foreign_manager.unadvertise_service(srv)
for srv in self._foreign_services:
srv_uri = self._foreign_manager.lookup_service(srv)
if srv_uri:
self._local_manager.advertise_service(srv, srv_uri)
else:
self._local_manager.unadvertise_service(srv)
r.sleep()
if self._local_manager:
self._local_manager.unsubscribe_all()
if self._foreign_manager:
self._foreign_manager.unsubscribe_all()
评论列表
文章目录