Files
tsun-gen3-proxy/app/proxy.svg
2024-09-27 19:25:40 +02:00

583 lines
49 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="846pt" height="1784pt"
viewBox="0.00 0.00 846.00 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 842,-1780 842,4 -4,4"/>
<!-- A0 -->
<g id="node1" class="node">
<title>A0</title>
<polygon fill="#fff8dc" stroke="#000000" points="495.6964,-1752 387.3036,-1752 387.3036,-1716 501.6964,-1716 501.6964,-1746 495.6964,-1752"/>
<polyline fill="none" stroke="#000000" points="495.6964,-1752 495.6964,-1746 "/>
<polyline fill="none" stroke="#000000" points="501.6964,-1746 495.6964,-1746 "/>
<text text-anchor="middle" x="444.5" y="-1737" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">You can stick notes</text>
<text text-anchor="middle" x="444.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="284.5,-100 284.5,-132 406.5,-132 406.5,-100 284.5,-100"/>
<text text-anchor="start" x="321.8845" y="-113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterG3</text>
<polygon fill="none" stroke="#000000" points="284.5,-68 284.5,-100 406.5,-100 406.5,-68 284.5,-68"/>
<text text-anchor="start" x="314.9355" y="-81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__ha_restarts</text>
<polygon fill="none" stroke="#000000" points="284.5,0 284.5,-68 406.5,-68 406.5,0 284.5,0"/>
<text text-anchor="start" x="294.1035" y="-49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">async_create_remote()</text>
<text text-anchor="start" x="304.382" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">async_publ_mqtt()</text>
<text text-anchor="start" x="330.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="M218.7146,-220.7402C226.0884,-207.4676 234.13,-194.1098 242.5,-182 254.9036,-164.0543 269.7696,-145.8518 284.2981,-129.3516"/>
<polygon fill="none" stroke="#000000" points="215.4351,-219.4436 213.7205,-229.8988 221.5808,-222.7948 215.4351,-219.4436"/>
</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="520.5,-1744 520.5,-1776 591.5,-1776 591.5,-1744 520.5,-1744"/>
<text text-anchor="start" x="530.445" y="-1757" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">IterRegistry</text>
<polygon fill="none" stroke="#000000" points="520.5,-1724 520.5,-1744 591.5,-1744 591.5,-1724 520.5,-1724"/>
<polygon fill="none" stroke="#000000" points="520.5,-1692 520.5,-1724 591.5,-1724 591.5,-1692 520.5,-1692"/>
<text text-anchor="start" x="537.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="488.5,-1610 488.5,-1642 622.5,-1642 622.5,-1610 488.5,-1610"/>
<text text-anchor="start" x="535.2175" y="-1623" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Message</text>
<polygon fill="none" stroke="#000000" points="488.5,-1434 488.5,-1610 622.5,-1610 622.5,-1434 488.5,-1434"/>
<text text-anchor="start" x="518.8265" y="-1591" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">server_side:bool</text>
<text text-anchor="start" x="516.043" y="-1579" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_valid:bool</text>
<text text-anchor="start" x="508.814" y="-1567" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_len:unsigned</text>
<text text-anchor="start" x="514.648" y="-1555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">data_len:unsigned</text>
<text text-anchor="start" x="533.8245" y="-1543" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unique_id</text>
<text text-anchor="start" x="537.7135" y="-1531" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
<text text-anchor="start" x="534.6585" y="-1519" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">sug_area</text>
<text text-anchor="start" x="505.489" y="-1507" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_recv_buffer:bytearray</text>
<text text-anchor="start" x="504.0945" y="-1495" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_send_buffer:bytearray</text>
<text text-anchor="start" x="498.2665" y="-1483" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_forward_buffer:bytearray</text>
<text text-anchor="start" x="537.7135" y="-1471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">db:Infos</text>
<text text-anchor="start" x="526.326" y="-1459" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">new_data:list</text>
<text text-anchor="start" x="544.662" y="-1447" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">state</text>
<polygon fill="none" stroke="#000000" points="488.5,-1366 488.5,-1434 622.5,-1434 622.5,-1366 488.5,-1366"/>
<text text-anchor="start" x="505.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="529.9445" y="-1403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close():void</text>
<text text-anchor="start" x="515.7725" y="-1391" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter():void</text>
<text text-anchor="start" x="514.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="M555.5,-1681.5582C555.5,-1669.4749 555.5,-1656.067 555.5,-1642.189"/>
<polygon fill="none" stroke="#000000" points="552.0001,-1681.8144 555.5,-1691.8145 559.0001,-1681.8145 552.0001,-1681.8144"/>
</g>
<!-- A21 -->
<g id="node22" class="node">
<title>A21</title>
<polygon fill="none" stroke="#000000" points="498.5,-1284 498.5,-1316 612.5,-1316 612.5,-1284 498.5,-1284"/>
<text text-anchor="start" x="541.608" y="-1297" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Talent</text>
<polygon fill="none" stroke="#000000" points="498.5,-1180 498.5,-1284 612.5,-1284 612.5,-1180 498.5,-1180"/>
<text text-anchor="start" x="508.263" y="-1265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">await_conn_resp_cnt</text>
<text text-anchor="start" x="543.2775" y="-1253" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">id_str</text>
<text text-anchor="start" x="524.1" y="-1241" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">contact_name</text>
<text text-anchor="start" x="527.44" y="-1229" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">contact_mail</text>
<text text-anchor="start" x="531.0445" y="-1217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">db:InfosG3</text>
<text text-anchor="start" x="529.384" y="-1205" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb:Modbus</text>
<text text-anchor="start" x="541.612" y="-1193" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">switch</text>
<polygon fill="none" stroke="#000000" points="498.5,-1064 498.5,-1180 612.5,-1180 612.5,-1064 498.5,-1064"/>
<text text-anchor="start" x="512.9925" y="-1161" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_contact_info()</text>
<text text-anchor="start" x="514.9325" y="-1149" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_ota_update()</text>
<text text-anchor="start" x="520.7765" y="-1137" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_get_time()</text>
<text text-anchor="start" x="508.8285" y="-1125" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_collector_data()</text>
<text text-anchor="start" x="510.7735" y="-1113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_inverter_data()</text>
<text text-anchor="start" x="519.9405" y="-1101" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_unknown()</text>
<text text-anchor="start" x="540.5025" y="-1077" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A6&#45;&gt;A21 -->
<g id="edge29" class="edge">
<title>A6&#45;&gt;A21</title>
<path fill="none" stroke="#000000" d="M555.5,-1355.7632C555.5,-1342.5854 555.5,-1329.3251 555.5,-1316.355"/>
<polygon fill="none" stroke="#000000" points="552.0001,-1355.8181 555.5,-1365.8181 559.0001,-1355.8181 552.0001,-1355.8181"/>
</g>
<!-- A22 -->
<g id="node23" class="node">
<title>A22</title>
<polygon fill="none" stroke="#000000" points="387.5,-1248 387.5,-1280 478.5,-1280 478.5,-1248 387.5,-1248"/>
<text text-anchor="start" x="405.495" y="-1261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SolarmanV5</text>
<polygon fill="none" stroke="#000000" points="387.5,-1156 387.5,-1248 478.5,-1248 478.5,-1156 387.5,-1156"/>
<text text-anchor="start" x="417.998" y="-1229" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">control</text>
<text text-anchor="start" x="421.0575" y="-1217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">serial</text>
<text text-anchor="start" x="426.056" y="-1205" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snr</text>
<text text-anchor="start" x="405.21" y="-1193" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">db:InfosG3P</text>
<text text-anchor="start" x="406.884" y="-1181" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb:Modbus</text>
<text text-anchor="start" x="419.112" y="-1169" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">switch</text>
<polygon fill="none" stroke="#000000" points="387.5,-1100 387.5,-1156 478.5,-1156 478.5,-1100 387.5,-1100"/>
<text text-anchor="start" x="397.4405" y="-1137" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_unknown()</text>
<text text-anchor="start" x="418.0025" y="-1113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A6&#45;&gt;A22 -->
<g id="edge30" class="edge">
<title>A6&#45;&gt;A22</title>
<path fill="none" stroke="#000000" d="M497.6392,-1356.2903C487.487,-1330.3733 477.2021,-1304.1174 467.8962,-1280.3611"/>
<polygon fill="none" stroke="#000000" points="494.4651,-1357.7836 501.3714,-1365.8181 500.9829,-1355.2304 494.4651,-1357.7836"/>
</g>
<!-- A7 -->
<g id="node8" class="node">
<title>A7</title>
<polygon fill="none" stroke="#000000" points="552.5,-982 552.5,-1014 669.5,-1014 669.5,-982 552.5,-982"/>
<text text-anchor="start" x="580.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="552.5,-962 552.5,-982 669.5,-982 669.5,-962 552.5,-962"/>
<polygon fill="none" stroke="#000000" points="552.5,-666 552.5,-962 669.5,-962 669.5,-666 552.5,-666"/>
<text text-anchor="start" x="580.436" y="-943" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">set_node_id()</text>
<text text-anchor="start" x="578.766" y="-931" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">get_conn_no()</text>
<text text-anchor="start" x="592.6635" y="-907" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_add()</text>
<text text-anchor="start" x="590.444" y="-895" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_flush()</text>
<text text-anchor="start" x="594.0535" y="-883" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_get()</text>
<text text-anchor="start" x="590.1635" y="-871" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_peek()</text>
<text text-anchor="start" x="594.3335" y="-859" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_log()</text>
<text text-anchor="start" x="590.169" y="-847" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_clear()</text>
<text text-anchor="start" x="594.3335" y="-835" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_len()</text>
<text text-anchor="start" x="588.7745" y="-811" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_add()</text>
<text text-anchor="start" x="586.555" y="-799" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_flush()</text>
<text text-anchor="start" x="590.4445" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_log()</text>
<text text-anchor="start" x="586.28" y="-775" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_clear()</text>
<text text-anchor="start" x="593.7785" y="-763" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_get()</text>
<text text-anchor="start" x="589.8885" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_peek()</text>
<text text-anchor="start" x="594.0585" y="-739" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_log()</text>
<text text-anchor="start" x="589.894" y="-727" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_clear()</text>
<text text-anchor="start" x="594.0585" y="-715" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_len()</text>
<text text-anchor="start" x="585.999" y="-703" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_set_cb()</text>
<text text-anchor="start" x="562.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="575.5,-574 575.5,-606 668.5,-606 668.5,-574 575.5,-574"/>
<text text-anchor="start" x="593.664" y="-587" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncIfcImpl</text>
<polygon fill="none" stroke="#000000" points="575.5,-482 575.5,-574 668.5,-574 668.5,-482 575.5,-482"/>
<text text-anchor="start" x="585.048" y="-555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_fifo:ByteFifo</text>
<text text-anchor="start" x="588.937" y="-543" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_fifo:ByteFifo</text>
<text text-anchor="start" x="588.662" y="-531" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_fifo:ByteFifo</text>
<text text-anchor="start" x="588.096" y="-519" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">conn_no:Count</text>
<text text-anchor="start" x="604.2135" y="-507" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
<text text-anchor="start" x="597.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="M617.3637,-655.3047C618.0135,-637.8196 618.6361,-621.0638 619.1922,-606.0999"/>
<polygon fill="none" stroke="#000000" points="613.8521,-655.5528 616.9783,-665.6759 620.8473,-655.8128 613.8521,-655.5528"/>
</g>
<!-- A9 -->
<g id="node10" class="node">
<title>A9</title>
<polygon fill="none" stroke="#000000" points="635.5,-390 635.5,-422 737.5,-422 737.5,-390 635.5,-390"/>
<text text-anchor="start" x="656.774" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStream</text>
<polygon fill="none" stroke="#000000" points="635.5,-310 635.5,-390 737.5,-390 737.5,-310 635.5,-310"/>
<text text-anchor="start" x="672.053" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">reader</text>
<text text-anchor="start" x="674.283" y="-359" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">writer</text>
<text text-anchor="start" x="676.497" y="-347" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
<text text-anchor="start" x="672.053" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">r_addr</text>
<text text-anchor="start" x="672.608" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">l_addr</text>
<polygon fill="none" stroke="#000000" points="635.5,-182 635.5,-310 737.5,-310 737.5,-182 635.5,-182"/>
<text text-anchor="start" x="658.154" y="-279" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;loop</text>
<text text-anchor="start" x="674.282" y="-267" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">disc()</text>
<text text-anchor="start" x="671.5025" y="-255" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
<text text-anchor="start" x="667.054" y="-243" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
<text text-anchor="start" x="651.7705" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_read()</text>
<text text-anchor="start" x="651.221" y="-207" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_write()</text>
<text text-anchor="start" x="645.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="M640.7492,-472.3339C644.9969,-456.5191 649.6091,-439.3476 654.2155,-422.1976"/>
<polygon fill="#000000" stroke="#000000" points="638.1547,-481.9932 636.4028,-471.1682 639.4518,-477.1644 640.7488,-472.3355 640.7488,-472.3355 640.7488,-472.3355 639.4518,-477.1644 645.0948,-473.5029 638.1547,-481.9932 638.1547,-481.9932"/>
</g>
<!-- A10 -->
<g id="node11" class="node">
<title>A10</title>
<polygon fill="none" stroke="#000000" points="436.5,-100 436.5,-132 614.5,-132 614.5,-100 436.5,-100"/>
<text text-anchor="start" x="481.0515" y="-113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStreamServer</text>
<polygon fill="none" stroke="#000000" points="436.5,-68 436.5,-100 614.5,-100 614.5,-68 436.5,-68"/>
<text text-anchor="start" x="477.4325" y="-81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">async_create_remote</text>
<polygon fill="none" stroke="#000000" points="436.5,0 436.5,-68 614.5,-68 614.5,0 436.5,0"/>
<text text-anchor="start" x="477.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="467.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="446.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="510.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="M629.9027,-187.1874C628.7765,-185.436 627.642,-183.7056 626.5,-182 615.1346,-165.026 601.5426,-147.838 588.0698,-132.0797"/>
<polygon fill="#000000" stroke="#000000" points="635.4599,-196.1027 626.3512,-189.9968 632.8149,-191.8595 630.17,-187.6163 630.17,-187.6163 630.17,-187.6163 632.8149,-191.8595 633.9889,-185.2359 635.4599,-196.1027 635.4599,-196.1027"/>
</g>
<!-- A11 -->
<g id="node12" class="node">
<title>A11</title>
<polygon fill="none" stroke="#000000" points="632.5,-82 632.5,-114 770.5,-114 770.5,-82 632.5,-82"/>
<text text-anchor="start" x="658.997" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStreamClient</text>
<polygon fill="none" stroke="#000000" points="632.5,-62 632.5,-82 770.5,-82 770.5,-62 632.5,-62"/>
<polygon fill="none" stroke="#000000" points="632.5,-18 632.5,-62 770.5,-62 770.5,-18 632.5,-18"/>
<text text-anchor="start" x="655.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="642.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="M694.7749,-171.8077C696.0812,-151.2556 697.3558,-131.2022 698.4379,-114.1772"/>
<polygon fill="#000000" stroke="#000000" points="694.1318,-181.9259 690.2753,-171.6605 694.449,-176.9359 694.7662,-171.946 694.7662,-171.946 694.7662,-171.946 694.449,-176.9359 699.2572,-172.2315 694.1318,-181.9259 694.1318,-181.9259"/>
</g>
<!-- A12 -->
<g id="node13" class="node">
<title>A12</title>
<polygon fill="none" stroke="#000000" points="687.5,-856 687.5,-888 838.5,-888 838.5,-856 687.5,-856"/>
<text text-anchor="start" x="731.0455" y="-869" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ConnectionG3</text>
<polygon fill="none" stroke="#000000" points="687.5,-824 687.5,-856 838.5,-856 838.5,-824 687.5,-824"/>
<text text-anchor="start" x="697.432" y="-837" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote.stream:ConnectionG3</text>
<polygon fill="none" stroke="#000000" points="687.5,-792 687.5,-824 838.5,-824 838.5,-792 687.5,-792"/>
<text text-anchor="start" x="743.554" y="-805" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
</g>
<!-- A13 -->
<g id="node14" class="node">
<title>A13</title>
<polygon fill="none" stroke="#000000" points="687.5,-560 687.5,-592 838.5,-592 838.5,-560 687.5,-560"/>
<text text-anchor="start" x="718.2685" y="-573" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ConnectionG3Client</text>
<polygon fill="none" stroke="#000000" points="687.5,-528 687.5,-560 838.5,-560 838.5,-528 687.5,-528"/>
<text text-anchor="start" x="697.432" y="-541" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote.stream:ConnectionG3</text>
<polygon fill="none" stroke="#000000" points="687.5,-496 687.5,-528 838.5,-528 838.5,-496 687.5,-496"/>
<text text-anchor="start" x="748.0025" y="-509" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A12&#45;&gt;A13 -->
<g id="edge9" class="edge">
<title>A12&#45;&gt;A13</title>
<path fill="none" stroke="#000000" d="M762.5,-781.767C762.5,-726.3695 762.5,-644.0054 762.5,-592.1957"/>
<polygon fill="none" stroke="#000000" points="759.0001,-781.7837 762.5,-791.7837 766.0001,-781.7837 759.0001,-781.7837"/>
</g>
<!-- A14 -->
<g id="node15" class="node">
<title>A14</title>
<polygon fill="none" stroke="#000000" points="466.5,-324 466.5,-356 617.5,-356 617.5,-324 466.5,-324"/>
<text text-anchor="start" x="495.323" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ConnectionG3Server</text>
<polygon fill="none" stroke="#000000" points="466.5,-292 466.5,-324 617.5,-324 617.5,-292 466.5,-292"/>
<text text-anchor="start" x="476.432" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote.stream:ConnectionG3</text>
<polygon fill="none" stroke="#000000" points="466.5,-248 466.5,-292 617.5,-292 617.5,-248 466.5,-248"/>
<text text-anchor="start" x="527.0025" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A12&#45;&gt;A14 -->
<g id="edge10" class="edge">
<title>A12&#45;&gt;A14</title>
<path fill="none" stroke="#000000" d="M745.971,-781.9742C732.8528,-744.797 711.2028,-697.74 678.5,-666 639.382,-628.0337 597.9598,-660.5189 566.5,-616 537.8593,-575.4705 537.2638,-434.5757 539.3427,-356.0029"/>
<polygon fill="none" stroke="#000000" points="742.7431,-783.3525 749.2852,-791.6862 749.368,-781.0917 742.7431,-783.3525"/>
</g>
<!-- A13&#45;&gt;A11 -->
<g id="edge12" class="edge">
<title>A13&#45;&gt;A11</title>
<path fill="none" stroke="#000000" d="M765.7562,-483.9177C768.3319,-411.4858 768.4508,-286.4642 746.5,-182 742.3769,-162.3782 735.3279,-141.7356 728.0167,-123.3919"/>
<polygon fill="#000000" stroke="#000000" points="765.7548,-483.9554 769.5185,-490.1064 765.2883,-495.9463 761.5246,-489.7953 765.7548,-483.9554"/>
<polygon fill="#000000" stroke="#000000" points="724.1836,-114.0264 732.1361,-121.5768 726.0775,-118.6539 727.9715,-123.2813 727.9715,-123.2813 727.9715,-123.2813 726.0775,-118.6539 723.8068,-124.9858 724.1836,-114.0264 724.1836,-114.0264"/>
<text text-anchor="middle" x="738.872" y="-124.6003" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
</g>
<!-- A13&#45;&gt;A14 -->
<g id="edge11" class="edge">
<title>A13&#45;&gt;A14</title>
<path fill="none" stroke="#000000" d="M698.7055,-489.1877C669.7319,-463.8077 639.1408,-436.1834 626.5,-422 608.4095,-401.7018 590.66,-377.5241 576.0987,-356.2077"/>
<polygon fill="#000000" stroke="#000000" points="706.4202,-495.9268 695.9285,-492.737 702.6546,-492.6374 698.889,-489.348 698.889,-489.348 698.889,-489.348 702.6546,-492.6374 701.8495,-485.9589 706.4202,-495.9268 706.4202,-495.9268"/>
</g>
<!-- A14&#45;&gt;A3 -->
<g id="edge13" class="edge">
<title>A14&#45;&gt;A3</title>
<path fill="none" stroke="#000000" d="M490.0309,-240.027C462.4537,-206.8219 428.4748,-165.9084 400.3932,-132.0959"/>
<polygon fill="none" stroke="#000000" points="487.4521,-242.4001 496.5336,-247.8568 492.8371,-237.9278 487.4521,-242.4001"/>
</g>
<!-- A14&#45;&gt;A10 -->
<g id="edge14" class="edge">
<title>A14&#45;&gt;A10</title>
<path fill="none" stroke="#000000" d="M537.0108,-235.7838C535.0371,-206.6727 532.7079,-172.3163 530.6628,-142.1514"/>
<polygon fill="#000000" stroke="#000000" points="537.0175,-235.8843 541.4142,-241.6 537.8293,-247.8568 533.4325,-242.1412 537.0175,-235.8843"/>
<polygon fill="#000000" stroke="#000000" points="529.9811,-132.0959 535.1473,-141.7686 530.3193,-137.0845 530.6576,-142.073 530.6576,-142.073 530.6576,-142.073 530.3193,-137.0845 526.1679,-142.3774 529.9811,-132.0959 529.9811,-132.0959"/>
<text text-anchor="middle" x="539.6402" y="-146.6088" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
</g>
<!-- A15 -->
<g id="node16" class="node">
<title>A15</title>
<polygon fill="none" stroke="#000000" points="292.5,-862 292.5,-894 449.5,-894 449.5,-862 292.5,-862"/>
<text text-anchor="start" x="335.711" y="-875" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ConnectionG3P</text>
<polygon fill="none" stroke="#000000" points="292.5,-830 292.5,-862 449.5,-862 449.5,-830 292.5,-830"/>
<text text-anchor="start" x="302.0975" y="-843" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote.stream:ConnectionG3P</text>
<polygon fill="none" stroke="#000000" points="292.5,-786 292.5,-830 449.5,-830 449.5,-786 292.5,-786"/>
<text text-anchor="start" x="351.554" y="-811" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
<text text-anchor="start" x="356.0025" y="-799" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A16 -->
<g id="node17" class="node">
<title>A16</title>
<polygon fill="none" stroke="#000000" points="359.5,-560 359.5,-592 516.5,-592 516.5,-560 359.5,-560"/>
<text text-anchor="start" x="389.934" y="-573" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ConnectionG3PClient</text>
<polygon fill="none" stroke="#000000" points="359.5,-528 359.5,-560 516.5,-560 516.5,-528 359.5,-528"/>
<text text-anchor="start" x="369.0975" y="-541" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote.stream:ConnectionG3P</text>
<polygon fill="none" stroke="#000000" points="359.5,-496 359.5,-528 516.5,-528 516.5,-496 359.5,-496"/>
<text text-anchor="start" x="423.0025" y="-509" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A15&#45;&gt;A16 -->
<g id="edge15" class="edge">
<title>A15&#45;&gt;A16</title>
<path fill="none" stroke="#000000" d="M385.0601,-775.6747C397.5656,-720.4264 415.3156,-642.0086 426.6189,-592.0719"/>
<polygon fill="none" stroke="#000000" points="381.5829,-775.1831 382.7888,-785.709 388.4102,-776.7285 381.5829,-775.1831"/>
</g>
<!-- A17 -->
<g id="node18" class="node">
<title>A17</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="280.9885" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ConnectionG3PServer</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="316.0025" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A15&#45;&gt;A17 -->
<g id="edge16" class="edge">
<title>A15&#45;&gt;A17</title>
<path fill="none" stroke="#000000" d="M363.8918,-775.579C359.4421,-730.8408 353.651,-669.833 349.5,-616 342.4777,-524.9291 336.5213,-418.8313 333.2353,-356.213"/>
<polygon fill="none" stroke="#000000" points="360.4287,-776.124 364.9058,-785.7264 367.394,-775.4279 360.4287,-776.124"/>
</g>
<!-- A16&#45;&gt;A11 -->
<g id="edge18" class="edge">
<title>A16&#45;&gt;A11</title>
<path fill="none" stroke="#000000" d="M432.5814,-483.65C426.5012,-392.955 420.8979,-227.2936 456.5,-182 504.3791,-121.0873 555.3805,-168.9121 623.5,-132 629.8263,-128.572 636.106,-124.5733 642.1952,-120.2709"/>
<polygon fill="#000000" stroke="#000000" points="432.5842,-483.6913 436.9918,-489.3986 433.4189,-495.6623 429.0112,-489.955 432.5842,-483.6913"/>
<polygon fill="#000000" stroke="#000000" points="650.3668,-114.2407 644.9924,-123.7993 646.3436,-117.2096 642.3205,-120.1784 642.3205,-120.1784 642.3205,-120.1784 646.3436,-117.2096 639.6485,-116.5576 650.3668,-114.2407 650.3668,-114.2407"/>
<text text-anchor="middle" x="640.8006" y="-128.8045" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
</g>
<!-- A16&#45;&gt;A17 -->
<g id="edge17" class="edge">
<title>A16&#45;&gt;A17</title>
<path fill="none" stroke="#000000" d="M412.1504,-486.6673C394.7061,-447.2138 371.6786,-395.1329 354.5264,-356.3401"/>
<polygon fill="#000000" stroke="#000000" points="416.2323,-495.8992 408.0728,-488.5731 414.2104,-491.3263 412.1884,-486.7533 412.1884,-486.7533 412.1884,-486.7533 414.2104,-491.3263 416.3041,-484.9336 416.2323,-495.8992 416.2323,-495.8992"/>
</g>
<!-- A17&#45;&gt;A4 -->
<g id="edge19" class="edge">
<title>A17&#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>
<!-- A17&#45;&gt;A10 -->
<g id="edge20" class="edge">
<title>A17&#45;&gt;A10</title>
<path fill="none" stroke="#000000" d="M378.7264,-238.2577C392.9202,-219.9137 408.6333,-200.0024 423.5,-182 434.8823,-168.217 447.2524,-153.7473 459.3242,-139.8828"/>
<polygon fill="#000000" stroke="#000000" points="378.561,-238.4723 378.0657,-245.6664 371.2345,-247.9761 371.7298,-240.782 378.561,-238.4723"/>
<polygon fill="#000000" stroke="#000000" points="465.9919,-132.2508 462.8014,-142.7423 462.7022,-136.0162 459.4126,-139.7816 459.4126,-139.7816 459.4126,-139.7816 462.7022,-136.0162 456.0237,-136.8209 465.9919,-132.2508 465.9919,-132.2508"/>
<text text-anchor="middle" x="460.4315" y="-148.4623" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
</g>
<!-- A18 -->
<g id="node19" class="node">
<title>A18</title>
<polygon fill="none" stroke="#000000" points="255.5,-1278 255.5,-1310 358.5,-1310 358.5,-1278 255.5,-1278"/>
<text text-anchor="start" x="296.162" y="-1291" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Infos</text>
<polygon fill="none" stroke="#000000" points="255.5,-1222 255.5,-1278 358.5,-1278 358.5,-1222 255.5,-1222"/>
<text text-anchor="start" x="298.9415" y="-1259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stat</text>
<text text-anchor="start" x="274.486" y="-1247" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">new_stat_data</text>
<text text-anchor="start" x="288.1035" y="-1235" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">info_dev</text>
<polygon fill="none" stroke="#000000" points="255.5,-1070 255.5,-1222 358.5,-1222 358.5,-1070 255.5,-1070"/>
<text text-anchor="start" x="282.8355" y="-1203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">static_init()</text>
<text text-anchor="start" x="280.8845" y="-1191" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dev_value()</text>
<text text-anchor="start" x="277.8305" y="-1179" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter()</text>
<text text-anchor="start" x="276.1605" y="-1167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dec_counter()</text>
<text text-anchor="start" x="274.21" y="-1155" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_proxy_conf</text>
<text text-anchor="start" x="289.213" y="-1143" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_conf</text>
<text text-anchor="start" x="281.994" y="-1131" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_remove</text>
<text text-anchor="start" x="283.3745" y="-1119" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">update_db</text>
<text text-anchor="start" x="267.537" y="-1107" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">set_db_def_value</text>
<text text-anchor="start" x="276.9855" y="-1095" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">get_db_value</text>
<text text-anchor="start" x="265.3225" y="-1083" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ignore_this_device</text>
</g>
<!-- A19 -->
<g id="node20" class="node">
<title>A19</title>
<polygon fill="none" stroke="#000000" points="467.5,-856 467.5,-888 534.5,-888 534.5,-856 467.5,-856"/>
<text text-anchor="start" x="483.493" y="-869" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InfosG3</text>
<polygon fill="none" stroke="#000000" points="467.5,-836 467.5,-856 534.5,-856 534.5,-836 467.5,-836"/>
<polygon fill="none" stroke="#000000" points="467.5,-792 467.5,-836 534.5,-836 534.5,-792 467.5,-792"/>
<text text-anchor="start" x="477.384" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_confs()</text>
<text text-anchor="start" x="485.168" y="-805" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">parse()</text>
</g>
<!-- A18&#45;&gt;A19 -->
<g id="edge21" class="edge">
<title>A18&#45;&gt;A19</title>
<path fill="none" stroke="#000000" d="M364.1135,-1079.5989C368.3725,-1074.1218 372.8381,-1068.8788 377.5,-1064 406.4667,-1033.6857 432.8916,-1047.9478 457.5,-1014 484.2551,-977.0907 494.4701,-925.4423 498.3138,-888.0116"/>
<polygon fill="none" stroke="#000000" points="361.1895,-1077.6653 358.0224,-1087.7757 366.8031,-1081.8471 361.1895,-1077.6653"/>
</g>
<!-- A20 -->
<g id="node21" class="node">
<title>A20</title>
<polygon fill="none" stroke="#000000" points="207.5,-856 207.5,-888 274.5,-888 274.5,-856 207.5,-856"/>
<text text-anchor="start" x="220.1585" y="-869" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InfosG3P</text>
<polygon fill="none" stroke="#000000" points="207.5,-836 207.5,-856 274.5,-856 274.5,-836 207.5,-836"/>
<polygon fill="none" stroke="#000000" points="207.5,-792 207.5,-836 274.5,-836 274.5,-792 207.5,-792"/>
<text text-anchor="start" x="217.384" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_confs()</text>
<text text-anchor="start" x="225.168" y="-805" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">parse()</text>
</g>
<!-- A18&#45;&gt;A20 -->
<g id="edge22" class="edge">
<title>A18&#45;&gt;A20</title>
<path fill="none" stroke="#000000" d="M281.9132,-1059.6156C270.6119,-999.6842 257.9,-932.2726 249.5769,-888.1352"/>
<polygon fill="none" stroke="#000000" points="278.494,-1060.3716 283.7865,-1069.5499 285.3728,-1059.0744 278.494,-1060.3716"/>
</g>
<!-- A21&#45;&gt;A7 -->
<g id="edge24" class="edge">
<title>A21&#45;&gt;A7</title>
<path fill="none" stroke="#000000" d="M575.3563,-1063.642C577.3669,-1050.8472 579.4367,-1037.6756 581.5179,-1024.4317"/>
<polygon fill="#000000" stroke="#000000" points="583.1108,-1014.295 586.0038,-1024.8724 582.3345,-1019.2344 581.5583,-1024.1738 581.5583,-1024.1738 581.5583,-1024.1738 582.3345,-1019.2344 577.1129,-1023.4752 583.1108,-1014.295 583.1108,-1014.295"/>
<text text-anchor="middle" x="569.8202" y="-1041.4234" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
</g>
<!-- A21&#45;&gt;A12 -->
<g id="edge23" class="edge">
<title>A21&#45;&gt;A12</title>
<path fill="none" stroke="#000000" d="M618.6601,-1105.4878C638.7912,-1077.0562 660.4946,-1044.7401 678.5,-1014 702.5743,-972.8987 725.7861,-923.8582 741.6852,-888.3319"/>
<polygon fill="none" stroke="#000000" points="615.6988,-1103.6125 612.7495,-1113.7886 621.4009,-1107.6728 615.6988,-1103.6125"/>
</g>
<!-- A21&#45;&gt;A19 -->
<g id="edge25" class="edge">
<title>A21&#45;&gt;A19</title>
<path fill="none" stroke="#000000" d="M535.6437,-1063.642C526.7659,-1007.1466 516.7335,-943.3043 509.6671,-898.3363"/>
<polygon fill="#000000" stroke="#000000" points="508.0718,-888.1839 514.0697,-897.3641 508.848,-893.1233 509.6242,-898.0627 509.6242,-898.0627 509.6242,-898.0627 508.848,-893.1233 505.1788,-898.7613 508.0718,-888.1839 508.0718,-888.1839"/>
</g>
<!-- A22&#45;&gt;A7 -->
<g id="edge27" class="edge">
<title>A22&#45;&gt;A7</title>
<path fill="none" stroke="#000000" d="M468.0427,-1099.8226C474.4445,-1087.349 481.6217,-1075.043 489.5,-1064 508.3074,-1037.6376 524.3881,-1040.8449 542.5,-1014 543.9285,-1011.8827 545.3335,-1009.731 546.715,-1007.5491"/>
<polygon fill="#000000" stroke="#000000" points="551.9277,-998.9917 550.5685,-1009.873 549.3265,-1003.2618 546.7254,-1007.532 546.7254,-1007.532 546.7254,-1007.532 549.3265,-1003.2618 542.8822,-1005.1909 551.9277,-998.9917 551.9277,-998.9917"/>
<text text-anchor="middle" x="468.9105" y="-1076.8414" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
</g>
<!-- A22&#45;&gt;A15 -->
<g id="edge26" class="edge">
<title>A22&#45;&gt;A15</title>
<path fill="none" stroke="#000000" d="M414.749,-1089.7927C403.4687,-1026.1139 389.3056,-946.1607 380.0853,-894.1104"/>
<polygon fill="none" stroke="#000000" points="411.3428,-1090.6301 416.5335,-1099.8663 418.2355,-1089.4091 411.3428,-1090.6301"/>
</g>
<!-- A22&#45;&gt;A20 -->
<g id="edge28" class="edge">
<title>A22&#45;&gt;A20</title>
<path fill="none" stroke="#000000" d="M393.1989,-1099.7863C385.4244,-1086.9738 376.5183,-1074.5787 366.5,-1064 336.6255,-1032.4545 308.2844,-1048.9681 282.5,-1014 257.8033,-980.507 247.4516,-934.4437 243.1951,-898.1251"/>
<polygon fill="#000000" stroke="#000000" points="242.1493,-888.1583 247.6684,-897.6341 242.6711,-893.131 243.1929,-898.1037 243.1929,-898.1037 243.1929,-898.1037 242.6711,-893.131 238.7175,-898.5734 242.1493,-888.1583 242.1493,-888.1583"/>
</g>
<!-- A23 -->
<g id="node24" class="node">
<title>A23</title>
<polygon fill="none" stroke="#000000" points="395.5,-1598 395.5,-1630 470.5,-1630 470.5,-1598 395.5,-1598"/>
<text text-anchor="start" x="415.2175" y="-1611" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Modbus</text>
<polygon fill="none" stroke="#000000" points="395.5,-1446 395.5,-1598 470.5,-1598 470.5,-1446 395.5,-1446"/>
<text text-anchor="start" x="424.6615" y="-1579" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">que</text>
<text text-anchor="start" x="405.49" y="-1555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snd_handler</text>
<text text-anchor="start" x="406.605" y="-1543" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rsp_handler</text>
<text text-anchor="start" x="416.6085" y="-1531" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout</text>
<text text-anchor="start" x="406.8895" y="-1519" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">max_retires</text>
<text text-anchor="start" x="414.942" y="-1507" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">last_xxx</text>
<text text-anchor="start" x="426.8915" y="-1495" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">err</text>
<text text-anchor="start" x="413.5535" y="-1483" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">retry_cnt</text>
<text text-anchor="start" x="411.879" y="-1471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">req_pend</text>
<text text-anchor="start" x="426.3365" y="-1459" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tim</text>
<polygon fill="none" stroke="#000000" points="395.5,-1378 395.5,-1446 470.5,-1446 470.5,-1378 395.5,-1378"/>
<text text-anchor="start" x="406.89" y="-1427" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">build_msg()</text>
<text text-anchor="start" x="410.224" y="-1415" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_req()</text>
<text text-anchor="start" x="407.724" y="-1403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_resp()</text>
<text text-anchor="start" x="418.0025" y="-1391" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A23&#45;&gt;A21 -->
<g id="edge32" class="edge">
<title>A23&#45;&gt;A21</title>
<path fill="none" stroke="#000000" d="M473.6171,-1381.5836C475.5712,-1376.3055 477.537,-1371.0921 479.5,-1366 485.7253,-1349.8514 492.5573,-1333.0014 499.4927,-1316.4014"/>
<polygon fill="#000000" stroke="#000000" points="470.1153,-1391.1417 469.3301,-1380.2039 471.8353,-1386.4468 473.5554,-1381.752 473.5554,-1381.752 473.5554,-1381.752 471.8353,-1386.4468 477.7808,-1383.3 470.1153,-1391.1417 470.1153,-1391.1417"/>
<text text-anchor="middle" x="500.3258" y="-1333.384" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
<text text-anchor="middle" x="468.4143" y="-1368.2141" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
</g>
<!-- A23&#45;&gt;A22 -->
<g id="edge31" class="edge">
<title>A23&#45;&gt;A22</title>
<path fill="none" stroke="#000000" d="M432.5,-1367.2886C432.5,-1337.886 432.5,-1307.5179 432.5,-1280.403"/>
<polygon fill="#000000" stroke="#000000" points="432.5,-1377.6415 428.0001,-1367.6414 432.5,-1372.6415 432.5001,-1367.6415 432.5001,-1367.6415 432.5001,-1367.6415 432.5,-1372.6415 437.0001,-1367.6415 432.5,-1377.6415 432.5,-1377.6415"/>
<text text-anchor="middle" x="440.9524" y="-1295.5292" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
<text text-anchor="middle" x="424.0476" y="-1356.5153" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
</g>
<!-- A24 -->
<g id="node25" class="node">
<title>A24</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>
<!-- A24&#45;&gt;A4 -->
<g id="edge33" class="edge">
<title>A24&#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>