Skip to content

Commit f527c12

Browse files
Revert "pygraphviz functions updated (#812)"
This reverts commit fe1d47c.
1 parent 82621a1 commit f527c12

File tree

2 files changed

+19
-17
lines changed

2 files changed

+19
-17
lines changed

ros2controlcli/package.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
<depend>controller_manager</depend>
2020
<depend>controller_manager_msgs</depend>
2121
<exec_depend>rosidl_runtime_py</exec_depend>
22-
<exec_depend>python3-pygraphviz</exec_depend>
22+
<exec_depend>python-graphviz-pip</exec_depend>
23+
<exec_depend>graphviz</exec_depend>
2324

2425
<export>
2526
<build_type>ament_python</build_type>

ros2controlcli/ros2controlcli/verb/view_controller_chains.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
from ros2controlcli.api import add_controller_mgr_parsers
2323

24-
import pygraphviz as pgz
24+
import graphviz
2525

2626

2727
def make_controller_node(
@@ -73,7 +73,7 @@ def make_controller_node(
7373
"controller_start_" + output_controller, output_controller, deliminator
7474
)
7575

76-
s.add_node(controller_name, label=f"{controller_name}|{{{{{inputs_str}}}|{{{outputs_str}}}}}")
76+
s.node(controller_name, f"{controller_name}|{{{{{inputs_str}}}|{{{outputs_str}}}}}")
7777

7878

7979
def make_command_node(s, command_interfaces):
@@ -87,9 +87,7 @@ def make_command_node(s, command_interfaces):
8787
"command_end_" + command_interface, command_interface, deliminator
8888
)
8989

90-
s.add_node(
91-
"command_interfaces", label="{}|{{{{{}}}}}".format("command_interfaces", outputs_str)
92-
)
90+
s.node("command_interfaces", "{}|{{{{{}}}}}".format("command_interfaces", outputs_str))
9391

9492

9593
def make_state_node(s, state_interfaces):
@@ -103,7 +101,7 @@ def make_state_node(s, state_interfaces):
103101
"state_start_" + state_interface, state_interface, deliminator
104102
)
105103

106-
s.add_node("state_interfaces", label="{}|{{{{{}}}}}".format("state_interfaces", inputs_str))
104+
s.node("state_interfaces", "{}|{{{{{}}}}}".format("state_interfaces", inputs_str))
107105

108106

109107
def show_graph(
@@ -115,9 +113,11 @@ def show_graph(
115113
state_interfaces,
116114
visualize,
117115
):
118-
s = pgz.AGraph(name="g", strict=False, directed=True, rankdir="LR")
119-
s.node_attr["shape"] = "record"
120-
s.node_attr["style"] = "rounded"
116+
s = graphviz.Digraph(
117+
"g",
118+
filename="/tmp/controller_diagram.gv",
119+
node_attr={"shape": "record", "style": "rounded"},
120+
)
121121
port_map = dict()
122122
# get all controller names
123123
controller_names = set()
@@ -142,27 +142,28 @@ def show_graph(
142142

143143
for controller_name in controller_names:
144144
for connection in output_chain_connections[controller_name]:
145-
s.add_edge(
145+
s.edge(
146146
"{}:{}".format(controller_name, "controller_start_" + connection),
147147
"{}:{}".format(
148148
port_map["controller_end_" + connection], "controller_end_" + connection
149149
),
150150
)
151151
for state_connection in state_connections[controller_name]:
152-
s.add_edge(
152+
s.edge(
153153
"{}:{}".format("state_interfaces", "state_start_" + state_connection),
154154
"{}:{}".format(controller_name, "state_end_" + state_connection),
155155
)
156156
for command_connection in command_connections[controller_name]:
157-
s.add_edge(
157+
s.edge(
158158
"{}:{}".format(controller_name, "command_start_" + command_connection),
159159
"{}:{}".format("command_interfaces", "command_end_" + command_connection),
160160
)
161161

162-
s.graph_attr.update(ranksep="2")
163-
s.layout(prog="dot")
162+
s.attr(ranksep="2")
163+
s.attr(rankdir="LR")
164+
s.render(view=False)
164165
if visualize:
165-
s.draw("/tmp/controller_diagram.gv.pdf", format="pdf")
166+
s.view()
166167

167168

168169
def parse_response(list_controllers_response, list_hardware_response, visualize=True):
@@ -205,5 +206,5 @@ def main(self, *, args):
205206
with NodeStrategy(args).direct_node as node:
206207
list_controllers_response = list_controllers(node, args.controller_manager)
207208
list_hardware_response = list_hardware_interfaces(node, args.controller_manager)
208-
parse_response(list_controllers_response, list_hardware_response)
209+
parse_response(list_controllers_response, list_hardware_response, visualize=False)
209210
return 0

0 commit comments

Comments
 (0)