diff --git a/ohmpi/hardware_components/dummy_ctl.py b/ohmpi/hardware_components/dummy_ctl.py index b9cedf8f4adfa133cad9bd57ccc5fa8e48f66531..9eeb98e0a4ee56f075ccc061c2feb58e13cfba90 100644 --- a/ohmpi/hardware_components/dummy_ctl.py +++ b/ohmpi/hardware_components/dummy_ctl.py @@ -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 diff --git a/uml_diagrams/classes_uml_ohmpi.dot b/uml_diagrams/classes_uml_ohmpi.dot index b16d126edf33b1e5158d946400c1ac62d25a1a3c..2071ce04e004cfe6ade11f8de935531f3d3e3386 100644 --- a/uml_diagrams/classes_uml_ohmpi.dot +++ b/uml_diagrams/classes_uml_ohmpi.dot @@ -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"]; } diff --git a/uml_diagrams/classes_uml_ohmpi.dot.png b/uml_diagrams/classes_uml_ohmpi.dot.png index 00b93feb2a608839aa567e627eeb3588a2a23078..aee047e1953c5924ff5078c615f9f46bffc3a7ae 100644 Binary files a/uml_diagrams/classes_uml_ohmpi.dot.png and b/uml_diagrams/classes_uml_ohmpi.dot.png differ diff --git a/uml_diagrams/classes_uml_ohmpi.dot.svg b/uml_diagrams/classes_uml_ohmpi.dot.svg index c7a229ae61d163551587f58cc68074c778e6da2d..a9efb920da2c9b15bcb79a3d04970923e89b84f5 100644 --- a/uml_diagrams/classes_uml_ohmpi.dot.svg +++ b/uml_diagrams/classes_uml_ohmpi.dot.svg @@ -1,506 +1,514 @@ <?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->4 --> - <!-- 2 --> - <!-- 2->4 --> - <!-- 3 --> - <!-- 3->4 --> - <!-- 5 --> - <!-- 6 --> - <!-- 9 --> - <!-- 6->9 --> - <!-- 7 --> - <!-- 7->9 --> - <!-- 8 --> - <!-- 8->9 --> - <!-- 10 --> - <!-- 11 --> - <!-- 12 --> - <!-- 12->11 --> - <!-- 13 --> - <!-- 15 --> - <!-- 13->15 --> - <!-- 14 --> - <!-- 14->15 --> - <!-- 16 --> - <!-- 19 --> - <!-- 16->19 --> - <!-- 17 --> - <!-- 17->19 --> - <!-- 18 --> - <!-- 18->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->23 --> - <g - id="edge12" - class="edge"> - <title - id="title1585">20->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->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->23 --> - <g - id="edge14" - class="edge"> - <title - id="title1685">22->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->3 --> +<g id="edge1" class="edge"> +<title>1->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->3 --> +<g id="edge2" class="edge"> +<title>2->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->8 --> +<g id="edge3" class="edge"> +<title>5->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->8 --> +<g id="edge4" class="edge"> +<title>6->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->8 --> +<g id="edge5" class="edge"> +<title>7->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->10 --> +<g id="edge14" class="edge"> +<title>11->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->14 --> +<g id="edge6" class="edge"> +<title>12->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->14 --> +<g id="edge7" class="edge"> +<title>13->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->18 --> +<g id="edge8" class="edge"> +<title>15->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->18 --> +<g id="edge9" class="edge"> +<title>16->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->18 --> +<g id="edge10" class="edge"> +<title>17->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->22 --> +<g id="edge11" class="edge"> +<title>19->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->22 --> +<g id="edge12" class="edge"> +<title>20->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->22 --> +<g id="edge13" class="edge"> +<title>21->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> diff --git a/uml_diagrams/packages_uml_ohmpi.dot b/uml_diagrams/packages_uml_ohmpi.dot index 8bb7d66ea4dd84b71a8761a9bc5370e73eaaee6a..d57d3be5340fdd6260e8e1ad79514cddfe78b9ac 100644 --- a/uml_diagrams/packages_uml_ohmpi.dot +++ b/uml_diagrams/packages_uml_ohmpi.dot @@ -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"]; } diff --git a/uml_diagrams/packages_uml_ohmpi.dot.png b/uml_diagrams/packages_uml_ohmpi.dot.png index 62de687bf022763495108e836b24be473d3481b8..f69d4ef240878b1c8cd6aa39ccc36c315bb221db 100644 Binary files a/uml_diagrams/packages_uml_ohmpi.dot.png and b/uml_diagrams/packages_uml_ohmpi.dot.png differ