11import re
22import sys
33from collections import namedtuple
4+ from itertools import filterfalse
45from pathlib import Path
56from typing import List
67
2526
2627ParamInfo = namedtuple ("Topic" , ("name" , "types" , "default" ))
2728
29+ BlackList_Subscribers = [
30+ TopicInfo ("/parameter_events" , ["rcl_interfaces.ParameterEvent" ])
31+ ]
32+ BlackList_Publishers = [
33+ TopicInfo ("~/transition_event" , ["lifecycle_msgs.TransitionEvent" ]),
34+ TopicInfo ("/parameter_events" , ["rcl_interfaces.ParameterEvent" ]),
35+ TopicInfo ("/rosout" , ["rcl_interfaces.Log" ]),
36+ ]
37+ BlackList_ServiceServers = [
38+ TopicInfo ("~/change_state" , ["lifecycle_msgs.ChangeState" ]),
39+ TopicInfo ("~/describe_parameters" , ["rcl_interfaces.DescribeParameters" ]),
40+ TopicInfo ("~/get_available_states" , ["lifecycle_msgs.GetAvailableStates" ]),
41+ TopicInfo (
42+ "~/get_available_transitions" , [
43+ "lifecycle_msgs.GetAvailableTransitions" ]
44+ ),
45+ TopicInfo ("~/get_parameter_types" , ["rcl_interfaces.GetParameterTypes" ]),
46+ TopicInfo ("~/get_parameters" , ["rcl_interfaces.GetParameters" ]),
47+ TopicInfo ("~/get_state" , ["lifecycle_msgs.GetState" ]),
48+ TopicInfo ("~/get_transition_graph" ,
49+ ["lifecycle_msgs.GetAvailableTransitions" ]),
50+ TopicInfo ("~/list_parameters" , ["rcl_interfaces.ListParameters" ]),
51+ TopicInfo ("~/set_parameters" , ["rcl_interfaces.SetParameters" ]),
52+ TopicInfo (
53+ "~/set_parameters_atomically" , [
54+ "rcl_interfaces.SetParametersAtomically" ]
55+ ),
56+ ]
57+
2858
2959def call_list_parameters (* , node , node_name , timeout = None ):
3060 # create client
@@ -130,6 +160,10 @@ def create_a_node_model(self, target_node_name, output, if_param_value, args):
130160 )
131161 fix_topic_types (node_name , subscribers )
132162 subscribers = fix_topic_names (node_name , subscribers )
163+ subscribers = list (
164+ filterfalse (
165+ BlackList_Subscribers .__contains__ , subscribers )
166+ )
133167
134168 publishers = get_publisher_info (
135169 node = node ,
@@ -138,6 +172,9 @@ def create_a_node_model(self, target_node_name, output, if_param_value, args):
138172 )
139173 fix_topic_types (node_name , publishers )
140174 publishers = fix_topic_names (node_name , publishers )
175+ publishers = list (
176+ filterfalse (BlackList_Publishers .__contains__ , publishers )
177+ )
141178
142179 service_servers = get_service_server_info (
143180 node = node ,
@@ -146,6 +183,10 @@ def create_a_node_model(self, target_node_name, output, if_param_value, args):
146183 )
147184 fix_topic_types (node_name , service_servers )
148185 service_servers = fix_topic_names (node_name , service_servers )
186+ service_servers = list (
187+ filterfalse (
188+ BlackList_ServiceServers .__contains__ , service_servers )
189+ )
149190
150191 service_clients = get_service_client_info (
151192 node = node ,
@@ -175,7 +216,7 @@ def create_a_node_model(self, target_node_name, output, if_param_value, args):
175216
176217 with DirectNode (args ) as node :
177218 response = call_list_parameters (
178- node = node , node_name = node_name , timeout = 5 .0 )
219+ node = node , node_name = node_name , timeout = 1 .0 )
179220
180221 if response is not None :
181222 sorted_names = sorted (response )
0 commit comments