Files
tsun-gen3-proxy/app/proxy.svg
2024-09-26 23:04:11 +02:00

524 lines
46 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: G Pages: 1 -->
<svg width="755pt" height="1784pt"
viewBox="0.00 0.00 754.50 1784.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1780)">
<title>G</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1780 750.5,-1780 750.5,4 -4,4"/>
<!-- A0 -->
<g id="node1" class="node">
<title>A0</title>
<polygon fill="#fff8dc" stroke="#000000" points="352.6964,-1752 244.3036,-1752 244.3036,-1716 358.6964,-1716 358.6964,-1746 352.6964,-1752"/>
<polyline fill="none" stroke="#000000" points="352.6964,-1752 352.6964,-1746 "/>
<polyline fill="none" stroke="#000000" points="358.6964,-1746 352.6964,-1746 "/>
<text text-anchor="middle" x="301.5" y="-1737" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">You can stick notes</text>
<text text-anchor="middle" x="301.5" y="-1725" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">on diagrams too!</text>
</g>
<!-- A1 -->
<g id="node2" class="node">
<title>A1</title>
<polygon fill="none" stroke="#000000" points="118.5,-572 118.5,-616 240.5,-616 240.5,-572 118.5,-572"/>
<text text-anchor="start" x="169.777" y="-597" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Mqtt</text>
<text text-anchor="start" x="146.9815" y="-585" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;&lt;Singleton&gt;&gt;</text>
<polygon fill="none" stroke="#000000" points="118.5,-516 118.5,-572 240.5,-572 240.5,-516 118.5,-516"/>
<text text-anchor="start" x="136.9875" y="-553" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;static&gt;ha_restarts</text>
<text text-anchor="start" x="144.7665" y="-541" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;static&gt;__client</text>
<text text-anchor="start" x="128.3735" y="-529" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;static&gt;__cb_MqttIsUp</text>
<polygon fill="none" stroke="#000000" points="118.5,-472 118.5,-516 240.5,-516 240.5,-472 118.5,-472"/>
<text text-anchor="start" x="141.436" y="-497" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;publish()</text>
<text text-anchor="start" x="145.6045" y="-485" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;close()</text>
</g>
<!-- A2 -->
<g id="node3" class="node">
<title>A2</title>
<polygon fill="none" stroke="#000000" points="125.5,-342 125.5,-374 233.5,-374 233.5,-342 125.5,-342"/>
<text text-anchor="start" x="162.5535" y="-355" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Inverter</text>
<polygon fill="none" stroke="#000000" points="125.5,-250 125.5,-342 233.5,-342 233.5,-250 125.5,-250"/>
<text text-anchor="start" x="155.604" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cls.db_stat</text>
<text text-anchor="start" x="148.9405" y="-311" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cls.entity_prfx</text>
<text text-anchor="start" x="139.7755" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cls.discovery_prfx</text>
<text text-anchor="start" x="139.2115" y="-287" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cls.proxy_node_id</text>
<text text-anchor="start" x="135.3225" y="-275" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cls.proxy_unique_id</text>
<text text-anchor="start" x="151.1655" y="-263" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cls.mqtt:Mqtt</text>
<polygon fill="none" stroke="#000000" points="125.5,-230 125.5,-250 233.5,-250 233.5,-230 125.5,-230"/>
</g>
<!-- A1&#45;&gt;A2 -->
<g id="edge3" class="edge">
<title>A1&#45;&gt;A2</title>
<path fill="none" stroke="#000000" d="M179.5,-461.4521C179.5,-437.2513 179.5,-410.7602 179.5,-386.443"/>
<polygon fill="#000000" stroke="#000000" points="179.5,-471.7198 175.0001,-461.7198 179.5,-466.7198 179.5001,-461.7198 179.5001,-461.7198 179.5001,-461.7198 179.5,-466.7198 184.0001,-461.7199 179.5,-471.7198 179.5,-471.7198"/>
<polygon fill="#000000" stroke="#000000" points="179.5001,-386.3256 175.5,-380.3256 179.5,-374.3256 183.5,-380.3256 179.5001,-386.3256"/>
</g>
<!-- A3 -->
<g id="node4" class="node">
<title>A3</title>
<polygon fill="none" stroke="#000000" points="267.5,-100 267.5,-132 389.5,-132 389.5,-100 267.5,-100"/>
<text text-anchor="start" x="304.8845" y="-113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterG3</text>
<polygon fill="none" stroke="#000000" points="267.5,-68 267.5,-100 389.5,-100 389.5,-68 267.5,-68"/>
<text text-anchor="start" x="297.9355" y="-81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__ha_restarts</text>
<polygon fill="none" stroke="#000000" points="267.5,0 267.5,-68 389.5,-68 389.5,0 267.5,0"/>
<text text-anchor="start" x="277.1035" y="-49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">async_create_remote()</text>
<text text-anchor="start" x="287.382" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">async_publ_mqtt()</text>
<text text-anchor="start" x="313.5025" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A2&#45;&gt;A3 -->
<g id="edge1" class="edge">
<title>A2&#45;&gt;A3</title>
<path fill="none" stroke="#000000" d="M219.9257,-220.8317C227.1087,-207.6556 234.7733,-194.3049 242.5,-182 252.8987,-165.4397 264.9445,-148.202 276.6683,-132.2371"/>
<polygon fill="none" stroke="#000000" points="216.6962,-219.4468 215.0349,-229.9106 222.8589,-222.7666 216.6962,-219.4468"/>
</g>
<!-- A4 -->
<g id="node5" class="node">
<title>A4</title>
<polygon fill="none" stroke="#000000" points="120.5,-94 120.5,-126 239.5,-126 239.5,-94 120.5,-94"/>
<text text-anchor="start" x="153.05" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterG3P</text>
<polygon fill="none" stroke="#000000" points="120.5,-62 120.5,-94 239.5,-94 239.5,-62 120.5,-62"/>
<text text-anchor="start" x="149.4355" y="-75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__ha_restarts</text>
<polygon fill="none" stroke="#000000" points="120.5,-6 120.5,-62 239.5,-62 239.5,-6 120.5,-6"/>
<text text-anchor="start" x="130.268" y="-43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">async_create_remote(</text>
<text text-anchor="start" x="137.2175" y="-31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">)async_publ_mqtt()</text>
<text text-anchor="start" x="165.0025" y="-19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A2&#45;&gt;A4 -->
<g id="edge2" class="edge">
<title>A2&#45;&gt;A4</title>
<path fill="none" stroke="#000000" d="M179.5,-219.6269C179.5,-188.8617 179.5,-154.5312 179.5,-126.1395"/>
<polygon fill="none" stroke="#000000" points="176.0001,-219.9098 179.5,-229.9099 183.0001,-219.9099 176.0001,-219.9098"/>
</g>
<!-- A5 -->
<g id="node6" class="node">
<title>A5</title>
<polygon fill="none" stroke="#000000" points="377.5,-1744 377.5,-1776 448.5,-1776 448.5,-1744 377.5,-1744"/>
<text text-anchor="start" x="387.445" y="-1757" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">IterRegistry</text>
<polygon fill="none" stroke="#000000" points="377.5,-1724 377.5,-1744 448.5,-1744 448.5,-1724 377.5,-1724"/>
<polygon fill="none" stroke="#000000" points="377.5,-1692 377.5,-1724 448.5,-1724 448.5,-1692 377.5,-1692"/>
<text text-anchor="start" x="394.939" y="-1705" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__iter__</text>
</g>
<!-- A6 -->
<g id="node7" class="node">
<title>A6</title>
<polygon fill="none" stroke="#000000" points="345.5,-1610 345.5,-1642 479.5,-1642 479.5,-1610 345.5,-1610"/>
<text text-anchor="start" x="392.2175" y="-1623" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Message</text>
<polygon fill="none" stroke="#000000" points="345.5,-1434 345.5,-1610 479.5,-1610 479.5,-1434 345.5,-1434"/>
<text text-anchor="start" x="375.8265" y="-1591" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">server_side:bool</text>
<text text-anchor="start" x="373.043" y="-1579" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_valid:bool</text>
<text text-anchor="start" x="365.814" y="-1567" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_len:unsigned</text>
<text text-anchor="start" x="371.648" y="-1555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">data_len:unsigned</text>
<text text-anchor="start" x="390.8245" y="-1543" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unique_id</text>
<text text-anchor="start" x="394.7135" y="-1531" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
<text text-anchor="start" x="391.6585" y="-1519" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">sug_area</text>
<text text-anchor="start" x="362.489" y="-1507" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_recv_buffer:bytearray</text>
<text text-anchor="start" x="361.0945" y="-1495" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_send_buffer:bytearray</text>
<text text-anchor="start" x="355.2665" y="-1483" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_forward_buffer:bytearray</text>
<text text-anchor="start" x="394.7135" y="-1471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">db:Infos</text>
<text text-anchor="start" x="383.326" y="-1459" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">new_data:list</text>
<text text-anchor="start" x="401.662" y="-1447" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">state</text>
<polygon fill="none" stroke="#000000" points="345.5,-1366 345.5,-1434 479.5,-1434 479.5,-1366 345.5,-1366"/>
<text text-anchor="start" x="362.2095" y="-1415" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_read():void&lt;abstract&gt;</text>
<text text-anchor="start" x="386.9445" y="-1403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close():void</text>
<text text-anchor="start" x="372.7725" y="-1391" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter():void</text>
<text text-anchor="start" x="371.1025" y="-1379" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dec_counter():void</text>
</g>
<!-- A5&#45;&gt;A6 -->
<g id="edge4" class="edge">
<title>A5&#45;&gt;A6</title>
<path fill="none" stroke="#000000" d="M412.5,-1681.5582C412.5,-1669.4749 412.5,-1656.067 412.5,-1642.189"/>
<polygon fill="none" stroke="#000000" points="409.0001,-1681.8144 412.5,-1691.8145 416.0001,-1681.8145 409.0001,-1681.8144"/>
</g>
<!-- A17 -->
<g id="node18" class="node">
<title>A17</title>
<polygon fill="none" stroke="#000000" points="477.5,-1284 477.5,-1316 591.5,-1316 591.5,-1284 477.5,-1284"/>
<text text-anchor="start" x="520.608" y="-1297" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Talent</text>
<polygon fill="none" stroke="#000000" points="477.5,-1180 477.5,-1284 591.5,-1284 591.5,-1180 477.5,-1180"/>
<text text-anchor="start" x="487.263" y="-1265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">await_conn_resp_cnt</text>
<text text-anchor="start" x="522.2775" y="-1253" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">id_str</text>
<text text-anchor="start" x="503.1" y="-1241" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">contact_name</text>
<text text-anchor="start" x="506.44" y="-1229" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">contact_mail</text>
<text text-anchor="start" x="510.0445" y="-1217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">db:InfosG3</text>
<text text-anchor="start" x="508.384" y="-1205" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb:Modbus</text>
<text text-anchor="start" x="520.612" y="-1193" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">switch</text>
<polygon fill="none" stroke="#000000" points="477.5,-1064 477.5,-1180 591.5,-1180 591.5,-1064 477.5,-1064"/>
<text text-anchor="start" x="491.9925" y="-1161" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_contact_info()</text>
<text text-anchor="start" x="493.9325" y="-1149" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_ota_update()</text>
<text text-anchor="start" x="499.7765" y="-1137" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_get_time()</text>
<text text-anchor="start" x="487.8285" y="-1125" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_collector_data()</text>
<text text-anchor="start" x="489.7735" y="-1113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_inverter_data()</text>
<text text-anchor="start" x="498.9405" y="-1101" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_unknown()</text>
<text text-anchor="start" x="519.5025" y="-1077" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A6&#45;&gt;A17 -->
<g id="edge25" class="edge">
<title>A6&#45;&gt;A17</title>
<path fill="none" stroke="#000000" d="M469.9446,-1356.1508C475.1142,-1342.8455 480.3179,-1329.4522 485.4067,-1316.355"/>
<polygon fill="none" stroke="#000000" points="466.5478,-1355.2293 466.1885,-1365.8181 473.0726,-1357.7645 466.5478,-1355.2293"/>
</g>
<!-- A18 -->
<g id="node19" class="node">
<title>A18</title>
<polygon fill="none" stroke="#000000" points="368.5,-1248 368.5,-1280 459.5,-1280 459.5,-1248 368.5,-1248"/>
<text text-anchor="start" x="386.495" y="-1261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SolarmanV5</text>
<polygon fill="none" stroke="#000000" points="368.5,-1156 368.5,-1248 459.5,-1248 459.5,-1156 368.5,-1156"/>
<text text-anchor="start" x="398.998" y="-1229" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">control</text>
<text text-anchor="start" x="402.0575" y="-1217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">serial</text>
<text text-anchor="start" x="407.056" y="-1205" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snr</text>
<text text-anchor="start" x="386.21" y="-1193" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">db:InfosG3P</text>
<text text-anchor="start" x="387.884" y="-1181" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb:Modbus</text>
<text text-anchor="start" x="400.112" y="-1169" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">switch</text>
<polygon fill="none" stroke="#000000" points="368.5,-1100 368.5,-1156 459.5,-1156 459.5,-1100 368.5,-1100"/>
<text text-anchor="start" x="378.4405" y="-1137" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_unknown()</text>
<text text-anchor="start" x="399.0025" y="-1113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A6&#45;&gt;A18 -->
<g id="edge26" class="edge">
<title>A6&#45;&gt;A18</title>
<path fill="none" stroke="#000000" d="M412.9726,-1355.6082C413.0544,-1329.9128 413.1372,-1303.9091 413.2122,-1280.3611"/>
<polygon fill="none" stroke="#000000" points="409.472,-1355.807 412.9401,-1365.8181 416.472,-1355.8293 409.472,-1355.807"/>
</g>
<!-- A7 -->
<g id="node8" class="node">
<title>A7</title>
<polygon fill="none" stroke="#000000" points="359.5,-982 359.5,-1014 476.5,-1014 476.5,-982 359.5,-982"/>
<text text-anchor="start" x="387.429" y="-995" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;&lt;AsyncIfc&gt;&gt;</text>
<polygon fill="none" stroke="#000000" points="359.5,-962 359.5,-982 476.5,-982 476.5,-962 359.5,-962"/>
<polygon fill="none" stroke="#000000" points="359.5,-666 359.5,-962 476.5,-962 476.5,-666 359.5,-666"/>
<text text-anchor="start" x="387.436" y="-943" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">set_node_id()</text>
<text text-anchor="start" x="385.766" y="-931" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">get_conn_no()</text>
<text text-anchor="start" x="399.6635" y="-907" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_add()</text>
<text text-anchor="start" x="397.444" y="-895" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_flush()</text>
<text text-anchor="start" x="401.0535" y="-883" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_get()</text>
<text text-anchor="start" x="397.1635" y="-871" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_peek()</text>
<text text-anchor="start" x="401.3335" y="-859" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_log()</text>
<text text-anchor="start" x="397.169" y="-847" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_clear()</text>
<text text-anchor="start" x="401.3335" y="-835" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_len()</text>
<text text-anchor="start" x="395.7745" y="-811" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_add()</text>
<text text-anchor="start" x="393.555" y="-799" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_flush()</text>
<text text-anchor="start" x="397.4445" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_log()</text>
<text text-anchor="start" x="393.28" y="-775" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_clear()</text>
<text text-anchor="start" x="400.7785" y="-763" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_get()</text>
<text text-anchor="start" x="396.8885" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_peek()</text>
<text text-anchor="start" x="401.0585" y="-739" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_log()</text>
<text text-anchor="start" x="396.894" y="-727" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_clear()</text>
<text text-anchor="start" x="401.0585" y="-715" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_len()</text>
<text text-anchor="start" x="392.999" y="-703" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_set_cb()</text>
<text text-anchor="start" x="369.3795" y="-679" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">prot_set_timeout_cb()</text>
</g>
<!-- A8 -->
<g id="node9" class="node">
<title>A8</title>
<polygon fill="none" stroke="#000000" points="419.5,-574 419.5,-606 512.5,-606 512.5,-574 419.5,-574"/>
<text text-anchor="start" x="437.664" y="-587" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncIfcImpl</text>
<polygon fill="none" stroke="#000000" points="419.5,-482 419.5,-574 512.5,-574 512.5,-482 419.5,-482"/>
<text text-anchor="start" x="429.048" y="-555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_fifo:ByteFifo</text>
<text text-anchor="start" x="432.937" y="-543" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_fifo:ByteFifo</text>
<text text-anchor="start" x="432.662" y="-531" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_fifo:ByteFifo</text>
<text text-anchor="start" x="432.096" y="-519" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">conn_no:Count</text>
<text text-anchor="start" x="448.2135" y="-507" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
<text text-anchor="start" x="441.5495" y="-495" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout_cb</text>
</g>
<!-- A7&#45;&gt;A8 -->
<g id="edge5" class="edge">
<title>A7&#45;&gt;A8</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M447.3711,-655.7951C450.2352,-638.133 452.9805,-621.2037 455.4297,-606.0999"/>
<polygon fill="none" stroke="#000000" points="443.9147,-655.2446 445.7688,-665.6759 450.8244,-656.3651 443.9147,-655.2446"/>
</g>
<!-- A9 -->
<g id="node10" class="node">
<title>A9</title>
<polygon fill="none" stroke="#000000" points="632.5,-390 632.5,-422 734.5,-422 734.5,-390 632.5,-390"/>
<text text-anchor="start" x="653.774" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStream</text>
<polygon fill="none" stroke="#000000" points="632.5,-310 632.5,-390 734.5,-390 734.5,-310 632.5,-310"/>
<text text-anchor="start" x="669.053" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">reader</text>
<text text-anchor="start" x="671.283" y="-359" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">writer</text>
<text text-anchor="start" x="673.497" y="-347" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
<text text-anchor="start" x="669.053" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">r_addr</text>
<text text-anchor="start" x="669.608" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">l_addr</text>
<polygon fill="none" stroke="#000000" points="632.5,-182 632.5,-310 734.5,-310 734.5,-182 632.5,-182"/>
<text text-anchor="start" x="655.154" y="-279" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;loop</text>
<text text-anchor="start" x="671.282" y="-267" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">disc()</text>
<text text-anchor="start" x="668.5025" y="-255" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
<text text-anchor="start" x="664.054" y="-243" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
<text text-anchor="start" x="648.7705" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_read()</text>
<text text-anchor="start" x="648.221" y="-207" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_write()</text>
<text text-anchor="start" x="642.107" y="-195" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_forward()</text>
</g>
<!-- A8&#45;&gt;A9 -->
<g id="edge6" class="edge">
<title>A8&#45;&gt;A9</title>
<path fill="none" stroke="#000000" d="M520.8892,-510.356C553.7908,-488.3116 594.5961,-457.1309 623.5,-422 626.5337,-418.3127 629.4664,-414.4464 632.2946,-410.4535"/>
<polygon fill="#000000" stroke="#000000" points="512.2723,-516.0433 518.1395,-506.779 516.4453,-513.289 520.6184,-510.5348 520.6184,-510.5348 520.6184,-510.5348 516.4453,-513.289 523.0972,-514.2905 512.2723,-516.0433 512.2723,-516.0433"/>
</g>
<!-- A10 -->
<g id="node11" class="node">
<title>A10</title>
<polygon fill="none" stroke="#000000" points="412.5,-100 412.5,-132 590.5,-132 590.5,-100 412.5,-100"/>
<text text-anchor="start" x="457.0515" y="-113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStreamServer</text>
<polygon fill="none" stroke="#000000" points="412.5,-68 412.5,-100 590.5,-100 590.5,-68 412.5,-68"/>
<text text-anchor="start" x="453.4325" y="-81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">async_create_remote</text>
<polygon fill="none" stroke="#000000" points="412.5,0 412.5,-68 590.5,-68 590.5,0 412.5,0"/>
<text text-anchor="start" x="453.1575" y="-49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;server_loop()</text>
<text text-anchor="start" x="443.9885" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;_async_forward()</text>
<text text-anchor="start" x="422.309" y="-25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;publish_outstanding_mqtt()</text>
<text text-anchor="start" x="486.5025" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A9&#45;&gt;A10 -->
<g id="edge7" class="edge">
<title>A9&#45;&gt;A10</title>
<path fill="none" stroke="#000000" d="M626.6147,-186.3084C625.5862,-184.8529 624.5479,-183.4159 623.5,-182 610.634,-164.6155 595.0122,-147.5888 579.3028,-132.1656"/>
<polygon fill="#000000" stroke="#000000" points="632.3941,-194.8307 623.057,-189.08 629.5877,-190.6925 626.7814,-186.5543 626.7814,-186.5543 626.7814,-186.5543 629.5877,-190.6925 630.5058,-184.0286 632.3941,-194.8307 632.3941,-194.8307"/>
</g>
<!-- A11 -->
<g id="node12" class="node">
<title>A11</title>
<polygon fill="none" stroke="#000000" points="608.5,-82 608.5,-114 746.5,-114 746.5,-82 608.5,-82"/>
<text text-anchor="start" x="634.997" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStreamClient</text>
<polygon fill="none" stroke="#000000" points="608.5,-62 608.5,-82 746.5,-82 746.5,-62 608.5,-62"/>
<polygon fill="none" stroke="#000000" points="608.5,-18 608.5,-62 746.5,-62 746.5,-18 608.5,-18"/>
<text text-anchor="start" x="631.378" y="-43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;client_loop()</text>
<text text-anchor="start" x="618.324" y="-31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;_async_forward())</text>
</g>
<!-- A9&#45;&gt;A11 -->
<g id="edge8" class="edge">
<title>A9&#45;&gt;A11</title>
<path fill="none" stroke="#000000" d="M680.19,-171.8077C679.6675,-151.2556 679.1577,-131.2022 678.7248,-114.1772"/>
<polygon fill="#000000" stroke="#000000" points="680.4473,-181.9259 675.6945,-172.0435 680.3201,-176.9275 680.193,-171.9291 680.193,-171.9291 680.193,-171.9291 680.3201,-176.9275 684.6916,-171.8147 680.4473,-181.9259 680.4473,-181.9259"/>
</g>
<!-- A12 -->
<g id="node13" class="node">
<title>A12</title>
<polygon fill="none" stroke="#000000" points="445.5,-324 445.5,-356 596.5,-356 596.5,-324 445.5,-324"/>
<text text-anchor="start" x="489.0455" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ConnectionG3</text>
<polygon fill="none" stroke="#000000" points="445.5,-292 445.5,-324 596.5,-324 596.5,-292 445.5,-292"/>
<text text-anchor="start" x="455.432" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote.stream:ConnectionG3</text>
<polygon fill="none" stroke="#000000" points="445.5,-248 445.5,-292 596.5,-292 596.5,-248 445.5,-248"/>
<text text-anchor="start" x="501.554" y="-273" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
<text text-anchor="start" x="506.0025" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A12&#45;&gt;A3 -->
<g id="edge9" class="edge">
<title>A12&#45;&gt;A3</title>
<path fill="none" stroke="#000000" d="M478.5092,-239.4979C465.2404,-220.6454 450.1954,-200.1473 435.5,-182 421.2752,-164.4338 405.1062,-146.1424 389.7235,-129.4175"/>
<polygon fill="none" stroke="#000000" points="475.6778,-241.5563 484.2763,-247.7463 481.4146,-237.5453 475.6778,-241.5563"/>
</g>
<!-- A12&#45;&gt;A10 -->
<g id="edge12" class="edge">
<title>A12&#45;&gt;A10</title>
<path fill="none" stroke="#000000" d="M515.169,-235.7838C512.8253,-206.6727 510.0594,-172.3163 507.6308,-142.1514"/>
<polygon fill="#000000" stroke="#000000" points="515.1779,-235.8955 519.6466,-241.5552 516.141,-247.8568 511.6724,-242.1972 515.1779,-235.8955"/>
<polygon fill="#000000" stroke="#000000" points="506.8213,-132.0959 512.1093,-141.7025 507.2226,-137.0798 507.6239,-142.0637 507.6239,-142.0637 507.6239,-142.0637 507.2226,-137.0798 503.1384,-142.4248 506.8213,-132.0959 506.8213,-132.0959"/>
<text text-anchor="middle" x="516.701" y="-146.4853" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
</g>
<!-- A12&#45;&gt;A11 -->
<g id="edge11" class="edge">
<title>A12&#45;&gt;A11</title>
<path fill="none" stroke="#000000" d="M563.2934,-237.6736C587.1695,-201.7835 616.6458,-157.4751 639.6718,-122.8628"/>
<polygon fill="#000000" stroke="#000000" points="563.1656,-237.8657 563.1727,-245.0768 556.519,-247.8568 556.5119,-240.6457 563.1656,-237.8657"/>
<polygon fill="#000000" stroke="#000000" points="645.3795,-114.283 643.5873,-125.1015 642.6101,-118.446 639.8406,-122.609 639.8406,-122.609 639.8406,-122.609 642.6101,-118.446 636.0939,-120.1165 645.3795,-114.283 645.3795,-114.283"/>
<text text-anchor="middle" x="642.3771" y="-131.0564" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
</g>
<!-- A12&#45;&gt;A12 -->
<g id="edge10" class="edge">
<title>A12&#45;&gt;A12</title>
<path fill="none" stroke="#000000" d="M596.0725,-341.7099C606.8009,-335.2874 614,-322.0508 614,-302 614,-287.2752 610.1175,-276.2253 603.8059,-268.8503"/>
<polygon fill="#000000" stroke="#000000" points="596.0725,-262.2901 606.6094,-265.3275 599.8854,-265.5246 603.6983,-268.7591 603.6983,-268.7591 603.6983,-268.7591 599.8854,-265.5246 600.7872,-272.1907 596.0725,-262.2901 596.0725,-262.2901"/>
<text text-anchor="middle" x="615.3629" y="-264.5703" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
<text text-anchor="middle" x="606.2442" y="-321.4897" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
</g>
<!-- A13 -->
<g id="node14" class="node">
<title>A13</title>
<polygon fill="none" stroke="#000000" points="252.5,-324 252.5,-356 409.5,-356 409.5,-324 252.5,-324"/>
<text text-anchor="start" x="295.711" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ConnectionG3P</text>
<polygon fill="none" stroke="#000000" points="252.5,-292 252.5,-324 409.5,-324 409.5,-292 252.5,-292"/>
<text text-anchor="start" x="262.0975" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote.stream:ConnectionG3P</text>
<polygon fill="none" stroke="#000000" points="252.5,-248 252.5,-292 409.5,-292 409.5,-248 252.5,-248"/>
<text text-anchor="start" x="311.554" y="-273" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
<text text-anchor="start" x="316.0025" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A13&#45;&gt;A4 -->
<g id="edge13" class="edge">
<title>A13&#45;&gt;A4</title>
<path fill="none" stroke="#000000" d="M290.2801,-239.1397C267.862,-204.1022 240.0902,-160.6973 217.9615,-126.112"/>
<polygon fill="none" stroke="#000000" points="287.5198,-241.3198 295.8575,-247.8568 293.4162,-237.5471 287.5198,-241.3198"/>
</g>
<!-- A13&#45;&gt;A10 -->
<g id="edge16" class="edge">
<title>A13&#45;&gt;A10</title>
<path fill="none" stroke="#000000" d="M376.9343,-237.9153C398.7618,-207.7907 424.9166,-171.6941 447.6125,-140.3711"/>
<polygon fill="#000000" stroke="#000000" points="376.7718,-238.1395 376.4904,-245.3452 369.7309,-247.8568 370.0122,-240.6512 376.7718,-238.1395"/>
<polygon fill="#000000" stroke="#000000" points="453.6085,-132.0959 451.385,-142.834 450.6747,-136.1448 447.741,-140.1937 447.741,-140.1937 447.741,-140.1937 450.6747,-136.1448 444.097,-137.5533 453.6085,-132.0959 453.6085,-132.0959"/>
<text text-anchor="middle" x="449.8176" y="-148.7334" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
</g>
<!-- A13&#45;&gt;A11 -->
<g id="edge15" class="edge">
<title>A13&#45;&gt;A11</title>
<path fill="none" stroke="#000000" d="M375.0938,-238.1141C391.9986,-217.7599 412.7221,-196.7271 435.5,-182 499.4911,-140.6266 532.594,-168.472 599.5,-132 605.8177,-128.5561 612.0915,-124.5466 618.1768,-120.2372"/>
<polygon fill="#000000" stroke="#000000" points="374.8907,-238.3658 374.2369,-245.5473 367.3564,-247.7058 368.0102,-240.5244 374.8907,-238.3658"/>
<polygon fill="#000000" stroke="#000000" points="626.3446,-114.1997 620.9779,-123.7627 622.3238,-117.1718 618.303,-120.1439 618.303,-120.1439 618.303,-120.1439 622.3238,-117.1718 615.6281,-116.5252 626.3446,-114.1997 626.3446,-114.1997"/>
<text text-anchor="middle" x="616.7925" y="-128.7713" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
</g>
<!-- A13&#45;&gt;A13 -->
<g id="edge14" class="edge">
<title>A13&#45;&gt;A13</title>
<path fill="none" stroke="#000000" d="M409.2551,-341.2562C419.9076,-334.6752 427,-321.5898 427,-302 427,-287.6137 423.175,-276.7353 416.924,-269.3648"/>
<polygon fill="#000000" stroke="#000000" points="409.2551,-262.7438 419.7652,-265.8726 413.0398,-266.0113 416.8244,-269.2788 416.8244,-269.2788 416.8244,-269.2788 413.0398,-266.0113 413.8837,-272.685 409.2551,-262.7438 409.2551,-262.7438"/>
<text text-anchor="middle" x="428.4989" y="-265.1913" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
<text text-anchor="middle" x="419.2213" y="-320.9162" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
</g>
<!-- A14 -->
<g id="node15" class="node">
<title>A14</title>
<polygon fill="none" stroke="#000000" points="610.5,-1278 610.5,-1310 713.5,-1310 713.5,-1278 610.5,-1278"/>
<text text-anchor="start" x="651.162" y="-1291" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Infos</text>
<polygon fill="none" stroke="#000000" points="610.5,-1222 610.5,-1278 713.5,-1278 713.5,-1222 610.5,-1222"/>
<text text-anchor="start" x="653.9415" y="-1259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stat</text>
<text text-anchor="start" x="629.486" y="-1247" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">new_stat_data</text>
<text text-anchor="start" x="643.1035" y="-1235" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">info_dev</text>
<polygon fill="none" stroke="#000000" points="610.5,-1070 610.5,-1222 713.5,-1222 713.5,-1070 610.5,-1070"/>
<text text-anchor="start" x="637.8355" y="-1203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">static_init()</text>
<text text-anchor="start" x="635.8845" y="-1191" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dev_value()</text>
<text text-anchor="start" x="632.8305" y="-1179" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter()</text>
<text text-anchor="start" x="631.1605" y="-1167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dec_counter()</text>
<text text-anchor="start" x="629.21" y="-1155" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_proxy_conf</text>
<text text-anchor="start" x="644.213" y="-1143" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_conf</text>
<text text-anchor="start" x="636.994" y="-1131" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_remove</text>
<text text-anchor="start" x="638.3745" y="-1119" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">update_db</text>
<text text-anchor="start" x="622.537" y="-1107" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">set_db_def_value</text>
<text text-anchor="start" x="631.9855" y="-1095" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">get_db_value</text>
<text text-anchor="start" x="620.3225" y="-1083" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ignore_this_device</text>
</g>
<!-- A15 -->
<g id="node16" class="node">
<title>A15</title>
<polygon fill="none" stroke="#000000" points="625.5,-856 625.5,-888 692.5,-888 692.5,-856 625.5,-856"/>
<text text-anchor="start" x="641.493" y="-869" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InfosG3</text>
<polygon fill="none" stroke="#000000" points="625.5,-836 625.5,-856 692.5,-856 692.5,-836 625.5,-836"/>
<polygon fill="none" stroke="#000000" points="625.5,-792 625.5,-836 692.5,-836 692.5,-792 625.5,-792"/>
<text text-anchor="start" x="635.384" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_confs()</text>
<text text-anchor="start" x="643.168" y="-805" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">parse()</text>
</g>
<!-- A14&#45;&gt;A15 -->
<g id="edge17" class="edge">
<title>A14&#45;&gt;A15</title>
<path fill="none" stroke="#000000" d="M660.3792,-1059.2448C659.8663,-999.4063 659.2901,-932.1816 658.9126,-888.1352"/>
<polygon fill="none" stroke="#000000" points="656.8819,-1059.5803 660.4676,-1069.5499 663.8816,-1059.5202 656.8819,-1059.5803"/>
</g>
<!-- A16 -->
<g id="node17" class="node">
<title>A16</title>
<polygon fill="none" stroke="#000000" points="494.5,-856 494.5,-888 561.5,-888 561.5,-856 494.5,-856"/>
<text text-anchor="start" x="507.1585" y="-869" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InfosG3P</text>
<polygon fill="none" stroke="#000000" points="494.5,-836 494.5,-856 561.5,-856 561.5,-836 494.5,-836"/>
<polygon fill="none" stroke="#000000" points="494.5,-792 494.5,-836 561.5,-836 561.5,-792 494.5,-792"/>
<text text-anchor="start" x="504.384" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_confs()</text>
<text text-anchor="start" x="512.168" y="-805" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">parse()</text>
</g>
<!-- A14&#45;&gt;A16 -->
<g id="edge18" class="edge">
<title>A14&#45;&gt;A16</title>
<path fill="none" stroke="#000000" d="M611.7233,-1059.9862C588.7427,-999.9623 562.8621,-932.3636 545.9289,-888.1352"/>
<polygon fill="none" stroke="#000000" points="608.5406,-1061.4623 615.3848,-1069.5499 615.0779,-1058.9595 608.5406,-1061.4623"/>
</g>
<!-- A17&#45;&gt;A7 -->
<g id="edge20" class="edge">
<title>A17&#45;&gt;A7</title>
<path fill="none" stroke="#000000" d="M492.2603,-1063.642C487.9413,-1050.7218 483.4938,-1037.4173 479.0227,-1024.0422"/>
<polygon fill="#000000" stroke="#000000" points="475.7643,-1014.295 483.2027,-1022.3525 477.3496,-1019.0371 478.9348,-1023.7792 478.9348,-1023.7792 478.9348,-1023.7792 477.3496,-1019.0371 474.667,-1025.2059 475.7643,-1014.295 475.7643,-1014.295"/>
<text text-anchor="middle" x="478.4973" y="-1046.1306" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
</g>
<!-- A17&#45;&gt;A12 -->
<g id="edge19" class="edge">
<title>A17&#45;&gt;A12</title>
<path fill="none" stroke="#000000" d="M565.2328,-1053.4379C567.3751,-1040.1646 569.1985,-1026.8579 570.5,-1014 586.0765,-860.1197 581.0485,-820.3065 570.5,-666 562.9303,-555.2676 542.5519,-426.9031 530.2736,-356.0308"/>
<polygon fill="none" stroke="#000000" points="561.7353,-1053.1328 563.5359,-1063.5735 568.6392,-1054.2888 561.7353,-1053.1328"/>
</g>
<!-- A17&#45;&gt;A15 -->
<g id="edge21" class="edge">
<title>A17&#45;&gt;A15</title>
<path fill="none" stroke="#000000" d="M585.0948,-1063.9652C591.4654,-1047.2285 597.7556,-1030.2447 603.5,-1014 617.0546,-975.6684 630.8409,-932.0419 641.2203,-898.0618"/>
<polygon fill="#000000" stroke="#000000" points="644.1909,-888.2953 645.5861,-899.1721 642.7359,-893.079 641.2808,-897.8626 641.2808,-897.8626 641.2808,-897.8626 642.7359,-893.079 636.9756,-896.553 644.1909,-888.2953 644.1909,-888.2953"/>
</g>
<!-- A18&#45;&gt;A7 -->
<g id="edge23" class="edge">
<title>A18&#45;&gt;A7</title>
<path fill="none" stroke="#000000" d="M414.5301,-1099.8663C414.7969,-1076.5184 415.0942,-1050.5112 415.3946,-1024.2257"/>
<polygon fill="#000000" stroke="#000000" points="415.5098,-1014.1428 419.8951,-1024.1937 415.4526,-1019.1425 415.3954,-1024.1422 415.3954,-1024.1422 415.3954,-1024.1422 415.4526,-1019.1425 410.8957,-1024.0907 415.5098,-1014.1428 415.5098,-1014.1428"/>
<text text-anchor="middle" x="406.2854" y="-1078.6447" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
</g>
<!-- A18&#45;&gt;A13 -->
<g id="edge22" class="edge">
<title>A18&#45;&gt;A13</title>
<path fill="none" stroke="#000000" d="M370.901,-1090.1369C362.2256,-1065.6623 354.2942,-1039.2378 349.5,-1014 303.5767,-772.2495 317.5688,-476.11 326.0763,-356.2204"/>
<polygon fill="none" stroke="#000000" points="367.6944,-1091.5616 374.3895,-1099.773 374.2763,-1089.1787 367.6944,-1091.5616"/>
</g>
<!-- A18&#45;&gt;A16 -->
<g id="edge24" class="edge">
<title>A18&#45;&gt;A16</title>
<path fill="none" stroke="#000000" d="M452.8317,-1099.5532C463.8885,-1072.3429 475.3733,-1042.2139 484.5,-1014 496.8342,-975.8705 507.6409,-932.0683 515.3355,-897.951"/>
<polygon fill="#000000" stroke="#000000" points="517.5217,-888.1455 519.7377,-898.8851 516.4336,-893.0257 515.3455,-897.9059 515.3455,-897.9059 515.3455,-897.9059 516.4336,-893.0257 510.9533,-896.9266 517.5217,-888.1455 517.5217,-888.1455"/>
</g>
<!-- A19 -->
<g id="node20" class="node">
<title>A19</title>
<polygon fill="none" stroke="#000000" points="498.5,-1598 498.5,-1630 573.5,-1630 573.5,-1598 498.5,-1598"/>
<text text-anchor="start" x="518.2175" y="-1611" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Modbus</text>
<polygon fill="none" stroke="#000000" points="498.5,-1446 498.5,-1598 573.5,-1598 573.5,-1446 498.5,-1446"/>
<text text-anchor="start" x="527.6615" y="-1579" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">que</text>
<text text-anchor="start" x="508.49" y="-1555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snd_handler</text>
<text text-anchor="start" x="509.605" y="-1543" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rsp_handler</text>
<text text-anchor="start" x="519.6085" y="-1531" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout</text>
<text text-anchor="start" x="509.8895" y="-1519" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">max_retires</text>
<text text-anchor="start" x="517.942" y="-1507" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">last_xxx</text>
<text text-anchor="start" x="529.8915" y="-1495" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">err</text>
<text text-anchor="start" x="516.5535" y="-1483" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">retry_cnt</text>
<text text-anchor="start" x="514.879" y="-1471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">req_pend</text>
<text text-anchor="start" x="529.3365" y="-1459" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tim</text>
<polygon fill="none" stroke="#000000" points="498.5,-1378 498.5,-1446 573.5,-1446 573.5,-1378 498.5,-1378"/>
<text text-anchor="start" x="509.89" y="-1427" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">build_msg()</text>
<text text-anchor="start" x="513.224" y="-1415" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_req()</text>
<text text-anchor="start" x="510.724" y="-1403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_resp()</text>
<text text-anchor="start" x="521.0025" y="-1391" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A19&#45;&gt;A17 -->
<g id="edge28" class="edge">
<title>A19&#45;&gt;A17</title>
<path fill="none" stroke="#000000" d="M535.0656,-1367.6092C535.0111,-1350.4944 534.9556,-1333.047 534.9016,-1316.0999"/>
<polygon fill="#000000" stroke="#000000" points="535.0976,-1377.6415 530.5657,-1367.6559 535.0816,-1372.6415 535.0656,-1367.6415 535.0656,-1367.6415 535.0656,-1367.6415 535.0816,-1372.6415 539.5656,-1367.6272 535.0976,-1377.6415 535.0976,-1377.6415"/>
<text text-anchor="middle" x="543.4116" y="-1331.199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
<text text-anchor="middle" x="526.5875" y="-1356.5423" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
</g>
<!-- A19&#45;&gt;A18 -->
<g id="edge27" class="edge">
<title>A19&#45;&gt;A18</title>
<path fill="none" stroke="#000000" d="M494.4368,-1381.825C492.4631,-1376.4654 490.4791,-1371.1707 488.5,-1366 481.9997,-1349.0167 467.3384,-1314.3617 452.687,-1280.2598"/>
<polygon fill="#000000" stroke="#000000" points="497.9749,-1391.5299 490.3219,-1383.6762 496.2623,-1386.8324 494.5497,-1382.1348 494.5497,-1382.1348 494.5497,-1382.1348 496.2623,-1386.8324 498.7775,-1380.5934 497.9749,-1391.5299 497.9749,-1391.5299"/>
<text text-anchor="middle" x="467.6003" y="-1290.5862" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
<text text-anchor="middle" x="483.8253" y="-1374.3953" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
</g>
<!-- A20 -->
<g id="node21" class="node">
<title>A20</title>
<polygon fill="none" stroke="#000000" points=".5,-330 .5,-362 107.5,-362 107.5,-330 .5,-330"/>
<text text-anchor="start" x="24.2695" y="-343" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ModbusConn</text>
<polygon fill="none" stroke="#000000" points=".5,-262 .5,-330 107.5,-330 107.5,-262 .5,-262"/>
<text text-anchor="start" x="44.5515" y="-311" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">host</text>
<text text-anchor="start" x="45.387" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">port</text>
<text text-anchor="start" x="43.997" y="-287" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
<text text-anchor="start" x="10.383" y="-275" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stream:InverterG3P</text>
<polygon fill="none" stroke="#000000" points=".5,-242 .5,-262 107.5,-262 107.5,-242 .5,-242"/>
</g>
<!-- A20&#45;&gt;A4 -->
<g id="edge29" class="edge">
<title>A20&#45;&gt;A4</title>
<path fill="none" stroke="#000000" d="M84.8997,-241.788C94.9393,-222.6449 106.1365,-201.4067 116.5,-182 124.6218,-166.7911 133.4111,-150.5028 141.774,-135.0831"/>
<polygon fill="#000000" stroke="#000000" points="146.6405,-126.1193 145.824,-137.0548 144.2548,-130.5135 141.8692,-134.9077 141.8692,-134.9077 141.8692,-134.9077 144.2548,-130.5135 137.9144,-132.7607 146.6405,-126.1193 146.6405,-126.1193"/>
<text text-anchor="middle" x="145.4203" y="-143.0821" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
<text text-anchor="middle" x="85.8379" y="-218.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
</g>
</g>
</svg>