diff --git a/configs/config_mb_2023_4_mux_2024.py b/configs/config_mb_2023_4_mux_2024.py index 57aab864e27b487e7b30b6b2439686256598c439..afcdfa1e5d17160e4e06cf3210ae1197bb06a622 100644 --- a/configs/config_mb_2023_4_mux_2024.py +++ b/configs/config_mb_2023_4_mux_2024.py @@ -35,7 +35,7 @@ HARDWARE_CONFIG = { # overwritten by board properties defined at the board level within the board model file # both will be overwritten by properties specified in the board dict below. Use with caution... {'boards': - {'mux_1': + {'mux_02': {'model': 'mux_2024_rev_0_0', # 'ohmpi_i2c_mux64_v1.01', 'tca_address': 0x77, 'tca_channel': 0, @@ -44,7 +44,7 @@ HARDWARE_CONFIG = { 'roles': {'A': 'X', 'B': 'Y', 'M': 'XX', 'N': 'YY'}, 'cabling': {(i, j): ('mux_1', i) for j in ['A', 'B', 'M', 'N'] for i in range(1, 9)}, 'voltage_max': 12.}, - 'mux_2': + 'mux_05': {'model': 'mux_2024_rev_0_0', # 'ohmpi_i2c_mux64_v1.01', 'tca_address': 0x77, 'tca_channel': 0, @@ -53,7 +53,7 @@ HARDWARE_CONFIG = { 'roles': {'A': 'X', 'B': 'Y', 'M': 'XX', 'N': 'YY'}, 'cabling': {(i, j): ('mux_2', i) for j in ['A', 'B', 'M', 'N'] for i in range(9, 17)}, 'voltage_max': 12.}, - 'mux_3': + 'mux_04': {'model': 'mux_2024_rev_0_0', # 'ohmpi_i2c_mux64_v1.01', 'tca_address': 0x77, 'tca_channel': 0, @@ -62,7 +62,7 @@ HARDWARE_CONFIG = { 'roles': {'A': 'X', 'B': 'Y', 'M': 'XX', 'N': 'YY'}, 'cabling': {(i, j): ('mux_2', i) for j in ['A', 'B', 'M', 'N'] for i in range(17, 25)}, 'voltage_max': 12.}, - 'mux_4': + 'mux_06': {'model': 'mux_2024_rev_0_0', # 'ohmpi_i2c_mux64_v1.01', 'tca_address': 0x77, 'tca_channel': 0, diff --git a/configs/config_mb_2023_mux_2024.py b/configs/config_mb_2023_mux_2024.py index 186729ad4e9221c6f0178b8526c2ea609433e192..5efb43ad5f0468f2d5a4b4d89af0dd0e2953e3be 100644 --- a/configs/config_mb_2023_mux_2024.py +++ b/configs/config_mb_2023_mux_2024.py @@ -44,7 +44,8 @@ HARDWARE_CONFIG = { 'mcp_1' : '0x23', # TODO : Replace this with pos of jumper on MUX board (address doesn't mean anything for the average user...) 'roles' : {'A': 'X', 'B': 'Y', 'M': 'XX', 'N': 'YY'}, 'voltage_max': 12. - }}, + } + }, 'default': {'voltage_max': 100., 'current_max': 3.}} } diff --git a/dev/test_4_mux_2024.py b/dev/test_4_mux_2024.py new file mode 100644 index 0000000000000000000000000000000000000000..eb433f2cdba407b9b625ffe435bc0d838e580914 --- /dev/null +++ b/dev/test_4_mux_2024.py @@ -0,0 +1,60 @@ +import time +from ohmpi.utils import change_config +from ohmpi.plots import plot_exec_log +import logging +change_config('../configs/config_mb_2023_4_mux_2024.py', verbose=False) +from ohmpi.hardware_components.mux_2024_rev_0_0 import Mux, MUX_CONFIG +from ohmpi.hardware_components import raspberry_pi_i2c as ctl_module +# from ohmpi.config import HARDWARE_CONFIG + +stand_alone_mux = True +part_of_hardware_system = False +within_ohmpi = False +# Stand alone mux +if stand_alone_mux: + MUX_CONFIG['ctl'] = ctl_module.Ctl() + MUX_CONFIG['id'] = 'mux_02' + MUX_CONFIG['cabling'] = {(i, j): ('mux_1', i) for j in ['A', 'B', 'M', 'N'] for i in range(1,9)} + mux = Mux(**MUX_CONFIG) + mux.switch_one(elec=1, role='M', state='on') + time.sleep(2) + mux.switch_one(elec=1, role='M', state='off') + mux.switch({'A': [1], 'B': [2], 'M': [3], 'N': [4]}, state='on') + time.sleep(8) + # mux.switch({'A': [1], 'B': [4], 'M': [2], 'N': [3]}, state='off') + mux.reset() + mux.test({'A': [i for i in range(1, 9)], 'B': [i for i in range(1, 9)], + 'M': [i for i in range(1, 9)], 'N': [i for i in range(1, 9)]}, activation_time=.1) + +# mux as part of a OhmPiHardware system +if part_of_hardware_system: + from ohmpi.hardware_system import OhmPiHardware + print('Starting test of mux as part of a OhmPiHardware system.') + + k = OhmPiHardware() + k.exec_logger.setLevel(logging.DEBUG) + + # Test mux switching + k.reset_mux() + k.switch_mux(electrodes=[1, 4, 2, 3], roles=['A', 'B', 'M', 'N'], state='on') + time.sleep(1.) + k.switch_mux(electrodes=[1, 4, 2, 3], roles=['A', 'B', 'M', 'N'], state='off') + +if within_ohmpi: + from ohmpi.ohmpi import OhmPi + print('Starting test of mux within OhmPi.') + k = OhmPi() + k.reset_mux() + k._hw.switch_mux([1, 4, 2, 3], state='on') + k._hw.vab_square_wave(3.,1) + k._hw.switch_mux([1, 4, 2, 3], state='off') + k._hw.calibrate_rx_bias() # electrodes 1 4 2 3 should be connected to a reference circuit + # print(f'Resistance: {k._hw.last_rho :.2f} ohm, dev. {k._hw.last_dev:.2f} %, rx bias: {k._hw.rx._bias:.2f} mV') + # k._hw._plot_readings() + k._hw.switch_mux([1, 4, 2, 3], state='on') + k._hw.vab_square_wave(3.,1) + k._hw.switch_mux([1, 4, 2, 3], state='off') + print(f'Resistance: {k._hw.last_rho :.2f} ohm, dev. {k._hw.last_dev:.2f} %, rx bias: {k._hw.rx._bias:.2f} mV') + k._hw._plot_readings() + plot_exec_log('ohmpi/logs/exec.log') +change_config('../configs/config_default.py', verbose=False) \ No newline at end of file diff --git a/ohmpi/hardware_components/mb_2024_rev_0_0.py b/ohmpi/hardware_components/mb_2024_rev_0_0.py index 241777f90927e8390814670538a55c64c870f6c1..3b2f9778323108ea9fb972601843d1403544aa9a 100644 --- a/ohmpi/hardware_components/mb_2024_rev_0_0.py +++ b/ohmpi/hardware_components/mb_2024_rev_0_0.py @@ -41,6 +41,7 @@ TX_CONFIG['default_voltage'] = np.min([TX_CONFIG.pop('default_voltage', dps_defa TX_CONFIG['dps_switch_on_warm_up'] = TX_CONFIG.pop('dps_switch_on_warmup', dps_switch_on_warmup) TX_CONFIG['low_battery'] = TX_CONFIG.pop('low_battery', tx_low_battery) + def _gain_auto(channel): """Automatically sets the gain on a channel diff --git a/ohmpi/hardware_components/mux_2024_rev_0_0.py b/ohmpi/hardware_components/mux_2024_rev_0_0.py index 4a20dffde829608787b315fc714cd21d784a9b3a..68f08c942ab9693feedcd23090524d761a2bde27 100644 --- a/ohmpi/hardware_components/mux_2024_rev_0_0.py +++ b/ohmpi/hardware_components/mux_2024_rev_0_0.py @@ -1,5 +1,3 @@ -import time - from ohmpi.config import HARDWARE_CONFIG import os import numpy as np @@ -7,6 +5,7 @@ from ohmpi.hardware_components import MuxAbstract import adafruit_tca9548a # noqa from adafruit_mcp230xx.mcp23017 import MCP23017 # noqa from digitalio import Direction # noqa +# import time MUX_CONFIG = HARDWARE_CONFIG['mux'].pop('default', {}) MUX_CONFIG.update({'voltage_max': 50., 'current_max': 3.}) # board default values that overwrite system default values diff --git a/uml_diagrams/classes_uml_ohmpi.dot b/uml_diagrams/classes_uml_ohmpi.dot index c482b8c97b233760a25b84cbb14073b22cdbe399..b16d126edf33b1e5158d946400c1ac62d25a1a3c 100644 --- a/uml_diagrams/classes_uml_ohmpi.dot +++ b/uml_diagrams/classes_uml_ohmpi.dot @@ -2,36 +2,42 @@ 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 : I2C\lmax_cpu_temp : float\l|}", shape="record"]; -"2" [label="{Ctl|bus : NoneType\l|}", shape="record"]; -"3" [label="{CtlAbstract|board_name\lbus : NoneType\lcpu_temperature\lexec_logger : NoneType, RootLogger\lmax_cpu_temp\lsoh_logger : RootLogger, NoneType\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|\l|reset()\lswitch_one()\ltest()\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="{MuxAbstract|addresses\lbarrier\lboard_id\lboard_name\lcabling : dict\lctl\lexec_logger : RootLogger, NoneType\lsoh_logger : RootLogger, NoneType\l|reset()\lswitch(elec_dict, state)\lswitch_one(elec, role, state)\ltest(elec_dict, activation_time)\l}", shape="record"]; -"8" [label="{MyServer|\l|do_POST()\l}", shape="record"]; -"9" [label="{OhmPi|cmd_id : NoneType\lcontroller : NoneType\ldata_logger : RootLogger, NoneType\lexec_logger : RootLogger, NoneType\lid : str\lmqtt : bool\lnb_samples : int\lon_pi : bool, NoneType\lsequence\lsequence : ndarray, NoneType\lsettings : dict\lsoh_logger : RootLogger, NoneType\lstatus : str\lthread : NoneType, Thread\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, cmd_id)\ltest_mux(activation_time, mux_id, cmd_id)\lupdate_settings(settings, cmd_id)\l}", shape="record"]; -"10" [label="{OhmPiHardware|ctl\ldata_logger : NoneType, RootLogger\lexec_logger : RootLogger, NoneType\lmux_barrier : Barrier\lmux_boards\lpulses\lpwr\lreadings : ndarray\lrx\lsoh_logger : RootLogger, NoneType\lsp\ltx\ltx_sync : Event\l|reset_mux()\lswitch_mux(electrodes, roles, state)\ltest_mux(channel, activation_time)\lvab_square_wave(vab, cycle_length, sampling_rate, cycles, polarity, append)\l}", shape="record"]; -"11" [label="{Pwr|current\lvoltage\lvoltage_adjustable : bool\l|turn_off()\lturn_on()\l}", shape="record"]; -"12" [label="{PwrAbstract|board_name\lcurrent\lexec_logger : RootLogger, NoneType\lsoh_logger : NoneType, RootLogger\lvoltage\lvoltage_adjustable\l|turn_off()\lturn_on()\l}", shape="record"]; -"13" [label="{Rx|adc_gain\ladc_gain : float\lvoltage\l|adc_gain_auto()\l}", shape="record"]; -"14" [label="{Rx|adc_gain\ladc_gain\lctl\lvoltage\l|adc_gain_auto()\l}", shape="record"]; -"15" [label="{Rx|adc_gain\ladc_gain\lctl\lvoltage\l|adc_gain_auto()\l}", shape="record"]; -"16" [label="{RxAbstract|adc_gain\lboard_name\lctl\lexec_logger : RootLogger, NoneType\lsampling_rate\lsoh_logger : NoneType, RootLogger\lvoltage\l|adc_gain_auto()\l}", shape="record"]; -"17" [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, inj_time)\lturn_off()\lturn_on()\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"]; -"18" [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"]; -"19" [label="{Tx|DPS\ladc_gain\ladc_gain : float, int\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, inj_time)\lturn_off()\lturn_on()\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"]; -"20" [label="{TxAbstract|adc_gain\lboard_name\lctl\lexec_logger : RootLogger, NoneType\linj_time\linj_time\lpolarity\lpwr\lsoh_logger : NoneType, RootLogger\ltx_bat\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, inj_time)\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"]; -"1" -> "3" [arrowhead="empty", arrowtail="none"]; -"2" -> "3" [arrowhead="empty", arrowtail="none"]; -"5" -> "7" [arrowhead="empty", arrowtail="none"]; -"6" -> "7" [arrowhead="empty", arrowtail="none"]; -"11" -> "12" [arrowhead="empty", arrowtail="none"]; -"13" -> "16" [arrowhead="empty", arrowtail="none"]; -"14" -> "16" [arrowhead="empty", arrowtail="none"]; -"15" -> "16" [arrowhead="empty", arrowtail="none"]; -"17" -> "20" [arrowhead="empty", arrowtail="none"]; -"18" -> "20" [arrowhead="empty", arrowtail="none"]; -"19" -> "20" [arrowhead="empty", arrowtail="none"]; -"10" -> "9" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="_hw", style="solid"]; +"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"]; +"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"]; } diff --git a/uml_diagrams/classes_uml_ohmpi.dot.png b/uml_diagrams/classes_uml_ohmpi.dot.png index 2b0acf4cd90e158c58858bea56a60c84bb1e17e9..00b93feb2a608839aa567e627eeb3588a2a23078 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 new file mode 100644 index 0000000000000000000000000000000000000000..c7a229ae61d163551587f58cc68074c778e6da2d --- /dev/null +++ b/uml_diagrams/classes_uml_ohmpi.dot.svg @@ -0,0 +1,506 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- 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> diff --git a/uml_diagrams/packages_uml_ohmpi.dot b/uml_diagrams/packages_uml_ohmpi.dot index 031e4133c5473d92e4fff7152f67e605a6ccc260..8bb7d66ea4dd84b71a8761a9bc5370e73eaaee6a 100644 --- a/uml_diagrams/packages_uml_ohmpi.dot +++ b/uml_diagrams/packages_uml_ohmpi.dot @@ -12,45 +12,58 @@ rankdir=BT "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_2024_rev_0_0", shape="box"]; -"12" [label="ohmpi.hardware_components.ohmpi_card_3_15", shape="box"]; -"13" [label="ohmpi.hardware_components.pwr_batt", shape="box"]; -"14" [label="ohmpi.hardware_components.raspberry_pi_i2c", shape="box"]; -"15" [label="ohmpi.hardware_system", shape="box"]; -"16" [label="ohmpi.http_interface", shape="box"]; -"17" [label="ohmpi.logging_setup", shape="box"]; -"18" [label="ohmpi.mqtt_handler", shape="box"]; -"19" [label="ohmpi.ohmpi", shape="box"]; -"20" [label="ohmpi.utils", shape="box"]; -"2" -> "20" [arrowhead="open", arrowtail="none"]; +"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"]; +"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"]; "4" -> "5" [arrowhead="open", arrowtail="none"]; -"5" -> "17" [arrowhead="open", arrowtail="none"]; +"5" -> "20" [arrowhead="open", arrowtail="none"]; "6" -> "4" [arrowhead="open", arrowtail="none"]; -"6" -> "19" [arrowhead="open", arrowtail="none"]; +"6" -> "22" [arrowhead="open", arrowtail="none"]; +"7" -> "2" [arrowhead="open", arrowtail="none"]; "7" -> "4" [arrowhead="open", arrowtail="none"]; -"7" -> "19" [arrowhead="open", arrowtail="none"]; "8" -> "4" [arrowhead="open", arrowtail="none"]; -"8" -> "19" [arrowhead="open", arrowtail="none"]; +"8" -> "22" [arrowhead="open", arrowtail="none"]; "9" -> "4" [arrowhead="open", arrowtail="none"]; -"9" -> "19" [arrowhead="open", arrowtail="none"]; +"9" -> "22" [arrowhead="open", arrowtail="none"]; +"10" -> "2" [arrowhead="open", arrowtail="none"]; "10" -> "4" [arrowhead="open", arrowtail="none"]; -"10" -> "19" [arrowhead="open", arrowtail="none"]; "11" -> "2" [arrowhead="open", arrowtail="none"]; "11" -> "4" [arrowhead="open", arrowtail="none"]; "12" -> "2" [arrowhead="open", arrowtail="none"]; "12" -> "4" [arrowhead="open", arrowtail="none"]; -"13" -> "5" [arrowhead="open", arrowtail="none"]; -"14" -> "4" [arrowhead="open", arrowtail="none"]; -"14" -> "20" [arrowhead="open", arrowtail="none"]; +"13" -> "2" [arrowhead="open", arrowtail="none"]; +"13" -> "4" [arrowhead="open", arrowtail="none"]; +"14" -> "5" [arrowhead="open", arrowtail="none"]; "15" -> "2" [arrowhead="open", arrowtail="none"]; -"15" -> "17" [arrowhead="open", arrowtail="none"]; -"15" -> "20" [arrowhead="open", arrowtail="none"]; -"16" -> "2" [arrowhead="open", arrowtail="none"]; -"17" -> "1" [arrowhead="open", arrowtail="none"]; +"15" -> "5" [arrowhead="open", arrowtail="none"]; +"16" -> "4" [arrowhead="open", arrowtail="none"]; +"16" -> "24" [arrowhead="open", arrowtail="none"]; "17" -> "2" [arrowhead="open", arrowtail="none"]; -"17" -> "18" [arrowhead="open", arrowtail="none"]; +"17" -> "4" [arrowhead="open", arrowtail="none"]; +"17" -> "24" [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" -> "2" [arrowhead="open", arrowtail="none"]; -"19" -> "15" [arrowhead="open", arrowtail="none"]; -"19" -> "17" [arrowhead="open", arrowtail="none"]; -"19" -> "20" [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"]; } diff --git a/uml_diagrams/packages_uml_ohmpi.dot.png b/uml_diagrams/packages_uml_ohmpi.dot.png index 87a26ac6ac23724dd11d7da00dea46d25a34a22e..62de687bf022763495108e836b24be473d3481b8 100644 Binary files a/uml_diagrams/packages_uml_ohmpi.dot.png and b/uml_diagrams/packages_uml_ohmpi.dot.png differ diff --git a/update_uml.sh b/update_uml.sh index 29d13a3db445e5d2774174677a60e5bc2e6350f4..61fe264d7a6840939435da8490188ec5fce4b985 100755 --- a/update_uml.sh +++ b/update_uml.sh @@ -1,7 +1,9 @@ pyreverse ohmpi -p uml_ohmpi +dot -Tsvg classes_uml_ohmpi.dot -O dot -Tpng classes_uml_ohmpi.dot -O dot -Tpng packages_uml_ohmpi.dot -O mv classes_uml_ohmpi.dot uml_diagrams/ +mv classes_uml_ohmpi.dot.svg uml_diagrams/ mv classes_uml_ohmpi.dot.png uml_diagrams/ mv packages_uml_ohmpi.dot uml_diagrams/ mv packages_uml_ohmpi.dot.png uml_diagrams/