def publisher(self, *upper_args, **kwargs):
if not "queue_size" in kwargs:
kwargs["queue_size"] = 1
if isinstance(upper_args[0], str):
topic_name, msg_type = upper_args
def __decorator(func):
args = [topic_name, msg_type]
pub = rospy.Publisher(*args, **kwargs)
def __inner(*args, **kwargs):
msg = func(*args, **kwargs)
pub.publish(msg)
return msg
return __inner
return __decorator
elif isinstance(upper_args[0], types.TypeType):
return self.__multi_publisher(upper_args[0], **kwargs)
评论列表
文章目录