Commit 1104bbcc authored by Olivier Kaufmann's avatar Olivier Kaufmann
Browse files

Updates uml

Showing with 572 additions and 571 deletions
+572 -571
......@@ -8,4 +8,3 @@ class Ctl(CtlAbstract):
def __init__(self, **kwargs):
kwargs.update({'board_name': os.path.basename(__file__).rstrip('.py')})
super().__init__(**kwargs)
self.connections = None
......@@ -2,42 +2,40 @@ digraph "classes_uml_ohmpi" {
charset="utf-8"
rankdir=BT
"0" [label="{CompressedSizedTimedRotatingFileHandler|maxBytes : int\lstream\lzip_mode : int\l|doRollover()\lfind_last_rotated_file()\lshouldRollover(record)\l}", shape="record"];
"1" [label="{Ctl|board_name : str\lbus\lmax_cpu_temp : float\l|}", shape="record"];
"2" [label="{Ctl|board_name : str\lbus : I2C\lmax_cpu_temp : float\l|}", shape="record"];
"3" [label="{Ctl|bus : NoneType\l|}", shape="record"];
"4" [label="{CtlAbstract|board_name\lbus : NoneType\lcpu_temperature\lexec_logger : RootLogger, NoneType\lmax_cpu_temp\lsoh_logger : RootLogger, NoneType\l|}", shape="record"];
"5" [label="{MQTTHandler|auth : NoneType\lclient_id : str\lhostname\lkeepalive : int\lport : int\lprotocol\lqos : int\lretain : bool\ltls : NoneType\ltopic\ltransport : str\lwill : NoneType\l|emit(record)\l}", shape="record"];
"6" [label="{Mux|addresses : dict\l|reset()\lswitch_one(elec, role, state)\l}", shape="record"];
"7" [label="{Mux|\l|reset()\lswitch_one()\ltest()\l}", shape="record"];
"8" [label="{Mux|addresses : dict\l|reset()\lswitch_one(elec, role, state)\l}", shape="record"];
"9" [label="{MuxAbstract|addresses\lbarrier\lboard_id\lboard_name\lcabling : dict\lctl\lexec_logger : RootLogger, NoneType\lsoh_logger : RootLogger, NoneType\l|reset()\lswitch(elec_dict, state, bypass_check)\lswitch_one(elec, role, state)\ltest(elec_dict, activation_time)\l}", shape="record"];
"10" [label="{MyServer|\l|do_POST()\l}", shape="record"];
"11" [label="{OhmPi|cmd_id : NoneType\lcontroller : NoneType\ldata_logger : RootLogger, NoneType\lexec_logger : RootLogger, NoneType\lid : str\lmqtt : bool\lnb_samples : int\lon_pi : NoneType, bool\lsequence\lsequence : NoneType, ndarray\lsettings : dict\lsoh_logger : RootLogger, NoneType\lstatus : str\lthread : Thread, NoneType\l|append_and_save(filename, last_measurement, cmd_id)\lget_data(survey_names, cmd_id)\lget_deprecated_methods(cls)\linterrupt(cmd_id)\lload_sequence(filename, cmd_id)\lquit(cmd_id)\lremove_data(cmd_id)\lreset_mux(cmd_id)\lrestart(cmd_id)\lrs_check(tx_volt, cmd_id)\lrun_measurement(quad, nb_stack, injection_duration, autogain, strategy, tx_volt, best_tx_injtime, cmd_id)\lrun_multiple_sequences(cmd_id, sequence_delay, nb_meas)\lrun_sequence(cmd_id)\lrun_sequence_async(cmd_id)\lset_sequence(sequence, cmd_id)\lswitch_mux_off(quadrupole, cmd_id)\lswitch_mux_on(quadrupole, bypass_check, cmd_id)\ltest_mux(activation_time, mux_id, cmd_id)\lupdate_settings(settings, cmd_id)\l}", shape="record"];
"12" [label="{OhmPiHardware|ctl\ldata_logger : RootLogger, NoneType\lexec_logger : RootLogger, NoneType\llast_dev\llast_rho\lmux_barrier : Barrier\lmux_boards : dict\lpulses\lpwr\lreadings : ndarray\lrx\lsoh_logger : NoneType, RootLogger\lsp\ltx\ltx_sync : Event\l|calibrate_rx_bias()\lreset_mux()\lswitch_mux(electrodes, roles, state)\ltest_mux(channel, activation_time)\lvab_square_wave(vab, cycle_duration, sampling_rate, cycles, polarity, duty_cycle, append)\l}", shape="record"];
"13" [label="{Pwr|ctl\lcurrent\lcurrent_max\lvoltage\lvoltage_adjustable : bool\l|battery_voltage()\lturn_off()\lturn_on()\l}", shape="record"];
"14" [label="{Pwr|current\lvoltage\lvoltage_adjustable : bool\l|turn_off()\lturn_on()\l}", shape="record"];
"15" [label="{PwrAbstract|board_name\lctl\lcurrent\lexec_logger : RootLogger, NoneType\lsoh_logger : RootLogger, NoneType\lvoltage\lvoltage_adjustable\l|turn_off()\lturn_on()\l}", shape="record"];
"1" [label="{Ctl|board_name : str\linterfaces : dict\lmax_cpu_temp : float\l|}", shape="record"];
"2" [label="{Ctl|\l|}", shape="record"];
"3" [label="{CtlAbstract|board_name\lconnection : NoneType\lcpu_temperature\lexec_logger : NoneType, RootLogger\linterfaces : NoneType\lmax_cpu_temp\lsoh_logger : NoneType, RootLogger\l|}", shape="record"];
"4" [label="{MQTTHandler|auth : NoneType\lclient_id : str\lhostname\lkeepalive : int\lport : int\lprotocol\lqos : int\lretain : bool\ltls : NoneType\ltopic\ltransport : str\lwill : NoneType\l|emit(record)\l}", shape="record"];
"5" [label="{Mux|addresses : dict\lio\l|reset()\lswitch_one(elec, role, state)\l}", shape="record"];
"6" [label="{Mux|\l|reset()\lswitch_one()\ltest()\l}", shape="record"];
"7" [label="{Mux|addresses : dict\l|reset()\lswitch_one(elec, role, state)\l}", shape="record"];
"8" [label="{MuxAbstract|addresses\lbarrier\lboard_id\lboard_name\lcabling : dict\lconnection\lexec_logger : NoneType, RootLogger\lsoh_logger : NoneType, RootLogger\l|reset()\lswitch(elec_dict, state, bypass_check)\lswitch_one(elec, role, state)\ltest(elec_dict, activation_time)\l}", shape="record"];
"9" [label="{MyServer|\l|do_POST()\l}", shape="record"];
"10" [label="{OhmPi|cmd_id : NoneType\lcontroller : NoneType\ldata_logger : NoneType, RootLogger\lexec_logger : NoneType, RootLogger\lid : str\lmqtt : bool\lnb_samples : int\lon_pi : NoneType, bool\lsequence\lsequence : ndarray, NoneType\lsettings : dict\lsoh_logger : NoneType, RootLogger\lstatus : str\lthread : Thread, NoneType\l|append_and_save(filename, last_measurement, cmd_id)\lget_data(survey_names, cmd_id)\lget_deprecated_methods(cls)\linterrupt(cmd_id)\lload_sequence(filename, cmd_id)\lquit(cmd_id)\lremove_data(cmd_id)\lreset_mux(cmd_id)\lrestart(cmd_id)\lrs_check(tx_volt, cmd_id)\lrun_measurement(quad, nb_stack, injection_duration, autogain, strategy, tx_volt, best_tx_injtime, cmd_id)\lrun_multiple_sequences(cmd_id, sequence_delay, nb_meas)\lrun_sequence(cmd_id)\lrun_sequence_async(cmd_id)\lset_sequence(sequence, cmd_id)\lswitch_mux_off(quadrupole, cmd_id)\lswitch_mux_on(quadrupole, bypass_check, cmd_id)\ltest_mux(activation_time, mux_id, cmd_id)\lupdate_settings(settings, cmd_id)\l}", shape="record"];
"11" [label="{OhmPiHardware|ctl\ldata_logger : NoneType, RootLogger\lexec_logger : NoneType, RootLogger\llast_dev\llast_rho\lmux_barrier : Barrier\lmux_boards : dict\lpulses\lpwr\lreadings : ndarray\lrx\lsoh_logger : NoneType, RootLogger\lsp\ltx\ltx_sync : Event\l|calibrate_rx_bias()\lreset_mux()\lswitch_mux(electrodes, roles, state)\ltest_mux(channel, activation_time)\lvab_square_wave(vab, cycle_duration, sampling_rate, cycles, polarity, duty_cycle, append)\l}", shape="record"];
"12" [label="{Pwr|connection\lctl\lcurrent\lcurrent_max\lvoltage\lvoltage_adjustable : bool\l|battery_voltage()\lturn_off()\lturn_on()\l}", shape="record"];
"13" [label="{Pwr|current\lvoltage\lvoltage_adjustable : bool\l|turn_off()\lturn_on()\l}", shape="record"];
"14" [label="{PwrAbstract|board_name\lconnection\lctl\lcurrent\lexec_logger : NoneType, RootLogger\lsoh_logger : NoneType, RootLogger\lvoltage\lvoltage_adjustable\l|turn_off()\lturn_on()\l}", shape="record"];
"15" [label="{Rx|adc_gain\ladc_gain\lconnection\lctl\lvoltage\l|adc_gain_auto()\l}", shape="record"];
"16" [label="{Rx|adc_gain\ladc_gain : float\lvoltage\l|adc_gain_auto()\l}", shape="record"];
"17" [label="{Rx|adc_gain\ladc_gain\lctl\lvoltage\l|adc_gain_auto()\l}", shape="record"];
"18" [label="{Rx|adc_gain\ladc_gain\lctl\lvoltage\l|adc_gain_auto()\l}", shape="record"];
"19" [label="{RxAbstract|adc_gain\lboard_name\lctl\lexec_logger : RootLogger, NoneType\lsampling_rate\lsoh_logger : RootLogger, NoneType\lvoltage\l|adc_gain_auto()\l}", shape="record"];
"20" [label="{Tx|adc_gain\ladc_gain : int, float\lctl\lcurrent\lcurrent_adjustable : bool\lmcp_board : MCP23008\lpin0 : DigitalInOut\lpin1 : DigitalInOut\lpin4 : DigitalInOut\lpolarity\lpolarity : int\lpwr : NoneType\ltx_bat\lvoltage_adjustable : bool\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lturn_off()\lturn_on()\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
"21" [label="{Tx|adc_gain\ladc_gain : float\lcurrent\lpolarity : int\ltx_bat\lvoltage\l|adc_gain_auto()\lcurrent_pulse()\linject(state)\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
"22" [label="{Tx|DPS\ladc_gain\ladc_gain : int, float\lctl\lcurrent\lmcp_board : MCP23008\lpin0 : DigitalInOut\lpin1 : DigitalInOut\lpin2 : DigitalInOut\lpin3 : DigitalInOut\lpin4 : DigitalInOut\lpolarity\lpolarity : NoneType, int\ltx_bat\lvoltage\lvoltage\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lturn_off()\lturn_on()\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
"23" [label="{TxAbstract|adc_gain\lboard_name\lctl\lexec_logger : RootLogger, NoneType\linjection_duration\linjection_duration\lpolarity\lpwr\lsoh_logger : RootLogger, NoneType\ltx_bat\ltx_sync\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
"1" -> "4" [arrowhead="empty", arrowtail="none"];
"2" -> "4" [arrowhead="empty", arrowtail="none"];
"3" -> "4" [arrowhead="empty", arrowtail="none"];
"6" -> "9" [arrowhead="empty", arrowtail="none"];
"7" -> "9" [arrowhead="empty", arrowtail="none"];
"8" -> "9" [arrowhead="empty", arrowtail="none"];
"13" -> "15" [arrowhead="empty", arrowtail="none"];
"14" -> "15" [arrowhead="empty", arrowtail="none"];
"16" -> "19" [arrowhead="empty", arrowtail="none"];
"17" -> "19" [arrowhead="empty", arrowtail="none"];
"18" -> "19" [arrowhead="empty", arrowtail="none"];
"20" -> "23" [arrowhead="empty", arrowtail="none"];
"21" -> "23" [arrowhead="empty", arrowtail="none"];
"22" -> "23" [arrowhead="empty", arrowtail="none"];
"12" -> "11" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="_hw", style="solid"];
"17" [label="{Rx|adc_gain\ladc_gain : float\lctl\lio\lmcp_board : MCP23008\lpin_DG0 : DigitalInOut\lpin_DG1 : DigitalInOut\lpin_DG2 : DigitalInOut\lvoltage\lvoltage_gain\lvoltage_gain : int, float\l|adc_gain_auto()\lvoltage_gain_auto()\l}", shape="record"];
"18" [label="{RxAbstract|adc_gain\lboard_name\lconnection\lctl\lexec_logger : NoneType, RootLogger\lsampling_rate\lsoh_logger : NoneType, RootLogger\lvoltage\l|adc_gain_auto()\l}", shape="record"];
"19" [label="{Tx|adc_gain\ladc_gain : int, float\lconnection\lctl\lcurrent\lcurrent_adjustable : bool\lmcp_board : MCP23008\lpin0 : DigitalInOut\lpin1 : DigitalInOut\lpin4 : DigitalInOut\lpolarity\lpolarity : int\lpwr : NoneType\ltx_bat\lvoltage_adjustable : bool\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lturn_off()\lturn_on()\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
"20" [label="{Tx|adc_gain\ladc_gain : float\lcurrent\lpolarity : int\ltx_bat\lvoltage\l|adc_gain_auto()\lcurrent_pulse()\linject(state)\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
"21" [label="{Tx|adc_gain\ladc_gain : int, float\lctl\lcurrent\lcurrent_adjustable : bool\lio\lmcp_board : MCP23008\lpin0 : DigitalInOut\lpin1 : DigitalInOut\lpin4 : DigitalInOut\lpolarity\lpolarity : int\lpwr : NoneType\ltx_bat\lvoltage_adjustable : bool\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lturn_off()\lturn_on()\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
"22" [label="{TxAbstract|adc_gain\lboard_name\lconnection\lctl\lexec_logger : NoneType, RootLogger\linjection_duration\linjection_duration\lpolarity\lpwr\lsoh_logger : NoneType, RootLogger\ltx_bat\ltx_sync\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
"1" -> "3" [arrowhead="empty", arrowtail="none"];
"2" -> "3" [arrowhead="empty", arrowtail="none"];
"5" -> "8" [arrowhead="empty", arrowtail="none"];
"6" -> "8" [arrowhead="empty", arrowtail="none"];
"7" -> "8" [arrowhead="empty", arrowtail="none"];
"12" -> "14" [arrowhead="empty", arrowtail="none"];
"13" -> "14" [arrowhead="empty", arrowtail="none"];
"15" -> "18" [arrowhead="empty", arrowtail="none"];
"16" -> "18" [arrowhead="empty", arrowtail="none"];
"17" -> "18" [arrowhead="empty", arrowtail="none"];
"19" -> "22" [arrowhead="empty", arrowtail="none"];
"20" -> "22" [arrowhead="empty", arrowtail="none"];
"21" -> "22" [arrowhead="empty", arrowtail="none"];
"11" -> "10" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="_hw", style="solid"];
}
uml_diagrams/classes_uml_ohmpi.dot.png

457 KB | W: | H:

uml_diagrams/classes_uml_ohmpi.dot.png

408 KB | W: | H:

uml_diagrams/classes_uml_ohmpi.dot.png
uml_diagrams/classes_uml_ohmpi.dot.png
uml_diagrams/classes_uml_ohmpi.dot.png
uml_diagrams/classes_uml_ohmpi.dot.png
  • 2-up
  • Swipe
  • Onion skin
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: classes_uml_ohmpi Pages: 1 -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="4198pt"
height="964pt"
viewBox="0.00 0.00 4197.50 964.00"
version="1.1"
id="svg1693"
sodipodi:docname="classes_uml_ohmpi.dot.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata
id="metadata1699">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs1697" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1868"
inkscape:window-height="1016"
id="namedview1695"
showgrid="false"
inkscape:snap-text-baseline="false"
inkscape:zoom="0.65135348"
inkscape:cx="4758.8494"
inkscape:cy="499.44138"
inkscape:window-x="52"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="graph0" />
<g
id="graph0"
class="graph"
transform="scale(1 1) rotate(0) translate(4 960)">
<title
id="title873">classes_uml_ohmpi</title>
<!-- 0 -->
<!-- 1 -->
<!-- 4 -->
<!-- 1&#45;&gt;4 -->
<!-- 2 -->
<!-- 2&#45;&gt;4 -->
<!-- 3 -->
<!-- 3&#45;&gt;4 -->
<!-- 5 -->
<!-- 6 -->
<!-- 9 -->
<!-- 6&#45;&gt;9 -->
<!-- 7 -->
<!-- 7&#45;&gt;9 -->
<!-- 8 -->
<!-- 8&#45;&gt;9 -->
<!-- 10 -->
<!-- 11 -->
<!-- 12 -->
<!-- 12&#45;&gt;11 -->
<!-- 13 -->
<!-- 15 -->
<!-- 13&#45;&gt;15 -->
<!-- 14 -->
<!-- 14&#45;&gt;15 -->
<!-- 16 -->
<!-- 19 -->
<!-- 16&#45;&gt;19 -->
<!-- 17 -->
<!-- 17&#45;&gt;19 -->
<!-- 18 -->
<!-- 18&#45;&gt;19 -->
<!-- 20 -->
<g
id="node21"
class="node"
transform="translate(115.5)"
style="stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">
<title
id="title1493">20</title>
<polygon
points="3561.5,-354.5 3561.5,-15.5 3265.5,-15.5 3265.5,-354.5 "
id="polygon1495"
style="fill:none;stroke:#000000;stroke-width:3.16884092;stroke-miterlimit:4;stroke-dasharray:none"
transform="matrix(1.0003563,0,0,0.79991151,-1.2162088,-70.9841)" />
<text
x="3413.5"
y="-339.29999"
font-size="14.00"
id="text1497"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14px;font-family:Times, serif;-inkscape-font-specification:'Times, serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:2.83464551;stroke-miterlimit:4;stroke-dasharray:none">Tx (mb_2023.0.0)</text>
<polyline
points="3265.5,-331.5 3561.5,-331.5 "
id="polyline1499"
style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none" />
<text
x="3273.5"
y="-316.29999"
font-size="14.00"
id="text1501"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain</text>
<text
x="3273.5"
y="-301.29999"
font-size="14.00"
id="text1503"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain : int, float</text>
<text
x="3273.5"
y="-286.29999"
font-size="14.00"
id="text1505"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">ctl</text>
<text
x="3273.5"
y="-271.29999"
font-size="14.00"
id="text1507"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current</text>
<text
x="3273.5"
y="-256.29999"
font-size="14.00"
id="text1509"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current_adjustable : bool</text>
<text
x="3273.5"
y="-241.3"
font-size="14.00"
id="text1511"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">mcp_board : MCP23008</text>
<text
x="3273.5"
y="-226.3"
font-size="14.00"
id="text1513"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin0 : DigitalInOut</text>
<text
x="3273.5"
y="-211.3"
font-size="14.00"
id="text1515"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin1 : DigitalInOut</text>
<text
x="3273.5"
y="-196.3"
font-size="14.00"
id="text1517"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin4 : DigitalInOut</text>
<polyline
points="3265.5,-113.5 3561.5,-113.5 "
id="polyline1529"
style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none"
transform="translate(0,-72)" />
<text
x="3273.5"
y="-170.3"
font-size="14.00"
id="text1531"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain_auto()</text>
<text
x="3273.5"
y="-155.3"
font-size="14.00"
id="text1533"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current_pulse()</text>
<text
x="3273.5"
y="-140.3"
font-size="14.00"
id="text1535"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">inject(polarity, injection_duration)</text>
<text
x="3273.5"
y="-125.3"
font-size="14.00"
id="text1537"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">turn_off()</text>
<text
x="3273.5"
y="-110.3"
font-size="14.00"
id="text1539"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">turn_on()</text>
<text
x="3273.5"
y="-95.299995"
font-size="14.00"
id="text1541"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">voltage_pulse(voltage, length, polarity)</text>
</g>
<!-- 23 -->
<g
id="node24"
class="node"
transform="translate(0,109.5)"
style="stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">
<title
id="title1544">23</title>
<polygon
points="3875.5,-820.5 3875.5,-556.5 3579.5,-556.5 3579.5,-820.5 "
id="polygon1546"
style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none" />
<text
x="3727.5"
y="-805.29999"
font-size="14.00"
id="text1548"
style="font-size:13.99999956px;font-family:Times, serif;text-anchor:middle;-inkscape-font-specification:'Times, serif, Bold';font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;text-align:center;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">TxAbstract</text>
<polyline
points="3579.5,-797.5 3875.5,-797.5 "
id="polyline1550"
style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none" />
<text
x="3587.5"
y="-782.29999"
font-size="14.00"
id="text1552"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain</text>
<text
x="3587.5"
y="-767.29999"
font-size="14.00"
id="text1554"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">board_name</text>
<text
x="3587.5"
y="-752.29999"
font-size="14.00"
id="text1556"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">ctl</text>
<text
x="3587.5"
y="-737.29999"
font-size="14.00"
id="text1558"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">exec_logger : RootLogger, NoneType</text>
<text
x="3587.5"
y="-722.29999"
font-size="14.00"
id="text1560"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">injection_duration</text>
<text
x="3587.5"
y="-707.29999"
font-size="14.00"
id="text1562"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">injection_duration</text>
<text
x="3587.5"
y="-692.29999"
font-size="14.00"
id="text1564"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">polarity</text>
<text
x="3587.5"
y="-677.29999"
font-size="14.00"
id="text1566"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pwr</text>
<text
x="3587.5"
y="-662.29999"
font-size="14.00"
id="text1568"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">soh_logger : RootLogger, NoneType</text>
<text
x="3587.5"
y="-647.29999"
font-size="14.00"
id="text1570"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">tx_bat</text>
<text
x="3587.5"
y="-632.29999"
font-size="14.00"
id="text1572"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">tx_sync</text>
<polyline
points="3579.5,-624.5 3875.5,-624.5 "
id="polyline1574"
style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none" />
<text
x="3587.5"
y="-609.29999"
font-size="14.00"
id="text1576"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain_auto()</text>
<text
x="3587.5"
y="-594.29999"
font-size="14.00"
id="text1578"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current_pulse()</text>
<text
x="3587.5"
y="-579.29999"
font-size="14.00"
id="text1580"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">inject(polarity, injection_duration)</text>
<text
x="3587.5"
y="-564.29999"
font-size="14.00"
id="text1582"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">voltage_pulse(voltage, length, polarity)</text>
</g>
<!-- 20&#45;&gt;23 -->
<g
id="edge12"
class="edge">
<title
id="title1585">20-&gt;23</title>
<path
d="m 3519.15,-354.74 c 39.21,-62.63 156.5312,-22.94704 193.9712,-82.73704"
id="path1587"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000"
sodipodi:nodetypes="cc" />
<polygon
points="3645.29,-556.2 3642.95,-545.87 3637.02,-549.58 "
id="polygon1589"
transform="translate(73.4042,110.06747)"
style="fill:none;stroke:#000000" />
</g>
<!-- 21 -->
<!-- 21&#45;&gt;23 -->
<!-- 22 -->
<g
id="node23"
class="node"
transform="translate(-111)"
style="stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">
<title
id="title1630">22</title>
<polygon
points="3893.5,-369.5 4189.5,-369.5 4189.5,-0.5 3893.5,-0.5 "
id="polygon1632"
style="fill:none;stroke:#000000;stroke-width:3.19778794;stroke-miterlimit:4;stroke-dasharray:none"
transform="matrix(1,0,0,0.78577501,0,-79.156135)" />
<text
x="4041.5"
y="-354.29999"
font-size="14.00"
id="text1634"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14px;font-family:Times, serif;-inkscape-font-specification:'Times, serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">Tx (mb_2024.0.0)</text>
<polyline
points="3893.5,-346.5 4189.5,-346.5 "
id="polyline1636"
style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none" />
<text
x="3901.5"
y="-331.29999"
font-size="14.00"
id="text1640"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain</text>
<text
x="3901.5"
y="-316.29999"
font-size="14.00"
id="text1642"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain : int, float</text>
<text
x="3901.5"
y="-301.29999"
font-size="14.00"
id="text1644"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">ctl</text>
<text
x="3901.5"
y="-286.29999"
font-size="14.00"
id="text1646"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current</text>
<text
x="3901.5"
y="-271.29999"
font-size="14.00"
id="text1648"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">mcp_board : MCP23008</text>
<text
x="3901.5"
y="-256.29999"
font-size="14.00"
id="text1650"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin0 : DigitalInOut</text>
<text
x="3901.5"
y="-241.3"
font-size="14.00"
id="text1652"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin1 : DigitalInOut</text>
<text
x="3901.5"
y="-226.3"
font-size="14.00"
id="text1654"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin2 : DigitalInOut</text>
<text
x="3901.5"
y="-211.3"
font-size="14.00"
id="text1656"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin3 : DigitalInOut</text>
<text
x="3901.5"
y="-196.3"
font-size="14.00"
id="text1658"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin4 : DigitalInOut</text>
<polyline
points="3893.5,-98.5 4189.5,-98.5 "
id="polyline1670"
style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none"
transform="translate(0,-88.5)" />
<text
x="3901.5"
y="-168.8"
font-size="14.00"
id="text1672"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain_auto()</text>
<text
x="3901.5"
y="-153.8"
font-size="14.00"
id="text1674"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current_pulse()</text>
<text
x="3901.5"
y="-138.8"
font-size="14.00"
id="text1676"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">inject(polarity, injection_duration)</text>
<text
x="3901.5"
y="-123.8"
font-size="14.00"
id="text1678"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">turn_off()</text>
<text
x="3901.5"
y="-108.8"
font-size="14.00"
id="text1680"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">turn_on()</text>
<text
x="3901.5"
y="-93.799995"
font-size="14.00"
id="text1682"
style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">voltage_pulse(voltage, length, polarity)</text>
<text
xml:space="preserve"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:48px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Italic';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none"
x="4051.5347"
y="-351.80414"
id="text1703"><tspan
sodipodi:role="line"
id="tspan1701"
x="4051.5347"
y="-309.33539"
style="stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none"></tspan></text>
</g>
<!-- 22&#45;&gt;23 -->
<g
id="edge14"
class="edge">
<title
id="title1685">22-&gt;23</title>
<path
d="m 3926.58,-369.54 c -36.81,-58.8 -159.2615,-12.42398 -193.7915,-67.58398"
id="path1687"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000"
sodipodi:nodetypes="cc" />
<polygon
points="3809.58,-556.4 3817.86,-549.78 3811.92,-546.07 "
id="polygon1689"
transform="translate(-82.0101,110.67319)"
style="fill:none;stroke:#000000" />
</g>
</g>
<svg width="3998pt" height="949pt"
viewBox="0.00 0.00 3997.50 949.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 945)">
<title>classes_uml_ohmpi</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-945 3993.5,-945 3993.5,4 -4,4"/>
<!-- 0 -->
<g id="node1" class="node">
<title>0</title>
<polygon fill="none" stroke="black" points="0,-113 0,-242 335,-242 335,-113 0,-113"/>
<text text-anchor="middle" x="167.5" y="-226.8" font-family="Times,serif" font-size="14.00">CompressedSizedTimedRotatingFileHandler</text>
<polyline fill="none" stroke="black" points="0,-219 335,-219 "/>
<text text-anchor="start" x="8" y="-203.8" font-family="Times,serif" font-size="14.00">maxBytes : int</text>
<text text-anchor="start" x="8" y="-188.8" font-family="Times,serif" font-size="14.00">stream</text>
<text text-anchor="start" x="8" y="-173.8" font-family="Times,serif" font-size="14.00">zip_mode : int</text>
<polyline fill="none" stroke="black" points="0,-166 335,-166 "/>
<text text-anchor="start" x="8" y="-150.8" font-family="Times,serif" font-size="14.00">doRollover()</text>
<text text-anchor="start" x="8" y="-135.8" font-family="Times,serif" font-size="14.00">find_last_rotated_file()</text>
<text text-anchor="start" x="8" y="-120.8" font-family="Times,serif" font-size="14.00">shouldRollover(record)</text>
</g>
<!-- 1 -->
<g id="node2" class="node">
<title>1</title>
<polygon fill="none" stroke="black" points="353.5,-128 353.5,-227 521.5,-227 521.5,-128 353.5,-128"/>
<text text-anchor="middle" x="437.5" y="-211.8" font-family="Times,serif" font-size="14.00">Ctl</text>
<polyline fill="none" stroke="black" points="353.5,-204 521.5,-204 "/>
<text text-anchor="start" x="361.5" y="-188.8" font-family="Times,serif" font-size="14.00">board_name : str</text>
<text text-anchor="start" x="361.5" y="-173.8" font-family="Times,serif" font-size="14.00">interfaces : dict</text>
<text text-anchor="start" x="361.5" y="-158.8" font-family="Times,serif" font-size="14.00">max_cpu_temp : float</text>
<polyline fill="none" stroke="black" points="353.5,-151 521.5,-151 "/>
<text text-anchor="middle" x="437.5" y="-135.8" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- 3 -->
<g id="node4" class="node">
<title>3</title>
<polygon fill="none" stroke="black" points="363,-594 363,-753 642,-753 642,-594 363,-594"/>
<text text-anchor="middle" x="502.5" y="-737.8" font-family="Times,serif" font-size="14.00">CtlAbstract</text>
<polyline fill="none" stroke="black" points="363,-730 642,-730 "/>
<text text-anchor="start" x="371" y="-714.8" font-family="Times,serif" font-size="14.00">board_name</text>
<text text-anchor="start" x="371" y="-699.8" font-family="Times,serif" font-size="14.00">connection : NoneType</text>
<text text-anchor="start" x="371" y="-684.8" font-family="Times,serif" font-size="14.00">cpu_temperature</text>
<text text-anchor="start" x="371" y="-669.8" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="371" y="-654.8" font-family="Times,serif" font-size="14.00">interfaces : NoneType</text>
<text text-anchor="start" x="371" y="-639.8" font-family="Times,serif" font-size="14.00">max_cpu_temp</text>
<text text-anchor="start" x="371" y="-624.8" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
<polyline fill="none" stroke="black" points="363,-617 642,-617 "/>
<text text-anchor="middle" x="502.5" y="-601.8" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- 1&#45;&gt;3 -->
<g id="edge1" class="edge">
<title>1&#45;&gt;3</title>
<path fill="none" stroke="black" d="M443.91,-227.22C454.81,-310.02 477.09,-479.36 490.81,-583.69"/>
<polygon fill="none" stroke="black" points="487.38,-584.43 492.16,-593.89 494.32,-583.52 487.38,-584.43"/>
</g>
<!-- 2 -->
<g id="node3" class="node">
<title>2</title>
<polygon fill="none" stroke="black" points="539.5,-142.5 539.5,-212.5 593.5,-212.5 593.5,-142.5 539.5,-142.5"/>
<text text-anchor="middle" x="566.5" y="-197.3" font-family="Times,serif" font-size="14.00">Ctl</text>
<polyline fill="none" stroke="black" points="539.5,-189.5 593.5,-189.5 "/>
<polyline fill="none" stroke="black" points="539.5,-165.5 593.5,-165.5 "/>
<text text-anchor="middle" x="566.5" y="-150.3" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- 2&#45;&gt;3 -->
<g id="edge2" class="edge">
<title>2&#45;&gt;3</title>
<path fill="none" stroke="black" d="M562.05,-212.84C552.22,-288.7 528.4,-472.57 514.04,-583.4"/>
<polygon fill="none" stroke="black" points="510.54,-583.2 512.73,-593.56 517.48,-584.1 510.54,-583.2"/>
</g>
<!-- 4 -->
<g id="node5" class="node">
<title>4</title>
<polygon fill="none" stroke="black" points="611.5,-60.5 611.5,-294.5 745.5,-294.5 745.5,-60.5 611.5,-60.5"/>
<text text-anchor="middle" x="678.5" y="-279.3" font-family="Times,serif" font-size="14.00">MQTTHandler</text>
<polyline fill="none" stroke="black" points="611.5,-271.5 745.5,-271.5 "/>
<text text-anchor="start" x="619.5" y="-256.3" font-family="Times,serif" font-size="14.00">auth : NoneType</text>
<text text-anchor="start" x="619.5" y="-241.3" font-family="Times,serif" font-size="14.00">client_id : str</text>
<text text-anchor="start" x="619.5" y="-226.3" font-family="Times,serif" font-size="14.00">hostname</text>
<text text-anchor="start" x="619.5" y="-211.3" font-family="Times,serif" font-size="14.00">keepalive : int</text>
<text text-anchor="start" x="619.5" y="-196.3" font-family="Times,serif" font-size="14.00">port : int</text>
<text text-anchor="start" x="619.5" y="-181.3" font-family="Times,serif" font-size="14.00">protocol</text>
<text text-anchor="start" x="619.5" y="-166.3" font-family="Times,serif" font-size="14.00">qos : int</text>
<text text-anchor="start" x="619.5" y="-151.3" font-family="Times,serif" font-size="14.00">retain : bool</text>
<text text-anchor="start" x="619.5" y="-136.3" font-family="Times,serif" font-size="14.00">tls : NoneType</text>
<text text-anchor="start" x="619.5" y="-121.3" font-family="Times,serif" font-size="14.00">topic</text>
<text text-anchor="start" x="619.5" y="-106.3" font-family="Times,serif" font-size="14.00">transport : str</text>
<text text-anchor="start" x="619.5" y="-91.3" font-family="Times,serif" font-size="14.00">will : NoneType</text>
<polyline fill="none" stroke="black" points="611.5,-83.5 745.5,-83.5 "/>
<text text-anchor="start" x="619.5" y="-68.3" font-family="Times,serif" font-size="14.00">emit(record)</text>
</g>
<!-- 5 -->
<g id="node6" class="node">
<title>5</title>
<polygon fill="none" stroke="black" points="763.5,-128 763.5,-227 979.5,-227 979.5,-128 763.5,-128"/>
<text text-anchor="middle" x="871.5" y="-211.8" font-family="Times,serif" font-size="14.00">Mux</text>
<polyline fill="none" stroke="black" points="763.5,-204 979.5,-204 "/>
<text text-anchor="start" x="771.5" y="-188.8" font-family="Times,serif" font-size="14.00">addresses : dict</text>
<text text-anchor="start" x="771.5" y="-173.8" font-family="Times,serif" font-size="14.00">io</text>
<polyline fill="none" stroke="black" points="763.5,-166 979.5,-166 "/>
<text text-anchor="start" x="771.5" y="-150.8" font-family="Times,serif" font-size="14.00">reset()</text>
<text text-anchor="start" x="771.5" y="-135.8" font-family="Times,serif" font-size="14.00">switch_one(elec, role, state)</text>
</g>
<!-- 8 -->
<g id="node9" class="node">
<title>8</title>
<polygon fill="none" stroke="black" points="907,-564 907,-783 1194,-783 1194,-564 907,-564"/>
<text text-anchor="middle" x="1050.5" y="-767.8" font-family="Times,serif" font-size="14.00">MuxAbstract</text>
<polyline fill="none" stroke="black" points="907,-760 1194,-760 "/>
<text text-anchor="start" x="915" y="-744.8" font-family="Times,serif" font-size="14.00">addresses</text>
<text text-anchor="start" x="915" y="-729.8" font-family="Times,serif" font-size="14.00">barrier</text>
<text text-anchor="start" x="915" y="-714.8" font-family="Times,serif" font-size="14.00">board_id</text>
<text text-anchor="start" x="915" y="-699.8" font-family="Times,serif" font-size="14.00">board_name</text>
<text text-anchor="start" x="915" y="-684.8" font-family="Times,serif" font-size="14.00">cabling : dict</text>
<text text-anchor="start" x="915" y="-669.8" font-family="Times,serif" font-size="14.00">connection</text>
<text text-anchor="start" x="915" y="-654.8" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="915" y="-639.8" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
<polyline fill="none" stroke="black" points="907,-632 1194,-632 "/>
<text text-anchor="start" x="915" y="-616.8" font-family="Times,serif" font-size="14.00">reset()</text>
<text text-anchor="start" x="915" y="-601.8" font-family="Times,serif" font-size="14.00">switch(elec_dict, state, bypass_check)</text>
<text text-anchor="start" x="915" y="-586.8" font-family="Times,serif" font-size="14.00">switch_one(elec, role, state)</text>
<text text-anchor="start" x="915" y="-571.8" font-family="Times,serif" font-size="14.00">test(elec_dict, activation_time)</text>
</g>
<!-- 5&#45;&gt;8 -->
<g id="edge3" class="edge">
<title>5&#45;&gt;8</title>
<path fill="none" stroke="black" d="M889.15,-227.22C916.48,-302.64 969.82,-449.83 1007.68,-554.32"/>
<polygon fill="none" stroke="black" points="1004.48,-555.77 1011.18,-563.98 1011.06,-553.38 1004.48,-555.77"/>
</g>
<!-- 6 -->
<g id="node7" class="node">
<title>6</title>
<polygon fill="none" stroke="black" points="997.5,-127.5 997.5,-227.5 1103.5,-227.5 1103.5,-127.5 997.5,-127.5"/>
<text text-anchor="middle" x="1050.5" y="-212.3" font-family="Times,serif" font-size="14.00">Mux</text>
<polyline fill="none" stroke="black" points="997.5,-204.5 1103.5,-204.5 "/>
<polyline fill="none" stroke="black" points="997.5,-180.5 1103.5,-180.5 "/>
<text text-anchor="start" x="1005.5" y="-165.3" font-family="Times,serif" font-size="14.00">reset()</text>
<text text-anchor="start" x="1005.5" y="-150.3" font-family="Times,serif" font-size="14.00">switch_one()</text>
<text text-anchor="start" x="1005.5" y="-135.3" font-family="Times,serif" font-size="14.00">test()</text>
</g>
<!-- 6&#45;&gt;8 -->
<g id="edge4" class="edge">
<title>6&#45;&gt;8</title>
<path fill="none" stroke="black" d="M1050.5,-227.67C1050.5,-303.01 1050.5,-449.22 1050.5,-553.45"/>
<polygon fill="none" stroke="black" points="1047,-553.72 1050.5,-563.72 1054,-553.72 1047,-553.72"/>
</g>
<!-- 7 -->
<g id="node8" class="node">
<title>7</title>
<polygon fill="none" stroke="black" points="1121.5,-135.5 1121.5,-219.5 1337.5,-219.5 1337.5,-135.5 1121.5,-135.5"/>
<text text-anchor="middle" x="1229.5" y="-204.3" font-family="Times,serif" font-size="14.00">Mux</text>
<polyline fill="none" stroke="black" points="1121.5,-196.5 1337.5,-196.5 "/>
<text text-anchor="start" x="1129.5" y="-181.3" font-family="Times,serif" font-size="14.00">addresses : dict</text>
<polyline fill="none" stroke="black" points="1121.5,-173.5 1337.5,-173.5 "/>
<text text-anchor="start" x="1129.5" y="-158.3" font-family="Times,serif" font-size="14.00">reset()</text>
<text text-anchor="start" x="1129.5" y="-143.3" font-family="Times,serif" font-size="14.00">switch_one(elec, role, state)</text>
</g>
<!-- 7&#45;&gt;8 -->
<g id="edge5" class="edge">
<title>7&#45;&gt;8</title>
<path fill="none" stroke="black" d="M1214.55,-219.77C1188.18,-292.53 1132.52,-446.15 1093.37,-554.19"/>
<polygon fill="none" stroke="black" points="1089.99,-553.25 1089.87,-563.84 1096.57,-555.63 1089.99,-553.25"/>
</g>
<!-- 9 -->
<g id="node10" class="node">
<title>9</title>
<polygon fill="none" stroke="black" points="1356,-142.5 1356,-212.5 1447,-212.5 1447,-142.5 1356,-142.5"/>
<text text-anchor="middle" x="1401.5" y="-197.3" font-family="Times,serif" font-size="14.00">MyServer</text>
<polyline fill="none" stroke="black" points="1356,-189.5 1447,-189.5 "/>
<polyline fill="none" stroke="black" points="1356,-165.5 1447,-165.5 "/>
<text text-anchor="start" x="1364" y="-150.3" font-family="Times,serif" font-size="14.00">do_POST()</text>
</g>
<!-- 10 -->
<g id="node11" class="node">
<title>10</title>
<polygon fill="none" stroke="black" points="1409,-406.5 1409,-940.5 2182,-940.5 2182,-406.5 1409,-406.5"/>
<text text-anchor="middle" x="1795.5" y="-925.3" font-family="Times,serif" font-size="14.00">OhmPi</text>
<polyline fill="none" stroke="black" points="1409,-917.5 2182,-917.5 "/>
<text text-anchor="start" x="1417" y="-902.3" font-family="Times,serif" font-size="14.00">cmd_id : NoneType</text>
<text text-anchor="start" x="1417" y="-887.3" font-family="Times,serif" font-size="14.00">controller : NoneType</text>
<text text-anchor="start" x="1417" y="-872.3" font-family="Times,serif" font-size="14.00">data_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="1417" y="-857.3" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="1417" y="-842.3" font-family="Times,serif" font-size="14.00">id : str</text>
<text text-anchor="start" x="1417" y="-827.3" font-family="Times,serif" font-size="14.00">mqtt : bool</text>
<text text-anchor="start" x="1417" y="-812.3" font-family="Times,serif" font-size="14.00">nb_samples : int</text>
<text text-anchor="start" x="1417" y="-797.3" font-family="Times,serif" font-size="14.00">on_pi : NoneType, bool</text>
<text text-anchor="start" x="1417" y="-782.3" font-family="Times,serif" font-size="14.00">sequence</text>
<text text-anchor="start" x="1417" y="-767.3" font-family="Times,serif" font-size="14.00">sequence : ndarray, NoneType</text>
<text text-anchor="start" x="1417" y="-752.3" font-family="Times,serif" font-size="14.00">settings : dict</text>
<text text-anchor="start" x="1417" y="-737.3" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="1417" y="-722.3" font-family="Times,serif" font-size="14.00">status : str</text>
<text text-anchor="start" x="1417" y="-707.3" font-family="Times,serif" font-size="14.00">thread : Thread, NoneType</text>
<polyline fill="none" stroke="black" points="1409,-699.5 2182,-699.5 "/>
<text text-anchor="start" x="1417" y="-684.3" font-family="Times,serif" font-size="14.00">append_and_save(filename, last_measurement, cmd_id)</text>
<text text-anchor="start" x="1417" y="-669.3" font-family="Times,serif" font-size="14.00">get_data(survey_names, cmd_id)</text>
<text text-anchor="start" x="1417" y="-654.3" font-family="Times,serif" font-size="14.00">get_deprecated_methods(cls)</text>
<text text-anchor="start" x="1417" y="-639.3" font-family="Times,serif" font-size="14.00">interrupt(cmd_id)</text>
<text text-anchor="start" x="1417" y="-624.3" font-family="Times,serif" font-size="14.00">load_sequence(filename, cmd_id)</text>
<text text-anchor="start" x="1417" y="-609.3" font-family="Times,serif" font-size="14.00">quit(cmd_id)</text>
<text text-anchor="start" x="1417" y="-594.3" font-family="Times,serif" font-size="14.00">remove_data(cmd_id)</text>
<text text-anchor="start" x="1417" y="-579.3" font-family="Times,serif" font-size="14.00">reset_mux(cmd_id)</text>
<text text-anchor="start" x="1417" y="-564.3" font-family="Times,serif" font-size="14.00">restart(cmd_id)</text>
<text text-anchor="start" x="1417" y="-549.3" font-family="Times,serif" font-size="14.00">rs_check(tx_volt, cmd_id)</text>
<text text-anchor="start" x="1417" y="-534.3" font-family="Times,serif" font-size="14.00">run_measurement(quad, nb_stack, injection_duration, autogain, strategy, tx_volt, best_tx_injtime, cmd_id)</text>
<text text-anchor="start" x="1417" y="-519.3" font-family="Times,serif" font-size="14.00">run_multiple_sequences(cmd_id, sequence_delay, nb_meas)</text>
<text text-anchor="start" x="1417" y="-504.3" font-family="Times,serif" font-size="14.00">run_sequence(cmd_id)</text>
<text text-anchor="start" x="1417" y="-489.3" font-family="Times,serif" font-size="14.00">run_sequence_async(cmd_id)</text>
<text text-anchor="start" x="1417" y="-474.3" font-family="Times,serif" font-size="14.00">set_sequence(sequence, cmd_id)</text>
<text text-anchor="start" x="1417" y="-459.3" font-family="Times,serif" font-size="14.00">switch_mux_off(quadrupole, cmd_id)</text>
<text text-anchor="start" x="1417" y="-444.3" font-family="Times,serif" font-size="14.00">switch_mux_on(quadrupole, bypass_check, cmd_id)</text>
<text text-anchor="start" x="1417" y="-429.3" font-family="Times,serif" font-size="14.00">test_mux(activation_time, mux_id, cmd_id)</text>
<text text-anchor="start" x="1417" y="-414.3" font-family="Times,serif" font-size="14.00">update_settings(settings, cmd_id)</text>
</g>
<!-- 11 -->
<g id="node12" class="node">
<title>11</title>
<polygon fill="none" stroke="black" points="1465.5,-8 1465.5,-347 2125.5,-347 2125.5,-8 1465.5,-8"/>
<text text-anchor="middle" x="1795.5" y="-331.8" font-family="Times,serif" font-size="14.00">OhmPiHardware</text>
<polyline fill="none" stroke="black" points="1465.5,-324 2125.5,-324 "/>
<text text-anchor="start" x="1473.5" y="-308.8" font-family="Times,serif" font-size="14.00">ctl</text>
<text text-anchor="start" x="1473.5" y="-293.8" font-family="Times,serif" font-size="14.00">data_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="1473.5" y="-278.8" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="1473.5" y="-263.8" font-family="Times,serif" font-size="14.00">last_dev</text>
<text text-anchor="start" x="1473.5" y="-248.8" font-family="Times,serif" font-size="14.00">last_rho</text>
<text text-anchor="start" x="1473.5" y="-233.8" font-family="Times,serif" font-size="14.00">mux_barrier : Barrier</text>
<text text-anchor="start" x="1473.5" y="-218.8" font-family="Times,serif" font-size="14.00">mux_boards : dict</text>
<text text-anchor="start" x="1473.5" y="-203.8" font-family="Times,serif" font-size="14.00">pulses</text>
<text text-anchor="start" x="1473.5" y="-188.8" font-family="Times,serif" font-size="14.00">pwr</text>
<text text-anchor="start" x="1473.5" y="-173.8" font-family="Times,serif" font-size="14.00">readings : ndarray</text>
<text text-anchor="start" x="1473.5" y="-158.8" font-family="Times,serif" font-size="14.00">rx</text>
<text text-anchor="start" x="1473.5" y="-143.8" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="1473.5" y="-128.8" font-family="Times,serif" font-size="14.00">sp</text>
<text text-anchor="start" x="1473.5" y="-113.8" font-family="Times,serif" font-size="14.00">tx</text>
<text text-anchor="start" x="1473.5" y="-98.8" font-family="Times,serif" font-size="14.00">tx_sync : Event</text>
<polyline fill="none" stroke="black" points="1465.5,-91 2125.5,-91 "/>
<text text-anchor="start" x="1473.5" y="-75.8" font-family="Times,serif" font-size="14.00">calibrate_rx_bias()</text>
<text text-anchor="start" x="1473.5" y="-60.8" font-family="Times,serif" font-size="14.00">reset_mux()</text>
<text text-anchor="start" x="1473.5" y="-45.8" font-family="Times,serif" font-size="14.00">switch_mux(electrodes, roles, state)</text>
<text text-anchor="start" x="1473.5" y="-30.8" font-family="Times,serif" font-size="14.00">test_mux(channel, activation_time)</text>
<text text-anchor="start" x="1473.5" y="-15.8" font-family="Times,serif" font-size="14.00">vab_square_wave(vab, cycle_duration, sampling_rate, cycles, polarity, duty_cycle, append)</text>
</g>
<!-- 11&#45;&gt;10 -->
<g id="edge14" class="edge">
<title>11&#45;&gt;10</title>
<path fill="none" stroke="black" d="M1795.5,-347.13C1795.5,-362.38 1795.5,-378.08 1795.5,-393.96"/>
<polygon fill="black" stroke="black" points="1795.5,-394.14 1799.5,-400.14 1795.5,-406.14 1791.5,-400.14 1795.5,-394.14"/>
<text text-anchor="middle" x="1809.5" y="-376.8" font-family="Times,serif" font-size="14.00" fill="green">_hw</text>
</g>
<!-- 12 -->
<g id="node13" class="node">
<title>12</title>
<polygon fill="none" stroke="black" points="2143.5,-90.5 2143.5,-264.5 2337.5,-264.5 2337.5,-90.5 2143.5,-90.5"/>
<text text-anchor="middle" x="2240.5" y="-249.3" font-family="Times,serif" font-size="14.00">Pwr</text>
<polyline fill="none" stroke="black" points="2143.5,-241.5 2337.5,-241.5 "/>
<text text-anchor="start" x="2151.5" y="-226.3" font-family="Times,serif" font-size="14.00">connection</text>
<text text-anchor="start" x="2151.5" y="-211.3" font-family="Times,serif" font-size="14.00">ctl</text>
<text text-anchor="start" x="2151.5" y="-196.3" font-family="Times,serif" font-size="14.00">current</text>
<text text-anchor="start" x="2151.5" y="-181.3" font-family="Times,serif" font-size="14.00">current_max</text>
<text text-anchor="start" x="2151.5" y="-166.3" font-family="Times,serif" font-size="14.00">voltage</text>
<text text-anchor="start" x="2151.5" y="-151.3" font-family="Times,serif" font-size="14.00">voltage_adjustable : bool</text>
<polyline fill="none" stroke="black" points="2143.5,-143.5 2337.5,-143.5 "/>
<text text-anchor="start" x="2151.5" y="-128.3" font-family="Times,serif" font-size="14.00">battery_voltage()</text>
<text text-anchor="start" x="2151.5" y="-113.3" font-family="Times,serif" font-size="14.00">turn_off()</text>
<text text-anchor="start" x="2151.5" y="-98.3" font-family="Times,serif" font-size="14.00">turn_on()</text>
</g>
<!-- 14 -->
<g id="node15" class="node">
<title>14</title>
<polygon fill="none" stroke="black" points="2257,-579 2257,-768 2536,-768 2536,-579 2257,-579"/>
<text text-anchor="middle" x="2396.5" y="-752.8" font-family="Times,serif" font-size="14.00">PwrAbstract</text>
<polyline fill="none" stroke="black" points="2257,-745 2536,-745 "/>
<text text-anchor="start" x="2265" y="-729.8" font-family="Times,serif" font-size="14.00">board_name</text>
<text text-anchor="start" x="2265" y="-714.8" font-family="Times,serif" font-size="14.00">connection</text>
<text text-anchor="start" x="2265" y="-699.8" font-family="Times,serif" font-size="14.00">ctl</text>
<text text-anchor="start" x="2265" y="-684.8" font-family="Times,serif" font-size="14.00">current</text>
<text text-anchor="start" x="2265" y="-669.8" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="2265" y="-654.8" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="2265" y="-639.8" font-family="Times,serif" font-size="14.00">voltage</text>
<text text-anchor="start" x="2265" y="-624.8" font-family="Times,serif" font-size="14.00">voltage_adjustable</text>
<polyline fill="none" stroke="black" points="2257,-617 2536,-617 "/>
<text text-anchor="start" x="2265" y="-601.8" font-family="Times,serif" font-size="14.00">turn_off()</text>
<text text-anchor="start" x="2265" y="-586.8" font-family="Times,serif" font-size="14.00">turn_on()</text>
</g>
<!-- 12&#45;&gt;14 -->
<g id="edge6" class="edge">
<title>12&#45;&gt;14</title>
<path fill="none" stroke="black" d="M2267.67,-264.55C2294.41,-349.23 2335.27,-478.62 2363.78,-568.9"/>
<polygon fill="none" stroke="black" points="2360.5,-570.13 2366.85,-578.61 2367.18,-568.02 2360.5,-570.13"/>
</g>
<!-- 13 -->
<g id="node14" class="node">
<title>13</title>
<polygon fill="none" stroke="black" points="2355.5,-120.5 2355.5,-234.5 2549.5,-234.5 2549.5,-120.5 2355.5,-120.5"/>
<text text-anchor="middle" x="2452.5" y="-219.3" font-family="Times,serif" font-size="14.00">Pwr</text>
<polyline fill="none" stroke="black" points="2355.5,-211.5 2549.5,-211.5 "/>
<text text-anchor="start" x="2363.5" y="-196.3" font-family="Times,serif" font-size="14.00">current</text>
<text text-anchor="start" x="2363.5" y="-181.3" font-family="Times,serif" font-size="14.00">voltage</text>
<text text-anchor="start" x="2363.5" y="-166.3" font-family="Times,serif" font-size="14.00">voltage_adjustable : bool</text>
<polyline fill="none" stroke="black" points="2355.5,-158.5 2549.5,-158.5 "/>
<text text-anchor="start" x="2363.5" y="-143.3" font-family="Times,serif" font-size="14.00">turn_off()</text>
<text text-anchor="start" x="2363.5" y="-128.3" font-family="Times,serif" font-size="14.00">turn_on()</text>
</g>
<!-- 13&#45;&gt;14 -->
<g id="edge7" class="edge">
<title>13&#45;&gt;14</title>
<path fill="none" stroke="black" d="M2446.13,-234.69C2436.93,-315.82 2419.78,-467.17 2408.25,-568.89"/>
<polygon fill="none" stroke="black" points="2404.76,-568.55 2407.11,-578.88 2411.72,-569.34 2404.76,-568.55"/>
</g>
<!-- 15 -->
<g id="node16" class="node">
<title>15</title>
<polygon fill="none" stroke="black" points="2567.5,-113 2567.5,-242 2695.5,-242 2695.5,-113 2567.5,-113"/>
<text text-anchor="middle" x="2631.5" y="-226.8" font-family="Times,serif" font-size="14.00">Rx</text>
<polyline fill="none" stroke="black" points="2567.5,-219 2695.5,-219 "/>
<text text-anchor="start" x="2575.5" y="-203.8" font-family="Times,serif" font-size="14.00">adc_gain</text>
<text text-anchor="start" x="2575.5" y="-188.8" font-family="Times,serif" font-size="14.00">adc_gain</text>
<text text-anchor="start" x="2575.5" y="-173.8" font-family="Times,serif" font-size="14.00">connection</text>
<text text-anchor="start" x="2575.5" y="-158.8" font-family="Times,serif" font-size="14.00">ctl</text>
<text text-anchor="start" x="2575.5" y="-143.8" font-family="Times,serif" font-size="14.00">voltage</text>
<polyline fill="none" stroke="black" points="2567.5,-136 2695.5,-136 "/>
<text text-anchor="start" x="2575.5" y="-120.8" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
</g>
<!-- 18 -->
<g id="node19" class="node">
<title>18</title>
<polygon fill="none" stroke="black" points="2638,-586.5 2638,-760.5 2917,-760.5 2917,-586.5 2638,-586.5"/>
<text text-anchor="middle" x="2777.5" y="-745.3" font-family="Times,serif" font-size="14.00">RxAbstract</text>
<polyline fill="none" stroke="black" points="2638,-737.5 2917,-737.5 "/>
<text text-anchor="start" x="2646" y="-722.3" font-family="Times,serif" font-size="14.00">adc_gain</text>
<text text-anchor="start" x="2646" y="-707.3" font-family="Times,serif" font-size="14.00">board_name</text>
<text text-anchor="start" x="2646" y="-692.3" font-family="Times,serif" font-size="14.00">connection</text>
<text text-anchor="start" x="2646" y="-677.3" font-family="Times,serif" font-size="14.00">ctl</text>
<text text-anchor="start" x="2646" y="-662.3" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="2646" y="-647.3" font-family="Times,serif" font-size="14.00">sampling_rate</text>
<text text-anchor="start" x="2646" y="-632.3" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="2646" y="-617.3" font-family="Times,serif" font-size="14.00">voltage</text>
<polyline fill="none" stroke="black" points="2638,-609.5 2917,-609.5 "/>
<text text-anchor="start" x="2646" y="-594.3" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
</g>
<!-- 15&#45;&gt;18 -->
<g id="edge8" class="edge">
<title>15&#45;&gt;18</title>
<path fill="none" stroke="black" d="M2650.29,-242.07C2675.37,-326.93 2720.01,-477.97 2749.18,-576.68"/>
<polygon fill="none" stroke="black" points="2745.85,-577.76 2752.04,-586.36 2752.56,-575.78 2745.85,-577.76"/>
</g>
<!-- 16 -->
<g id="node17" class="node">
<title>16</title>
<polygon fill="none" stroke="black" points="2713.5,-128 2713.5,-227 2841.5,-227 2841.5,-128 2713.5,-128"/>
<text text-anchor="middle" x="2777.5" y="-211.8" font-family="Times,serif" font-size="14.00">Rx</text>
<polyline fill="none" stroke="black" points="2713.5,-204 2841.5,-204 "/>
<text text-anchor="start" x="2721.5" y="-188.8" font-family="Times,serif" font-size="14.00">adc_gain</text>
<text text-anchor="start" x="2721.5" y="-173.8" font-family="Times,serif" font-size="14.00">adc_gain : float</text>
<text text-anchor="start" x="2721.5" y="-158.8" font-family="Times,serif" font-size="14.00">voltage</text>
<polyline fill="none" stroke="black" points="2713.5,-151 2841.5,-151 "/>
<text text-anchor="start" x="2721.5" y="-135.8" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
</g>
<!-- 16&#45;&gt;18 -->
<g id="edge9" class="edge">
<title>16&#45;&gt;18</title>
<path fill="none" stroke="black" d="M2777.5,-227.22C2777.5,-308.02 2777.5,-471.22 2777.5,-576.01"/>
<polygon fill="none" stroke="black" points="2774,-576.27 2777.5,-586.27 2781,-576.27 2774,-576.27"/>
</g>
<!-- 17 -->
<g id="node18" class="node">
<title>17</title>
<polygon fill="none" stroke="black" points="2859.5,-60.5 2859.5,-294.5 3047.5,-294.5 3047.5,-60.5 2859.5,-60.5"/>
<text text-anchor="middle" x="2953.5" y="-279.3" font-family="Times,serif" font-size="14.00">Rx</text>
<polyline fill="none" stroke="black" points="2859.5,-271.5 3047.5,-271.5 "/>
<text text-anchor="start" x="2867.5" y="-256.3" font-family="Times,serif" font-size="14.00">adc_gain</text>
<text text-anchor="start" x="2867.5" y="-241.3" font-family="Times,serif" font-size="14.00">adc_gain : float</text>
<text text-anchor="start" x="2867.5" y="-226.3" font-family="Times,serif" font-size="14.00">ctl</text>
<text text-anchor="start" x="2867.5" y="-211.3" font-family="Times,serif" font-size="14.00">io</text>
<text text-anchor="start" x="2867.5" y="-196.3" font-family="Times,serif" font-size="14.00">mcp_board : MCP23008</text>
<text text-anchor="start" x="2867.5" y="-181.3" font-family="Times,serif" font-size="14.00">pin_DG0 : DigitalInOut</text>
<text text-anchor="start" x="2867.5" y="-166.3" font-family="Times,serif" font-size="14.00">pin_DG1 : DigitalInOut</text>
<text text-anchor="start" x="2867.5" y="-151.3" font-family="Times,serif" font-size="14.00">pin_DG2 : DigitalInOut</text>
<text text-anchor="start" x="2867.5" y="-136.3" font-family="Times,serif" font-size="14.00">voltage</text>
<text text-anchor="start" x="2867.5" y="-121.3" font-family="Times,serif" font-size="14.00">voltage_gain</text>
<text text-anchor="start" x="2867.5" y="-106.3" font-family="Times,serif" font-size="14.00">voltage_gain : int, float</text>
<polyline fill="none" stroke="black" points="2859.5,-98.5 3047.5,-98.5 "/>
<text text-anchor="start" x="2867.5" y="-83.3" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
<text text-anchor="start" x="2867.5" y="-68.3" font-family="Times,serif" font-size="14.00">voltage_gain_auto()</text>
</g>
<!-- 17&#45;&gt;18 -->
<g id="edge10" class="edge">
<title>17&#45;&gt;18</title>
<path fill="none" stroke="black" d="M2912.12,-294.63C2881.51,-380.56 2840.32,-496.18 2811.59,-576.81"/>
<polygon fill="none" stroke="black" points="2808.21,-575.88 2808.15,-586.47 2814.8,-578.22 2808.21,-575.88"/>
</g>
<!-- 19 -->
<g id="node20" class="node">
<title>19</title>
<polygon fill="none" stroke="black" points="3065.5,-0.5 3065.5,-354.5 3361.5,-354.5 3361.5,-0.5 3065.5,-0.5"/>
<text text-anchor="middle" x="3213.5" y="-339.3" font-family="Times,serif" font-size="14.00">Tx</text>
<polyline fill="none" stroke="black" points="3065.5,-331.5 3361.5,-331.5 "/>
<text text-anchor="start" x="3073.5" y="-316.3" font-family="Times,serif" font-size="14.00">adc_gain</text>
<text text-anchor="start" x="3073.5" y="-301.3" font-family="Times,serif" font-size="14.00">adc_gain : int, float</text>
<text text-anchor="start" x="3073.5" y="-286.3" font-family="Times,serif" font-size="14.00">connection</text>
<text text-anchor="start" x="3073.5" y="-271.3" font-family="Times,serif" font-size="14.00">ctl</text>
<text text-anchor="start" x="3073.5" y="-256.3" font-family="Times,serif" font-size="14.00">current</text>
<text text-anchor="start" x="3073.5" y="-241.3" font-family="Times,serif" font-size="14.00">current_adjustable : bool</text>
<text text-anchor="start" x="3073.5" y="-226.3" font-family="Times,serif" font-size="14.00">mcp_board : MCP23008</text>
<text text-anchor="start" x="3073.5" y="-211.3" font-family="Times,serif" font-size="14.00">pin0 : DigitalInOut</text>
<text text-anchor="start" x="3073.5" y="-196.3" font-family="Times,serif" font-size="14.00">pin1 : DigitalInOut</text>
<text text-anchor="start" x="3073.5" y="-181.3" font-family="Times,serif" font-size="14.00">pin4 : DigitalInOut</text>
<text text-anchor="start" x="3073.5" y="-166.3" font-family="Times,serif" font-size="14.00">polarity</text>
<text text-anchor="start" x="3073.5" y="-151.3" font-family="Times,serif" font-size="14.00">polarity : int</text>
<text text-anchor="start" x="3073.5" y="-136.3" font-family="Times,serif" font-size="14.00">pwr : NoneType</text>
<text text-anchor="start" x="3073.5" y="-121.3" font-family="Times,serif" font-size="14.00">tx_bat</text>
<text text-anchor="start" x="3073.5" y="-106.3" font-family="Times,serif" font-size="14.00">voltage_adjustable : bool</text>
<polyline fill="none" stroke="black" points="3065.5,-98.5 3361.5,-98.5 "/>
<text text-anchor="start" x="3073.5" y="-83.3" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
<text text-anchor="start" x="3073.5" y="-68.3" font-family="Times,serif" font-size="14.00">current_pulse()</text>
<text text-anchor="start" x="3073.5" y="-53.3" font-family="Times,serif" font-size="14.00">inject(polarity, injection_duration)</text>
<text text-anchor="start" x="3073.5" y="-38.3" font-family="Times,serif" font-size="14.00">turn_off()</text>
<text text-anchor="start" x="3073.5" y="-23.3" font-family="Times,serif" font-size="14.00">turn_on()</text>
<text text-anchor="start" x="3073.5" y="-8.3" font-family="Times,serif" font-size="14.00">voltage_pulse(voltage, length, polarity)</text>
</g>
<!-- 22 -->
<g id="node23" class="node">
<title>22</title>
<polygon fill="none" stroke="black" points="3379.5,-534 3379.5,-813 3675.5,-813 3675.5,-534 3379.5,-534"/>
<text text-anchor="middle" x="3527.5" y="-797.8" font-family="Times,serif" font-size="14.00">TxAbstract</text>
<polyline fill="none" stroke="black" points="3379.5,-790 3675.5,-790 "/>
<text text-anchor="start" x="3387.5" y="-774.8" font-family="Times,serif" font-size="14.00">adc_gain</text>
<text text-anchor="start" x="3387.5" y="-759.8" font-family="Times,serif" font-size="14.00">board_name</text>
<text text-anchor="start" x="3387.5" y="-744.8" font-family="Times,serif" font-size="14.00">connection</text>
<text text-anchor="start" x="3387.5" y="-729.8" font-family="Times,serif" font-size="14.00">ctl</text>
<text text-anchor="start" x="3387.5" y="-714.8" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="3387.5" y="-699.8" font-family="Times,serif" font-size="14.00">injection_duration</text>
<text text-anchor="start" x="3387.5" y="-684.8" font-family="Times,serif" font-size="14.00">injection_duration</text>
<text text-anchor="start" x="3387.5" y="-669.8" font-family="Times,serif" font-size="14.00">polarity</text>
<text text-anchor="start" x="3387.5" y="-654.8" font-family="Times,serif" font-size="14.00">pwr</text>
<text text-anchor="start" x="3387.5" y="-639.8" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
<text text-anchor="start" x="3387.5" y="-624.8" font-family="Times,serif" font-size="14.00">tx_bat</text>
<text text-anchor="start" x="3387.5" y="-609.8" font-family="Times,serif" font-size="14.00">tx_sync</text>
<polyline fill="none" stroke="black" points="3379.5,-602 3675.5,-602 "/>
<text text-anchor="start" x="3387.5" y="-586.8" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
<text text-anchor="start" x="3387.5" y="-571.8" font-family="Times,serif" font-size="14.00">current_pulse()</text>
<text text-anchor="start" x="3387.5" y="-556.8" font-family="Times,serif" font-size="14.00">inject(polarity, injection_duration)</text>
<text text-anchor="start" x="3387.5" y="-541.8" font-family="Times,serif" font-size="14.00">voltage_pulse(voltage, length, polarity)</text>
</g>
<!-- 19&#45;&gt;22 -->
<g id="edge11" class="edge">
<title>19&#45;&gt;22</title>
<path fill="none" stroke="black" d="M3325.53,-354.75C3361.06,-410.64 3399.94,-471.81 3434.02,-525.43"/>
<polygon fill="none" stroke="black" points="3431.13,-527.4 3439.44,-533.97 3437.03,-523.65 3431.13,-527.4"/>
</g>
<!-- 20 -->
<g id="node21" class="node">
<title>20</title>
<polygon fill="none" stroke="black" points="3379.5,-83 3379.5,-272 3675.5,-272 3675.5,-83 3379.5,-83"/>
<text text-anchor="middle" x="3527.5" y="-256.8" font-family="Times,serif" font-size="14.00">Tx</text>
<polyline fill="none" stroke="black" points="3379.5,-249 3675.5,-249 "/>
<text text-anchor="start" x="3387.5" y="-233.8" font-family="Times,serif" font-size="14.00">adc_gain</text>
<text text-anchor="start" x="3387.5" y="-218.8" font-family="Times,serif" font-size="14.00">adc_gain : float</text>
<text text-anchor="start" x="3387.5" y="-203.8" font-family="Times,serif" font-size="14.00">current</text>
<text text-anchor="start" x="3387.5" y="-188.8" font-family="Times,serif" font-size="14.00">polarity : int</text>
<text text-anchor="start" x="3387.5" y="-173.8" font-family="Times,serif" font-size="14.00">tx_bat</text>
<text text-anchor="start" x="3387.5" y="-158.8" font-family="Times,serif" font-size="14.00">voltage</text>
<polyline fill="none" stroke="black" points="3379.5,-151 3675.5,-151 "/>
<text text-anchor="start" x="3387.5" y="-135.8" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
<text text-anchor="start" x="3387.5" y="-120.8" font-family="Times,serif" font-size="14.00">current_pulse()</text>
<text text-anchor="start" x="3387.5" y="-105.8" font-family="Times,serif" font-size="14.00">inject(state)</text>
<text text-anchor="start" x="3387.5" y="-90.8" font-family="Times,serif" font-size="14.00">voltage_pulse(voltage, length, polarity)</text>
</g>
<!-- 20&#45;&gt;22 -->
<g id="edge12" class="edge">
<title>20&#45;&gt;22</title>
<path fill="none" stroke="black" d="M3527.5,-272.29C3527.5,-343.13 3527.5,-441.77 3527.5,-523.39"/>
<polygon fill="none" stroke="black" points="3524,-523.77 3527.5,-533.77 3531,-523.77 3524,-523.77"/>
</g>
<!-- 21 -->
<g id="node22" class="node">
<title>21</title>
<polygon fill="none" stroke="black" points="3693.5,-0.5 3693.5,-354.5 3989.5,-354.5 3989.5,-0.5 3693.5,-0.5"/>
<text text-anchor="middle" x="3841.5" y="-339.3" font-family="Times,serif" font-size="14.00">Tx</text>
<polyline fill="none" stroke="black" points="3693.5,-331.5 3989.5,-331.5 "/>
<text text-anchor="start" x="3701.5" y="-316.3" font-family="Times,serif" font-size="14.00">adc_gain</text>
<text text-anchor="start" x="3701.5" y="-301.3" font-family="Times,serif" font-size="14.00">adc_gain : int, float</text>
<text text-anchor="start" x="3701.5" y="-286.3" font-family="Times,serif" font-size="14.00">ctl</text>
<text text-anchor="start" x="3701.5" y="-271.3" font-family="Times,serif" font-size="14.00">current</text>
<text text-anchor="start" x="3701.5" y="-256.3" font-family="Times,serif" font-size="14.00">current_adjustable : bool</text>
<text text-anchor="start" x="3701.5" y="-241.3" font-family="Times,serif" font-size="14.00">io</text>
<text text-anchor="start" x="3701.5" y="-226.3" font-family="Times,serif" font-size="14.00">mcp_board : MCP23008</text>
<text text-anchor="start" x="3701.5" y="-211.3" font-family="Times,serif" font-size="14.00">pin0 : DigitalInOut</text>
<text text-anchor="start" x="3701.5" y="-196.3" font-family="Times,serif" font-size="14.00">pin1 : DigitalInOut</text>
<text text-anchor="start" x="3701.5" y="-181.3" font-family="Times,serif" font-size="14.00">pin4 : DigitalInOut</text>
<text text-anchor="start" x="3701.5" y="-166.3" font-family="Times,serif" font-size="14.00">polarity</text>
<text text-anchor="start" x="3701.5" y="-151.3" font-family="Times,serif" font-size="14.00">polarity : int</text>
<text text-anchor="start" x="3701.5" y="-136.3" font-family="Times,serif" font-size="14.00">pwr : NoneType</text>
<text text-anchor="start" x="3701.5" y="-121.3" font-family="Times,serif" font-size="14.00">tx_bat</text>
<text text-anchor="start" x="3701.5" y="-106.3" font-family="Times,serif" font-size="14.00">voltage_adjustable : bool</text>
<polyline fill="none" stroke="black" points="3693.5,-98.5 3989.5,-98.5 "/>
<text text-anchor="start" x="3701.5" y="-83.3" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
<text text-anchor="start" x="3701.5" y="-68.3" font-family="Times,serif" font-size="14.00">current_pulse()</text>
<text text-anchor="start" x="3701.5" y="-53.3" font-family="Times,serif" font-size="14.00">inject(polarity, injection_duration)</text>
<text text-anchor="start" x="3701.5" y="-38.3" font-family="Times,serif" font-size="14.00">turn_off()</text>
<text text-anchor="start" x="3701.5" y="-23.3" font-family="Times,serif" font-size="14.00">turn_on()</text>
<text text-anchor="start" x="3701.5" y="-8.3" font-family="Times,serif" font-size="14.00">voltage_pulse(voltage, length, polarity)</text>
</g>
<!-- 21&#45;&gt;22 -->
<g id="edge13" class="edge">
<title>21&#45;&gt;22</title>
<path fill="none" stroke="black" d="M3729.47,-354.75C3693.94,-410.64 3655.06,-471.81 3620.98,-525.43"/>
<polygon fill="none" stroke="black" points="3617.97,-523.65 3615.56,-533.97 3623.87,-527.4 3617.97,-523.65"/>
</g>
</g>
</svg>
......@@ -11,32 +11,31 @@ rankdir=BT
"7" [label="ohmpi.hardware_components.dummy_mux", shape="box"];
"8" [label="ohmpi.hardware_components.dummy_rx", shape="box"];
"9" [label="ohmpi.hardware_components.dummy_tx", shape="box"];
"10" [label="ohmpi.hardware_components.mb_2024_rev_0_0", shape="box"];
"11" [label="ohmpi.hardware_components.mux_2023_rev_0_0", shape="box"];
"12" [label="ohmpi.hardware_components.mux_2024_rev_0_0", shape="box"];
"13" [label="ohmpi.hardware_components.ohmpi_card_3_15", shape="box"];
"10" [label="ohmpi.hardware_components.mb_2023_0_X", shape="box"];
"11" [label="ohmpi.hardware_components.mb_2024_0_2", shape="box"];
"12" [label="ohmpi.hardware_components.mux_2023_0_X", shape="box"];
"13" [label="ohmpi.hardware_components.mux_2024_0_X", shape="box"];
"14" [label="ohmpi.hardware_components.pwr_batt", shape="box"];
"15" [label="ohmpi.hardware_components.pwr_dps5005", shape="box"];
"16" [label="ohmpi.hardware_components.raspberry_pi_i2c", shape="box"];
"17" [label="ohmpi.hardware_components.raspberry_pi_modbus", shape="box"];
"18" [label="ohmpi.hardware_system", shape="box"];
"19" [label="ohmpi.http_interface", shape="box"];
"20" [label="ohmpi.logging_setup", shape="box"];
"21" [label="ohmpi.mqtt_handler", shape="box"];
"22" [label="ohmpi.ohmpi", shape="box"];
"23" [label="ohmpi.plots", shape="box"];
"24" [label="ohmpi.utils", shape="box"];
"2" -> "24" [arrowhead="open", arrowtail="none"];
"16" [label="ohmpi.hardware_components.raspberry_pi", shape="box"];
"17" [label="ohmpi.hardware_system", shape="box"];
"18" [label="ohmpi.http_interface", shape="box"];
"19" [label="ohmpi.logging_setup", shape="box"];
"20" [label="ohmpi.mqtt_handler", shape="box"];
"21" [label="ohmpi.ohmpi", shape="box"];
"22" [label="ohmpi.plots", shape="box"];
"23" [label="ohmpi.utils", shape="box"];
"2" -> "23" [arrowhead="open", arrowtail="none"];
"4" -> "5" [arrowhead="open", arrowtail="none"];
"5" -> "20" [arrowhead="open", arrowtail="none"];
"5" -> "19" [arrowhead="open", arrowtail="none"];
"6" -> "2" [arrowhead="open", arrowtail="none"];
"6" -> "4" [arrowhead="open", arrowtail="none"];
"6" -> "22" [arrowhead="open", arrowtail="none"];
"7" -> "2" [arrowhead="open", arrowtail="none"];
"7" -> "4" [arrowhead="open", arrowtail="none"];
"8" -> "4" [arrowhead="open", arrowtail="none"];
"8" -> "22" [arrowhead="open", arrowtail="none"];
"8" -> "21" [arrowhead="open", arrowtail="none"];
"9" -> "2" [arrowhead="open", arrowtail="none"];
"9" -> "4" [arrowhead="open", arrowtail="none"];
"9" -> "22" [arrowhead="open", arrowtail="none"];
"10" -> "2" [arrowhead="open", arrowtail="none"];
"10" -> "4" [arrowhead="open", arrowtail="none"];
"11" -> "2" [arrowhead="open", arrowtail="none"];
......@@ -49,21 +48,18 @@ rankdir=BT
"15" -> "2" [arrowhead="open", arrowtail="none"];
"15" -> "5" [arrowhead="open", arrowtail="none"];
"16" -> "4" [arrowhead="open", arrowtail="none"];
"16" -> "24" [arrowhead="open", arrowtail="none"];
"16" -> "23" [arrowhead="open", arrowtail="none"];
"17" -> "2" [arrowhead="open", arrowtail="none"];
"17" -> "4" [arrowhead="open", arrowtail="none"];
"17" -> "24" [arrowhead="open", arrowtail="none"];
"17" -> "5" [arrowhead="open", arrowtail="none"];
"17" -> "19" [arrowhead="open", arrowtail="none"];
"17" -> "23" [arrowhead="open", arrowtail="none"];
"18" -> "2" [arrowhead="open", arrowtail="none"];
"18" -> "5" [arrowhead="open", arrowtail="none"];
"18" -> "20" [arrowhead="open", arrowtail="none"];
"18" -> "24" [arrowhead="open", arrowtail="none"];
"19" -> "1" [arrowhead="open", arrowtail="none"];
"19" -> "2" [arrowhead="open", arrowtail="none"];
"20" -> "1" [arrowhead="open", arrowtail="none"];
"20" -> "2" [arrowhead="open", arrowtail="none"];
"20" -> "21" [arrowhead="open", arrowtail="none"];
"22" -> "2" [arrowhead="open", arrowtail="none"];
"22" -> "18" [arrowhead="open", arrowtail="none"];
"22" -> "20" [arrowhead="open", arrowtail="none"];
"22" -> "24" [arrowhead="open", arrowtail="none"];
"23" -> "24" [arrowhead="open", arrowtail="none"];
"19" -> "20" [arrowhead="open", arrowtail="none"];
"21" -> "2" [arrowhead="open", arrowtail="none"];
"21" -> "17" [arrowhead="open", arrowtail="none"];
"21" -> "19" [arrowhead="open", arrowtail="none"];
"21" -> "23" [arrowhead="open", arrowtail="none"];
"22" -> "23" [arrowhead="open", arrowtail="none"];
}
uml_diagrams/packages_uml_ohmpi.dot.png

224 KB | W: | H:

uml_diagrams/packages_uml_ohmpi.dot.png

209 KB | W: | H:

uml_diagrams/packages_uml_ohmpi.dot.png
uml_diagrams/packages_uml_ohmpi.dot.png
uml_diagrams/packages_uml_ohmpi.dot.png
uml_diagrams/packages_uml_ohmpi.dot.png
  • 2-up
  • Swipe
  • Onion skin
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment