File: list_nodelets

package info (click to toggle)
ros-nodelet-core 1.11.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 596 kB
  • sloc: cpp: 2,473; python: 367; xml: 171; makefile: 7
file content (43 lines) | stat: -rwxr-xr-x 1,283 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#! /usr/bin/env python3
# Provides quick access to the services exposed by MechanismControlNode

from __future__ import print_function
import roslib
roslib.load_manifest('nodelet')

from optparse import OptionParser

import rospy
from nodelet.srv import NodeletList


class NodeletInterface():
    def list_nodelets(self, manager):
        service_manager = manager + "/list"
        rospy.loginfo('Waiting for service: %s', service_manager)
        rospy.wait_for_service(service_manager)
        service_client = rospy.ServiceProxy(service_manager, NodeletList)
        resp = service_client()
        print(resp)


def usage():
    return '''list_nodelets <manager>       - List active nodelets on the manager'''


if __name__ == '__main__':
    parser = OptionParser(usage=usage())

    rospy.init_node("nodelet", anonymous=True)
    options, args = parser.parse_args(rospy.myargv())

    if len(args) != 2:
        parser.error("Command 'list_nodelets' requires 2 arguments not %d" % len(args))

    manager = args[1]
    service_manager = manager + "/list"
    rospy.loginfo('Waiting for service: %s', service_manager)
    rospy.wait_for_service(service_manager)
    service_client = rospy.ServiceProxy(service_manager, NodeletList)
    resp = service_client()
    print(resp)