Files
tsun-gen3-proxy/app/proxy_2.svg
2024-10-05 21:11:42 +02:00

419 lines
37 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="446pt" height="1820pt"
viewBox="0.00 0.00 446.35 1820.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 1816)">
<title>G</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1816 442.348,-1816 442.348,4 -4,4"/>
<!-- A0 -->
<g id="node1" class="node">
<title>A0</title>
<polygon fill="#fff8dc" stroke="#000000" points="108.5444,-1788 .1516,-1788 .1516,-1752 114.5444,-1752 114.5444,-1782 108.5444,-1788"/>
<polyline fill="none" stroke="#000000" points="108.5444,-1788 108.5444,-1782 "/>
<polyline fill="none" stroke="#000000" points="114.5444,-1782 108.5444,-1782 "/>
<text text-anchor="middle" x="57.348" y="-1773" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">You can stick notes</text>
<text text-anchor="middle" x="57.348" y="-1761" 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="133.348,-1780 133.348,-1812 204.348,-1812 204.348,-1780 133.348,-1780"/>
<text text-anchor="start" x="143.293" y="-1793" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">IterRegistry</text>
<polygon fill="none" stroke="#000000" points="133.348,-1760 133.348,-1780 204.348,-1780 204.348,-1760 133.348,-1760"/>
<polygon fill="none" stroke="#000000" points="133.348,-1728 133.348,-1760 204.348,-1760 204.348,-1728 133.348,-1728"/>
<text text-anchor="start" x="150.787" y="-1741" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__iter__</text>
</g>
<!-- A14 -->
<g id="node15" class="node">
<title>A14</title>
<polygon fill="none" stroke="#000000" points="128.348,-1574 128.348,-1606 209.348,-1606 209.348,-1574 128.348,-1574"/>
<text text-anchor="start" x="148.5655" y="-1587" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Message</text>
<polygon fill="none" stroke="#000000" points="128.348,-1542 128.348,-1574 209.348,-1574 209.348,-1542 128.348,-1542"/>
<text text-anchor="start" x="151.0615" y="-1555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
<polygon fill="none" stroke="#000000" points="128.348,-1498 128.348,-1542 209.348,-1542 209.348,-1498 128.348,-1498"/>
<text text-anchor="start" x="139.6785" y="-1523" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter()</text>
<text text-anchor="start" x="138.0085" y="-1511" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dec_counter()</text>
</g>
<!-- A1&#45;&gt;A14 -->
<g id="edge19" class="edge">
<title>A1&#45;&gt;A14</title>
<path fill="none" stroke="#000000" d="M168.348,-1717.8572C168.348,-1684.1684 168.348,-1640.4162 168.348,-1606.3079"/>
<polygon fill="none" stroke="#000000" points="164.8481,-1717.9674 168.348,-1727.9674 171.8481,-1717.9674 164.8481,-1717.9674"/>
</g>
<!-- A2 -->
<g id="node3" class="node">
<title>A2</title>
<polygon fill="none" stroke="#000000" points="340.348,-584 340.348,-616 438.348,-616 438.348,-584 340.348,-584"/>
<text text-anchor="start" x="365.7325" y="-597" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterG3</text>
<polygon fill="none" stroke="#000000" points="340.348,-528 340.348,-584 438.348,-584 438.348,-528 340.348,-528"/>
<text text-anchor="start" x="379.345" y="-565" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
<text text-anchor="start" x="349.901" y="-553" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote:StreamPtr</text>
<text text-anchor="start" x="355.18" y="-541" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local:StreamPtr</text>
<polygon fill="none" stroke="#000000" points="340.348,-472 340.348,-528 438.348,-528 438.348,-472 340.348,-472"/>
<text text-anchor="start" x="353.79" y="-509" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">create_remote()</text>
<text text-anchor="start" x="374.3505" y="-485" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A7 -->
<g id="node8" class="node">
<title>A7</title>
<polygon fill="none" stroke="#000000" points="7.348,-100 7.348,-132 185.348,-132 185.348,-100 7.348,-100"/>
<text text-anchor="start" x="51.8995" y="-113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStreamServer</text>
<polygon fill="none" stroke="#000000" points="7.348,-68 7.348,-100 185.348,-100 185.348,-68 7.348,-68"/>
<text text-anchor="start" x="64.119" y="-81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">create_remote</text>
<polygon fill="none" stroke="#000000" points="7.348,0 7.348,-68 185.348,-68 185.348,0 7.348,0"/>
<text text-anchor="start" x="48.0055" y="-49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;server_loop()</text>
<text text-anchor="start" x="38.8365" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;_async_forward()</text>
<text text-anchor="start" x="17.157" 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="81.3505" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A2&#45;&gt;A7 -->
<g id="edge8" class="edge">
<title>A2&#45;&gt;A7</title>
<path fill="none" stroke="#000000" d="M355.1669,-460.7015C350.2935,-447.8271 345.5247,-434.6178 341.348,-422 306.6206,-317.0888 342.6855,-270.3837 276.348,-182 250.7246,-147.8611 230.2817,-155.039 194.348,-132 194.2563,-131.9412 194.1645,-131.8823 194.0727,-131.8234"/>
<polygon fill="#000000" stroke="#000000" points="355.1669,-460.7018 361.0503,-464.8714 359.4643,-471.9059 353.5809,-467.7363 355.1669,-460.7018"/>
<polygon fill="#000000" stroke="#000000" points="185.433,-126.2441 196.2748,-127.8888 189.6333,-128.9566 193.8336,-131.6691 193.8336,-131.6691 193.8336,-131.6691 189.6333,-128.9566 191.3923,-135.4493 185.433,-126.2441 185.433,-126.2441"/>
<text text-anchor="middle" x="345.0813" y="-455.0087" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local</text>
</g>
<!-- A8 -->
<g id="node9" class="node">
<title>A8</title>
<polygon fill="none" stroke="#000000" points="203.348,-82 203.348,-114 341.348,-114 341.348,-82 203.348,-82"/>
<text text-anchor="start" x="229.845" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStreamClient</text>
<polygon fill="none" stroke="#000000" points="203.348,-62 203.348,-82 341.348,-82 341.348,-62 203.348,-62"/>
<polygon fill="none" stroke="#000000" points="203.348,-18 203.348,-62 341.348,-62 341.348,-18 203.348,-18"/>
<text text-anchor="start" x="226.226" y="-43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;client_loop()</text>
<text text-anchor="start" x="213.172" y="-31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;_async_forward())</text>
</g>
<!-- A2&#45;&gt;A8 -->
<g id="edge6" class="edge">
<title>A2&#45;&gt;A8</title>
<path fill="none" stroke="#000000" d="M388.2845,-471.9734C385.2471,-397.4776 374.9339,-278.7213 341.348,-182 334.28,-161.6455 323.3872,-140.9471 312.3293,-122.7781"/>
<polygon fill="#000000" stroke="#000000" points="306.9036,-114.0745 316.0125,-120.18 309.5487,-118.3175 312.1938,-122.5606 312.1938,-122.5606 312.1938,-122.5606 309.5487,-118.3175 308.375,-124.9412 306.9036,-114.0745 306.9036,-114.0745"/>
<text text-anchor="middle" x="323.6654" y="-121.9851" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote</text>
</g>
<!-- A3 -->
<g id="node4" class="node">
<title>A3</title>
<polygon fill="none" stroke="#000000" points="18.348,-342 18.348,-374 116.348,-374 116.348,-342 18.348,-342"/>
<text text-anchor="start" x="40.398" y="-355" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterG3P</text>
<polygon fill="none" stroke="#000000" points="18.348,-286 18.348,-342 116.348,-342 116.348,-286 18.348,-286"/>
<text text-anchor="start" x="57.345" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
<text text-anchor="start" x="27.901" y="-311" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote:StreamPtr</text>
<text text-anchor="start" x="33.18" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local:StreamPtr</text>
<polygon fill="none" stroke="#000000" points="18.348,-230 18.348,-286 116.348,-286 116.348,-230 18.348,-230"/>
<text text-anchor="start" x="31.79" y="-267" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">create_remote()</text>
<text text-anchor="start" x="52.3505" y="-243" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A3&#45;&gt;A7 -->
<g id="edge12" class="edge">
<title>A3&#45;&gt;A7</title>
<path fill="none" stroke="#000000" d="M77.7163,-217.6237C80.7418,-193.0021 84.0292,-166.2494 86.9885,-142.1671"/>
<polygon fill="#000000" stroke="#000000" points="77.6702,-217.9995 80.9085,-224.4425 76.2065,-229.9099 72.9682,-223.4668 77.6702,-217.9995"/>
<polygon fill="#000000" stroke="#000000" points="88.2349,-132.0235 91.4816,-142.4978 87.6251,-136.9862 87.0152,-141.9489 87.0152,-141.9489 87.0152,-141.9489 87.6251,-136.9862 82.5488,-141.4 88.2349,-132.0235 88.2349,-132.0235"/>
<text text-anchor="middle" x="70.028" y="-207.8882" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local</text>
</g>
<!-- A3&#45;&gt;A8 -->
<g id="edge10" class="edge">
<title>A3&#45;&gt;A8</title>
<path fill="none" stroke="#000000" d="M116.4873,-232.1115C129.0204,-215.3231 142.7944,-197.7122 156.348,-182 174.1632,-161.3474 194.8826,-139.9135 213.8403,-121.173"/>
<polygon fill="#000000" stroke="#000000" points="221.01,-114.1296 217.0299,-124.3477 217.4432,-117.6336 213.8763,-121.1375 213.8763,-121.1375 213.8763,-121.1375 217.4432,-117.6336 210.7227,-117.9274 221.01,-114.1296 221.01,-114.1296"/>
<text text-anchor="middle" x="214.0028" y="-129.8619" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote</text>
</g>
<!-- A4 -->
<g id="node5" class="node">
<title>A4</title>
<polygon fill="none" stroke="#000000" points="158.348,-982 158.348,-1014 275.348,-1014 275.348,-982 158.348,-982"/>
<text text-anchor="start" x="186.277" 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="158.348,-962 158.348,-982 275.348,-982 275.348,-962 158.348,-962"/>
<polygon fill="none" stroke="#000000" points="158.348,-666 158.348,-962 275.348,-962 275.348,-666 158.348,-666"/>
<text text-anchor="start" x="186.284" y="-943" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">set_node_id()</text>
<text text-anchor="start" x="184.614" y="-931" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">get_conn_no()</text>
<text text-anchor="start" x="198.5115" y="-907" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_add()</text>
<text text-anchor="start" x="196.292" y="-895" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_flush()</text>
<text text-anchor="start" x="199.9015" y="-883" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_get()</text>
<text text-anchor="start" x="196.0115" y="-871" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_peek()</text>
<text text-anchor="start" x="200.1815" y="-859" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_log()</text>
<text text-anchor="start" x="196.017" y="-847" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_clear()</text>
<text text-anchor="start" x="200.1815" y="-835" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_len()</text>
<text text-anchor="start" x="194.6225" y="-811" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_add()</text>
<text text-anchor="start" x="192.403" y="-799" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_flush()</text>
<text text-anchor="start" x="196.2925" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_log()</text>
<text text-anchor="start" x="192.128" y="-775" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_clear()</text>
<text text-anchor="start" x="199.6265" y="-763" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_get()</text>
<text text-anchor="start" x="195.7365" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_peek()</text>
<text text-anchor="start" x="199.9065" y="-739" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_log()</text>
<text text-anchor="start" x="195.742" y="-727" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_clear()</text>
<text text-anchor="start" x="199.9065" y="-715" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_len()</text>
<text text-anchor="start" x="191.847" y="-703" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_set_cb()</text>
<text text-anchor="start" x="168.2275" y="-679" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">prot_set_timeout_cb()</text>
</g>
<!-- A5 -->
<g id="node6" class="node">
<title>A5</title>
<polygon fill="none" stroke="#000000" points="170.348,-574 170.348,-606 263.348,-606 263.348,-574 170.348,-574"/>
<text text-anchor="start" x="188.512" y="-587" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncIfcImpl</text>
<polygon fill="none" stroke="#000000" points="170.348,-482 170.348,-574 263.348,-574 263.348,-482 170.348,-482"/>
<text text-anchor="start" x="179.896" y="-555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_fifo:ByteFifo</text>
<text text-anchor="start" x="183.785" y="-543" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_fifo:ByteFifo</text>
<text text-anchor="start" x="183.51" y="-531" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_fifo:ByteFifo</text>
<text text-anchor="start" x="182.944" y="-519" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">conn_no:Count</text>
<text text-anchor="start" x="199.0615" y="-507" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
<text text-anchor="start" x="192.3975" y="-495" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout_cb</text>
</g>
<!-- A4&#45;&gt;A5 -->
<g id="edge1" class="edge">
<title>A4&#45;&gt;A5</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M216.348,-655.3047C216.348,-637.8196 216.348,-621.0638 216.348,-606.0999"/>
<polygon fill="none" stroke="#000000" points="212.8481,-655.6759 216.348,-665.6759 219.8481,-655.676 212.8481,-655.6759"/>
</g>
<!-- A6 -->
<g id="node7" class="node">
<title>A6</title>
<polygon fill="none" stroke="#000000" points="165.348,-390 165.348,-422 267.348,-422 267.348,-390 165.348,-390"/>
<text text-anchor="start" x="186.622" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStream</text>
<polygon fill="none" stroke="#000000" points="165.348,-310 165.348,-390 267.348,-390 267.348,-310 165.348,-310"/>
<text text-anchor="start" x="201.901" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">reader</text>
<text text-anchor="start" x="204.131" y="-359" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">writer</text>
<text text-anchor="start" x="206.345" y="-347" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
<text text-anchor="start" x="201.901" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">r_addr</text>
<text text-anchor="start" x="202.456" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">l_addr</text>
<polygon fill="none" stroke="#000000" points="165.348,-182 165.348,-310 267.348,-310 267.348,-182 165.348,-182"/>
<text text-anchor="start" x="188.002" y="-279" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;async&gt;loop</text>
<text text-anchor="start" x="204.13" y="-267" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">disc()</text>
<text text-anchor="start" x="201.3505" y="-255" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
<text text-anchor="start" x="196.902" y="-243" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
<text text-anchor="start" x="181.6185" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_read()</text>
<text text-anchor="start" x="181.069" y="-207" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_write()</text>
<text text-anchor="start" x="174.955" y="-195" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_forward()</text>
</g>
<!-- A5&#45;&gt;A6 -->
<g id="edge2" class="edge">
<title>A5&#45;&gt;A6</title>
<path fill="none" stroke="#000000" d="M216.348,-471.886C216.348,-456.1951 216.348,-439.1858 216.348,-422.1976"/>
<polygon fill="none" stroke="#000000" points="212.8481,-471.9932 216.348,-481.9932 219.8481,-471.9933 212.8481,-471.9932"/>
</g>
<!-- A6&#45;&gt;A7 -->
<g id="edge3" class="edge">
<title>A6&#45;&gt;A7</title>
<path fill="none" stroke="#000000" d="M160.6502,-192.461C150.1789,-171.8674 139.5319,-150.9284 129.9938,-132.1701"/>
<polygon fill="none" stroke="#000000" points="157.6308,-194.2451 165.2832,-201.5725 163.8705,-191.0723 157.6308,-194.2451"/>
</g>
<!-- A6&#45;&gt;A8 -->
<g id="edge4" class="edge">
<title>A6&#45;&gt;A8</title>
<path fill="none" stroke="#000000" d="M247.1746,-172.088C252.0746,-151.438 256.8579,-131.2796 260.9161,-114.1772"/>
<polygon fill="none" stroke="#000000" points="243.7436,-171.3879 244.8402,-181.9259 250.5545,-173.0041 243.7436,-171.3879"/>
</g>
<!-- A9 -->
<g id="node10" class="node">
<title>A9</title>
<polygon fill="none" stroke="#000000" points="280.348,-1344 280.348,-1376 394.348,-1376 394.348,-1344 280.348,-1344"/>
<text text-anchor="start" x="323.456" y="-1357" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Talent</text>
<polygon fill="none" stroke="#000000" points="280.348,-1192 280.348,-1344 394.348,-1344 394.348,-1192 280.348,-1192"/>
<text text-anchor="start" x="312.0665" y="-1325" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ifc:AsyncIfc</text>
<text text-anchor="start" x="318.171" y="-1313" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">conn_no</text>
<text text-anchor="start" x="327.345" y="-1301" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
<text text-anchor="start" x="290.111" y="-1277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">await_conn_resp_cnt</text>
<text text-anchor="start" x="325.1255" y="-1265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">id_str</text>
<text text-anchor="start" x="305.948" y="-1253" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">contact_name</text>
<text text-anchor="start" x="309.288" y="-1241" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">contact_mail</text>
<text text-anchor="start" x="312.8925" y="-1229" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">db:InfosG3</text>
<text text-anchor="start" x="311.232" y="-1217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb:Modbus</text>
<text text-anchor="start" x="323.46" y="-1205" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">switch</text>
<polygon fill="none" stroke="#000000" points="280.348,-1064 280.348,-1192 394.348,-1192 394.348,-1064 280.348,-1064"/>
<text text-anchor="start" x="294.8405" y="-1173" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_contact_info()</text>
<text text-anchor="start" x="296.7805" y="-1161" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_ota_update()</text>
<text text-anchor="start" x="302.6245" y="-1149" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_get_time()</text>
<text text-anchor="start" x="290.6765" y="-1137" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_collector_data()</text>
<text text-anchor="start" x="292.6215" y="-1125" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_inverter_data()</text>
<text text-anchor="start" x="301.7885" y="-1113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_unknown()</text>
<text text-anchor="start" x="317.902" y="-1089" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
<text text-anchor="start" x="322.3505" y="-1077" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A9&#45;&gt;A2 -->
<g id="edge5" class="edge">
<title>A9&#45;&gt;A2</title>
<path fill="none" stroke="#000000" d="M355.8388,-1053.6462C357.5291,-1040.2553 359.074,-1026.9158 360.348,-1014 374.197,-873.5946 378.4625,-708.6618 382.5377,-616.2392"/>
<polygon fill="#000000" stroke="#000000" points="354.52,-1063.8901 351.3338,-1053.3974 355.1585,-1058.9311 355.797,-1053.972 355.797,-1053.972 355.797,-1053.972 355.1585,-1058.9311 360.2601,-1054.5466 354.52,-1063.8901 354.52,-1063.8901"/>
<text text-anchor="middle" x="348.4513" y="-1041.8331" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote</text>
</g>
<!-- A9&#45;&gt;A2 -->
<g id="edge7" class="edge">
<title>A9&#45;&gt;A2</title>
<path fill="none" stroke="#000000" d="M373.7894,-1053.6462C375.5291,-1040.2553 377.074,-1026.9158 378.348,-1014 391.6155,-879.4905 396.0874,-722.4703 395.1595,-628.2587"/>
<polygon fill="#000000" stroke="#000000" points="372.4223,-1063.8901 369.2847,-1053.3827 373.0837,-1058.9341 373.7452,-1053.978 373.7452,-1053.978 373.7452,-1053.978 373.0837,-1058.9341 378.2056,-1054.5733 372.4223,-1063.8901 372.4223,-1063.8901"/>
<polygon fill="#000000" stroke="#000000" points="395.1593,-628.2382 391.0833,-622.2896 395.0066,-616.2392 399.0827,-622.1878 395.1593,-628.2382"/>
<text text-anchor="middle" x="403.6888" y="-631.2564" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local</text>
</g>
<!-- A9&#45;&gt;A4 -->
<g id="edge15" class="edge">
<title>A9&#45;&gt;A4</title>
<path fill="none" stroke="#000000" d="M287.6089,-1063.7944C283.4127,-1050.6165 279.1452,-1037.2145 274.8907,-1023.853"/>
<polygon fill="#000000" stroke="#000000" points="271.7962,-1014.1348 279.1182,-1022.298 273.3133,-1018.8991 274.8304,-1023.6634 274.8304,-1023.6634 274.8304,-1023.6634 273.3133,-1018.8991 270.5425,-1025.0288 271.7962,-1014.1348 271.7962,-1014.1348"/>
<text text-anchor="middle" x="274.0553" y="-1046.0873" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
</g>
<!-- A12 -->
<g id="node13" class="node">
<title>A12</title>
<polygon fill="none" stroke="#000000" points="293.348,-856 293.348,-888 360.348,-888 360.348,-856 293.348,-856"/>
<text text-anchor="start" x="309.341" y="-869" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InfosG3</text>
<polygon fill="none" stroke="#000000" points="293.348,-836 293.348,-856 360.348,-856 360.348,-836 293.348,-836"/>
<polygon fill="none" stroke="#000000" points="293.348,-792 293.348,-836 360.348,-836 360.348,-792 293.348,-792"/>
<text text-anchor="start" x="303.232" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_confs()</text>
<text text-anchor="start" x="311.016" y="-805" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">parse()</text>
</g>
<!-- A9&#45;&gt;A12 -->
<g id="edge16" class="edge">
<title>A9&#45;&gt;A12</title>
<path fill="none" stroke="#000000" d="M332.8263,-1063.7944C331.1366,-1005.4246 329.3197,-942.658 328.0413,-898.4955"/>
<polygon fill="#000000" stroke="#000000" points="327.7446,-888.2447 332.5321,-898.1103 327.8893,-893.2426 328.034,-898.2406 328.034,-898.2406 328.034,-898.2406 327.8893,-893.2426 323.5359,-898.3708 327.7446,-888.2447 327.7446,-888.2447"/>
</g>
<!-- A10 -->
<g id="node11" class="node">
<title>A10</title>
<polygon fill="none" stroke="#000000" points="50.348,-1308 50.348,-1340 141.348,-1340 141.348,-1308 50.348,-1308"/>
<text text-anchor="start" x="68.343" y="-1321" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SolarmanV5</text>
<polygon fill="none" stroke="#000000" points="50.348,-1168 50.348,-1308 141.348,-1308 141.348,-1168 50.348,-1168"/>
<text text-anchor="start" x="70.5665" y="-1289" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ifc:AsyncIfc</text>
<text text-anchor="start" x="76.671" y="-1277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">conn_no</text>
<text text-anchor="start" x="85.845" y="-1265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
<text text-anchor="start" x="80.846" y="-1241" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">control</text>
<text text-anchor="start" x="83.9055" y="-1229" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">serial</text>
<text text-anchor="start" x="88.904" y="-1217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snr</text>
<text text-anchor="start" x="68.058" y="-1205" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">db:InfosG3P</text>
<text text-anchor="start" x="69.732" y="-1193" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb:Modbus</text>
<text text-anchor="start" x="81.96" y="-1181" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">switch</text>
<polygon fill="none" stroke="#000000" points="50.348,-1100 50.348,-1168 141.348,-1168 141.348,-1100 50.348,-1100"/>
<text text-anchor="start" x="60.2885" y="-1149" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_unknown()</text>
<text text-anchor="start" x="76.402" y="-1125" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
<text text-anchor="start" x="80.8505" y="-1113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A10&#45;&gt;A3 -->
<g id="edge9" class="edge">
<title>A10&#45;&gt;A3</title>
<path fill="none" stroke="#000000" d="M63.2254,-1090.0442C59.4271,-1064.8951 56.2542,-1038.6889 54.348,-1014 36.3281,-780.6024 47.1574,-502.891 57.6579,-374.1486"/>
<polygon fill="#000000" stroke="#000000" points="64.7695,-1099.9973 58.7895,-1090.8055 64.0029,-1095.0565 63.2364,-1090.1156 63.2364,-1090.1156 63.2364,-1090.1156 64.0029,-1095.0565 67.6832,-1089.4256 64.7695,-1099.9973 64.7695,-1099.9973"/>
<text text-anchor="middle" x="53.6382" y="-1080.3813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote</text>
</g>
<!-- A10&#45;&gt;A3 -->
<g id="edge11" class="edge">
<title>A10&#45;&gt;A3</title>
<path fill="none" stroke="#000000" d="M80.8817,-1090.0442C77.4271,-1064.8951 74.2542,-1038.6889 72.348,-1014 54.8736,-787.6681 64.5282,-519.665 68.0596,-386.2452"/>
<polygon fill="#000000" stroke="#000000" points="82.2701,-1099.9973 76.4317,-1090.7149 81.5793,-1095.0453 80.8885,-1090.0932 80.8885,-1090.0932 80.8885,-1090.0932 81.5793,-1095.0453 85.3454,-1089.4715 82.2701,-1099.9973 82.2701,-1099.9973"/>
<polygon fill="#000000" stroke="#000000" points="68.0621,-386.1446 64.2181,-380.0435 68.3714,-374.1486 72.2154,-380.2497 68.0621,-386.1446"/>
<text text-anchor="middle" x="76.3539" y="-389.4865" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local</text>
</g>
<!-- A10&#45;&gt;A4 -->
<g id="edge17" class="edge">
<title>A10&#45;&gt;A4</title>
<path fill="none" stroke="#000000" d="M133.6332,-1099.7656C141.3073,-1075.6649 149.5353,-1049.8249 157.7176,-1024.1284"/>
<polygon fill="#000000" stroke="#000000" points="160.8501,-1014.2909 162.1038,-1025.1848 159.333,-1019.0552 157.8159,-1023.8195 157.8159,-1023.8195 157.8159,-1023.8195 159.333,-1019.0552 153.5281,-1022.4541 160.8501,-1014.2909 160.8501,-1014.2909"/>
<text text-anchor="middle" x="131.0789" y="-1076.9294" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
</g>
<!-- A13 -->
<g id="node14" class="node">
<title>A13</title>
<polygon fill="none" stroke="#000000" points="73.348,-856 73.348,-888 140.348,-888 140.348,-856 73.348,-856"/>
<text text-anchor="start" x="86.0065" y="-869" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InfosG3P</text>
<polygon fill="none" stroke="#000000" points="73.348,-836 73.348,-856 140.348,-856 140.348,-836 73.348,-836"/>
<polygon fill="none" stroke="#000000" points="73.348,-792 73.348,-836 140.348,-836 140.348,-792 73.348,-792"/>
<text text-anchor="start" x="83.232" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_confs()</text>
<text text-anchor="start" x="91.016" y="-805" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">parse()</text>
</g>
<!-- A10&#45;&gt;A13 -->
<g id="edge18" class="edge">
<title>A10&#45;&gt;A13</title>
<path fill="none" stroke="#000000" d="M98.8285,-1099.7656C100.7699,-1032.6997 103.1011,-952.1665 104.6479,-898.7305"/>
<polygon fill="#000000" stroke="#000000" points="104.9465,-888.4166 109.1551,-898.5427 104.8017,-893.4145 104.657,-898.4124 104.657,-898.4124 104.657,-898.4124 104.8017,-893.4145 100.1589,-898.2822 104.9465,-888.4166 104.9465,-888.4166"/>
</g>
<!-- A11 -->
<g id="node12" class="node">
<title>A11</title>
<polygon fill="none" stroke="#000000" points="159.348,-1308 159.348,-1340 262.348,-1340 262.348,-1308 159.348,-1308"/>
<text text-anchor="start" x="200.01" y="-1321" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Infos</text>
<polygon fill="none" stroke="#000000" points="159.348,-1252 159.348,-1308 262.348,-1308 262.348,-1252 159.348,-1252"/>
<text text-anchor="start" x="202.7895" y="-1289" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stat</text>
<text text-anchor="start" x="178.334" y="-1277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">new_stat_data</text>
<text text-anchor="start" x="191.9515" y="-1265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">info_dev</text>
<polygon fill="none" stroke="#000000" points="159.348,-1100 159.348,-1252 262.348,-1252 262.348,-1100 159.348,-1100"/>
<text text-anchor="start" x="186.6835" y="-1233" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">static_init()</text>
<text text-anchor="start" x="184.7325" y="-1221" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dev_value()</text>
<text text-anchor="start" x="181.6785" y="-1209" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter()</text>
<text text-anchor="start" x="180.0085" y="-1197" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dec_counter()</text>
<text text-anchor="start" x="178.058" y="-1185" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_proxy_conf</text>
<text text-anchor="start" x="193.061" y="-1173" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_conf</text>
<text text-anchor="start" x="185.842" y="-1161" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_remove</text>
<text text-anchor="start" x="187.2225" y="-1149" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">update_db</text>
<text text-anchor="start" x="171.385" y="-1137" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">set_db_def_value</text>
<text text-anchor="start" x="180.8335" y="-1125" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">get_db_value</text>
<text text-anchor="start" x="169.1705" y="-1113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ignore_this_device</text>
</g>
<!-- A11&#45;&gt;A12 -->
<g id="edge13" class="edge">
<title>A11&#45;&gt;A12</title>
<path fill="none" stroke="#000000" d="M259.3612,-1090.2414C268.1716,-1065.1077 276.9072,-1038.8566 284.348,-1014 296.9582,-971.8745 308.4598,-923.1578 316.2258,-888.0062"/>
<polygon fill="none" stroke="#000000" points="256.0104,-1089.2193 255.9834,-1099.8141 262.6115,-1091.5486 256.0104,-1089.2193"/>
</g>
<!-- A11&#45;&gt;A13 -->
<g id="edge14" class="edge">
<title>A11&#45;&gt;A13</title>
<path fill="none" stroke="#000000" d="M170.1294,-1090.3375C162.6366,-1065.0902 155.0603,-1038.773 148.348,-1014 136.8889,-971.7079 125.3116,-923.2186 117.2225,-888.1884"/>
<polygon fill="none" stroke="#000000" points="166.7853,-1091.3716 172.995,-1099.9559 173.4939,-1089.3728 166.7853,-1091.3716"/>
</g>
<!-- A14&#45;&gt;A9 -->
<g id="edge20" class="edge">
<title>A14&#45;&gt;A9</title>
<path fill="none" stroke="#000000" d="M207.7336,-1489.2507C227.8317,-1456.1375 252.0435,-1414.492 271.348,-1376 274.3143,-1370.0855 277.269,-1364.0055 280.1912,-1357.8349"/>
<polygon fill="none" stroke="#000000" points="204.6683,-1487.555 202.4506,-1497.9151 210.6449,-1491.1992 204.6683,-1487.555"/>
</g>
<!-- A14&#45;&gt;A10 -->
<g id="edge21" class="edge">
<title>A14&#45;&gt;A10</title>
<path fill="none" stroke="#000000" d="M154.3052,-1488.1339C145.0994,-1446.2665 132.7762,-1390.2214 121.7769,-1340.197"/>
<polygon fill="none" stroke="#000000" points="150.8909,-1488.9045 156.4568,-1497.9196 157.7276,-1487.4012 150.8909,-1488.9045"/>
</g>
<!-- A15 -->
<g id="node16" class="node">
<title>A15</title>
<polygon fill="none" stroke="#000000" points="263.348,-1646 263.348,-1678 338.348,-1678 338.348,-1646 263.348,-1646"/>
<text text-anchor="start" x="283.0655" y="-1659" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Modbus</text>
<polygon fill="none" stroke="#000000" points="263.348,-1494 263.348,-1646 338.348,-1646 338.348,-1494 263.348,-1494"/>
<text text-anchor="start" x="292.5095" y="-1627" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">que</text>
<text text-anchor="start" x="273.338" y="-1603" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snd_handler</text>
<text text-anchor="start" x="274.453" y="-1591" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rsp_handler</text>
<text text-anchor="start" x="284.4565" y="-1579" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout</text>
<text text-anchor="start" x="274.7375" y="-1567" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">max_retires</text>
<text text-anchor="start" x="282.79" y="-1555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">last_xxx</text>
<text text-anchor="start" x="294.7395" y="-1543" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">err</text>
<text text-anchor="start" x="281.4015" y="-1531" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">retry_cnt</text>
<text text-anchor="start" x="279.727" y="-1519" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">req_pend</text>
<text text-anchor="start" x="294.1845" y="-1507" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tim</text>
<polygon fill="none" stroke="#000000" points="263.348,-1426 263.348,-1494 338.348,-1494 338.348,-1426 263.348,-1426"/>
<text text-anchor="start" x="274.738" y="-1475" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">build_msg()</text>
<text text-anchor="start" x="278.072" y="-1463" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_req()</text>
<text text-anchor="start" x="275.572" y="-1451" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_resp()</text>
<text text-anchor="start" x="285.8505" y="-1439" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
</g>
<!-- A15&#45;&gt;A9 -->
<g id="edge23" class="edge">
<title>A15&#45;&gt;A9</title>
<path fill="none" stroke="#000000" d="M315.5861,-1415.2689C317.0212,-1402.3918 318.4833,-1389.272 319.9365,-1376.2329"/>
<polygon fill="#000000" stroke="#000000" points="314.4417,-1425.5379 311.077,-1415.101 314.9955,-1420.5687 315.5493,-1415.5995 315.5493,-1415.5995 315.5493,-1415.5995 314.9955,-1420.5687 320.0217,-1416.0979 314.4417,-1425.5379 314.4417,-1425.5379"/>
<text text-anchor="middle" x="326.3292" y="-1392.1837" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
<text text-anchor="middle" x="308.049" y="-1403.5871" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
</g>
<!-- A15&#45;&gt;A10 -->
<g id="edge22" class="edge">
<title>A15&#45;&gt;A10</title>
<path fill="none" stroke="#000000" d="M257.1725,-1475.7757C245.6828,-1458.4941 232.4915,-1440.871 218.348,-1426 192.2483,-1398.5578 171.9188,-1406.411 149.348,-1376 141.2346,-1365.0684 134.273,-1352.8227 128.315,-1340.1269"/>
<polygon fill="#000000" stroke="#000000" points="262.6729,-1484.2184 253.4437,-1478.2962 259.9435,-1480.0291 257.2141,-1475.8397 257.2141,-1475.8397 257.2141,-1475.8397 259.9435,-1480.0291 260.9845,-1473.3833 262.6729,-1484.2184 262.6729,-1484.2184"/>
<text text-anchor="middle" x="143.7688" y="-1349.8225" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
<text text-anchor="middle" x="245.6964" y="-1470.645" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
</g>
</g>
</svg>