Compare commits
16 Commits
s-allius/i
...
s-allius/i
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57d0f25d4c | ||
|
|
bd2a526781 | ||
|
|
970b611d47 | ||
|
|
38fe5f7e49 | ||
|
|
1ec97a3e9c | ||
|
|
2707582a45 | ||
|
|
bcec8dd843 | ||
|
|
1b5af7fa97 | ||
|
|
2731c68675 | ||
|
|
a8f8eca06c | ||
|
|
f9eb4ad8d7 | ||
|
|
0e65e90c25 | ||
|
|
18b2a2bfb2 | ||
|
|
d1da8a85d3 | ||
|
|
433faecbb5 | ||
|
|
632498c384 |
@@ -6,4 +6,9 @@ PRIVAT_CONTAINER_REGISTRY=docker.io/<user>/
|
|||||||
|
|
||||||
# registry for official container (preview, rc, rel)
|
# registry for official container (preview, rc, rel)
|
||||||
PUBLIC_CONTAINER_REGISTRY=ghcr.io/<user>/
|
PUBLIC_CONTAINER_REGISTRY=ghcr.io/<user>/
|
||||||
PUBLIC_CR_KEY=
|
PUBLIC_CR_KEY=
|
||||||
|
|
||||||
|
# define serial number of GEN3PLUS devices for systemtests
|
||||||
|
# the serialnumber are coded as 4-byte hex-strings
|
||||||
|
SOLARMAN_INV_SNR='00000000'
|
||||||
|
SOLARMAN_DCU_SNR='00000000'
|
||||||
2
.github/workflows/python-app.yml
vendored
2
.github/workflows/python-app.yml
vendored
@@ -49,7 +49,7 @@ jobs:
|
|||||||
- name: Lint with flake8
|
- name: Lint with flake8
|
||||||
run: |
|
run: |
|
||||||
# stop the build if there are Python syntax errors or undefined names
|
# stop the build if there are Python syntax errors or undefined names
|
||||||
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
flake8 . --count --select=E9,F63,F7,F82 --ignore=F821 --show-source --statistics
|
||||||
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||||||
flake8 --exit-zero --ignore=C901,E121,E123,E126,E133,E226,E241,E242,E704,W503,W504,W505 --format=pylint --output-file=output_flake.txt --exclude=*.pyc app/src/
|
flake8 --exit-zero --ignore=C901,E121,E123,E126,E133,E226,E241,E242,E704,W503,W504,W505 --format=pylint --output-file=output_flake.txt --exclude=*.pyc app/src/
|
||||||
- name: Test with pytest
|
- name: Test with pytest
|
||||||
|
|||||||
6
Makefile
6
Makefile
@@ -1,4 +1,4 @@
|
|||||||
.PHONY: build clean addon-dev addon-debug addon-rc addon-rel debug dev preview rc rel
|
.PHONY: build clean addon-dev addon-debug addon-rc addon-rel debug dev preview rc rel check-docker-compose install
|
||||||
|
|
||||||
debug dev preview rc rel:
|
debug dev preview rc rel:
|
||||||
$(MAKE) -C app $@
|
$(MAKE) -C app $@
|
||||||
@@ -12,3 +12,7 @@ addon-dev addon-debug addon-rc addon-rel:
|
|||||||
check-docker-compose:
|
check-docker-compose:
|
||||||
docker-compose config -q
|
docker-compose config -q
|
||||||
|
|
||||||
|
install:
|
||||||
|
python3 -m pip install --upgrade pip
|
||||||
|
python3 -m pip install -r requirements.txt
|
||||||
|
python3 -m pip install -r requirements-test.txt
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://opensource.org/licenses/BSD-3-Clause"><img alt="License: BSD-3-Clause" src="https://img.shields.io/badge/License-BSD_3--Clause-green.svg"></a>
|
<a href="https://opensource.org/licenses/BSD-3-Clause"><img alt="License: BSD-3-Clause" src="https://img.shields.io/badge/License-BSD_3--Clause-green.svg"></a>
|
||||||
<a href="https://www.python.org/downloads/release/python-3130/"><img alt="Supported Python versions" src="https://img.shields.io/badge/python-3.13-blue.svg"></a>
|
<a href="https://www.python.org/downloads/release/python-3130/"><img alt="Supported Python versions" src="https://img.shields.io/badge/python-3.13-blue.svg"></a>
|
||||||
<a href="https://sbtinstruments.github.io/aiomqtt/introduction.html"><img alt="Supported aiomqtt versions" src="https://img.shields.io/badge/aiomqtt-2.3.0-lightblue.svg"></a>
|
<a href="https://aiomqtt.bo3hm.com/introduction.html"><img alt="Supported aiomqtt versions" src="https://img.shields.io/badge/aiomqtt-2.3.1-lightblue.svg"></a>
|
||||||
<a href="https://libraries.io/pypi/aiocron"><img alt="Supported aiocron versions" src="https://img.shields.io/badge/aiocron-1.8-lightblue.svg"></a>
|
<a href="https://libraries.io/pypi/aiocron"><img alt="Supported aiocron versions" src="https://img.shields.io/badge/aiocron-1.8-lightblue.svg"></a>
|
||||||
<a href="https://toml.io/en/v1.0.0"><img alt="Supported toml versions" src="https://img.shields.io/badge/toml-1.0.0-lightblue.svg"></a>
|
<a href="https://toml.io/en/v1.0.0"><img alt="Supported toml versions" src="https://img.shields.io/badge/toml-1.0.0-lightblue.svg"></a>
|
||||||
<br>
|
<br>
|
||||||
@@ -430,15 +430,15 @@ A combination with a red question mark should work, but I have not checked it in
|
|||||||
<tr><td>GEN3 micro inverters (quad MPPT):<br>MS3000</td><td align="center">✔️</td><td align="center">✔️</td><td align="center">✔️</td><td align="center">➖</td><td align="center">➖</td></tr>
|
<tr><td>GEN3 micro inverters (quad MPPT):<br>MS3000</td><td align="center">✔️</td><td align="center">✔️</td><td align="center">✔️</td><td align="center">➖</td><td align="center">➖</td></tr>
|
||||||
<tr><td>GEN3 PLUS micro inverters:<br>MS1600, MS1800, MS2000<br>MS2000-D, MS800</td><td align="center">➖</td><td align="center">➖</td><td align="center">➖</td><td align="center">✔️</td><td align="center">✔️</td></tr>
|
<tr><td>GEN3 PLUS micro inverters:<br>MS1600, MS1800, MS2000<br>MS2000-D, MS800</td><td align="center">➖</td><td align="center">➖</td><td align="center">➖</td><td align="center">✔️</td><td align="center">✔️</td></tr>
|
||||||
<tr><td>GEN3 PLUS storage systems:<br>DC1000</td><td align="center">➖</td><td align="center">➖</td><td align="center">➖</td><td align="center">✔️</td><td align="center">✔️</td></tr>
|
<tr><td>GEN3 PLUS storage systems:<br>DC1000</td><td align="center">➖</td><td align="center">➖</td><td align="center">➖</td><td align="center">✔️</td><td align="center">✔️</td></tr>
|
||||||
<tr><td>GEN3 PLUS smart meter:<br>TSOL-MG3-MS</td><td align="center">➖</td><td align="center">➖</td><td align="center">➖</td><td align="center">❓</td><td align="center">❓</td></tr>
|
<tr><td>GEN3 PLUS smart meter:<br>TSOL-MG3-MS, DDZY422-D2</td><td align="center">➖</td><td align="center">➖</td><td align="center">➖</td><td align="center">❓</td><td align="center">❓</td></tr>
|
||||||
</<tr><td>TITAN micro inverters:<br>TSOL-MP3000, MP2250</td><td align="center">❓</td><td align="center">❓</td><td align="center">❓</td><td align="center">❓</td><td align="center">❓</td></tr>
|
</<tr><td>TITAN micro inverters:<br>TSOL-MP3000, MP2250</td><td align="center">❓</td><td align="center">❓</td><td align="center">❓</td><td align="center">❓</td><td align="center">❓</td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
```txt
|
```txt
|
||||||
Legend
|
Legend
|
||||||
➖: Firmware not available for this devices
|
➖: Firmware not available for this devices
|
||||||
✔️: proxy support testet
|
✔️: Proxy support testet
|
||||||
❓: proxy support possible but not testet
|
❓: Proxy support unknown. There is an open port, but all known protocols do not work.
|
||||||
🚧: Proxy support in preparation
|
🚧: Proxy support in preparation
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -4,257 +4,260 @@
|
|||||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||||
-->
|
-->
|
||||||
<!-- Title: G Pages: 1 -->
|
<!-- Title: G Pages: 1 -->
|
||||||
<svg width="626pt" height="966pt"
|
<svg width="634pt" height="966pt"
|
||||||
viewBox="0.00 0.00 625.50 966.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
viewBox="0.00 0.00 634.00 966.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 962)">
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 962)">
|
||||||
<title>G</title>
|
<title>G</title>
|
||||||
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-962 621.5,-962 621.5,4 -4,4"/>
|
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-962 630,-962 630,4 -4,4"/>
|
||||||
<!-- A0 -->
|
<!-- A0 -->
|
||||||
<g id="node1" class="node">
|
<g id="node1" class="node">
|
||||||
<title>A0</title>
|
<title>A0</title>
|
||||||
<polygon fill="#fff8dc" stroke="#000000" points="191.6964,-934 83.3036,-934 83.3036,-898 197.6964,-898 197.6964,-928 191.6964,-934"/>
|
<polygon fill="#fff8dc" stroke="#000000" points="200.1964,-934 91.8036,-934 91.8036,-898 206.1964,-898 206.1964,-928 200.1964,-934"/>
|
||||||
<polyline fill="none" stroke="#000000" points="191.6964,-934 191.6964,-928 "/>
|
<polyline fill="none" stroke="#000000" points="200.1964,-934 200.1964,-928 "/>
|
||||||
<polyline fill="none" stroke="#000000" points="197.6964,-928 191.6964,-928 "/>
|
<polyline fill="none" stroke="#000000" points="206.1964,-928 200.1964,-928 "/>
|
||||||
<text text-anchor="middle" x="140.5" y="-919" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">You can stick notes</text>
|
<text text-anchor="middle" x="149" y="-919" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">You can stick notes</text>
|
||||||
<text text-anchor="middle" x="140.5" y="-907" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">on diagrams too!</text>
|
<text text-anchor="middle" x="149" y="-907" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">on diagrams too!</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A1 -->
|
<!-- A1 -->
|
||||||
<g id="node2" class="node">
|
<g id="node2" class="node">
|
||||||
<title>A1</title>
|
<title>A1</title>
|
||||||
<polygon fill="none" stroke="#000000" points="215.5,-926 215.5,-958 331.5,-958 331.5,-926 215.5,-926"/>
|
<polygon fill="none" stroke="#000000" points="224,-926 224,-958 340,-958 340,-926 224,-926"/>
|
||||||
<text text-anchor="start" x="225.149" y="-939" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<AbstractIterMeta>></text>
|
<text text-anchor="start" x="233.649" y="-939" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<AbstractIterMeta>></text>
|
||||||
<polygon fill="none" stroke="#000000" points="215.5,-906 215.5,-926 331.5,-926 331.5,-906 215.5,-906"/>
|
<polygon fill="none" stroke="#000000" points="224,-906 224,-926 340,-926 340,-906 224,-906"/>
|
||||||
<polygon fill="none" stroke="#000000" points="215.5,-874 215.5,-906 331.5,-906 331.5,-874 215.5,-874"/>
|
<polygon fill="none" stroke="#000000" points="224,-874 224,-906 340,-906 340,-874 224,-874"/>
|
||||||
<text text-anchor="start" x="252.11" y="-887" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__iter__()</text>
|
<text text-anchor="start" x="260.61" y="-887" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__iter__()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A4 -->
|
<!-- A4 -->
|
||||||
<g id="node5" class="node">
|
<g id="node5" class="node">
|
||||||
<title>A4</title>
|
<title>A4</title>
|
||||||
<polygon fill="none" stroke="#000000" points="178.5,-726 178.5,-758 369.5,-758 369.5,-726 178.5,-726"/>
|
<polygon fill="none" stroke="#000000" points="187,-726 187,-758 378,-758 378,-726 187,-726"/>
|
||||||
<text text-anchor="start" x="240.0965" y="-739" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<InverterIfc>></text>
|
<text text-anchor="start" x="248.5965" y="-739" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<InverterIfc>></text>
|
||||||
<polygon fill="none" stroke="#000000" points="178.5,-706 178.5,-726 369.5,-726 369.5,-706 178.5,-706"/>
|
<polygon fill="none" stroke="#000000" points="187,-706 187,-726 378,-726 378,-706 187,-706"/>
|
||||||
<polygon fill="none" stroke="#000000" points="178.5,-650 178.5,-706 369.5,-706 369.5,-650 178.5,-650"/>
|
<polygon fill="none" stroke="#000000" points="187,-650 187,-706 378,-706 378,-650 187,-650"/>
|
||||||
<text text-anchor="start" x="240.522" y="-687" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()->bool</text>
|
<text text-anchor="start" x="249.022" y="-687" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()->bool</text>
|
||||||
<text text-anchor="start" x="188.2835" y="-675" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>disc(shutdown_started=False)</text>
|
<text text-anchor="start" x="196.7835" y="-675" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>disc(shutdown_started=False)</text>
|
||||||
<text text-anchor="start" x="219.544" y="-663" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>create_remote()</text>
|
<text text-anchor="start" x="228.044" y="-663" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>create_remote()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A1->A4 -->
|
<!-- A1->A4 -->
|
||||||
<g id="edge1" class="edge">
|
<g id="edge1" class="edge">
|
||||||
<title>A1->A4</title>
|
<title>A1->A4</title>
|
||||||
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M273.5,-863.7744C273.5,-831.6663 273.5,-790.6041 273.5,-758.1476"/>
|
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M282,-863.7744C282,-831.6663 282,-790.6041 282,-758.1476"/>
|
||||||
<polygon fill="none" stroke="#000000" points="270.0001,-863.8621 273.5,-873.8622 277.0001,-863.8622 270.0001,-863.8621"/>
|
<polygon fill="none" stroke="#000000" points="278.5001,-863.8621 282,-873.8622 285.5001,-863.8622 278.5001,-863.8621"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A2 -->
|
<!-- A2 -->
|
||||||
<g id="node3" class="node">
|
<g id="node3" class="node">
|
||||||
<title>A2</title>
|
<title>A2</title>
|
||||||
<polygon fill="none" stroke="#000000" points="441.5,-454 441.5,-498 563.5,-498 563.5,-454 441.5,-454"/>
|
<polygon fill="none" stroke="#000000" points="450,-454 450,-498 572,-498 572,-454 450,-454"/>
|
||||||
<text text-anchor="start" x="492.777" y="-479" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Mqtt</text>
|
<text text-anchor="start" x="501.277" y="-479" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Mqtt</text>
|
||||||
<text text-anchor="start" x="469.9815" y="-467" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<Singleton>></text>
|
<text text-anchor="start" x="478.4815" y="-467" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<Singleton>></text>
|
||||||
<polygon fill="none" stroke="#000000" points="441.5,-398 441.5,-454 563.5,-454 563.5,-398 441.5,-398"/>
|
<polygon fill="none" stroke="#000000" points="450,-398 450,-454 572,-454 572,-398 450,-398"/>
|
||||||
<text text-anchor="start" x="459.9875" y="-435" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><static>ha_restarts</text>
|
<text text-anchor="start" x="468.4875" y="-435" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><static>ha_restarts</text>
|
||||||
<text text-anchor="start" x="467.7665" y="-423" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><static>__client</text>
|
<text text-anchor="start" x="476.2665" y="-423" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><static>__client</text>
|
||||||
<text text-anchor="start" x="451.3735" y="-411" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><static>__cb_MqttIsUp</text>
|
<text text-anchor="start" x="459.8735" y="-411" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><static>__cb_MqttIsUp</text>
|
||||||
<polygon fill="none" stroke="#000000" points="441.5,-354 441.5,-398 563.5,-398 563.5,-354 441.5,-354"/>
|
<polygon fill="none" stroke="#000000" points="450,-354 450,-398 572,-398 572,-354 450,-354"/>
|
||||||
<text text-anchor="start" x="464.436" y="-379" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>publish()</text>
|
<text text-anchor="start" x="472.936" y="-379" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>publish()</text>
|
||||||
<text text-anchor="start" x="468.6045" y="-367" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>close()</text>
|
<text text-anchor="start" x="477.1045" y="-367" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>close()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A3 -->
|
<!-- A3 -->
|
||||||
<g id="node4" class="node">
|
<g id="node4" class="node">
|
||||||
<title>A3</title>
|
<title>A3</title>
|
||||||
<polygon fill="none" stroke="#000000" points="387.5,-792 387.5,-824 617.5,-824 617.5,-792 387.5,-792"/>
|
<polygon fill="none" stroke="#000000" points="396,-792 396,-824 626,-824 626,-792 396,-792"/>
|
||||||
<text text-anchor="start" x="489.7215" y="-805" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Proxy</text>
|
<text text-anchor="start" x="498.2215" y="-805" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Proxy</text>
|
||||||
<polygon fill="none" stroke="#000000" points="387.5,-676 387.5,-792 617.5,-792 617.5,-676 387.5,-676"/>
|
<polygon fill="none" stroke="#000000" points="396,-676 396,-792 626,-792 626,-676 396,-676"/>
|
||||||
<text text-anchor="start" x="474.1545" y="-773" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>db_stat</text>
|
<text text-anchor="start" x="482.6545" y="-773" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>db_stat</text>
|
||||||
<text text-anchor="start" x="467.491" y="-761" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>entity_prfx</text>
|
<text text-anchor="start" x="475.991" y="-761" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>entity_prfx</text>
|
||||||
<text text-anchor="start" x="458.326" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>discovery_prfx</text>
|
<text text-anchor="start" x="466.826" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>discovery_prfx</text>
|
||||||
<text text-anchor="start" x="457.762" y="-737" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>proxy_node_id</text>
|
<text text-anchor="start" x="466.262" y="-737" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>proxy_node_id</text>
|
||||||
<text text-anchor="start" x="453.873" y="-725" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>proxy_unique_id</text>
|
<text text-anchor="start" x="462.373" y="-725" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>proxy_unique_id</text>
|
||||||
<text text-anchor="start" x="469.716" y="-713" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>mqtt:Mqtt</text>
|
<text text-anchor="start" x="478.216" y="-713" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><cls>mqtt:Mqtt</text>
|
||||||
<text text-anchor="start" x="471.9355" y="-689" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__ha_restarts</text>
|
<text text-anchor="start" x="480.4355" y="-689" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__ha_restarts</text>
|
||||||
<polygon fill="none" stroke="#000000" points="387.5,-584 387.5,-676 617.5,-676 617.5,-584 387.5,-584"/>
|
<polygon fill="none" stroke="#000000" points="396,-584 396,-676 626,-676 626,-584 396,-584"/>
|
||||||
<text text-anchor="start" x="478.6145" y="-657" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">class_init()</text>
|
<text text-anchor="start" x="487.1145" y="-657" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">class_init()</text>
|
||||||
<text text-anchor="start" x="473.334" y="-645" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">class_close()</text>
|
<text text-anchor="start" x="481.834" y="-645" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">class_close()</text>
|
||||||
<text text-anchor="start" x="444.984" y="-621" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>_cb_mqtt_is_up()</text>
|
<text text-anchor="start" x="453.484" y="-621" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>_cb_mqtt_is_up()</text>
|
||||||
<text text-anchor="start" x="397.197" y="-609" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>_register_proxy_stat_home_assistant()</text>
|
<text text-anchor="start" x="405.697" y="-609" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>_register_proxy_stat_home_assistant()</text>
|
||||||
<text text-anchor="start" x="406.084" y="-597" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>_async_publ_mqtt_proxy_stat(key)</text>
|
<text text-anchor="start" x="414.584" y="-597" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>_async_publ_mqtt_proxy_stat(key)</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A3->A2 -->
|
<!-- A3->A2 -->
|
||||||
<g id="edge9" class="edge">
|
<g id="edge9" class="edge">
|
||||||
<title>A3->A2</title>
|
<title>A3->A2</title>
|
||||||
<path fill="none" stroke="#000000" d="M502.5,-571.373C502.5,-549.9571 502.5,-528.339 502.5,-508.5579"/>
|
<path fill="none" stroke="#000000" d="M511,-571.373C511,-549.9571 511,-528.339 511,-508.5579"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="502.5001,-571.682 506.5,-577.6821 502.5,-583.682 498.5,-577.682 502.5001,-571.682"/>
|
<polygon fill="#000000" stroke="#000000" points="511.0001,-571.682 515,-577.6821 511,-583.682 507,-577.682 511.0001,-571.682"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="502.5,-498.392 507.0001,-508.3919 502.5,-503.392 502.5001,-508.392 502.5001,-508.392 502.5001,-508.392 502.5,-503.392 498.0001,-508.392 502.5,-498.392 502.5,-498.392"/>
|
<polygon fill="#000000" stroke="#000000" points="511,-498.392 515.5001,-508.3919 511,-503.392 511.0001,-508.392 511.0001,-508.392 511.0001,-508.392 511,-503.392 506.5001,-508.392 511,-498.392 511,-498.392"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A5 -->
|
<!-- A5 -->
|
||||||
<g id="node6" class="node">
|
<g id="node6" class="node">
|
||||||
<title>A5</title>
|
<title>A5</title>
|
||||||
<polygon fill="none" stroke="#000000" points="205.5,-502 205.5,-534 396.5,-534 396.5,-502 205.5,-502"/>
|
<polygon fill="none" stroke="#000000" points="214,-502 214,-534 405,-534 405,-502 214,-502"/>
|
||||||
<text text-anchor="start" x="272.66" y="-515" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterBase</text>
|
<text text-anchor="start" x="281.16" y="-515" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterBase</text>
|
||||||
<polygon fill="none" stroke="#000000" points="205.5,-386 205.5,-502 396.5,-502 396.5,-386 205.5,-386"/>
|
<polygon fill="none" stroke="#000000" points="214,-386 214,-502 405,-502 405,-386 214,-386"/>
|
||||||
<text text-anchor="start" x="281.8335" y="-483" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_registry</text>
|
<text text-anchor="start" x="290.3335" y="-483" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_registry</text>
|
||||||
<text text-anchor="start" x="270.4355" y="-471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__ha_restarts</text>
|
<text text-anchor="start" x="278.9355" y="-471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__ha_restarts</text>
|
||||||
<text text-anchor="start" x="290.997" y="-447" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
|
<text text-anchor="start" x="299.497" y="-447" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
|
||||||
<text text-anchor="start" x="274.0505" y="-435" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">config_id:str</text>
|
<text text-anchor="start" x="282.5505" y="-435" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">config_id:str</text>
|
||||||
<text text-anchor="start" x="247.3785" y="-423" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">prot_class:MessageProt</text>
|
<text text-anchor="start" x="255.8785" y="-423" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">prot_class:MessageProt</text>
|
||||||
<text text-anchor="start" x="261.553" y="-411" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote:StreamPtr</text>
|
<text text-anchor="start" x="270.053" y="-411" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote:StreamPtr</text>
|
||||||
<text text-anchor="start" x="266.832" y="-399" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local:StreamPtr</text>
|
<text text-anchor="start" x="275.332" y="-399" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local:StreamPtr</text>
|
||||||
<polygon fill="none" stroke="#000000" points="205.5,-318 205.5,-386 396.5,-386 396.5,-318 205.5,-318"/>
|
<polygon fill="none" stroke="#000000" points="214,-318 214,-386 405,-386 405,-318 214,-318"/>
|
||||||
<text text-anchor="start" x="267.522" y="-367" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()->bool</text>
|
<text text-anchor="start" x="276.022" y="-367" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()->bool</text>
|
||||||
<text text-anchor="start" x="215.2835" y="-355" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>disc(shutdown_started=False)</text>
|
<text text-anchor="start" x="223.7835" y="-355" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>disc(shutdown_started=False)</text>
|
||||||
<text text-anchor="start" x="246.544" y="-343" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>create_remote()</text>
|
<text text-anchor="start" x="255.044" y="-343" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>create_remote()</text>
|
||||||
<text text-anchor="start" x="240.984" y="-331" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>async_publ_mqtt()</text>
|
<text text-anchor="start" x="249.484" y="-331" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>async_publ_mqtt()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A3->A5 -->
|
<!-- A3->A5 -->
|
||||||
<g id="edge7" class="edge">
|
<g id="edge7" class="edge">
|
||||||
<title>A3->A5</title>
|
<title>A3->A5</title>
|
||||||
<path fill="none" stroke="#000000" d="M409.1791,-575.5683C399.1409,-561.7533 389.0008,-547.7982 379.1588,-534.2532"/>
|
<path fill="none" stroke="#000000" d="M417.6791,-575.5683C407.6409,-561.7533 397.5008,-547.7982 387.6588,-534.2532"/>
|
||||||
<polygon fill="none" stroke="#000000" points="406.3649,-577.6495 415.0747,-583.682 412.0279,-573.5347 406.3649,-577.6495"/>
|
<polygon fill="none" stroke="#000000" points="414.8649,-577.6495 423.5747,-583.682 420.5279,-573.5347 414.8649,-577.6495"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A4->A5 -->
|
<!-- A4->A5 -->
|
||||||
<g id="edge2" class="edge">
|
<g id="edge2" class="edge">
|
||||||
<title>A4->A5</title>
|
<title>A4->A5</title>
|
||||||
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M279.7719,-639.4228C282.8086,-608.1559 286.5373,-569.7639 289.991,-534.2034"/>
|
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M288.2719,-639.4228C291.3086,-608.1559 295.0373,-569.7639 298.491,-534.2034"/>
|
||||||
<polygon fill="none" stroke="#000000" points="276.2531,-639.4473 278.77,-649.7389 283.2203,-640.1241 276.2531,-639.4473"/>
|
<polygon fill="none" stroke="#000000" points="284.7531,-639.4473 287.27,-649.7389 291.7203,-640.1241 284.7531,-639.4473"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A6 -->
|
<!-- A6 -->
|
||||||
<g id="node7" class="node">
|
<g id="node7" class="node">
|
||||||
<title>A6</title>
|
<title>A6</title>
|
||||||
<polygon fill="none" stroke="#000000" points="356.5,-236 356.5,-268 456.5,-268 456.5,-236 356.5,-236"/>
|
<polygon fill="none" stroke="#000000" points="365,-236 365,-268 465,-268 465,-236 365,-236"/>
|
||||||
<text text-anchor="start" x="383.9995" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">StreamPtr</text>
|
<text text-anchor="start" x="392.4995" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">StreamPtr</text>
|
||||||
<polygon fill="none" stroke="#000000" points="356.5,-216 356.5,-236 456.5,-236 456.5,-216 356.5,-216"/>
|
<polygon fill="none" stroke="#000000" points="365,-216 365,-236 465,-236 465,-216 365,-216"/>
|
||||||
<polygon fill="none" stroke="#000000" points="356.5,-172 356.5,-216 456.5,-216 456.5,-172 356.5,-172"/>
|
<polygon fill="none" stroke="#000000" points="365,-172 365,-216 465,-216 465,-172 365,-172"/>
|
||||||
<text text-anchor="start" x="366.2175" y="-197" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stream:ProtocolIfc</text>
|
<text text-anchor="start" x="374.7175" y="-197" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stream:ProtocolIfc</text>
|
||||||
<text text-anchor="start" x="381.2185" y="-185" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ifc:AsyncIfc</text>
|
<text text-anchor="start" x="389.7185" y="-185" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ifc:AsyncIfc</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A5->A6 -->
|
<!-- A5->A6 -->
|
||||||
<g id="edge8" class="edge">
|
<g id="edge8" class="edge">
|
||||||
<title>A5->A6</title>
|
<title>A5->A6</title>
|
||||||
<path fill="none" stroke="#000000" d="M356.1387,-317.872C363.3786,-303.802 370.5526,-289.86 377.1187,-277.0995"/>
|
<path fill="none" stroke="#000000" d="M364.6387,-317.872C371.8786,-303.802 379.0526,-289.86 385.6187,-277.0995"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="381.7846,-268.0318 381.2105,-278.9826 379.4969,-272.4777 377.2091,-276.9237 377.2091,-276.9237 377.2091,-276.9237 379.4969,-272.4777 373.2078,-274.8647 381.7846,-268.0318 381.7846,-268.0318"/>
|
<polygon fill="#000000" stroke="#000000" points="390.2846,-268.0318 389.7105,-278.9826 387.9969,-272.4777 385.7091,-276.9237 385.7091,-276.9237 385.7091,-276.9237 387.9969,-272.4777 381.7078,-274.8647 390.2846,-268.0318 390.2846,-268.0318"/>
|
||||||
<text text-anchor="middle" x="381.0069" y="-285.0166" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">2</text>
|
<text text-anchor="middle" x="389.5069" y="-285.0166" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">2</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A7 -->
|
<!-- A7 -->
|
||||||
<g id="node8" class="node">
|
<g id="node8" class="node">
|
||||||
<title>A7</title>
|
<title>A7</title>
|
||||||
<polygon fill="none" stroke="#000000" points="338.2314,-238 262.7686,-238 262.7686,-202 338.2314,-202 338.2314,-238"/>
|
<polygon fill="none" stroke="#000000" points="346.7314,-238 271.2686,-238 271.2686,-202 346.7314,-202 346.7314,-238"/>
|
||||||
<text text-anchor="middle" x="300.5" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterG3</text>
|
<text text-anchor="middle" x="309" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterG3</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A5->A7 -->
|
<!-- A5->A7 -->
|
||||||
<g id="edge5" class="edge">
|
<g id="edge5" class="edge">
|
||||||
<title>A5->A7</title>
|
<title>A5->A7</title>
|
||||||
<path fill="none" stroke="#000000" d="M300.5,-307.7729C300.5,-280.5002 300.5,-254.684 300.5,-238.2013"/>
|
<path fill="none" stroke="#000000" d="M309,-307.7729C309,-280.5002 309,-254.684 309,-238.2013"/>
|
||||||
<polygon fill="none" stroke="#000000" points="297.0001,-307.872 300.5,-317.872 304.0001,-307.872 297.0001,-307.872"/>
|
<polygon fill="none" stroke="#000000" points="305.5001,-307.872 309,-317.872 312.5001,-307.872 305.5001,-307.872"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A9 -->
|
<!-- A9 -->
|
||||||
<g id="node10" class="node">
|
<g id="node10" class="node">
|
||||||
<title>A9</title>
|
<title>A9</title>
|
||||||
<polygon fill="none" stroke="#000000" points="94.4001,-238 12.5999,-238 12.5999,-202 94.4001,-202 94.4001,-238"/>
|
<polygon fill="none" stroke="#000000" points="102.9001,-238 21.0999,-238 21.0999,-202 102.9001,-202 102.9001,-238"/>
|
||||||
<text text-anchor="middle" x="53.5" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterG3P</text>
|
<text text-anchor="middle" x="62" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterG3P</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A5->A9 -->
|
<!-- A5->A9 -->
|
||||||
<g id="edge6" class="edge">
|
<g id="edge6" class="edge">
|
||||||
<title>A5->A9</title>
|
<title>A5->A9</title>
|
||||||
<path fill="none" stroke="#000000" d="M196.7667,-346.4637C165.8973,-321.9347 132.3582,-294.4156 102.5,-268 91.7971,-258.5312 80.3616,-247.3925 71.232,-238.23"/>
|
<path fill="none" stroke="#000000" d="M205.2667,-346.4637C174.3973,-321.9347 140.8582,-294.4156 111,-268 100.2971,-258.5312 88.8616,-247.3925 79.732,-238.23"/>
|
||||||
<polygon fill="none" stroke="#000000" points="194.962,-349.4991 204.9739,-352.965 199.3086,-344.0121 194.962,-349.4991"/>
|
<polygon fill="none" stroke="#000000" points="203.462,-349.4991 213.4739,-352.965 207.8086,-344.0121 203.462,-349.4991"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A11 -->
|
<!-- A11 -->
|
||||||
<g id="node12" class="node">
|
<g id="node12" class="node">
|
||||||
<title>A11</title>
|
<title>A11</title>
|
||||||
<polygon fill="none" stroke="#000000" points="450.1421,-36 360.8579,-36 360.8579,0 450.1421,0 450.1421,-36"/>
|
<polygon fill="none" stroke="#000000" points="458.6421,-36 369.3579,-36 369.3579,0 458.6421,0 458.6421,-36"/>
|
||||||
<text text-anchor="middle" x="405.5" y="-15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<AsyncIfc>></text>
|
<text text-anchor="middle" x="414" y="-15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<AsyncIfc>></text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A6->A11 -->
|
<!-- A6->A11 -->
|
||||||
<g id="edge11" class="edge">
|
<g id="edge11" class="edge">
|
||||||
<title>A6->A11</title>
|
<title>A6->A11</title>
|
||||||
<path fill="none" stroke="#000000" d="M392.6633,-171.974C386.9982,-146.4565 382.5868,-114.547 386.5,-86 388.3468,-72.5276 392.161,-57.9618 395.8907,-45.7804"/>
|
<path fill="none" stroke="#000000" d="M401.1633,-171.974C395.4982,-146.4565 391.0868,-114.547 395,-86 396.8468,-72.5276 400.661,-57.9618 404.3907,-45.7804"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="398.9587,-36.1851 400.1994,-47.0805 397.4359,-40.9476 395.9131,-45.71 395.9131,-45.71 395.9131,-45.71 397.4359,-40.9476 391.6269,-44.3395 398.9587,-36.1851 398.9587,-36.1851"/>
|
<polygon fill="#000000" stroke="#000000" points="407.4587,-36.1851 408.6994,-47.0805 405.9359,-40.9476 404.4131,-45.71 404.4131,-45.71 404.4131,-45.71 405.9359,-40.9476 400.1269,-44.3395 407.4587,-36.1851 407.4587,-36.1851"/>
|
||||||
<text text-anchor="middle" x="401.4892" y="-53.0243" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
|
<text text-anchor="middle" x="409.9892" y="-53.0243" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A12 -->
|
<!-- A12 -->
|
||||||
<g id="node13" class="node">
|
<g id="node13" class="node">
|
||||||
<title>A12</title>
|
<title>A12</title>
|
||||||
<polygon fill="none" stroke="#000000" points="493.5879,-122 395.4121,-122 395.4121,-86 493.5879,-86 493.5879,-122"/>
|
<polygon fill="none" stroke="#000000" points="502.0879,-122 403.9121,-122 403.9121,-86 502.0879,-86 502.0879,-122"/>
|
||||||
<text text-anchor="middle" x="444.5" y="-101" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<ProtocolIfc>></text>
|
<text text-anchor="middle" x="453" y="-101" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<ProtocolIfc>></text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A6->A12 -->
|
<!-- A6->A12 -->
|
||||||
<g id="edge10" class="edge">
|
<g id="edge10" class="edge">
|
||||||
<title>A6->A12</title>
|
<title>A6->A12</title>
|
||||||
<path fill="none" stroke="#000000" d="M422.2853,-171.8133C426.7329,-158.2365 431.4225,-143.9208 435.3408,-131.9595"/>
|
<path fill="none" stroke="#000000" d="M430.7853,-171.8133C435.2329,-158.2365 439.9225,-143.9208 443.8408,-131.9595"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="438.5602,-122.132 439.7235,-133.036 437.0036,-126.8835 435.4471,-131.6351 435.4471,-131.6351 435.4471,-131.6351 437.0036,-126.8835 431.1707,-130.2341 438.5602,-122.132 438.5602,-122.132"/>
|
<polygon fill="#000000" stroke="#000000" points="447.0602,-122.132 448.2235,-133.036 445.5036,-126.8835 443.9471,-131.6351 443.9471,-131.6351 443.9471,-131.6351 445.5036,-126.8835 439.6707,-130.2341 447.0602,-122.132 447.0602,-122.132"/>
|
||||||
<text text-anchor="middle" x="440.9498" y="-138.9887" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
|
<text text-anchor="middle" x="449.4498" y="-138.9887" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A8 -->
|
<!-- A8 -->
|
||||||
<g id="node9" class="node">
|
<g id="node9" class="node">
|
||||||
<title>A8</title>
|
<title>A8</title>
|
||||||
<polygon fill="#fff8dc" stroke="#000000" points="574.906,-248 474.094,-248 474.094,-192 580.906,-192 580.906,-242 574.906,-248"/>
|
<polygon fill="#fff8dc" stroke="#000000" points="583.406,-248 482.594,-248 482.594,-192 589.406,-192 589.406,-242 583.406,-248"/>
|
||||||
<polyline fill="none" stroke="#000000" points="574.906,-248 574.906,-242 "/>
|
<polyline fill="none" stroke="#000000" points="583.406,-248 583.406,-242 "/>
|
||||||
<polyline fill="none" stroke="#000000" points="580.906,-242 574.906,-242 "/>
|
<polyline fill="none" stroke="#000000" points="589.406,-242 583.406,-242 "/>
|
||||||
<text text-anchor="middle" x="527.5" y="-235" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Creates an GEN3</text>
|
<text text-anchor="middle" x="536" y="-235" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Creates an GEN3</text>
|
||||||
<text text-anchor="middle" x="527.5" y="-223" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inverter instance</text>
|
<text text-anchor="middle" x="536" y="-223" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inverter instance</text>
|
||||||
<text text-anchor="middle" x="527.5" y="-211" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">with</text>
|
<text text-anchor="middle" x="536" y="-211" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">with</text>
|
||||||
<text text-anchor="middle" x="527.5" y="-199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">prot_class:Talent</text>
|
<text text-anchor="middle" x="536" y="-199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">prot_class:Talent</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A7->A8 -->
|
<!-- A7->A8 -->
|
||||||
<g id="edge3" class="edge">
|
<g id="edge3" class="edge">
|
||||||
<title>A7->A8</title>
|
<title>A7->A8</title>
|
||||||
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M308.5491,-238.3283C317.4345,-256.0056 333.5793,-281.6949 356.5,-293 396.3598,-312.6598 415.5578,-310.2929 456.5,-293 478.1607,-283.8511 496.4784,-264.5049 509.0802,-248.0264"/>
|
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M317.0491,-238.3283C325.9345,-256.0056 342.0793,-281.6949 365,-293 404.8598,-312.6598 424.0578,-310.2929 465,-293 486.6607,-283.8511 504.9784,-264.5049 517.5802,-248.0264"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A10 -->
|
<!-- A10 -->
|
||||||
<g id="node11" class="node">
|
<g id="node11" class="node">
|
||||||
<title>A10</title>
|
<title>A10</title>
|
||||||
<polygon fill="#fff8dc" stroke="#000000" points="239.022,-248 111.978,-248 111.978,-192 245.022,-192 245.022,-242 239.022,-248"/>
|
<polygon fill="#fff8dc" stroke="#000000" points="247.522,-248 120.478,-248 120.478,-192 253.522,-192 253.522,-242 247.522,-248"/>
|
||||||
<polyline fill="none" stroke="#000000" points="239.022,-248 239.022,-242 "/>
|
<polyline fill="none" stroke="#000000" points="247.522,-248 247.522,-242 "/>
|
||||||
<polyline fill="none" stroke="#000000" points="245.022,-242 239.022,-242 "/>
|
<polyline fill="none" stroke="#000000" points="253.522,-242 247.522,-242 "/>
|
||||||
<text text-anchor="middle" x="178.5" y="-235" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Creates an GEN3PLUS</text>
|
<text text-anchor="middle" x="187" y="-235" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Creates an GEN3PLUS</text>
|
||||||
<text text-anchor="middle" x="178.5" y="-223" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inverter instance</text>
|
<text text-anchor="middle" x="187" y="-223" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inverter instance</text>
|
||||||
<text text-anchor="middle" x="178.5" y="-211" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">with</text>
|
<text text-anchor="middle" x="187" y="-211" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">with</text>
|
||||||
<text text-anchor="middle" x="178.5" y="-199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">prot_class:SolarmanV5</text>
|
<text text-anchor="middle" x="187" y="-199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">prot_class:SolarmanV5</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A9->A10 -->
|
<!-- A9->A10 -->
|
||||||
<g id="edge4" class="edge">
|
<g id="edge4" class="edge">
|
||||||
<title>A9->A10</title>
|
<title>A9->A10</title>
|
||||||
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M94.5156,-220C100.3114,-220 106.1072,-220 111.903,-220"/>
|
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M103.0156,-220C108.8114,-220 114.6072,-220 120.403,-220"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A12->A11 -->
|
<!-- A12->A11 -->
|
||||||
<g id="edge12" class="edge">
|
<g id="edge12" class="edge">
|
||||||
<title>A12->A11</title>
|
<title>A12->A11</title>
|
||||||
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M436.2291,-85.7616C430.9033,-74.0176 423.8824,-58.5355 417.896,-45.3349"/>
|
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M444.7291,-85.7616C439.4033,-74.0176 432.3824,-58.5355 426.396,-45.3349"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="413.759,-36.2121 421.9874,-43.4608 415.824,-40.7657 417.8891,-45.3194 417.8891,-45.3194 417.8891,-45.3194 415.824,-40.7657 413.7908,-47.1779 413.759,-36.2121 413.759,-36.2121"/>
|
<polygon fill="#000000" stroke="#000000" points="422.259,-36.2121 430.4874,-43.4608 424.324,-40.7657 426.3891,-45.3194 426.3891,-45.3194 426.3891,-45.3194 424.324,-40.7657 422.2908,-47.1779 422.259,-36.2121 422.259,-36.2121"/>
|
||||||
<text text-anchor="middle" x="421.0451" y="-69.7445" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
|
<text text-anchor="middle" x="429.5451" y="-69.7445" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A13 -->
|
<!-- A13 -->
|
||||||
<g id="node14" class="node">
|
<g id="node14" class="node">
|
||||||
<title>A13</title>
|
<title>A13</title>
|
||||||
<polygon fill="none" stroke="#000000" points=".5,-454 .5,-486 107.5,-486 107.5,-454 .5,-454"/>
|
<polygon fill="none" stroke="#000000" points="9,-454 9,-486 116,-486 116,-454 9,-454"/>
|
||||||
<text text-anchor="start" x="24.2695" y="-467" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ModbusConn</text>
|
<text text-anchor="start" x="32.7695" y="-467" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ModbusConn</text>
|
||||||
<polygon fill="none" stroke="#000000" points=".5,-386 .5,-454 107.5,-454 107.5,-386 .5,-386"/>
|
<polygon fill="none" stroke="#000000" points="9,-386 9,-454 116,-454 116,-386 9,-386"/>
|
||||||
<text text-anchor="start" x="44.5515" y="-435" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">host</text>
|
<text text-anchor="start" x="53.0515" y="-435" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">host</text>
|
||||||
<text text-anchor="start" x="45.387" y="-423" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">port</text>
|
<text text-anchor="start" x="53.887" y="-423" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">port</text>
|
||||||
<text text-anchor="start" x="43.997" y="-411" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
|
<text text-anchor="start" x="52.497" y="-411" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
|
||||||
<text text-anchor="start" x="10.383" y="-399" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stream:InverterG3P</text>
|
<text text-anchor="start" x="18.883" y="-399" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stream:InverterG3P</text>
|
||||||
<polygon fill="none" stroke="#000000" points=".5,-366 .5,-386 107.5,-386 107.5,-366 .5,-366"/>
|
<polygon fill="none" stroke="#000000" points="9,-366 9,-386 116,-386 116,-366 9,-366"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A13->A9 -->
|
<!-- A13->A9 -->
|
||||||
<g id="edge13" class="edge">
|
<g id="edge13" class="edge">
|
||||||
<title>A13->A9</title>
|
<title>A13->A9</title>
|
||||||
<path fill="none" stroke="#000000" d="M53.5,-365.8625C53.5,-327.1513 53.5,-278.6088 53.5,-248.4442"/>
|
<path fill="none" stroke="#000000" d="M62,-365.8625C62,-327.1513 62,-278.6088 62,-248.4442"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="53.5,-238.2147 58.0001,-248.2147 53.5,-243.2147 53.5001,-248.2147 53.5001,-248.2147 53.5001,-248.2147 53.5,-243.2147 49.0001,-248.2148 53.5,-238.2147 53.5,-238.2147"/>
|
<polygon fill="#000000" stroke="#000000" points="62,-238.2147 66.5001,-248.2147 62,-243.2147 62.0001,-248.2147 62.0001,-248.2147 62.0001,-248.2147 62,-243.2147 57.5001,-248.2148 62,-238.2147 62,-238.2147"/>
|
||||||
<text text-anchor="middle" x="61.9524" y="-253.3409" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
|
<text text-anchor="middle" x="70.4524" y="-253.3409" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">1</text>
|
||||||
<text text-anchor="middle" x="45.0476" y="-344.7363" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
|
<text text-anchor="middle" x="53.5476" y="-344.7363" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A14 -->
|
<!-- A14 -->
|
||||||
<g id="node15" class="node">
|
<g id="node15" class="node">
|
||||||
<title>A14</title>
|
<title>A14</title>
|
||||||
<polygon fill="none" stroke="#000000" points="93.7333,-722 13.2667,-722 13.2667,-686 93.7333,-686 93.7333,-722"/>
|
<polygon fill="none" stroke="#000000" points="0,-714 0,-746 124,-746 124,-714 0,-714"/>
|
||||||
<text text-anchor="middle" x="53.5" y="-701" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ModbusTcp</text>
|
<text text-anchor="start" x="35.8835" y="-727" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ModbusTcp</text>
|
||||||
|
<polygon fill="none" stroke="#000000" points="0,-694 0,-714 124,-714 124,-694 0,-694"/>
|
||||||
|
<polygon fill="none" stroke="#000000" points="0,-662 0,-694 124,-694 124,-662 0,-662"/>
|
||||||
|
<text text-anchor="start" x="9.763" y="-675" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>modbus_loop()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A14->A13 -->
|
<!-- A14->A13 -->
|
||||||
<g id="edge14" class="edge">
|
<g id="edge14" class="edge">
|
||||||
<title>A14->A13</title>
|
<title>A14->A13</title>
|
||||||
<path fill="none" stroke="#000000" d="M53.5,-685.7596C53.5,-647.9991 53.5,-559.5189 53.5,-496.3277"/>
|
<path fill="none" stroke="#000000" d="M62,-661.7778C62,-617.9184 62,-548.5387 62,-496.3736"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="53.5,-486.0223 58.0001,-496.0223 53.5,-491.0223 53.5001,-496.0223 53.5001,-496.0223 53.5001,-496.0223 53.5,-491.0223 49.0001,-496.0224 53.5,-486.0223 53.5,-486.0223"/>
|
<polygon fill="#000000" stroke="#000000" points="62,-486.1827 66.5001,-496.1827 62,-491.1827 62.0001,-496.1827 62.0001,-496.1827 62.0001,-496.1827 62,-491.1827 57.5001,-496.1828 62,-486.1827 62,-486.1827"/>
|
||||||
<text text-anchor="middle" x="61.9524" y="-501.1485" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">*</text>
|
<text text-anchor="middle" x="70.4524" y="-501.3089" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">*</text>
|
||||||
<text text-anchor="middle" x="45.0476" y="-664.6335" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">creates</text>
|
<text text-anchor="middle" x="53.5476" y="-640.6516" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">creates</text>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
@@ -32,5 +32,5 @@
|
|||||||
|
|
||||||
|
|
||||||
[ModbusConn|host;port;addr;stream:InverterG3P;|]has-1>[InverterG3P]
|
[ModbusConn|host;port;addr;stream:InverterG3P;|]has-1>[InverterG3P]
|
||||||
[ModbusTcp]creates-*>[ModbusConn]
|
[ModbusTcp||<async>modbus_loop()]creates-*>[ModbusConn]
|
||||||
|
|
||||||
|
|||||||
@@ -4,45 +4,45 @@
|
|||||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||||
-->
|
-->
|
||||||
<!-- Title: G Pages: 1 -->
|
<!-- Title: G Pages: 1 -->
|
||||||
<svg width="539pt" height="2036pt"
|
<svg width="539pt" height="2000pt"
|
||||||
viewBox="0.00 0.00 538.57 2036.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
viewBox="0.00 0.00 538.57 2000.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 2032)">
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1996)">
|
||||||
<title>G</title>
|
<title>G</title>
|
||||||
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2032 534.566,-2032 534.566,4 -4,4"/>
|
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1996 534.566,-1996 534.566,4 -4,4"/>
|
||||||
<!-- A0 -->
|
<!-- A0 -->
|
||||||
<g id="node1" class="node">
|
<g id="node1" class="node">
|
||||||
<title>A0</title>
|
<title>A0</title>
|
||||||
<polygon fill="#fff8dc" stroke="#000000" points="98.1981,-2008 -.0661,-2008 -.0661,-1964 104.1981,-1964 104.1981,-2002 98.1981,-2008"/>
|
<polygon fill="#fff8dc" stroke="#000000" points="98.1981,-1972 -.0661,-1972 -.0661,-1928 104.1981,-1928 104.1981,-1966 98.1981,-1972"/>
|
||||||
<polyline fill="none" stroke="#000000" points="98.1981,-2008 98.1981,-2002 "/>
|
<polyline fill="none" stroke="#000000" points="98.1981,-1972 98.1981,-1966 "/>
|
||||||
<polyline fill="none" stroke="#000000" points="104.1981,-2002 98.1981,-2002 "/>
|
<polyline fill="none" stroke="#000000" points="104.1981,-1966 98.1981,-1966 "/>
|
||||||
<text text-anchor="middle" x="52.066" y="-1995" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Example of</text>
|
<text text-anchor="middle" x="52.066" y="-1959" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Example of</text>
|
||||||
<text text-anchor="middle" x="52.066" y="-1983" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">instantiation for a</text>
|
<text text-anchor="middle" x="52.066" y="-1947" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">instantiation for a</text>
|
||||||
<text text-anchor="middle" x="52.066" y="-1971" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">GEN3 inverter!</text>
|
<text text-anchor="middle" x="52.066" y="-1935" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">GEN3 inverter!</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A1 -->
|
<!-- A1 -->
|
||||||
<g id="node2" class="node">
|
<g id="node2" class="node">
|
||||||
<title>A1</title>
|
<title>A1</title>
|
||||||
<polygon fill="none" stroke="#000000" points="122.066,-1996 122.066,-2028 238.066,-2028 238.066,-1996 122.066,-1996"/>
|
<polygon fill="none" stroke="#000000" points="122.066,-1960 122.066,-1992 238.066,-1992 238.066,-1960 122.066,-1960"/>
|
||||||
<text text-anchor="start" x="131.715" y="-2009" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<AbstractIterMeta>></text>
|
<text text-anchor="start" x="131.715" y="-1973" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<AbstractIterMeta>></text>
|
||||||
<polygon fill="none" stroke="#000000" points="122.066,-1976 122.066,-1996 238.066,-1996 238.066,-1976 122.066,-1976"/>
|
<polygon fill="none" stroke="#000000" points="122.066,-1940 122.066,-1960 238.066,-1960 238.066,-1940 122.066,-1940"/>
|
||||||
<polygon fill="none" stroke="#000000" points="122.066,-1944 122.066,-1976 238.066,-1976 238.066,-1944 122.066,-1944"/>
|
<polygon fill="none" stroke="#000000" points="122.066,-1908 122.066,-1940 238.066,-1940 238.066,-1908 122.066,-1908"/>
|
||||||
<text text-anchor="start" x="158.676" y="-1957" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__iter__()</text>
|
<text text-anchor="start" x="158.676" y="-1921" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__iter__()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A14 -->
|
<!-- A14 -->
|
||||||
<g id="node15" class="node">
|
<g id="node15" class="node">
|
||||||
<title>A14</title>
|
<title>A14</title>
|
||||||
<polygon fill="none" stroke="#000000" points="135.066,-1784 135.066,-1816 225.066,-1816 225.066,-1784 135.066,-1784"/>
|
<polygon fill="none" stroke="#000000" points="135.066,-1748 135.066,-1780 225.066,-1780 225.066,-1748 135.066,-1748"/>
|
||||||
<text text-anchor="start" x="144.7725" y="-1797" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<ProtocolIfc>></text>
|
<text text-anchor="start" x="144.7725" y="-1761" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<ProtocolIfc>></text>
|
||||||
<polygon fill="none" stroke="#000000" points="135.066,-1752 135.066,-1784 225.066,-1784 225.066,-1752 135.066,-1752"/>
|
<polygon fill="none" stroke="#000000" points="135.066,-1716 135.066,-1748 225.066,-1748 225.066,-1716 135.066,-1716"/>
|
||||||
<text text-anchor="start" x="160.8995" y="-1765" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_registry</text>
|
<text text-anchor="start" x="160.8995" y="-1729" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_registry</text>
|
||||||
<polygon fill="none" stroke="#000000" points="135.066,-1720 135.066,-1752 225.066,-1752 225.066,-1720 135.066,-1720"/>
|
<polygon fill="none" stroke="#000000" points="135.066,-1684 135.066,-1716 225.066,-1716 225.066,-1684 135.066,-1684"/>
|
||||||
<text text-anchor="start" x="165.0685" y="-1733" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
<text text-anchor="start" x="165.0685" y="-1697" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A1->A14 -->
|
<!-- A1->A14 -->
|
||||||
<g id="edge14" class="edge">
|
<g id="edge14" class="edge">
|
||||||
<title>A1->A14</title>
|
<title>A1->A14</title>
|
||||||
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M180.066,-1933.756C180.066,-1898.0883 180.066,-1851.1755 180.066,-1816.3644"/>
|
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M180.066,-1897.756C180.066,-1862.0883 180.066,-1815.1755 180.066,-1780.3644"/>
|
||||||
<polygon fill="none" stroke="#000000" points="176.5661,-1933.9674 180.066,-1943.9674 183.5661,-1933.9674 176.5661,-1933.9674"/>
|
<polygon fill="none" stroke="#000000" points="176.5661,-1897.9674 180.066,-1907.9674 183.5661,-1897.9674 176.5661,-1897.9674"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A2 -->
|
<!-- A2 -->
|
||||||
<g id="node3" class="node">
|
<g id="node3" class="node">
|
||||||
@@ -289,34 +289,31 @@
|
|||||||
<!-- A13 -->
|
<!-- A13 -->
|
||||||
<g id="node14" class="node">
|
<g id="node14" class="node">
|
||||||
<title>A13</title>
|
<title>A13</title>
|
||||||
<polygon fill="none" stroke="#000000" points="155.066,-1560 155.066,-1592 306.066,-1592 306.066,-1560 155.066,-1560"/>
|
<polygon fill="none" stroke="#000000" points="156.066,-1524 156.066,-1556 305.066,-1556 305.066,-1524 156.066,-1524"/>
|
||||||
<text text-anchor="start" x="210.2835" y="-1573" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Message</text>
|
<text text-anchor="start" x="210.2835" y="-1537" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Message</text>
|
||||||
<polygon fill="none" stroke="#000000" points="155.066,-1336 155.066,-1560 306.066,-1560 306.066,-1336 155.066,-1336"/>
|
<polygon fill="none" stroke="#000000" points="156.066,-1300 156.066,-1524 305.066,-1524 305.066,-1300 156.066,-1300"/>
|
||||||
<text text-anchor="start" x="193.8925" y="-1541" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">server_side:bool</text>
|
<text text-anchor="start" x="193.8925" y="-1505" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">server_side:bool</text>
|
||||||
<text text-anchor="start" x="204.45" y="-1529" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb:Modbus</text>
|
<text text-anchor="start" x="204.45" y="-1493" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb:Modbus</text>
|
||||||
<text text-anchor="start" x="205.2845" y="-1517" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ifc:AsyncIfc</text>
|
<text text-anchor="start" x="205.2845" y="-1481" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ifc:AsyncIfc</text>
|
||||||
<text text-anchor="start" x="212.7795" y="-1505" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
|
<text text-anchor="start" x="212.7795" y="-1469" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
|
||||||
<text text-anchor="start" x="191.109" y="-1493" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_valid:bool</text>
|
<text text-anchor="start" x="191.109" y="-1457" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_valid:bool</text>
|
||||||
<text text-anchor="start" x="205.556" y="-1481" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_len</text>
|
<text text-anchor="start" x="205.556" y="-1445" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_len</text>
|
||||||
<text text-anchor="start" x="211.39" y="-1469" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">data_len</text>
|
<text text-anchor="start" x="211.39" y="-1433" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">data_len</text>
|
||||||
<text text-anchor="start" x="208.8905" y="-1457" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unique_id</text>
|
<text text-anchor="start" x="208.8905" y="-1421" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unique_id</text>
|
||||||
<text text-anchor="start" x="202.781" y="-1445" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">sug_area:str</text>
|
<text text-anchor="start" x="202.781" y="-1409" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">sug_area:str</text>
|
||||||
<text text-anchor="start" x="199.722" y="-1433" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">new_data:dict</text>
|
<text text-anchor="start" x="199.722" y="-1397" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">new_data:dict</text>
|
||||||
<text text-anchor="start" x="206.666" y="-1421" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">state:State</text>
|
<text text-anchor="start" x="206.666" y="-1385" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">state:State</text>
|
||||||
<text text-anchor="start" x="180.2705" y="-1409" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">shutdown_started:bool</text>
|
<text text-anchor="start" x="180.2705" y="-1373" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">shutdown_started:bool</text>
|
||||||
<text text-anchor="start" x="199.4505" y="-1397" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">modbus_elms</text>
|
<text text-anchor="start" x="199.4505" y="-1361" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">modbus_elms</text>
|
||||||
<text text-anchor="start" x="195.573" y="-1385" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_timer:Timer</text>
|
<text text-anchor="start" x="195.573" y="-1349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_timer:Timer</text>
|
||||||
<text text-anchor="start" x="204.451" y="-1373" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_timeout</text>
|
<text text-anchor="start" x="204.451" y="-1337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_timeout</text>
|
||||||
<text text-anchor="start" x="193.6185" y="-1361" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_first_timeout</text>
|
<text text-anchor="start" x="193.6185" y="-1325" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_first_timeout</text>
|
||||||
<text text-anchor="start" x="184.72" y="-1349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">modbus_polling:bool</text>
|
<text text-anchor="start" x="184.72" y="-1313" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">modbus_polling:bool</text>
|
||||||
<polygon fill="none" stroke="#000000" points="155.066,-1196 155.066,-1336 306.066,-1336 306.066,-1196 155.066,-1196"/>
|
<polygon fill="none" stroke="#000000" points="156.066,-1196 156.066,-1300 305.066,-1300 305.066,-1196 156.066,-1196"/>
|
||||||
<text text-anchor="start" x="169.447" y="-1317" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_set_config_parms(inv:dict)</text>
|
<text text-anchor="start" x="179.4505" y="-1281" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_set_mqtt_timestamp()</text>
|
||||||
<text text-anchor="start" x="165.0025" y="-1305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_set_mqtt_timestamp(key, ts)</text>
|
<text text-anchor="start" x="208.066" y="-1269" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_timeout()</text>
|
||||||
<text text-anchor="start" x="208.066" y="-1293" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_timeout()</text>
|
<text text-anchor="start" x="180.8335" y="-1257" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_send_modbus_cmd()</text>
|
||||||
<text text-anchor="start" x="180.8335" y="-1281" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_send_modbus_cmd()</text>
|
<text text-anchor="start" x="165.8255" y="-1245" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async> end_modbus_cmd()</text>
|
||||||
<text text-anchor="start" x="164.715" y="-1269" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>send_modbus_cmd()</text>
|
|
||||||
<text text-anchor="start" x="179.7185" y="-1257" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_send_modbus_scan()</text>
|
|
||||||
<text text-anchor="start" x="178.054" y="-1245" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_dump_modbus_scan()</text>
|
|
||||||
<text text-anchor="start" x="215.5685" y="-1233" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
<text text-anchor="start" x="215.5685" y="-1233" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
||||||
<text text-anchor="start" x="201.3965" y="-1221" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter()</text>
|
<text text-anchor="start" x="201.3965" y="-1221" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter()</text>
|
||||||
<text text-anchor="start" x="199.7265" y="-1209" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dec_counter()</text>
|
<text text-anchor="start" x="199.7265" y="-1209" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dec_counter()</text>
|
||||||
@@ -324,51 +321,51 @@
|
|||||||
<!-- A13->A5 -->
|
<!-- A13->A5 -->
|
||||||
<g id="edge13" class="edge">
|
<g id="edge13" class="edge">
|
||||||
<title>A13->A5</title>
|
<title>A13->A5</title>
|
||||||
<path fill="none" stroke="#000000" d="M209.2902,-1195.9056C207.8967,-1182.6185 206.4991,-1169.2927 205.1209,-1156.1518"/>
|
<path fill="none" stroke="#000000" d="M210.2965,-1195.7758C208.8462,-1182.5547 207.3854,-1169.2373 205.9406,-1156.0662"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="204.0712,-1146.1426 209.5898,-1155.6186 204.5928,-1151.1153 205.1143,-1156.0881 205.1143,-1156.0881 205.1143,-1156.0881 204.5928,-1151.1153 200.6389,-1156.5575 204.0712,-1146.1426 204.0712,-1146.1426"/>
|
<polygon fill="#000000" stroke="#000000" points="204.8393,-1146.0268 210.403,-1155.4764 205.3846,-1150.997 205.9298,-1155.9672 205.9298,-1155.9672 205.9298,-1155.9672 205.3846,-1150.997 201.4567,-1156.4579 204.8393,-1146.0268 204.8393,-1146.0268"/>
|
||||||
<text text-anchor="middle" x="198.9933" y="-1175.7599" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
|
<text text-anchor="middle" x="199.9181" y="-1175.6794" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A13->A10 -->
|
<!-- A13->A10 -->
|
||||||
<g id="edge16" class="edge">
|
<g id="edge16" class="edge">
|
||||||
<title>A13->A10</title>
|
<title>A13->A10</title>
|
||||||
<path fill="none" stroke="#000000" d="M262.9659,-1185.8135C283.5931,-1055.2874 309.7059,-890.0494 328.3192,-772.2668"/>
|
<path fill="none" stroke="#000000" d="M260.8183,-1185.9405C281.556,-1057.7747 308.5382,-891.0162 327.7708,-772.1524"/>
|
||||||
<polygon fill="none" stroke="#000000" points="259.4691,-1185.519 261.3652,-1195.9428 266.3833,-1186.6118 259.4691,-1185.519"/>
|
<polygon fill="none" stroke="#000000" points="257.3528,-1185.4467 259.2105,-1195.8774 264.2629,-1186.5648 257.3528,-1185.4467"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A14->A13 -->
|
<!-- A14->A13 -->
|
||||||
<g id="edge15" class="edge">
|
<g id="edge15" class="edge">
|
||||||
<title>A14->A13</title>
|
<title>A14->A13</title>
|
||||||
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M187.8521,-1709.7603C192.164,-1677.5066 197.804,-1635.3194 203.5512,-1592.3307"/>
|
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M188.2401,-1673.8004C192.8037,-1641.3079 198.7631,-1598.8764 204.747,-1556.2713"/>
|
||||||
<polygon fill="none" stroke="#000000" points="184.3563,-1709.4961 186.5003,-1719.8717 191.2946,-1710.4237 184.3563,-1709.4961"/>
|
<polygon fill="none" stroke="#000000" points="184.7342,-1673.5986 186.8092,-1683.9883 191.6661,-1674.5723 184.7342,-1673.5986"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A15 -->
|
<!-- A15 -->
|
||||||
<g id="node16" class="node">
|
<g id="node16" class="node">
|
||||||
<title>A15</title>
|
<title>A15</title>
|
||||||
<polygon fill="none" stroke="#000000" points="244.066,-1862 244.066,-1894 319.066,-1894 319.066,-1862 244.066,-1862"/>
|
<polygon fill="none" stroke="#000000" points="244.066,-1826 244.066,-1858 319.066,-1858 319.066,-1826 244.066,-1826"/>
|
||||||
<text text-anchor="start" x="263.7835" y="-1875" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Modbus</text>
|
<text text-anchor="start" x="263.7835" y="-1839" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Modbus</text>
|
||||||
<polygon fill="none" stroke="#000000" points="244.066,-1710 244.066,-1862 319.066,-1862 319.066,-1710 244.066,-1710"/>
|
<polygon fill="none" stroke="#000000" points="244.066,-1674 244.066,-1826 319.066,-1826 319.066,-1674 244.066,-1674"/>
|
||||||
<text text-anchor="start" x="273.2275" y="-1843" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">que</text>
|
<text text-anchor="start" x="273.2275" y="-1807" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">que</text>
|
||||||
<text text-anchor="start" x="254.056" y="-1819" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snd_handler</text>
|
<text text-anchor="start" x="254.056" y="-1783" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snd_handler</text>
|
||||||
<text text-anchor="start" x="255.171" y="-1807" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rsp_handler</text>
|
<text text-anchor="start" x="255.171" y="-1771" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rsp_handler</text>
|
||||||
<text text-anchor="start" x="265.1745" y="-1795" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout</text>
|
<text text-anchor="start" x="265.1745" y="-1759" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout</text>
|
||||||
<text text-anchor="start" x="255.4555" y="-1783" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">max_retires</text>
|
<text text-anchor="start" x="255.4555" y="-1747" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">max_retires</text>
|
||||||
<text text-anchor="start" x="263.508" y="-1771" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">last_xxx</text>
|
<text text-anchor="start" x="263.508" y="-1735" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">last_xxx</text>
|
||||||
<text text-anchor="start" x="275.4575" y="-1759" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">err</text>
|
<text text-anchor="start" x="275.4575" y="-1723" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">err</text>
|
||||||
<text text-anchor="start" x="262.1195" y="-1747" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">retry_cnt</text>
|
<text text-anchor="start" x="262.1195" y="-1711" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">retry_cnt</text>
|
||||||
<text text-anchor="start" x="260.445" y="-1735" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">req_pend</text>
|
<text text-anchor="start" x="260.445" y="-1699" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">req_pend</text>
|
||||||
<text text-anchor="start" x="274.9025" y="-1723" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tim</text>
|
<text text-anchor="start" x="274.9025" y="-1687" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tim</text>
|
||||||
<polygon fill="none" stroke="#000000" points="244.066,-1642 244.066,-1710 319.066,-1710 319.066,-1642 244.066,-1642"/>
|
<polygon fill="none" stroke="#000000" points="244.066,-1606 244.066,-1674 319.066,-1674 319.066,-1606 244.066,-1606"/>
|
||||||
<text text-anchor="start" x="255.456" y="-1691" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">build_msg()</text>
|
<text text-anchor="start" x="255.456" y="-1655" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">build_msg()</text>
|
||||||
<text text-anchor="start" x="258.79" y="-1679" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_req()</text>
|
<text text-anchor="start" x="258.79" y="-1643" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_req()</text>
|
||||||
<text text-anchor="start" x="256.29" y="-1667" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_resp()</text>
|
<text text-anchor="start" x="256.29" y="-1631" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_resp()</text>
|
||||||
<text text-anchor="start" x="266.5685" y="-1655" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
<text text-anchor="start" x="266.5685" y="-1619" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A15->A13 -->
|
<!-- A15->A13 -->
|
||||||
<g id="edge17" class="edge">
|
<g id="edge17" class="edge">
|
||||||
<title>A15->A13</title>
|
<title>A15->A13</title>
|
||||||
<path fill="none" stroke="#000000" d="M262.4684,-1631.6179C260.7062,-1618.6948 258.8964,-1605.4228 257.0763,-1592.0754"/>
|
<path fill="none" stroke="#000000" d="M261.5887,-1596.041C259.7128,-1582.9463 257.7908,-1569.5297 255.8664,-1556.0971"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="263.8708,-1641.9021 258.0609,-1632.6018 263.1952,-1636.9479 262.5196,-1631.9938 262.5196,-1631.9938 262.5196,-1631.9938 263.1952,-1636.9479 266.9783,-1631.3857 263.8708,-1641.9021 263.8708,-1641.9021"/>
|
<polygon fill="#000000" stroke="#000000" points="263.0135,-1605.9867 257.1408,-1596.726 262.3044,-1601.0373 261.5953,-1596.0878 261.5953,-1596.0878 261.5953,-1596.0878 262.3044,-1601.0373 266.0499,-1595.4496 263.0135,-1605.9867 263.0135,-1605.9867"/>
|
||||||
<text text-anchor="middle" x="267.9002" y="-1605.8933" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
|
<text text-anchor="middle" x="266.8039" y="-1569.8414" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
|
||||||
<text text-anchor="middle" x="253.0469" y="-1622.0841" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
|
<text text-anchor="middle" x="252.0761" y="-1586.2424" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
@@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
[Talent]->[InfosG3]
|
[Talent]->[InfosG3]
|
||||||
|
|
||||||
[Message|server_side:bool;mb:Modbus;ifc:AsyncIfc;node_id;header_valid:bool;header_len;data_len;unique_id;sug_area:str;new_data:dict;state:State;shutdown_started:bool;modbus_elms;mb_timer:Timer;mb_timeout;mb_first_timeout;modbus_polling:bool|_set_config_parms(inv:dict);_set_mqtt_timestamp(key, ts);_timeout();_send_modbus_cmd();<async>send_modbus_cmd();_send_modbus_scan();_dump_modbus_scan();close();inc_counter();dec_counter()]
|
[Message|server_side:bool;mb:Modbus;ifc:AsyncIfc;node_id;header_valid:bool;header_len;data_len;unique_id;sug_area:str;new_data:dict;state:State;shutdown_started:bool;modbus_elms;mb_timer:Timer;mb_timeout;mb_first_timeout;modbus_polling:bool|_set_mqtt_timestamp();_timeout();_send_modbus_cmd();<async> end_modbus_cmd();close();inc_counter();dec_counter()]
|
||||||
[Message]use->[<<AsyncIfc>>]
|
[Message]use->[<<AsyncIfc>>]
|
||||||
|
|
||||||
[<<ProtocolIfc>>|_registry|close()]
|
[<<ProtocolIfc>>|_registry|close()]
|
||||||
|
|||||||
@@ -4,121 +4,121 @@
|
|||||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||||
-->
|
-->
|
||||||
<!-- Title: G Pages: 1 -->
|
<!-- Title: G Pages: 1 -->
|
||||||
<svg width="539pt" height="1976pt"
|
<svg width="541pt" height="1940pt"
|
||||||
viewBox="0.00 0.00 538.62 1976.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
viewBox="0.00 0.00 540.62 1940.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 1972)">
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1936)">
|
||||||
<title>G</title>
|
<title>G</title>
|
||||||
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1972 534.6165,-1972 534.6165,4 -4,4"/>
|
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1936 536.6165,-1936 536.6165,4 -4,4"/>
|
||||||
<!-- A0 -->
|
<!-- A0 -->
|
||||||
<g id="node1" class="node">
|
<g id="node1" class="node">
|
||||||
<title>A0</title>
|
<title>A0</title>
|
||||||
<polygon fill="#fff8dc" stroke="#000000" points="114.3497,-1948 -.1167,-1948 -.1167,-1904 120.3497,-1904 120.3497,-1942 114.3497,-1948"/>
|
<polygon fill="#fff8dc" stroke="#000000" points="114.3497,-1912 -.1167,-1912 -.1167,-1868 120.3497,-1868 120.3497,-1906 114.3497,-1912"/>
|
||||||
<polyline fill="none" stroke="#000000" points="114.3497,-1948 114.3497,-1942 "/>
|
<polyline fill="none" stroke="#000000" points="114.3497,-1912 114.3497,-1906 "/>
|
||||||
<polyline fill="none" stroke="#000000" points="120.3497,-1942 114.3497,-1942 "/>
|
<polyline fill="none" stroke="#000000" points="120.3497,-1906 114.3497,-1906 "/>
|
||||||
<text text-anchor="middle" x="60.1165" y="-1935" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Example of</text>
|
<text text-anchor="middle" x="60.1165" y="-1899" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Example of</text>
|
||||||
<text text-anchor="middle" x="60.1165" y="-1923" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">instantiation for a</text>
|
<text text-anchor="middle" x="60.1165" y="-1887" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">instantiation for a</text>
|
||||||
<text text-anchor="middle" x="60.1165" y="-1911" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">GEN3PLUS inverter!</text>
|
<text text-anchor="middle" x="60.1165" y="-1875" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">GEN3PLUS inverter!</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A1 -->
|
<!-- A1 -->
|
||||||
<g id="node2" class="node">
|
<g id="node2" class="node">
|
||||||
<title>A1</title>
|
<title>A1</title>
|
||||||
<polygon fill="none" stroke="#000000" points="138.1165,-1936 138.1165,-1968 254.1165,-1968 254.1165,-1936 138.1165,-1936"/>
|
<polygon fill="none" stroke="#000000" points="138.1165,-1900 138.1165,-1932 254.1165,-1932 254.1165,-1900 138.1165,-1900"/>
|
||||||
<text text-anchor="start" x="147.7655" y="-1949" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<AbstractIterMeta>></text>
|
<text text-anchor="start" x="147.7655" y="-1913" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<AbstractIterMeta>></text>
|
||||||
<polygon fill="none" stroke="#000000" points="138.1165,-1916 138.1165,-1936 254.1165,-1936 254.1165,-1916 138.1165,-1916"/>
|
<polygon fill="none" stroke="#000000" points="138.1165,-1880 138.1165,-1900 254.1165,-1900 254.1165,-1880 138.1165,-1880"/>
|
||||||
<polygon fill="none" stroke="#000000" points="138.1165,-1884 138.1165,-1916 254.1165,-1916 254.1165,-1884 138.1165,-1884"/>
|
<polygon fill="none" stroke="#000000" points="138.1165,-1848 138.1165,-1880 254.1165,-1880 254.1165,-1848 138.1165,-1848"/>
|
||||||
<text text-anchor="start" x="174.7265" y="-1897" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__iter__()</text>
|
<text text-anchor="start" x="174.7265" y="-1861" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__iter__()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A14 -->
|
<!-- A14 -->
|
||||||
<g id="node15" class="node">
|
<g id="node15" class="node">
|
||||||
<title>A14</title>
|
<title>A14</title>
|
||||||
<polygon fill="none" stroke="#000000" points="151.1165,-1724 151.1165,-1756 241.1165,-1756 241.1165,-1724 151.1165,-1724"/>
|
<polygon fill="none" stroke="#000000" points="151.1165,-1688 151.1165,-1720 241.1165,-1720 241.1165,-1688 151.1165,-1688"/>
|
||||||
<text text-anchor="start" x="160.823" y="-1737" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<ProtocolIfc>></text>
|
<text text-anchor="start" x="160.823" y="-1701" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><<ProtocolIfc>></text>
|
||||||
<polygon fill="none" stroke="#000000" points="151.1165,-1692 151.1165,-1724 241.1165,-1724 241.1165,-1692 151.1165,-1692"/>
|
<polygon fill="none" stroke="#000000" points="151.1165,-1656 151.1165,-1688 241.1165,-1688 241.1165,-1656 151.1165,-1656"/>
|
||||||
<text text-anchor="start" x="176.95" y="-1705" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_registry</text>
|
<text text-anchor="start" x="176.95" y="-1669" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_registry</text>
|
||||||
<polygon fill="none" stroke="#000000" points="151.1165,-1660 151.1165,-1692 241.1165,-1692 241.1165,-1660 151.1165,-1660"/>
|
<polygon fill="none" stroke="#000000" points="151.1165,-1624 151.1165,-1656 241.1165,-1656 241.1165,-1624 151.1165,-1624"/>
|
||||||
<text text-anchor="start" x="181.119" y="-1673" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
<text text-anchor="start" x="181.119" y="-1637" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A1->A14 -->
|
<!-- A1->A14 -->
|
||||||
<g id="edge14" class="edge">
|
<g id="edge14" class="edge">
|
||||||
<title>A1->A14</title>
|
<title>A1->A14</title>
|
||||||
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M196.1165,-1873.756C196.1165,-1838.0883 196.1165,-1791.1755 196.1165,-1756.3644"/>
|
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M196.1165,-1837.756C196.1165,-1802.0883 196.1165,-1755.1755 196.1165,-1720.3644"/>
|
||||||
<polygon fill="none" stroke="#000000" points="192.6166,-1873.9674 196.1165,-1883.9674 199.6166,-1873.9674 192.6166,-1873.9674"/>
|
<polygon fill="none" stroke="#000000" points="192.6166,-1837.9674 196.1165,-1847.9674 199.6166,-1837.9674 192.6166,-1837.9674"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A2 -->
|
<!-- A2 -->
|
||||||
<g id="node3" class="node">
|
<g id="node3" class="node">
|
||||||
<title>A2</title>
|
<title>A2</title>
|
||||||
<polygon fill="none" stroke="#000000" points="202.1165,-632 202.1165,-664 300.1165,-664 300.1165,-632 202.1165,-632"/>
|
<polygon fill="none" stroke="#000000" points="199.1165,-632 199.1165,-664 297.1165,-664 297.1165,-632 199.1165,-632"/>
|
||||||
<text text-anchor="start" x="224.1665" y="-645" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterG3P</text>
|
<text text-anchor="start" x="221.1665" y="-645" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InverterG3P</text>
|
||||||
<polygon fill="none" stroke="#000000" points="202.1165,-576 202.1165,-632 300.1165,-632 300.1165,-576 202.1165,-576"/>
|
<polygon fill="none" stroke="#000000" points="199.1165,-576 199.1165,-632 297.1165,-632 297.1165,-576 199.1165,-576"/>
|
||||||
<text text-anchor="start" x="241.1135" y="-613" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
|
<text text-anchor="start" x="238.1135" y="-613" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
|
||||||
<text text-anchor="start" x="211.6695" y="-601" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote:StreamPtr</text>
|
<text text-anchor="start" x="208.6695" y="-601" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote:StreamPtr</text>
|
||||||
<text text-anchor="start" x="216.9485" y="-589" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local:StreamPtr</text>
|
<text text-anchor="start" x="213.9485" y="-589" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local:StreamPtr</text>
|
||||||
<polygon fill="none" stroke="#000000" points="202.1165,-520 202.1165,-576 300.1165,-576 300.1165,-520 202.1165,-520"/>
|
<polygon fill="none" stroke="#000000" points="199.1165,-520 199.1165,-576 297.1165,-576 297.1165,-520 199.1165,-520"/>
|
||||||
<text text-anchor="start" x="215.5585" y="-557" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">create_remote()</text>
|
<text text-anchor="start" x="212.5585" y="-557" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">create_remote()</text>
|
||||||
<text text-anchor="start" x="236.119" y="-533" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
<text text-anchor="start" x="233.119" y="-533" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A3 -->
|
<!-- A3 -->
|
||||||
<g id="node4" class="node">
|
<g id="node4" class="node">
|
||||||
<title>A3</title>
|
<title>A3</title>
|
||||||
<polygon fill="none" stroke="#000000" points="419.4531,-320 322.7799,-320 322.7799,-284 419.4531,-284 419.4531,-320"/>
|
<polygon fill="none" stroke="#000000" points="415.4531,-320 318.7799,-320 318.7799,-284 415.4531,-284 415.4531,-320"/>
|
||||||
<text text-anchor="middle" x="371.1165" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local:StreamPtr</text>
|
<text text-anchor="middle" x="367.1165" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">local:StreamPtr</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A2->A3 -->
|
<!-- A2->A3 -->
|
||||||
<g id="edge1" class="edge">
|
<g id="edge1" class="edge">
|
||||||
<title>A2->A3</title>
|
<title>A2->A3</title>
|
||||||
<path fill="none" stroke="#000000" d="M285.5402,-508.8093C310.5478,-448.3743 342.848,-370.3156 359.7149,-329.5539"/>
|
<path fill="none" stroke="#000000" d="M282.2534,-508.8093C307.0525,-448.3743 339.0836,-370.3156 355.8099,-329.5539"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="285.5219,-508.8538 286.9238,-515.9273 280.9336,-519.942 279.5317,-512.8685 285.5219,-508.8538"/>
|
<polygon fill="#000000" stroke="#000000" points="282.2407,-508.8403 283.6635,-515.9097 277.6851,-519.942 276.2624,-512.8726 282.2407,-508.8403"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="363.5595,-320.2627 363.894,-331.2235 361.6477,-324.8828 359.7359,-329.5029 359.7359,-329.5029 359.7359,-329.5029 361.6477,-324.8828 355.5779,-327.7823 363.5595,-320.2627 363.5595,-320.2627"/>
|
<polygon fill="#000000" stroke="#000000" points="359.6225,-320.2627 359.9893,-331.2224 357.7243,-324.8884 355.8262,-329.5141 355.8262,-329.5141 355.8262,-329.5141 357.7243,-324.8884 351.663,-327.8058 359.6225,-320.2627 359.6225,-320.2627"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A4 -->
|
<!-- A4 -->
|
||||||
<g id="node5" class="node">
|
<g id="node5" class="node">
|
||||||
<title>A4</title>
|
<title>A4</title>
|
||||||
<polygon fill="none" stroke="#000000" points="304.5106,-320 197.7224,-320 197.7224,-284 304.5106,-284 304.5106,-320"/>
|
<polygon fill="none" stroke="#000000" points="300.5106,-320 193.7224,-320 193.7224,-284 300.5106,-284 300.5106,-320"/>
|
||||||
<text text-anchor="middle" x="251.1165" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote:StreamPtr</text>
|
<text text-anchor="middle" x="247.1165" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">remote:StreamPtr</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A2->A4 -->
|
<!-- A2->A4 -->
|
||||||
<g id="edge2" class="edge">
|
<g id="edge2" class="edge">
|
||||||
<title>A2->A4</title>
|
<title>A2->A4</title>
|
||||||
<path fill="none" stroke="#000000" d="M251.1165,-507.5905C251.1165,-447.68 251.1165,-370.9429 251.1165,-330.266"/>
|
<path fill="none" stroke="#000000" d="M247.8254,-507.5905C247.6188,-447.68 247.3542,-370.9429 247.214,-330.266"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="251.1166,-507.942 255.1165,-513.942 251.1165,-519.942 247.1165,-513.942 251.1166,-507.942"/>
|
<polygon fill="#000000" stroke="#000000" points="247.8265,-507.9421 251.8473,-513.9282 247.868,-519.942 243.8473,-513.9559 247.8265,-507.9421"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="251.1165,-320.2627 255.6166,-330.2626 251.1165,-325.2627 251.1166,-330.2627 251.1166,-330.2627 251.1166,-330.2627 251.1165,-325.2627 246.6166,-330.2627 251.1165,-320.2627 251.1165,-320.2627"/>
|
<polygon fill="#000000" stroke="#000000" points="247.1795,-320.2627 251.714,-330.2471 247.1968,-325.2627 247.2141,-330.2626 247.2141,-330.2626 247.2141,-330.2626 247.1968,-325.2627 242.7141,-330.2782 247.1795,-320.2627 247.1795,-320.2627"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A8 -->
|
<!-- A8 -->
|
||||||
<g id="node9" class="node">
|
<g id="node9" class="node">
|
||||||
<title>A8</title>
|
<title>A8</title>
|
||||||
<polygon fill="none" stroke="#000000" points="265.1165,-100 265.1165,-132 443.1165,-132 443.1165,-100 265.1165,-100"/>
|
<polygon fill="none" stroke="#000000" points="261.1165,-100 261.1165,-132 439.1165,-132 439.1165,-100 261.1165,-100"/>
|
||||||
<text text-anchor="start" x="309.668" y="-113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStreamServer</text>
|
<text text-anchor="start" x="305.668" y="-113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStreamServer</text>
|
||||||
<polygon fill="none" stroke="#000000" points="265.1165,-68 265.1165,-100 443.1165,-100 443.1165,-68 265.1165,-68"/>
|
<polygon fill="none" stroke="#000000" points="261.1165,-68 261.1165,-100 439.1165,-100 439.1165,-68 261.1165,-68"/>
|
||||||
<text text-anchor="start" x="321.8875" y="-81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">create_remote</text>
|
<text text-anchor="start" x="317.8875" y="-81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">create_remote</text>
|
||||||
<polygon fill="none" stroke="#000000" points="265.1165,0 265.1165,-68 443.1165,-68 443.1165,0 265.1165,0"/>
|
<polygon fill="none" stroke="#000000" points="261.1165,0 261.1165,-68 439.1165,-68 439.1165,0 261.1165,0"/>
|
||||||
<text text-anchor="start" x="305.774" y="-49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>server_loop()</text>
|
<text text-anchor="start" x="301.774" y="-49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>server_loop()</text>
|
||||||
<text text-anchor="start" x="296.605" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>_async_forward()</text>
|
<text text-anchor="start" x="292.605" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>_async_forward()</text>
|
||||||
<text text-anchor="start" x="274.9255" y="-25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>publish_outstanding_mqtt()</text>
|
<text text-anchor="start" x="270.9255" y="-25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>publish_outstanding_mqtt()</text>
|
||||||
<text text-anchor="start" x="339.119" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
<text text-anchor="start" x="335.119" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A3->A8 -->
|
<!-- A3->A8 -->
|
||||||
<g id="edge8" class="edge">
|
<g id="edge8" class="edge">
|
||||||
<title>A3->A8</title>
|
<title>A3->A8</title>
|
||||||
<path fill="none" stroke="#000000" d="M368.9314,-271.6651C366.5869,-239.1181 362.7725,-186.1658 359.6014,-142.1431"/>
|
<path fill="none" stroke="#000000" d="M364.9314,-271.6651C362.5869,-239.1181 358.7725,-186.1658 355.6014,-142.1431"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="368.9485,-271.9044 373.3693,-277.6014 369.8108,-283.8733 365.39,-278.1763 368.9485,-271.9044"/>
|
<polygon fill="#000000" stroke="#000000" points="364.9485,-271.9044 369.3693,-277.6014 365.8108,-283.8733 361.39,-278.1763 364.9485,-271.9044"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="358.8731,-132.0321 364.08,-141.6829 359.2323,-137.0192 359.5916,-142.0063 359.5916,-142.0063 359.5916,-142.0063 359.2323,-137.0192 355.1032,-142.3296 358.8731,-132.0321 358.8731,-132.0321"/>
|
<polygon fill="#000000" stroke="#000000" points="354.8731,-132.0321 360.08,-141.6829 355.2323,-137.0192 355.5916,-142.0063 355.5916,-142.0063 355.5916,-142.0063 355.2323,-137.0192 351.1032,-142.3296 354.8731,-132.0321 354.8731,-132.0321"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A9 -->
|
<!-- A9 -->
|
||||||
<g id="node10" class="node">
|
<g id="node10" class="node">
|
||||||
<title>A9</title>
|
<title>A9</title>
|
||||||
<polygon fill="none" stroke="#000000" points="93.1165,-82 93.1165,-114 231.1165,-114 231.1165,-82 93.1165,-82"/>
|
<polygon fill="none" stroke="#000000" points="89.1165,-82 89.1165,-114 227.1165,-114 227.1165,-82 89.1165,-82"/>
|
||||||
<text text-anchor="start" x="119.6135" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStreamClient</text>
|
<text text-anchor="start" x="115.6135" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStreamClient</text>
|
||||||
<polygon fill="none" stroke="#000000" points="93.1165,-62 93.1165,-82 231.1165,-82 231.1165,-62 93.1165,-62"/>
|
<polygon fill="none" stroke="#000000" points="89.1165,-62 89.1165,-82 227.1165,-82 227.1165,-62 89.1165,-62"/>
|
||||||
<polygon fill="none" stroke="#000000" points="93.1165,-18 93.1165,-62 231.1165,-62 231.1165,-18 93.1165,-18"/>
|
<polygon fill="none" stroke="#000000" points="89.1165,-18 89.1165,-62 227.1165,-62 227.1165,-18 89.1165,-18"/>
|
||||||
<text text-anchor="start" x="115.9945" y="-43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>client_loop()</text>
|
<text text-anchor="start" x="111.9945" y="-43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>client_loop()</text>
|
||||||
<text text-anchor="start" x="102.9405" y="-31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>_async_forward())</text>
|
<text text-anchor="start" x="98.9405" y="-31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>_async_forward())</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A4->A9 -->
|
<!-- A4->A9 -->
|
||||||
<g id="edge10" class="edge">
|
<g id="edge10" class="edge">
|
||||||
<title>A4->A9</title>
|
<title>A4->A9</title>
|
||||||
<path fill="none" stroke="#000000" d="M244.2806,-283.8733C231.5204,-250.0372 203.5834,-175.9573 183.8383,-123.5994"/>
|
<path fill="none" stroke="#000000" d="M240.2806,-283.8733C227.5204,-250.0372 199.5834,-175.9573 179.8383,-123.5994"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="180.2523,-114.0904 187.9915,-121.8593 182.0166,-118.7688 183.781,-123.4472 183.781,-123.4472 183.781,-123.4472 182.0166,-118.7688 179.5704,-125.0351 180.2523,-114.0904 180.2523,-114.0904"/>
|
<polygon fill="#000000" stroke="#000000" points="176.2523,-114.0904 183.9915,-121.8593 178.0166,-118.7688 179.781,-123.4472 179.781,-123.4472 179.781,-123.4472 178.0166,-118.7688 175.5704,-125.0351 176.2523,-114.0904 176.2523,-114.0904"/>
|
||||||
<text text-anchor="middle" x="229.9759" y="-266.8956" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
|
<text text-anchor="middle" x="225.9759" y="-266.8956" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A5 -->
|
<!-- A5 -->
|
||||||
<g id="node6" class="node">
|
<g id="node6" class="node">
|
||||||
@@ -149,167 +149,167 @@
|
|||||||
<!-- A6 -->
|
<!-- A6 -->
|
||||||
<g id="node7" class="node">
|
<g id="node7" class="node">
|
||||||
<title>A6</title>
|
<title>A6</title>
|
||||||
<polygon fill="none" stroke="#000000" points="87.1165,-622 87.1165,-654 180.1165,-654 180.1165,-622 87.1165,-622"/>
|
<polygon fill="none" stroke="#000000" points="84.1165,-622 84.1165,-654 177.1165,-654 177.1165,-622 84.1165,-622"/>
|
||||||
<text text-anchor="start" x="105.2805" y="-635" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncIfcImpl</text>
|
<text text-anchor="start" x="102.2805" y="-635" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncIfcImpl</text>
|
||||||
<polygon fill="none" stroke="#000000" points="87.1165,-530 87.1165,-622 180.1165,-622 180.1165,-530 87.1165,-530"/>
|
<polygon fill="none" stroke="#000000" points="84.1165,-530 84.1165,-622 177.1165,-622 177.1165,-530 84.1165,-530"/>
|
||||||
<text text-anchor="start" x="96.6645" y="-603" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_fifo:ByteFifo</text>
|
<text text-anchor="start" x="93.6645" y="-603" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">fwd_fifo:ByteFifo</text>
|
||||||
<text text-anchor="start" x="100.5535" y="-591" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_fifo:ByteFifo</text>
|
<text text-anchor="start" x="97.5535" y="-591" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tx_fifo:ByteFifo</text>
|
||||||
<text text-anchor="start" x="100.2785" y="-579" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_fifo:ByteFifo</text>
|
<text text-anchor="start" x="97.2785" y="-579" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rx_fifo:ByteFifo</text>
|
||||||
<text text-anchor="start" x="99.7125" y="-567" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">conn_no:Count</text>
|
<text text-anchor="start" x="96.7125" y="-567" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">conn_no:Count</text>
|
||||||
<text text-anchor="start" x="115.83" y="-555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
|
<text text-anchor="start" x="112.83" y="-555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
|
||||||
<text text-anchor="start" x="109.166" y="-543" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout_cb</text>
|
<text text-anchor="start" x="106.166" y="-543" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout_cb</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A5->A6 -->
|
<!-- A5->A6 -->
|
||||||
<g id="edge3" class="edge">
|
<g id="edge3" class="edge">
|
||||||
<title>A5->A6</title>
|
<title>A5->A6</title>
|
||||||
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M166.8518,-752.0017C159.4629,-716.9571 152.1492,-682.2694 146.2303,-654.1971"/>
|
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M165.2976,-752.0017C157.592,-716.9571 149.9649,-682.2694 143.7924,-654.1971"/>
|
||||||
<polygon fill="none" stroke="#000000" points="163.4489,-752.8275 168.9367,-761.8903 170.2983,-751.3833 163.4489,-752.8275"/>
|
<polygon fill="none" stroke="#000000" points="161.906,-752.8753 167.4719,-761.8903 168.7427,-751.372 161.906,-752.8753"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A7 -->
|
<!-- A7 -->
|
||||||
<g id="node8" class="node">
|
<g id="node8" class="node">
|
||||||
<title>A7</title>
|
<title>A7</title>
|
||||||
<polygon fill="none" stroke="#000000" points="78.1165,-390 78.1165,-422 180.1165,-422 180.1165,-390 78.1165,-390"/>
|
<polygon fill="none" stroke="#000000" points="74.1165,-390 74.1165,-422 176.1165,-422 176.1165,-390 74.1165,-390"/>
|
||||||
<text text-anchor="start" x="99.3905" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStream</text>
|
<text text-anchor="start" x="95.3905" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AsyncStream</text>
|
||||||
<polygon fill="none" stroke="#000000" points="78.1165,-310 78.1165,-390 180.1165,-390 180.1165,-310 78.1165,-310"/>
|
<polygon fill="none" stroke="#000000" points="74.1165,-310 74.1165,-390 176.1165,-390 176.1165,-310 74.1165,-310"/>
|
||||||
<text text-anchor="start" x="114.6695" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">reader</text>
|
<text text-anchor="start" x="110.6695" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">reader</text>
|
||||||
<text text-anchor="start" x="116.8995" y="-359" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">writer</text>
|
<text text-anchor="start" x="112.8995" y="-359" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">writer</text>
|
||||||
<text text-anchor="start" x="119.1135" y="-347" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
|
<text text-anchor="start" x="115.1135" y="-347" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
|
||||||
<text text-anchor="start" x="114.6695" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">r_addr</text>
|
<text text-anchor="start" x="110.6695" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">r_addr</text>
|
||||||
<text text-anchor="start" x="115.2245" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">l_addr</text>
|
<text text-anchor="start" x="111.2245" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">l_addr</text>
|
||||||
<polygon fill="none" stroke="#000000" points="78.1165,-182 78.1165,-310 180.1165,-310 180.1165,-182 78.1165,-182"/>
|
<polygon fill="none" stroke="#000000" points="74.1165,-182 74.1165,-310 176.1165,-310 176.1165,-182 74.1165,-182"/>
|
||||||
<text text-anchor="start" x="100.7705" y="-279" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>loop</text>
|
<text text-anchor="start" x="96.7705" y="-279" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>loop</text>
|
||||||
<text text-anchor="start" x="116.8985" y="-267" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">disc()</text>
|
<text text-anchor="start" x="112.8985" y="-267" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">disc()</text>
|
||||||
<text text-anchor="start" x="114.119" y="-255" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
<text text-anchor="start" x="110.119" y="-255" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
||||||
<text text-anchor="start" x="109.6705" y="-243" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
|
<text text-anchor="start" x="105.6705" y="-243" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
|
||||||
<text text-anchor="start" x="94.387" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_read()</text>
|
<text text-anchor="start" x="90.387" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_read()</text>
|
||||||
<text text-anchor="start" x="93.8375" y="-207" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_write()</text>
|
<text text-anchor="start" x="89.8375" y="-207" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_write()</text>
|
||||||
<text text-anchor="start" x="87.7235" y="-195" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_forward()</text>
|
<text text-anchor="start" x="83.7235" y="-195" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">__async_forward()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A6->A7 -->
|
<!-- A6->A7 -->
|
||||||
<g id="edge4" class="edge">
|
<g id="edge4" class="edge">
|
||||||
<title>A6->A7</title>
|
<title>A6->A7</title>
|
||||||
<path fill="none" stroke="#000000" d="M132.1177,-519.5861C131.7106,-490.0737 131.229,-455.1552 130.7721,-422.0295"/>
|
<path fill="none" stroke="#000000" d="M128.868,-519.5861C128.3592,-490.0737 127.7571,-455.1552 127.186,-422.0295"/>
|
||||||
<polygon fill="none" stroke="#000000" points="128.6207,-519.837 132.2584,-529.7877 135.6201,-519.7404 128.6207,-519.837"/>
|
<polygon fill="none" stroke="#000000" points="125.3719,-519.8496 129.0439,-529.7877 132.3709,-519.7288 125.3719,-519.8496"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A7->A8 -->
|
<!-- A7->A8 -->
|
||||||
<g id="edge5" class="edge">
|
<g id="edge5" class="edge">
|
||||||
<title>A7->A8</title>
|
<title>A7->A8</title>
|
||||||
<path fill="none" stroke="#000000" d="M186.5777,-185.0204C187.4154,-184.0001 188.2616,-182.9929 189.1165,-182 210.4788,-157.1889 238.2469,-135.0276 264.8921,-116.8901"/>
|
<path fill="none" stroke="#000000" d="M182.5777,-185.0204C183.4154,-184.0001 184.2616,-182.9929 185.1165,-182 206.4788,-157.1889 234.2469,-135.0276 260.8921,-116.8901"/>
|
||||||
<polygon fill="none" stroke="#000000" points="183.6875,-183.0361 180.3256,-193.0834 189.2193,-187.3255 183.6875,-183.0361"/>
|
<polygon fill="none" stroke="#000000" points="179.6875,-183.0361 176.3256,-193.0834 185.2193,-187.3255 179.6875,-183.0361"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A7->A9 -->
|
<!-- A7->A9 -->
|
||||||
<g id="edge6" class="edge">
|
<g id="edge6" class="edge">
|
||||||
<title>A7->A9</title>
|
<title>A7->A9</title>
|
||||||
<path fill="none" stroke="#000000" d="M147.3214,-171.8077C150.1952,-151.2556 152.9992,-131.2022 155.3799,-114.1772"/>
|
<path fill="none" stroke="#000000" d="M143.3214,-171.8077C146.1952,-151.2556 148.9992,-131.2022 151.3799,-114.1772"/>
|
||||||
<polygon fill="none" stroke="#000000" points="143.8252,-171.5375 145.9065,-181.9259 150.7577,-172.5069 143.8252,-171.5375"/>
|
<polygon fill="none" stroke="#000000" points="139.8252,-171.5375 141.9065,-181.9259 146.7577,-172.5069 139.8252,-171.5375"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A10 -->
|
<!-- A10 -->
|
||||||
<g id="node11" class="node">
|
<g id="node11" class="node">
|
||||||
<title>A10</title>
|
<title>A10</title>
|
||||||
<polygon fill="none" stroke="#000000" points="319.1165,-668 319.1165,-700 410.1165,-700 410.1165,-668 319.1165,-668"/>
|
<polygon fill="none" stroke="#000000" points="318.1165,-668 318.1165,-700 409.1165,-700 409.1165,-668 318.1165,-668"/>
|
||||||
<text text-anchor="start" x="337.1115" y="-681" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SolarmanV5</text>
|
<text text-anchor="start" x="336.1115" y="-681" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SolarmanV5</text>
|
||||||
<polygon fill="none" stroke="#000000" points="319.1165,-552 319.1165,-668 410.1165,-668 410.1165,-552 319.1165,-552"/>
|
<polygon fill="none" stroke="#000000" points="318.1165,-552 318.1165,-668 409.1165,-668 409.1165,-552 318.1165,-552"/>
|
||||||
<text text-anchor="start" x="345.4395" y="-649" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">conn_no</text>
|
<text text-anchor="start" x="344.4395" y="-649" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">conn_no</text>
|
||||||
<text text-anchor="start" x="354.6135" y="-637" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
|
<text text-anchor="start" x="353.6135" y="-637" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">addr</text>
|
||||||
<text text-anchor="start" x="349.6145" y="-613" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">control</text>
|
<text text-anchor="start" x="348.6145" y="-613" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">control</text>
|
||||||
<text text-anchor="start" x="352.674" y="-601" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">serial</text>
|
<text text-anchor="start" x="351.674" y="-601" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">serial</text>
|
||||||
<text text-anchor="start" x="357.6725" y="-589" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snr</text>
|
<text text-anchor="start" x="356.6725" y="-589" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snr</text>
|
||||||
<text text-anchor="start" x="336.8265" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">db:InfosG3P</text>
|
<text text-anchor="start" x="335.8265" y="-577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">db:InfosG3P</text>
|
||||||
<text text-anchor="start" x="350.7285" y="-565" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">switch</text>
|
<text text-anchor="start" x="349.7285" y="-565" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">switch</text>
|
||||||
<polygon fill="none" stroke="#000000" points="319.1165,-484 319.1165,-552 410.1165,-552 410.1165,-484 319.1165,-484"/>
|
<polygon fill="none" stroke="#000000" points="318.1165,-484 318.1165,-552 409.1165,-552 409.1165,-484 318.1165,-484"/>
|
||||||
<text text-anchor="start" x="329.057" y="-533" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_unknown()</text>
|
<text text-anchor="start" x="328.057" y="-533" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">msg_unknown()</text>
|
||||||
<text text-anchor="start" x="345.1705" y="-509" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
|
<text text-anchor="start" x="344.1705" y="-509" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">healthy()</text>
|
||||||
<text text-anchor="start" x="349.619" y="-497" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
<text text-anchor="start" x="348.619" y="-497" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A10->A3 -->
|
<!-- A10->A3 -->
|
||||||
<g id="edge7" class="edge">
|
<g id="edge7" class="edge">
|
||||||
<title>A10->A3</title>
|
<title>A10->A3</title>
|
||||||
<path fill="none" stroke="#000000" d="M366.9763,-473.5237C368.222,-421.9136 369.5798,-365.6622 370.389,-332.138"/>
|
<path fill="none" stroke="#000000" d="M364.7507,-473.5237C365.4625,-421.9136 366.2384,-365.6622 366.7008,-332.138"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="366.733,-483.6023 362.4757,-473.4966 366.8537,-478.6038 366.9744,-473.6052 366.9744,-473.6052 366.9744,-473.6052 366.8537,-478.6038 371.4731,-473.7139 366.733,-483.6023 366.733,-483.6023"/>
|
<polygon fill="#000000" stroke="#000000" points="364.6116,-483.6023 360.2501,-473.5412 364.6806,-478.6028 364.7497,-473.6033 364.7497,-473.6033 364.7497,-473.6033 364.6806,-478.6028 369.2492,-473.6654 364.6116,-483.6023 364.6116,-483.6023"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="370.3911,-332.0495 366.5371,-325.9547 370.6807,-320.053 374.5347,-326.1478 370.3911,-332.0495"/>
|
<polygon fill="#000000" stroke="#000000" points="366.7019,-332.0519 362.7851,-325.9973 366.8675,-320.053 370.7843,-326.1077 366.7019,-332.0519"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A10->A4 -->
|
<!-- A10->A4 -->
|
||||||
<g id="edge9" class="edge">
|
<g id="edge9" class="edge">
|
||||||
<title>A10->A4</title>
|
<title>A10->A4</title>
|
||||||
<path fill="none" stroke="#000000" d="M318.2339,-474.2481C295.3796,-415.5956 270.1211,-350.7729 258.151,-320.053"/>
|
<path fill="none" stroke="#000000" d="M316.0157,-474.2481C292.5547,-415.5956 266.6257,-350.7729 254.3377,-320.053"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="321.8788,-483.6023 314.0551,-475.9185 320.0634,-478.9435 318.2481,-474.2847 318.2481,-474.2847 318.2481,-474.2847 320.0634,-478.9435 322.441,-472.6508 321.8788,-483.6023 321.8788,-483.6023"/>
|
<polygon fill="#000000" stroke="#000000" points="319.7574,-483.6023 311.8653,-475.9888 317.9004,-478.9599 316.0435,-474.3175 316.0435,-474.3175 316.0435,-474.3175 317.9004,-478.9599 320.2216,-472.6462 319.7574,-483.6023 319.7574,-483.6023"/>
|
||||||
<text text-anchor="middle" x="272.6076" y="-330.8736" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
|
<text text-anchor="middle" x="268.9174" y="-330.7436" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A12 -->
|
<!-- A12 -->
|
||||||
<g id="node13" class="node">
|
<g id="node13" class="node">
|
||||||
<title>A12</title>
|
<title>A12</title>
|
||||||
<polygon fill="none" stroke="#000000" points="442.1165,-318 442.1165,-350 509.1165,-350 509.1165,-318 442.1165,-318"/>
|
<polygon fill="none" stroke="#000000" points="434.1165,-336 434.1165,-368 529.1165,-368 529.1165,-336 434.1165,-336"/>
|
||||||
<text text-anchor="start" x="454.775" y="-331" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InfosG3P</text>
|
<text text-anchor="start" x="460.775" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">InfosG3P</text>
|
||||||
<polygon fill="none" stroke="#000000" points="442.1165,-298 442.1165,-318 509.1165,-318 509.1165,-298 442.1165,-298"/>
|
<polygon fill="none" stroke="#000000" points="434.1165,-304 434.1165,-336 529.1165,-336 529.1165,-304 434.1165,-304"/>
|
||||||
<polygon fill="none" stroke="#000000" points="442.1165,-254 442.1165,-298 509.1165,-298 509.1165,-254 442.1165,-254"/>
|
<text text-anchor="start" x="443.829" y="-317" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">client_mode:bool</text>
|
||||||
<text text-anchor="start" x="452.0005" y="-279" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_confs()</text>
|
<polygon fill="none" stroke="#000000" points="434.1165,-236 434.1165,-304 529.1165,-304 529.1165,-236 434.1165,-236"/>
|
||||||
<text text-anchor="start" x="459.7845" y="-267" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">parse()</text>
|
<text text-anchor="start" x="458.0005" y="-285" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_confs()</text>
|
||||||
|
<text text-anchor="start" x="465.7845" y="-273" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">parse()</text>
|
||||||
|
<text text-anchor="start" x="469.3985" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">calc()</text>
|
||||||
|
<text text-anchor="start" x="467.73" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">build()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A10->A12 -->
|
<!-- A10->A12 -->
|
||||||
<g id="edge12" class="edge">
|
<g id="edge12" class="edge">
|
||||||
<title>A10->A12</title>
|
<title>A10->A12</title>
|
||||||
<path fill="none" stroke="#000000" d="M405.6067,-483.6023C421.7045,-441.5449 439.4849,-395.0916 453.0329,-359.6958"/>
|
<path fill="none" stroke="#000000" d="M407.2231,-483.6023C421.5819,-448.3138 437.2,-409.9305 450.3629,-377.5809"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="456.737,-350.0185 457.3649,-360.9664 454.9496,-354.6881 453.1623,-359.3577 453.1623,-359.3577 453.1623,-359.3577 454.9496,-354.6881 448.9596,-357.7491 456.737,-350.0185 456.737,-350.0185"/>
|
<polygon fill="#000000" stroke="#000000" points="454.1856,-368.1861 454.5848,-379.1447 452.3011,-372.8174 450.4166,-377.4487 450.4166,-377.4487 450.4166,-377.4487 452.3011,-372.8174 446.2485,-375.7526 454.1856,-368.1861 454.1856,-368.1861"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A11 -->
|
<!-- A11 -->
|
||||||
<g id="node12" class="node">
|
<g id="node12" class="node">
|
||||||
<title>A11</title>
|
<title>A11</title>
|
||||||
<polygon fill="none" stroke="#000000" points="428.1165,-680 428.1165,-712 531.1165,-712 531.1165,-680 428.1165,-680"/>
|
<polygon fill="none" stroke="#000000" points="430.1165,-680 430.1165,-712 533.1165,-712 533.1165,-680 430.1165,-680"/>
|
||||||
<text text-anchor="start" x="468.7785" y="-693" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Infos</text>
|
<text text-anchor="start" x="470.7785" y="-693" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Infos</text>
|
||||||
<polygon fill="none" stroke="#000000" points="428.1165,-624 428.1165,-680 531.1165,-680 531.1165,-624 428.1165,-624"/>
|
<polygon fill="none" stroke="#000000" points="430.1165,-624 430.1165,-680 533.1165,-680 533.1165,-624 430.1165,-624"/>
|
||||||
<text text-anchor="start" x="471.558" y="-661" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stat</text>
|
<text text-anchor="start" x="473.558" y="-661" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stat</text>
|
||||||
<text text-anchor="start" x="447.1025" y="-649" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">new_stat_data</text>
|
<text text-anchor="start" x="449.1025" y="-649" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">new_stat_data</text>
|
||||||
<text text-anchor="start" x="460.72" y="-637" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">info_dev</text>
|
<text text-anchor="start" x="462.72" y="-637" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">info_dev</text>
|
||||||
<polygon fill="none" stroke="#000000" points="428.1165,-472 428.1165,-624 531.1165,-624 531.1165,-472 428.1165,-472"/>
|
<polygon fill="none" stroke="#000000" points="430.1165,-472 430.1165,-624 533.1165,-624 533.1165,-472 430.1165,-472"/>
|
||||||
<text text-anchor="start" x="455.452" y="-605" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">static_init()</text>
|
<text text-anchor="start" x="457.452" y="-605" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">static_init()</text>
|
||||||
<text text-anchor="start" x="453.501" y="-593" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dev_value()</text>
|
<text text-anchor="start" x="455.501" y="-593" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dev_value()</text>
|
||||||
<text text-anchor="start" x="450.447" y="-581" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter()</text>
|
<text text-anchor="start" x="452.447" y="-581" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter()</text>
|
||||||
<text text-anchor="start" x="448.777" y="-569" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dec_counter()</text>
|
<text text-anchor="start" x="450.777" y="-569" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dec_counter()</text>
|
||||||
<text text-anchor="start" x="446.8265" y="-557" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_proxy_conf</text>
|
<text text-anchor="start" x="448.8265" y="-557" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_proxy_conf</text>
|
||||||
<text text-anchor="start" x="461.8295" y="-545" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_conf</text>
|
<text text-anchor="start" x="463.8295" y="-545" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_conf</text>
|
||||||
<text text-anchor="start" x="454.6105" y="-533" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_remove</text>
|
<text text-anchor="start" x="456.6105" y="-533" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ha_remove</text>
|
||||||
<text text-anchor="start" x="455.991" y="-521" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">update_db</text>
|
<text text-anchor="start" x="457.991" y="-521" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">update_db</text>
|
||||||
<text text-anchor="start" x="440.1535" y="-509" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">set_db_def_value</text>
|
<text text-anchor="start" x="442.1535" y="-509" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">set_db_def_value</text>
|
||||||
<text text-anchor="start" x="449.602" y="-497" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">get_db_value</text>
|
<text text-anchor="start" x="451.602" y="-497" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">get_db_value</text>
|
||||||
<text text-anchor="start" x="437.939" y="-485" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ignore_this_device</text>
|
<text text-anchor="start" x="439.939" y="-485" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ignore_this_device</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A11->A12 -->
|
<!-- A11->A12 -->
|
||||||
<g id="edge11" class="edge">
|
<g id="edge11" class="edge">
|
||||||
<title>A11->A12</title>
|
<title>A11->A12</title>
|
||||||
<path fill="none" stroke="#000000" d="M477.322,-461.8987C476.7744,-422.1971 476.206,-380.9898 475.7834,-350.352"/>
|
<path fill="none" stroke="#000000" d="M481.1165,-461.9134C481.1165,-429.4373 481.1165,-395.9527 481.1165,-368.0691"/>
|
||||||
<polygon fill="none" stroke="#000000" points="473.823,-462.0018 477.4607,-471.9525 480.8223,-461.9052 473.823,-462.0018"/>
|
<polygon fill="none" stroke="#000000" points="477.6166,-461.9525 481.1165,-471.9525 484.6166,-461.9526 477.6166,-461.9525"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A13 -->
|
<!-- A13 -->
|
||||||
<g id="node14" class="node">
|
<g id="node14" class="node">
|
||||||
<title>A13</title>
|
<title>A13</title>
|
||||||
<polygon fill="none" stroke="#000000" points="171.1165,-1500 171.1165,-1532 322.1165,-1532 322.1165,-1500 171.1165,-1500"/>
|
<polygon fill="none" stroke="#000000" points="172.1165,-1464 172.1165,-1496 321.1165,-1496 321.1165,-1464 172.1165,-1464"/>
|
||||||
<text text-anchor="start" x="226.334" y="-1513" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Message</text>
|
<text text-anchor="start" x="226.334" y="-1477" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Message</text>
|
||||||
<polygon fill="none" stroke="#000000" points="171.1165,-1276 171.1165,-1500 322.1165,-1500 322.1165,-1276 171.1165,-1276"/>
|
<polygon fill="none" stroke="#000000" points="172.1165,-1240 172.1165,-1464 321.1165,-1464 321.1165,-1240 172.1165,-1240"/>
|
||||||
<text text-anchor="start" x="209.943" y="-1481" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">server_side:bool</text>
|
<text text-anchor="start" x="209.943" y="-1445" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">server_side:bool</text>
|
||||||
<text text-anchor="start" x="220.5005" y="-1469" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb:Modbus</text>
|
<text text-anchor="start" x="220.5005" y="-1433" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb:Modbus</text>
|
||||||
<text text-anchor="start" x="221.335" y="-1457" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ifc:AsyncIfc</text>
|
<text text-anchor="start" x="221.335" y="-1421" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ifc:AsyncIfc</text>
|
||||||
<text text-anchor="start" x="228.83" y="-1445" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
|
<text text-anchor="start" x="228.83" y="-1409" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">node_id</text>
|
||||||
<text text-anchor="start" x="207.1595" y="-1433" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_valid:bool</text>
|
<text text-anchor="start" x="207.1595" y="-1397" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_valid:bool</text>
|
||||||
<text text-anchor="start" x="221.6065" y="-1421" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_len</text>
|
<text text-anchor="start" x="221.6065" y="-1385" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">header_len</text>
|
||||||
<text text-anchor="start" x="227.4405" y="-1409" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">data_len</text>
|
<text text-anchor="start" x="227.4405" y="-1373" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">data_len</text>
|
||||||
<text text-anchor="start" x="224.941" y="-1397" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unique_id</text>
|
<text text-anchor="start" x="224.941" y="-1361" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unique_id</text>
|
||||||
<text text-anchor="start" x="218.8315" y="-1385" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">sug_area:str</text>
|
<text text-anchor="start" x="218.8315" y="-1349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">sug_area:str</text>
|
||||||
<text text-anchor="start" x="215.7725" y="-1373" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">new_data:dict</text>
|
<text text-anchor="start" x="215.7725" y="-1337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">new_data:dict</text>
|
||||||
<text text-anchor="start" x="222.7165" y="-1361" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">state:State</text>
|
<text text-anchor="start" x="222.7165" y="-1325" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">state:State</text>
|
||||||
<text text-anchor="start" x="196.321" y="-1349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">shutdown_started:bool</text>
|
<text text-anchor="start" x="196.321" y="-1313" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">shutdown_started:bool</text>
|
||||||
<text text-anchor="start" x="215.501" y="-1337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">modbus_elms</text>
|
<text text-anchor="start" x="215.501" y="-1301" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">modbus_elms</text>
|
||||||
<text text-anchor="start" x="211.6235" y="-1325" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_timer:Timer</text>
|
<text text-anchor="start" x="211.6235" y="-1289" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_timer:Timer</text>
|
||||||
<text text-anchor="start" x="220.5015" y="-1313" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_timeout</text>
|
<text text-anchor="start" x="220.5015" y="-1277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_timeout</text>
|
||||||
<text text-anchor="start" x="209.669" y="-1301" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_first_timeout</text>
|
<text text-anchor="start" x="209.669" y="-1265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mb_first_timeout</text>
|
||||||
<text text-anchor="start" x="200.7705" y="-1289" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">modbus_polling:bool</text>
|
<text text-anchor="start" x="200.7705" y="-1253" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">modbus_polling:bool</text>
|
||||||
<polygon fill="none" stroke="#000000" points="171.1165,-1136 171.1165,-1276 322.1165,-1276 322.1165,-1136 171.1165,-1136"/>
|
<polygon fill="none" stroke="#000000" points="172.1165,-1136 172.1165,-1240 321.1165,-1240 321.1165,-1136 172.1165,-1136"/>
|
||||||
<text text-anchor="start" x="185.4975" y="-1257" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_set_config_parms(inv:dict)</text>
|
<text text-anchor="start" x="195.501" y="-1221" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_set_mqtt_timestamp()</text>
|
||||||
<text text-anchor="start" x="181.053" y="-1245" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_set_mqtt_timestamp(key, ts)</text>
|
<text text-anchor="start" x="224.1165" y="-1209" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_timeout()</text>
|
||||||
<text text-anchor="start" x="224.1165" y="-1233" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_timeout()</text>
|
<text text-anchor="start" x="196.884" y="-1197" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_send_modbus_cmd()</text>
|
||||||
<text text-anchor="start" x="196.884" y="-1221" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_send_modbus_cmd()</text>
|
<text text-anchor="start" x="181.876" y="-1185" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async> end_modbus_cmd()</text>
|
||||||
<text text-anchor="start" x="180.7655" y="-1209" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"><async>send_modbus_cmd()</text>
|
|
||||||
<text text-anchor="start" x="195.769" y="-1197" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_send_modbus_scan()</text>
|
|
||||||
<text text-anchor="start" x="194.1045" y="-1185" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_dump_modbus_scan()</text>
|
|
||||||
<text text-anchor="start" x="231.619" y="-1173" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
<text text-anchor="start" x="231.619" y="-1173" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
||||||
<text text-anchor="start" x="217.447" y="-1161" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter()</text>
|
<text text-anchor="start" x="217.447" y="-1161" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">inc_counter()</text>
|
||||||
<text text-anchor="start" x="215.777" y="-1149" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dec_counter()</text>
|
<text text-anchor="start" x="215.777" y="-1149" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dec_counter()</text>
|
||||||
@@ -317,51 +317,51 @@
|
|||||||
<!-- A13->A5 -->
|
<!-- A13->A5 -->
|
||||||
<g id="edge13" class="edge">
|
<g id="edge13" class="edge">
|
||||||
<title>A13->A5</title>
|
<title>A13->A5</title>
|
||||||
<path fill="none" stroke="#000000" d="M225.3407,-1135.9056C223.9472,-1122.6185 222.5496,-1109.2927 221.1714,-1096.1518"/>
|
<path fill="none" stroke="#000000" d="M226.347,-1135.7758C224.8967,-1122.5547 223.4359,-1109.2373 221.9911,-1096.0662"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="220.1217,-1086.1426 225.6403,-1095.6186 220.6433,-1091.1153 221.1648,-1096.0881 221.1648,-1096.0881 221.1648,-1096.0881 220.6433,-1091.1153 216.6894,-1096.5575 220.1217,-1086.1426 220.1217,-1086.1426"/>
|
<polygon fill="#000000" stroke="#000000" points="220.8898,-1086.0268 226.4535,-1095.4764 221.4351,-1090.997 221.9803,-1095.9672 221.9803,-1095.9672 221.9803,-1095.9672 221.4351,-1090.997 217.5072,-1096.4579 220.8898,-1086.0268 220.8898,-1086.0268"/>
|
||||||
<text text-anchor="middle" x="215.0438" y="-1115.7599" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
|
<text text-anchor="middle" x="215.9686" y="-1115.6794" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">use</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A13->A10 -->
|
<!-- A13->A10 -->
|
||||||
<g id="edge16" class="edge">
|
<g id="edge16" class="edge">
|
||||||
<title>A13->A10</title>
|
<title>A13->A10</title>
|
||||||
<path fill="none" stroke="#000000" d="M279.2341,-1125.7521C301.232,-987.426 329.217,-811.4525 346.9052,-700.227"/>
|
<path fill="none" stroke="#000000" d="M276.8964,-1125.5329C298.8204,-989.8666 327.5006,-812.3923 345.6214,-700.2604"/>
|
||||||
<polygon fill="none" stroke="#000000" points="275.7749,-1125.2195 277.6608,-1135.6451 282.688,-1126.319 275.7749,-1125.2195"/>
|
<polygon fill="none" stroke="#000000" points="273.4037,-1125.2075 275.2634,-1135.6378 280.314,-1126.3243 273.4037,-1125.2075"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A14->A13 -->
|
<!-- A14->A13 -->
|
||||||
<g id="edge15" class="edge">
|
<g id="edge15" class="edge">
|
||||||
<title>A14->A13</title>
|
<title>A14->A13</title>
|
||||||
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M203.9026,-1649.7603C208.2145,-1617.5066 213.8545,-1575.3194 219.6017,-1532.3307"/>
|
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M204.2906,-1613.8004C208.8542,-1581.3079 214.8136,-1538.8764 220.7975,-1496.2713"/>
|
||||||
<polygon fill="none" stroke="#000000" points="200.4068,-1649.4961 202.5508,-1659.8717 207.3451,-1650.4237 200.4068,-1649.4961"/>
|
<polygon fill="none" stroke="#000000" points="200.7847,-1613.5986 202.8597,-1623.9883 207.7166,-1614.5723 200.7847,-1613.5986"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- A15 -->
|
<!-- A15 -->
|
||||||
<g id="node16" class="node">
|
<g id="node16" class="node">
|
||||||
<title>A15</title>
|
<title>A15</title>
|
||||||
<polygon fill="none" stroke="#000000" points="260.1165,-1802 260.1165,-1834 335.1165,-1834 335.1165,-1802 260.1165,-1802"/>
|
<polygon fill="none" stroke="#000000" points="260.1165,-1766 260.1165,-1798 335.1165,-1798 335.1165,-1766 260.1165,-1766"/>
|
||||||
<text text-anchor="start" x="279.834" y="-1815" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Modbus</text>
|
<text text-anchor="start" x="279.834" y="-1779" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Modbus</text>
|
||||||
<polygon fill="none" stroke="#000000" points="260.1165,-1650 260.1165,-1802 335.1165,-1802 335.1165,-1650 260.1165,-1650"/>
|
<polygon fill="none" stroke="#000000" points="260.1165,-1614 260.1165,-1766 335.1165,-1766 335.1165,-1614 260.1165,-1614"/>
|
||||||
<text text-anchor="start" x="289.278" y="-1783" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">que</text>
|
<text text-anchor="start" x="289.278" y="-1747" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">que</text>
|
||||||
<text text-anchor="start" x="270.1065" y="-1759" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snd_handler</text>
|
<text text-anchor="start" x="270.1065" y="-1723" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">snd_handler</text>
|
||||||
<text text-anchor="start" x="271.2215" y="-1747" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rsp_handler</text>
|
<text text-anchor="start" x="271.2215" y="-1711" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">rsp_handler</text>
|
||||||
<text text-anchor="start" x="281.225" y="-1735" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout</text>
|
<text text-anchor="start" x="281.225" y="-1699" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout</text>
|
||||||
<text text-anchor="start" x="271.506" y="-1723" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">max_retires</text>
|
<text text-anchor="start" x="271.506" y="-1687" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">max_retires</text>
|
||||||
<text text-anchor="start" x="279.5585" y="-1711" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">last_xxx</text>
|
<text text-anchor="start" x="279.5585" y="-1675" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">last_xxx</text>
|
||||||
<text text-anchor="start" x="291.508" y="-1699" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">err</text>
|
<text text-anchor="start" x="291.508" y="-1663" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">err</text>
|
||||||
<text text-anchor="start" x="278.17" y="-1687" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">retry_cnt</text>
|
<text text-anchor="start" x="278.17" y="-1651" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">retry_cnt</text>
|
||||||
<text text-anchor="start" x="276.4955" y="-1675" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">req_pend</text>
|
<text text-anchor="start" x="276.4955" y="-1639" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">req_pend</text>
|
||||||
<text text-anchor="start" x="290.953" y="-1663" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tim</text>
|
<text text-anchor="start" x="290.953" y="-1627" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tim</text>
|
||||||
<polygon fill="none" stroke="#000000" points="260.1165,-1582 260.1165,-1650 335.1165,-1650 335.1165,-1582 260.1165,-1582"/>
|
<polygon fill="none" stroke="#000000" points="260.1165,-1546 260.1165,-1614 335.1165,-1614 335.1165,-1546 260.1165,-1546"/>
|
||||||
<text text-anchor="start" x="271.5065" y="-1631" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">build_msg()</text>
|
<text text-anchor="start" x="271.5065" y="-1595" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">build_msg()</text>
|
||||||
<text text-anchor="start" x="274.8405" y="-1619" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_req()</text>
|
<text text-anchor="start" x="274.8405" y="-1583" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_req()</text>
|
||||||
<text text-anchor="start" x="272.3405" y="-1607" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_resp()</text>
|
<text text-anchor="start" x="272.3405" y="-1571" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">recv_resp()</text>
|
||||||
<text text-anchor="start" x="282.619" y="-1595" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
<text text-anchor="start" x="282.619" y="-1559" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">close()</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- A15->A13 -->
|
<!-- A15->A13 -->
|
||||||
<g id="edge17" class="edge">
|
<g id="edge17" class="edge">
|
||||||
<title>A15->A13</title>
|
<title>A15->A13</title>
|
||||||
<path fill="none" stroke="#000000" d="M278.5189,-1571.6179C276.7567,-1558.6948 274.9469,-1545.4228 273.1268,-1532.0754"/>
|
<path fill="none" stroke="#000000" d="M277.6392,-1536.041C275.7633,-1522.9463 273.8413,-1509.5297 271.9169,-1496.0971"/>
|
||||||
<polygon fill="#000000" stroke="#000000" points="279.9213,-1581.9021 274.1114,-1572.6018 279.2457,-1576.9479 278.5701,-1571.9938 278.5701,-1571.9938 278.5701,-1571.9938 279.2457,-1576.9479 283.0288,-1571.3857 279.9213,-1581.9021 279.9213,-1581.9021"/>
|
<polygon fill="#000000" stroke="#000000" points="279.064,-1545.9867 273.1913,-1536.726 278.3549,-1541.0373 277.6458,-1536.0878 277.6458,-1536.0878 277.6458,-1536.0878 278.3549,-1541.0373 282.1004,-1535.4496 279.064,-1545.9867 279.064,-1545.9867"/>
|
||||||
<text text-anchor="middle" x="283.9507" y="-1545.8933" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
|
<text text-anchor="middle" x="282.8544" y="-1509.8414" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">has</text>
|
||||||
<text text-anchor="middle" x="269.0974" y="-1562.0841" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
|
<text text-anchor="middle" x="268.1266" y="-1526.2424" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">0..1</text>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
@@ -26,11 +26,11 @@
|
|||||||
[remote:StreamPtr]0..1->[AsyncStreamClient]
|
[remote:StreamPtr]0..1->[AsyncStreamClient]
|
||||||
|
|
||||||
[Infos|stat;new_stat_data;info_dev|static_init();dev_value();inc_counter();dec_counter();ha_proxy_conf;ha_conf;ha_remove;update_db;set_db_def_value;get_db_value;ignore_this_device]
|
[Infos|stat;new_stat_data;info_dev|static_init();dev_value();inc_counter();dec_counter();ha_proxy_conf;ha_conf;ha_remove;update_db;set_db_def_value;get_db_value;ignore_this_device]
|
||||||
[Infos]^[InfosG3P||ha_confs();parse()]
|
[Infos]^[InfosG3P|client_mode:bool|ha_confs();parse();calc();build()]
|
||||||
|
|
||||||
[SolarmanV5]->[InfosG3P]
|
[SolarmanV5]->[InfosG3P]
|
||||||
|
|
||||||
[Message|server_side:bool;mb:Modbus;ifc:AsyncIfc;node_id;header_valid:bool;header_len;data_len;unique_id;sug_area:str;new_data:dict;state:State;shutdown_started:bool;modbus_elms;mb_timer:Timer;mb_timeout;mb_first_timeout;modbus_polling:bool|_set_config_parms(inv:dict);_set_mqtt_timestamp(key, ts);_timeout();_send_modbus_cmd();<async>send_modbus_cmd();_send_modbus_scan();_dump_modbus_scan();close();inc_counter();dec_counter()]
|
[Message|server_side:bool;mb:Modbus;ifc:AsyncIfc;node_id;header_valid:bool;header_len;data_len;unique_id;sug_area:str;new_data:dict;state:State;shutdown_started:bool;modbus_elms;mb_timer:Timer;mb_timeout;mb_first_timeout;modbus_polling:bool|_set_mqtt_timestamp();_timeout();_send_modbus_cmd();<async> end_modbus_cmd();close();inc_counter();dec_counter()]
|
||||||
[Message]use->[<<AsyncIfc>>]
|
[Message]use->[<<AsyncIfc>>]
|
||||||
|
|
||||||
[<<ProtocolIfc>>|_registry|close()]
|
[<<ProtocolIfc>>|_registry|close()]
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
flake8
|
flake8==7.2.0
|
||||||
pytest
|
pytest==8.3.5
|
||||||
pytest-asyncio
|
pytest-asyncio==0.26.0
|
||||||
pytest-cov
|
pytest-cov==6.1.0
|
||||||
python-dotenv
|
python-dotenv==1.1.0
|
||||||
mock
|
mock==5.2.0
|
||||||
coverage
|
coverage==7.8.0
|
||||||
jinja2-cli
|
jinja2-cli==0.8.2
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
aiomqtt==2.3.0
|
aiomqtt==2.3.1
|
||||||
schema==0.7.7
|
schema==0.7.7
|
||||||
aiocron==2.1
|
aiocron==2.1
|
||||||
aiohttp==3.11.14
|
aiohttp==3.11.16
|
||||||
@@ -84,7 +84,10 @@ async def test_close_cb():
|
|||||||
return 0.1
|
return 0.1
|
||||||
def closed():
|
def closed():
|
||||||
nonlocal cnt
|
nonlocal cnt
|
||||||
nonlocal ifc
|
# The callback will be called after the AsyncStreamServer
|
||||||
|
# constructer has finished and so ifc must be defined in the
|
||||||
|
# upper scope
|
||||||
|
assert "ifc" in locals()
|
||||||
ifc.close() # clears the closed callback
|
ifc.close() # clears the closed callback
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
@@ -113,7 +116,6 @@ async def test_close_cb():
|
|||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_read():
|
async def test_read():
|
||||||
global test
|
|
||||||
assert asyncio.get_running_loop()
|
assert asyncio.get_running_loop()
|
||||||
reader = FakeReader()
|
reader = FakeReader()
|
||||||
reader.test = FakeReader.RD_TEST_13_BYTES
|
reader.test = FakeReader.RD_TEST_13_BYTES
|
||||||
@@ -124,11 +126,13 @@ async def test_read():
|
|||||||
return 1
|
return 1
|
||||||
def closed():
|
def closed():
|
||||||
nonlocal cnt
|
nonlocal cnt
|
||||||
nonlocal ifc
|
# The callback will be called after the AsyncStreamServer
|
||||||
|
# constructer has finished and so ifc must be defined in the
|
||||||
|
# upper scope
|
||||||
|
assert "ifc" in locals()
|
||||||
ifc.close() # clears the closed callback
|
ifc.close() # clears the closed callback
|
||||||
cnt += 1
|
cnt += 1
|
||||||
def app_read():
|
def app_read():
|
||||||
nonlocal ifc
|
|
||||||
ifc.proc_start -= 3
|
ifc.proc_start -= 3
|
||||||
return 0.01 # async wait of 0.01
|
return 0.01 # async wait of 0.01
|
||||||
cnt = 0
|
cnt = 0
|
||||||
@@ -151,7 +155,6 @@ async def test_read():
|
|||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_write():
|
async def test_write():
|
||||||
global test
|
|
||||||
assert asyncio.get_running_loop()
|
assert asyncio.get_running_loop()
|
||||||
reader = FakeReader()
|
reader = FakeReader()
|
||||||
reader.test = FakeReader.RD_TEST_13_BYTES
|
reader.test = FakeReader.RD_TEST_13_BYTES
|
||||||
@@ -162,11 +165,13 @@ async def test_write():
|
|||||||
return 1
|
return 1
|
||||||
def closed():
|
def closed():
|
||||||
nonlocal cnt
|
nonlocal cnt
|
||||||
nonlocal ifc
|
# The callback will be called after the AsyncStreamServer
|
||||||
|
# constructer has finished and so ifc must be defined in the
|
||||||
|
# upper scope
|
||||||
|
assert "ifc" in locals()
|
||||||
ifc.close() # clears the closed callback
|
ifc.close() # clears the closed callback
|
||||||
cnt += 1
|
cnt += 1
|
||||||
def app_read():
|
def app_read():
|
||||||
nonlocal ifc
|
|
||||||
ifc.proc_start -= 3
|
ifc.proc_start -= 3
|
||||||
return 0.01 # async wait of 0.01
|
return 0.01 # async wait of 0.01
|
||||||
|
|
||||||
@@ -203,7 +208,6 @@ async def test_publ_mqtt_cb():
|
|||||||
return 0.1
|
return 0.1
|
||||||
async def publ_mqtt():
|
async def publ_mqtt():
|
||||||
nonlocal cnt
|
nonlocal cnt
|
||||||
nonlocal ifc
|
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
cnt = 0
|
cnt = 0
|
||||||
@@ -233,7 +237,10 @@ async def test_create_remote_cb():
|
|||||||
return 0.1
|
return 0.1
|
||||||
async def create_remote():
|
async def create_remote():
|
||||||
nonlocal cnt
|
nonlocal cnt
|
||||||
nonlocal ifc
|
# The callback will be called after the AsyncStreamServer
|
||||||
|
# constructer has finished and so ifc must be defined in the
|
||||||
|
# upper scope
|
||||||
|
assert "ifc" in locals()
|
||||||
ifc.close() # clears the closed callback
|
ifc.close() # clears the closed callback
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
@@ -255,7 +262,6 @@ async def test_create_remote_cb():
|
|||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_sw_exception():
|
async def test_sw_exception():
|
||||||
global test
|
|
||||||
assert asyncio.get_running_loop()
|
assert asyncio.get_running_loop()
|
||||||
reader = FakeReader()
|
reader = FakeReader()
|
||||||
reader.test = FakeReader.RD_TEST_SW_EXCEPT
|
reader.test = FakeReader.RD_TEST_SW_EXCEPT
|
||||||
@@ -266,7 +272,10 @@ async def test_sw_exception():
|
|||||||
return 1
|
return 1
|
||||||
def closed():
|
def closed():
|
||||||
nonlocal cnt
|
nonlocal cnt
|
||||||
nonlocal ifc
|
# The callback will be called after the AsyncStreamServer
|
||||||
|
# constructer has finished and so ifc must be defined in the
|
||||||
|
# upper scope
|
||||||
|
assert "ifc" in locals()
|
||||||
ifc.close() # clears the closed callback
|
ifc.close() # clears the closed callback
|
||||||
cnt += 1
|
cnt += 1
|
||||||
cnt = 0
|
cnt = 0
|
||||||
@@ -285,7 +294,6 @@ async def test_sw_exception():
|
|||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_os_error():
|
async def test_os_error():
|
||||||
global test
|
|
||||||
assert asyncio.get_running_loop()
|
assert asyncio.get_running_loop()
|
||||||
reader = FakeReader()
|
reader = FakeReader()
|
||||||
reader.test = FakeReader.RD_TEST_OS_ERROR
|
reader.test = FakeReader.RD_TEST_OS_ERROR
|
||||||
@@ -293,12 +301,11 @@ async def test_os_error():
|
|||||||
reader.on_recv.set()
|
reader.on_recv.set()
|
||||||
writer = FakeWriter()
|
writer = FakeWriter()
|
||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
def timeout():
|
def timeout():
|
||||||
return 1
|
return 1
|
||||||
def closed():
|
def closed():
|
||||||
nonlocal cnt
|
nonlocal cnt
|
||||||
nonlocal ifc
|
|
||||||
ifc.close() # clears the closed callback
|
|
||||||
cnt += 1
|
cnt += 1
|
||||||
cnt = 0
|
cnt = 0
|
||||||
ifc = AsyncStreamClient(reader, writer, None, closed)
|
ifc = AsyncStreamClient(reader, writer, None, closed)
|
||||||
@@ -361,10 +368,13 @@ async def test_forward():
|
|||||||
assert asyncio.get_running_loop()
|
assert asyncio.get_running_loop()
|
||||||
remote = StreamPtr(None)
|
remote = StreamPtr(None)
|
||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
async def _create_remote():
|
async def _create_remote():
|
||||||
nonlocal cnt, remote, ifc
|
nonlocal cnt
|
||||||
create_remote(remote, TestType.FWD_NO_EXCPT)
|
create_remote(remote, TestType.FWD_NO_EXCPT)
|
||||||
|
# The callback will be called after the AsyncStreamServer
|
||||||
|
# constructer has finished and so ifc must be defined in the
|
||||||
|
# upper scope
|
||||||
|
assert "ifc" in locals()
|
||||||
ifc.fwd_add(b'test-forward_msg2 ')
|
ifc.fwd_add(b'test-forward_msg2 ')
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
@@ -382,7 +392,7 @@ async def test_forward_with_conn():
|
|||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
async def _create_remote():
|
async def _create_remote():
|
||||||
nonlocal cnt, remote, ifc
|
nonlocal cnt
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
cnt = 0
|
cnt = 0
|
||||||
@@ -417,7 +427,7 @@ async def test_forward_sw_except():
|
|||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
async def _create_remote():
|
async def _create_remote():
|
||||||
nonlocal cnt, remote
|
nonlocal cnt
|
||||||
create_remote(remote, TestType.FWD_SW_EXCPT)
|
create_remote(remote, TestType.FWD_SW_EXCPT)
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
@@ -435,7 +445,7 @@ async def test_forward_os_error():
|
|||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
async def _create_remote():
|
async def _create_remote():
|
||||||
nonlocal cnt, remote
|
nonlocal cnt
|
||||||
create_remote(remote, TestType.FWD_OS_ERROR)
|
create_remote(remote, TestType.FWD_OS_ERROR)
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
@@ -453,7 +463,7 @@ async def test_forward_os_error2():
|
|||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
async def _create_remote():
|
async def _create_remote():
|
||||||
nonlocal cnt, remote
|
nonlocal cnt
|
||||||
create_remote(remote, TestType.FWD_OS_ERROR, True)
|
create_remote(remote, TestType.FWD_OS_ERROR, True)
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
@@ -471,7 +481,7 @@ async def test_forward_os_error3():
|
|||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
async def _create_remote():
|
async def _create_remote():
|
||||||
nonlocal cnt, remote
|
nonlocal cnt
|
||||||
create_remote(remote, TestType.FWD_OS_ERROR_NO_STREAM)
|
create_remote(remote, TestType.FWD_OS_ERROR_NO_STREAM)
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
@@ -489,7 +499,7 @@ async def test_forward_runtime_error():
|
|||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
async def _create_remote():
|
async def _create_remote():
|
||||||
nonlocal cnt, remote
|
nonlocal cnt
|
||||||
create_remote(remote, TestType.FWD_RUNTIME_ERROR)
|
create_remote(remote, TestType.FWD_RUNTIME_ERROR)
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
@@ -507,7 +517,7 @@ async def test_forward_runtime_error2():
|
|||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
async def _create_remote():
|
async def _create_remote():
|
||||||
nonlocal cnt, remote
|
nonlocal cnt
|
||||||
create_remote(remote, TestType.FWD_RUNTIME_ERROR, True)
|
create_remote(remote, TestType.FWD_RUNTIME_ERROR, True)
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
@@ -525,7 +535,7 @@ async def test_forward_runtime_error3():
|
|||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
async def _create_remote():
|
async def _create_remote():
|
||||||
nonlocal cnt, remote
|
nonlocal cnt
|
||||||
create_remote(remote, TestType.FWD_RUNTIME_ERROR_NO_STREAM, True)
|
create_remote(remote, TestType.FWD_RUNTIME_ERROR_NO_STREAM, True)
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
@@ -543,7 +553,7 @@ async def test_forward_resp():
|
|||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
def _close_cb():
|
def _close_cb():
|
||||||
nonlocal cnt, remote, ifc
|
nonlocal cnt
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
cnt = 0
|
cnt = 0
|
||||||
@@ -559,9 +569,8 @@ async def test_forward_resp2():
|
|||||||
assert asyncio.get_running_loop()
|
assert asyncio.get_running_loop()
|
||||||
remote = StreamPtr(None)
|
remote = StreamPtr(None)
|
||||||
cnt = 0
|
cnt = 0
|
||||||
|
|
||||||
def _close_cb():
|
def _close_cb():
|
||||||
nonlocal cnt, remote, ifc
|
nonlocal cnt
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
|
||||||
cnt = 0
|
cnt = 0
|
||||||
@@ -571,3 +580,4 @@ async def test_forward_resp2():
|
|||||||
await ifc.client_loop('')
|
await ifc.client_loop('')
|
||||||
assert cnt == 1
|
assert cnt == 1
|
||||||
del ifc
|
del ifc
|
||||||
|
|
||||||
@@ -85,7 +85,6 @@ def patch_open_connection():
|
|||||||
return FakeReader(), FakeWriter()
|
return FakeReader(), FakeWriter()
|
||||||
|
|
||||||
def new_open(host: str, port: int):
|
def new_open(host: str, port: int):
|
||||||
global test
|
|
||||||
if test == MockType.RD_TEST_TIMEOUT:
|
if test == MockType.RD_TEST_TIMEOUT:
|
||||||
raise ConnectionRefusedError
|
raise ConnectionRefusedError
|
||||||
elif test == MockType.RD_TEST_EXCEPT:
|
elif test == MockType.RD_TEST_EXCEPT:
|
||||||
@@ -318,7 +317,7 @@ async def test_remote_conn_to_loopback(config_conn, patch_open_connection):
|
|||||||
assert cnt == 0
|
assert cnt == 0
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_remote_conn_to_None(config_conn, patch_open_connection):
|
async def test_remote_conn_to_none(config_conn, patch_open_connection):
|
||||||
'''check if get_extra_info() return None in case of an error'''
|
'''check if get_extra_info() return None in case of an error'''
|
||||||
_ = config_conn
|
_ = config_conn
|
||||||
_ = patch_open_connection
|
_ = patch_open_connection
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ def patch_open_connection():
|
|||||||
return FakeReader(), FakeWriter()
|
return FakeReader(), FakeWriter()
|
||||||
|
|
||||||
def new_open(host: str, port: int):
|
def new_open(host: str, port: int):
|
||||||
global test
|
|
||||||
if test == MockType.RD_TEST_TIMEOUT:
|
if test == MockType.RD_TEST_TIMEOUT:
|
||||||
raise ConnectionRefusedError
|
raise ConnectionRefusedError
|
||||||
elif test == MockType.RD_TEST_EXCEPT:
|
elif test == MockType.RD_TEST_EXCEPT:
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ def patch_open_connection():
|
|||||||
return FakeReader(), FakeWriter()
|
return FakeReader(), FakeWriter()
|
||||||
|
|
||||||
def new_open(host: str, port: int):
|
def new_open(host: str, port: int):
|
||||||
global test
|
|
||||||
if test == MockType.RD_TEST_TIMEOUT:
|
if test == MockType.RD_TEST_TIMEOUT:
|
||||||
raise ConnectionRefusedError
|
raise ConnectionRefusedError
|
||||||
elif test == MockType.RD_TEST_EXCEPT:
|
elif test == MockType.RD_TEST_EXCEPT:
|
||||||
|
|||||||
@@ -96,7 +96,6 @@ def test_native_client(test_hostname, test_port):
|
|||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_mqtt_connection(config_mqtt_conn):
|
async def test_mqtt_connection(config_mqtt_conn):
|
||||||
global NO_MOSQUITTO_TEST
|
|
||||||
if NO_MOSQUITTO_TEST:
|
if NO_MOSQUITTO_TEST:
|
||||||
pytest.skip('skipping, since Mosquitto is not reliable at the moment')
|
pytest.skip('skipping, since Mosquitto is not reliable at the moment')
|
||||||
|
|
||||||
@@ -122,7 +121,6 @@ async def test_mqtt_connection(config_mqtt_conn):
|
|||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_ha_reconnect(config_mqtt_conn):
|
async def test_ha_reconnect(config_mqtt_conn):
|
||||||
global NO_MOSQUITTO_TEST
|
|
||||||
if NO_MOSQUITTO_TEST:
|
if NO_MOSQUITTO_TEST:
|
||||||
pytest.skip('skipping, since Mosquitto is not reliable at the moment')
|
pytest.skip('skipping, since Mosquitto is not reliable at the moment')
|
||||||
|
|
||||||
|
|||||||
3
ha_addons/.gitignore
vendored
3
ha_addons/.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
.data.json
|
.data.json
|
||||||
config.yaml
|
config.yaml
|
||||||
apparmor.txt
|
apparmor.txt
|
||||||
|
README.md
|
||||||
@@ -66,7 +66,7 @@ clean:
|
|||||||
# Build the local add-on with a rootfs and config.yaml
|
# Build the local add-on with a rootfs and config.yaml
|
||||||
# The rootfs is needed to build the add-on Docker container
|
# The rootfs is needed to build the add-on Docker container
|
||||||
#
|
#
|
||||||
local_add_on: rootfs $(ADDON_PATH)/config.yaml $(ADDON_PATH)/apparmor.txt
|
local_add_on: rootfs $(ADDON_PATH)/config.yaml $(ADDON_PATH)/apparmor.txt $(ADDON_PATH)/README.md
|
||||||
|
|
||||||
# collect source files
|
# collect source files
|
||||||
SRC_FILES := $(wildcard $(SRC_PROXY)/*.py)\
|
SRC_FILES := $(wildcard $(SRC_PROXY)/*.py)\
|
||||||
@@ -103,6 +103,9 @@ $(ADDON_PATH)/%.yaml: $(TEMPL)/%.jinja $(TEMPL)/.data.json
|
|||||||
$(ADDON_PATH)/%.txt: $(TEMPL)/%.jinja $(TEMPL)/.data.json
|
$(ADDON_PATH)/%.txt: $(TEMPL)/%.jinja $(TEMPL)/.data.json
|
||||||
$(JINJA) --strict --format=json $^ -o $@
|
$(JINJA) --strict --format=json $^ -o $@
|
||||||
|
|
||||||
|
$(ADDON_PATH)/%.md: $(TEMPL)/%.jinja $(TEMPL)/.data.json
|
||||||
|
$(JINJA) --strict --format=json $^ -o $@
|
||||||
|
|
||||||
# build a common data.json file from STAGE depending source files
|
# build a common data.json file from STAGE depending source files
|
||||||
# don't touch the destination if the checksum of src and dst is equal
|
# don't touch the destination if the checksum of src and dst is equal
|
||||||
$(TEMPL)/.data.json: FORCE
|
$(TEMPL)/.data.json: FORCE
|
||||||
@@ -119,6 +122,7 @@ repro_files = DOCS.md icon.png logo.png translations/de.yaml translations/en.yam
|
|||||||
repro_root = CHANGELOG.md LICENSE.md
|
repro_root = CHANGELOG.md LICENSE.md
|
||||||
repro_templates = config.yaml
|
repro_templates = config.yaml
|
||||||
repro_apparmor = apparmor.txt
|
repro_apparmor = apparmor.txt
|
||||||
|
repro_readme = README.md
|
||||||
repro_subdirs = translations rootfs
|
repro_subdirs = translations rootfs
|
||||||
repro_vers = debug dev rc rel
|
repro_vers = debug dev rc rel
|
||||||
|
|
||||||
@@ -126,29 +130,34 @@ repro_all_files := $(foreach dir,$(repro_vers), $(foreach file,$(repro_files),$(
|
|||||||
repro_root_files := $(foreach dir,$(repro_vers), $(foreach file,$(repro_root),$(INST_BASE)/ha_addon_$(dir)/$(file)))
|
repro_root_files := $(foreach dir,$(repro_vers), $(foreach file,$(repro_root),$(INST_BASE)/ha_addon_$(dir)/$(file)))
|
||||||
repro_all_templates := $(foreach dir,$(repro_vers), $(foreach file,$(repro_templates),$(INST_BASE)/ha_addon_$(dir)/$(file)))
|
repro_all_templates := $(foreach dir,$(repro_vers), $(foreach file,$(repro_templates),$(INST_BASE)/ha_addon_$(dir)/$(file)))
|
||||||
repro_all_apparmor := $(foreach dir,$(repro_vers), $(foreach file,$(repro_apparmor),$(INST_BASE)/ha_addon_$(dir)/$(file)))
|
repro_all_apparmor := $(foreach dir,$(repro_vers), $(foreach file,$(repro_apparmor),$(INST_BASE)/ha_addon_$(dir)/$(file)))
|
||||||
|
repro_all_readme := $(foreach dir,$(repro_vers), $(foreach file,$(repro_readme),$(INST_BASE)/ha_addon_$(dir)/$(file)))
|
||||||
repro_all_subdirs := $(foreach dir,$(repro_vers), $(foreach file,$(repro_subdirs),$(INST_BASE)/ha_addon_$(dir)/$(file)))
|
repro_all_subdirs := $(foreach dir,$(repro_vers), $(foreach file,$(repro_subdirs),$(INST_BASE)/ha_addon_$(dir)/$(file)))
|
||||||
|
|
||||||
debug: $(foreach file,$(repro_subdirs),$(INST_BASE)/ha_addon_debug/$(file)) \
|
debug: $(foreach file,$(repro_subdirs),$(INST_BASE)/ha_addon_debug/$(file)) \
|
||||||
$(foreach file,$(repro_templates),$(INST_BASE)/ha_addon_debug/$(file)) \
|
$(foreach file,$(repro_templates),$(INST_BASE)/ha_addon_debug/$(file)) \
|
||||||
$(foreach file,$(repro_apparmor),$(INST_BASE)/ha_addon_debug/$(file)) \
|
$(foreach file,$(repro_apparmor),$(INST_BASE)/ha_addon_debug/$(file)) \
|
||||||
|
$(foreach file,$(repro_readme),$(INST_BASE)/ha_addon_debug/$(file)) \
|
||||||
$(foreach file,$(repro_files),$(INST_BASE)/ha_addon_debug/$(file)) \
|
$(foreach file,$(repro_files),$(INST_BASE)/ha_addon_debug/$(file)) \
|
||||||
$(foreach file,$(repro_root),$(INST_BASE)/ha_addon_debug/$(file))
|
$(foreach file,$(repro_root),$(INST_BASE)/ha_addon_debug/$(file))
|
||||||
|
|
||||||
dev: $(foreach file,$(repro_subdirs),$(INST_BASE)/ha_addon_dev/$(file)) \
|
dev: $(foreach file,$(repro_subdirs),$(INST_BASE)/ha_addon_dev/$(file)) \
|
||||||
$(foreach file,$(repro_templates),$(INST_BASE)/ha_addon_dev/$(file)) \
|
$(foreach file,$(repro_templates),$(INST_BASE)/ha_addon_dev/$(file)) \
|
||||||
$(foreach file,$(repro_apparmor),$(INST_BASE)/ha_addon_dev/$(file)) \
|
$(foreach file,$(repro_apparmor),$(INST_BASE)/ha_addon_dev/$(file)) \
|
||||||
|
$(foreach file,$(repro_readme),$(INST_BASE)/ha_addon_dev/$(file)) \
|
||||||
$(foreach file,$(repro_files),$(INST_BASE)/ha_addon_dev/$(file)) \
|
$(foreach file,$(repro_files),$(INST_BASE)/ha_addon_dev/$(file)) \
|
||||||
$(foreach file,$(repro_root),$(INST_BASE)/ha_addon_dev/$(file))
|
$(foreach file,$(repro_root),$(INST_BASE)/ha_addon_dev/$(file))
|
||||||
|
|
||||||
rc: $(foreach file,$(repro_subdirs),$(INST_BASE)/ha_addon_rc/$(file)) \
|
rc: $(foreach file,$(repro_subdirs),$(INST_BASE)/ha_addon_rc/$(file)) \
|
||||||
$(foreach file,$(repro_templates),$(INST_BASE)/ha_addon_rc/$(file)) \
|
$(foreach file,$(repro_templates),$(INST_BASE)/ha_addon_rc/$(file)) \
|
||||||
$(foreach file,$(repro_apparmor),$(INST_BASE)/ha_addon_rc/$(file)) \
|
$(foreach file,$(repro_apparmor),$(INST_BASE)/ha_addon_rc/$(file)) \
|
||||||
|
$(foreach file,$(repro_readme),$(INST_BASE)/ha_addon_rc/$(file)) \
|
||||||
$(foreach file,$(repro_files),$(INST_BASE)/ha_addon_rc/$(file)) \
|
$(foreach file,$(repro_files),$(INST_BASE)/ha_addon_rc/$(file)) \
|
||||||
$(foreach file,$(repro_root),$(INST_BASE)/ha_addon_rc/$(file))
|
$(foreach file,$(repro_root),$(INST_BASE)/ha_addon_rc/$(file))
|
||||||
|
|
||||||
rel: $(foreach file,$(repro_subdirs),$(INST_BASE)/ha_addon_rel/$(file)) \
|
rel: $(foreach file,$(repro_subdirs),$(INST_BASE)/ha_addon_rel/$(file)) \
|
||||||
$(foreach file,$(repro_templates),$(INST_BASE)/ha_addon_rel/$(file)) \
|
$(foreach file,$(repro_templates),$(INST_BASE)/ha_addon_rel/$(file)) \
|
||||||
$(foreach file,$(repro_apparmor),$(INST_BASE)/ha_addon_rel/$(file)) \
|
$(foreach file,$(repro_apparmor),$(INST_BASE)/ha_addon_rel/$(file)) \
|
||||||
|
$(foreach file,$(repro_readme),$(INST_BASE)/ha_addon_rel/$(file)) \
|
||||||
$(foreach file,$(repro_files),$(INST_BASE)/ha_addon_rel/$(file)) \
|
$(foreach file,$(repro_files),$(INST_BASE)/ha_addon_rel/$(file)) \
|
||||||
$(foreach file,$(repro_root),$(INST_BASE)/ha_addon_rel/$(file))
|
$(foreach file,$(repro_root),$(INST_BASE)/ha_addon_rel/$(file))
|
||||||
|
|
||||||
@@ -161,6 +170,9 @@ $(repro_all_templates) : $(INST_BASE)/ha_addon_%/config.yaml: $(TEMPL)/config.ji
|
|||||||
$(repro_all_apparmor) : $(INST_BASE)/ha_addon_%/apparmor.txt: $(TEMPL)/apparmor.jinja $(TEMPL)/%_data.json
|
$(repro_all_apparmor) : $(INST_BASE)/ha_addon_%/apparmor.txt: $(TEMPL)/apparmor.jinja $(TEMPL)/%_data.json
|
||||||
$(JINJA) --strict $< $(filter %.json,$^) -o $@
|
$(JINJA) --strict $< $(filter %.json,$^) -o $@
|
||||||
|
|
||||||
|
$(repro_all_readme) : $(INST_BASE)/ha_addon_%/README.md: $(TEMPL)/README.jinja $(TEMPL)/%_data.json
|
||||||
|
$(JINJA) --strict $< $(filter %.json,$^) -o $@
|
||||||
|
|
||||||
$(filter $(INST_BASE)/ha_addon_debug/%,$(repro_root_files)) : $(INST_BASE)/ha_addon_debug/% : ../%
|
$(filter $(INST_BASE)/ha_addon_debug/%,$(repro_root_files)) : $(INST_BASE)/ha_addon_debug/% : ../%
|
||||||
cp $< $@
|
cp $< $@
|
||||||
$(filter $(INST_BASE)/ha_addon_dev/%,$(repro_root_files)) : $(INST_BASE)/ha_addon_dev/% : ../%
|
$(filter $(INST_BASE)/ha_addon_dev/%,$(repro_root_files)) : $(INST_BASE)/ha_addon_dev/% : ../%
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
# 1 Build Base Image #
|
# 1 Build Base Image #
|
||||||
######################
|
######################
|
||||||
|
|
||||||
ARG BUILD_FROM="ghcr.io/hassio-addons/base:17.2.2"
|
ARG BUILD_FROM="ghcr.io/hassio-addons/base:17.2.3"
|
||||||
# hadolint ignore=DL3006
|
# hadolint ignore=DL3006
|
||||||
FROM $BUILD_FROM AS base
|
FROM $BUILD_FROM AS base
|
||||||
|
|
||||||
|
|||||||
21
ha_addons/templates/README.jinja
Normal file
21
ha_addons/templates/README.jinja
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Home Assistant Add-on: {{name}}
|
||||||
|
|
||||||
|
{{readme_descr}}
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Supports TSUN GEN3 PLUS inverters: TSOL-MS2000, MS1800 and MS1600
|
||||||
|
- Supports TSUN GEN3 PLUS batteries: TSOL-DC1000 (from version 0.13)
|
||||||
|
- Supports TSUN GEN3 inverters: TSOL-MS3000, MS800, MS700, MS600, MS400, MS350 and MS300
|
||||||
|
- `Home-Assistant` auto-discovery support
|
||||||
|
- `MODBUS` support via MQTT topics
|
||||||
|
- `AT-Command` support via MQTT topics (GEN3PLUS only)
|
||||||
|
- Faster DataUp interval sends measurement data to the MQTT broker every minute
|
||||||
|
- Self-sufficient island operation without internet
|
||||||
|
- Security-Features:
|
||||||
|
- control access via `AT-commands`
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
This Add-on and the TSUN Proxy is not related to the company TSUN. It is a private initiative that aims to connect TSUN inverters and storage systems with an MQTT broker. There is no support and no warranty from TSUN.
|
||||||
|
{{readme_links}}
|
||||||
@@ -5,5 +5,7 @@
|
|||||||
"image": "docker.io/sallius/tsun-gen3-addon",
|
"image": "docker.io/sallius/tsun-gen3-addon",
|
||||||
"slug": "tsun-proxy-debug",
|
"slug": "tsun-proxy-debug",
|
||||||
"advanced": true,
|
"advanced": true,
|
||||||
"stage": "experimental"
|
"stage": "experimental",
|
||||||
|
"readme_descr": "This is a bleeding-edge version of the `TSUN Proxy` Add-On with debuging enabled by default.\n\nThe versions may be based on different feature branches and therefore the range of functions may change.\n\nIt is intended to be used to simulate special situations/problems and should only be used in consultation with the maintainer.\n\nFor production please use the stable version `TSUN Proxy`. If you are interested in a bleeding edge version, we offer the `TSUN Proxy (dev)` version.",
|
||||||
|
"readme_links": ""
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,7 @@
|
|||||||
"image": "docker.io/sallius/tsun-gen3-addon",
|
"image": "docker.io/sallius/tsun-gen3-addon",
|
||||||
"slug": "tsun-proxy-dev",
|
"slug": "tsun-proxy-dev",
|
||||||
"advanced": false,
|
"advanced": false,
|
||||||
"stage": "experimental"
|
"stage": "experimental",
|
||||||
|
"readme_descr": "This is a bleeding-edge version of the `TSUN Proxy` Add-On.\n\nThe versions may be based on different feature branches and therefore the range of functions may change.\n\nIt is intended for testing new functions or testing new devices that are to be supported with the next release.\nFor production, please use the stable version 'TSUN Proxy'.",
|
||||||
|
"readme_links": ""
|
||||||
}
|
}
|
||||||
@@ -6,5 +6,8 @@
|
|||||||
"image": "ghcr.io/s-allius/tsun-gen3-addon",
|
"image": "ghcr.io/s-allius/tsun-gen3-addon",
|
||||||
"slug": "tsun-proxy-rc",
|
"slug": "tsun-proxy-rc",
|
||||||
"advanced": true,
|
"advanced": true,
|
||||||
"stage": "experimental"
|
"stage": "experimental",
|
||||||
|
"readme_descr": "This is a release candidate of the `TSUN Proxy` Add-On.\n\nIt is intended for testing the next release.\nFor production, please use the stable version 'TSUN Proxy'.",
|
||||||
|
"readme_links": ""
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,7 @@
|
|||||||
"image": "ghcr.io/s-allius/tsun-gen3-addon",
|
"image": "ghcr.io/s-allius/tsun-gen3-addon",
|
||||||
"slug": "tsun-proxy",
|
"slug": "tsun-proxy",
|
||||||
"advanced": false,
|
"advanced": false,
|
||||||
"stage": "stable"
|
"stage": "stable",
|
||||||
|
"readme_dsecr": "Integrates TSUN inverters (e.g. TSOL MS800, MS2000, MS3000) and batteries (TSOL DC1000) into Home Assistant.\n\nIt is based on the [TSUN Proxy][tsunproxy] and enables a reliable connection between TSUN devices and an MQTT broker.\n\nWith the Add-on, you can easily retrieve real-time values such as power, current and daily energy and integrate the inverter into Home Assistant.\nThis works even without an internet connection.\n\nThe optional connection to the TSUN Cloud can be disabled!",
|
||||||
|
"readme_links": "\n[tsunproxy]: https://github.com/s-allius/tsun-gen3-proxy\n"
|
||||||
}
|
}
|
||||||
@@ -5,13 +5,14 @@ from dotenv import load_dotenv
|
|||||||
|
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
SOLARMAN_SNR = os.getenv('SOLARMAN_SNR', '00000080')
|
SOLARMAN_INV_SNR = os.getenv('SOLARMAN_INV_SNR', '00000080')
|
||||||
|
SOLARMAN_DCU_SNR = os.getenv('SOLARMAN_INV_SNR', '00000080')
|
||||||
|
|
||||||
def get_sn() -> bytes:
|
def get_sn() -> bytes:
|
||||||
return bytes.fromhex(SOLARMAN_SNR)
|
return bytes.fromhex(SOLARMAN_INV_SNR)
|
||||||
|
|
||||||
def get_dcu_sn() -> bytes:
|
def get_dcu_sn() -> bytes:
|
||||||
return b'\x20\x43\x65\x7b'
|
return bytes.fromhex(SOLARMAN_DCU_SNR)
|
||||||
|
|
||||||
def get_dcu_no() -> bytes:
|
def get_dcu_no() -> bytes:
|
||||||
return b'4100000000000001'
|
return b'4100000000000001'
|
||||||
@@ -27,7 +28,7 @@ def correct_checksum(buf):
|
|||||||
return checksum.to_bytes(length=1)
|
return checksum.to_bytes(length=1)
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def MsgContactInfo(): # Contact Info message
|
def msg_contact_info(): # Contact Info message
|
||||||
msg = b'\xa5\xd4\x00\x10\x41\x00\x01' +get_sn() +b'\x02\xba\xd2\x00\x00'
|
msg = b'\xa5\xd4\x00\x10\x41\x00\x01' +get_sn() +b'\x02\xba\xd2\x00\x00'
|
||||||
msg += b'\x19\x00\x00\x00\x00\x00\x00\x00\x05\x3c\x78\x01\x64\x01\x4c\x53'
|
msg += b'\x19\x00\x00\x00\x00\x00\x00\x00\x05\x3c\x78\x01\x64\x01\x4c\x53'
|
||||||
msg += b'\x57\x35\x42\x4c\x45\x5f\x31\x37\x5f\x30\x32\x42\x30\x5f\x31\x2e'
|
msg += b'\x57\x35\x42\x4c\x45\x5f\x31\x37\x5f\x30\x32\x42\x30\x5f\x31\x2e'
|
||||||
@@ -46,13 +47,13 @@ def MsgContactInfo(): # Contact Info message
|
|||||||
return msg
|
return msg
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def MsgContactResp(): # Contact Response message
|
def msg_contact_resp(): # Contact Response message
|
||||||
msg = b'\xa5\x0a\x00\x10\x11\x01\x01' +get_sn() +b'\x02\x01\x6a\xfd\x8f'
|
msg = b'\xa5\x0a\x00\x10\x11\x01\x01' +get_sn() +b'\x02\x01\x6a\xfd\x8f'
|
||||||
msg += b'\x65\x3c\x00\x00\x00\x75\x15'
|
msg += b'\x65\x3c\x00\x00\x00\x75\x15'
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def MsgDataInd():
|
def msg_data_ind():
|
||||||
msg = b'\xa5\x99\x01\x10\x42\x59\x84' +get_sn() +b'\x01\xb0\x02\x2c\x87'
|
msg = b'\xa5\x99\x01\x10\x42\x59\x84' +get_sn() +b'\x01\xb0\x02\x2c\x87'
|
||||||
msg += b'\x22\x32\xb7\x29\x00\x00\xd6\xcf\xe1\x33\x01\x00\x0c\x05\x00\x00'
|
msg += b'\x22\x32\xb7\x29\x00\x00\xd6\xcf\xe1\x33\x01\x00\x0c\x05\x00\x00'
|
||||||
msg += b'\x59\x31\x37\x45\x37\x41\x30\x46\x30\x31\x30\x42\x30\x31\x33\x45'
|
msg += b'\x59\x31\x37\x45\x37\x41\x30\x46\x30\x31\x30\x42\x30\x31\x33\x45'
|
||||||
@@ -86,14 +87,14 @@ def MsgDataInd():
|
|||||||
return msg
|
return msg
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def MsgDataResp(): # Contact Response message
|
def msg_data_rsp(): # Contact Response message
|
||||||
msg = b'\xa5\x0a\x00\x10\x12\x80\x84' +get_sn() +b'\x01\x01\xd1\x96\x04'
|
msg = b'\xa5\x0a\x00\x10\x12\x80\x84' +get_sn() +b'\x01\x01\xd1\x96\x04'
|
||||||
msg += b'\x66\x3c\x00\x00\x00\xed\x15'
|
msg += b'\x66\x3c\x00\x00\x00\xed\x15'
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def MsgInvalidInfo(): # Contact Info message wrong start byte
|
def msg_invalid_info(): # Contact Info message wrong start byte
|
||||||
msg = b'\x47\xd4\x00\x10\x41\x00\x01' +get_sn() +b'\x02\xba\xd2\x00\x00'
|
msg = b'\x47\xd4\x00\x10\x41\x00\x01' +get_sn() +b'\x02\xba\xd2\x00\x00'
|
||||||
msg += b'\x19\x00\x00\x00\x00\x00\x00\x00\x05\x3c\x78\x01\x64\x01\x4c\x53'
|
msg += b'\x19\x00\x00\x00\x00\x00\x00\x00\x05\x3c\x78\x01\x64\x01\x4c\x53'
|
||||||
msg += b'\x57\x35\x42\x4c\x45\x5f\x31\x37\x5f\x30\x32\x42\x30\x5f\x31\x2e'
|
msg += b'\x57\x35\x42\x4c\x45\x5f\x31\x37\x5f\x30\x32\x42\x30\x5f\x31\x2e'
|
||||||
@@ -169,7 +170,7 @@ def dcu_data_rsp_msg(): # 0x1210
|
|||||||
return msg
|
return msg
|
||||||
|
|
||||||
@pytest.fixture(scope="session")
|
@pytest.fixture(scope="session")
|
||||||
def ClientConnection():
|
def client_connection():
|
||||||
host = 'logger.talent-monitoring.com'
|
host = 'logger.talent-monitoring.com'
|
||||||
port = 10000
|
port = 10000
|
||||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||||
@@ -178,15 +179,15 @@ def ClientConnection():
|
|||||||
yield s
|
yield s
|
||||||
s.close()
|
s.close()
|
||||||
|
|
||||||
def checkResponse(data, Msg):
|
def check_response(data, msg):
|
||||||
check = bytearray(data)
|
check = bytearray(data)
|
||||||
check[5]= Msg[5] # ignore seq
|
check[5]= msg[5] # ignore seq
|
||||||
check[13:18]= Msg[13:18] # ignore timestamp + first byte of repeat time
|
check[13:18]= msg[13:18] # ignore timestamp + first byte of repeat time
|
||||||
check[21]= Msg[21] # ignore crc
|
check[21]= msg[21] # ignore crc
|
||||||
assert check == Msg
|
assert check == msg
|
||||||
|
|
||||||
|
|
||||||
def tempClientConnection():
|
def tempclient_connection():
|
||||||
host = 'logger.talent-monitoring.com'
|
host = 'logger.talent-monitoring.com'
|
||||||
port = 10000
|
port = 10000
|
||||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||||
@@ -198,53 +199,53 @@ def tempClientConnection():
|
|||||||
|
|
||||||
def test_open_close():
|
def test_open_close():
|
||||||
try:
|
try:
|
||||||
for _ in tempClientConnection():
|
for _ in tempclient_connection():
|
||||||
pass # test generator tempClientConnection()
|
pass # test generator tempclient_connection()
|
||||||
except:
|
except TimeoutError:
|
||||||
assert False
|
assert False
|
||||||
|
|
||||||
def test_conn_msg(ClientConnection,MsgContactInfo, MsgContactResp):
|
def test_conn_msg(client_connection,msg_contact_info, msg_contact_resp):
|
||||||
s = ClientConnection
|
s = client_connection
|
||||||
try:
|
try:
|
||||||
s.sendall(MsgContactInfo)
|
s.sendall(msg_contact_info)
|
||||||
# time.sleep(2.5)
|
time.sleep(2.5)
|
||||||
data = s.recv(1024)
|
data = s.recv(1024)
|
||||||
except TimeoutError:
|
except TimeoutError:
|
||||||
pass
|
pass
|
||||||
# time.sleep(2.5)
|
# time.sleep(2.5)
|
||||||
checkResponse(data, MsgContactResp)
|
check_response(data, msg_contact_resp)
|
||||||
|
|
||||||
def test_data_ind(ClientConnection,MsgDataInd, MsgDataResp):
|
def test_data_ind(client_connection,msg_data_ind, msg_data_rsp):
|
||||||
s = ClientConnection
|
s = client_connection
|
||||||
try:
|
try:
|
||||||
s.sendall(MsgDataInd)
|
s.sendall(msg_data_ind)
|
||||||
# time.sleep(2.5)
|
# time.sleep(2.5)
|
||||||
data = s.recv(1024)
|
data = s.recv(1024)
|
||||||
except TimeoutError:
|
except TimeoutError:
|
||||||
pass
|
pass
|
||||||
# time.sleep(2.5)
|
# time.sleep(2.5)
|
||||||
checkResponse(data, MsgDataResp)
|
check_response(data, msg_data_rsp)
|
||||||
|
|
||||||
def test_inavlid_msg(ClientConnection,MsgInvalidInfo,MsgContactInfo, MsgContactResp):
|
def test_inavlid_msg(client_connection,msg_invalid_info,msg_contact_info, msg_contact_resp):
|
||||||
s = ClientConnection
|
s = client_connection
|
||||||
try:
|
try:
|
||||||
s.sendall(MsgInvalidInfo)
|
s.sendall(msg_invalid_info)
|
||||||
# time.sleep(2.5)
|
# time.sleep(2.5)
|
||||||
data = s.recv(1024)
|
data = s.recv(1024)
|
||||||
except TimeoutError:
|
except TimeoutError:
|
||||||
pass
|
pass
|
||||||
# time.sleep(2.5)
|
# time.sleep(2.5)
|
||||||
try:
|
try:
|
||||||
s.sendall(MsgContactInfo)
|
s.sendall(msg_contact_info)
|
||||||
# time.sleep(2.5)
|
# time.sleep(2.5)
|
||||||
data = s.recv(1024)
|
data = s.recv(1024)
|
||||||
except TimeoutError:
|
except TimeoutError:
|
||||||
pass
|
pass
|
||||||
# time.sleep(2.5)
|
# time.sleep(2.5)
|
||||||
checkResponse(data, MsgContactResp)
|
check_response(data, msg_contact_resp)
|
||||||
|
|
||||||
def test_dcu_dev(ClientConnection,dcu_dev_ind_msg, dcu_dev_rsp_msg):
|
def test_dcu_dev(client_connection,dcu_dev_ind_msg, dcu_dev_rsp_msg):
|
||||||
s = ClientConnection
|
s = client_connection
|
||||||
try:
|
try:
|
||||||
s.sendall(dcu_dev_ind_msg)
|
s.sendall(dcu_dev_ind_msg)
|
||||||
# time.sleep(2.5)
|
# time.sleep(2.5)
|
||||||
@@ -252,10 +253,10 @@ def test_dcu_dev(ClientConnection,dcu_dev_ind_msg, dcu_dev_rsp_msg):
|
|||||||
except TimeoutError:
|
except TimeoutError:
|
||||||
pass
|
pass
|
||||||
# time.sleep(2.5)
|
# time.sleep(2.5)
|
||||||
checkResponse(data, dcu_dev_rsp_msg)
|
check_response(data, dcu_dev_rsp_msg)
|
||||||
|
|
||||||
def test_dcu_ind(ClientConnection,dcu_data_ind_msg, dcu_data_rsp_msg):
|
def test_dcu_ind(client_connection,dcu_data_ind_msg, dcu_data_rsp_msg):
|
||||||
s = ClientConnection
|
s = client_connection
|
||||||
try:
|
try:
|
||||||
s.sendall(dcu_data_ind_msg)
|
s.sendall(dcu_data_ind_msg)
|
||||||
# time.sleep(2.5)
|
# time.sleep(2.5)
|
||||||
@@ -263,4 +264,4 @@ def test_dcu_ind(ClientConnection,dcu_data_ind_msg, dcu_data_rsp_msg):
|
|||||||
except TimeoutError:
|
except TimeoutError:
|
||||||
pass
|
pass
|
||||||
# time.sleep(2.5)
|
# time.sleep(2.5)
|
||||||
checkResponse(data, dcu_data_rsp_msg)
|
check_response(data, dcu_data_rsp_msg)
|
||||||
|
|||||||
Reference in New Issue
Block a user