From 6c79f68dc46a9ee9b13a0382c620ee4c15156dd0 Mon Sep 17 00:00:00 2001 From: su530201 <olivier.kaufmann@umons.ac.be> Date: Thu, 4 May 2023 18:30:15 +0200 Subject: [PATCH] Renames Controller as Ctl --- Proposition software architecture.odp | Bin 158379 -> 198435 bytes config.py | 2 +- config_default.py | 2 +- config_dummy.py | 3 +- config_mb_2023_mux_2024.py | 2 +- config_mb_2024_rev_0_0.py | 4 +- hardware_components/__init__.py | 2 +- .../abstract_hardware_components.py | 14 +- .../{dummy_controller.py => dummy_ctl.py} | 6 +- hardware_components/mb_2024_rev_0_0.py | 29 +- hardware_components/mux_2024_rev_0_0.py | 4 +- hardware_components/ohmpi_card_3_15.py | 35 +- hardware_components/raspberry_pi_i2c.py | 4 +- hardware_system.py | 29 +- hw.py | 287 ----- ohmpi.py | 2 +- sw-test.py | 7 - sw.py | 1116 ----------------- test_measure_with_ohmpi_card_3_15.py | 2 - test_modif.py | 110 -- test_mux_2024.py | 4 +- 21 files changed, 73 insertions(+), 1591 deletions(-) rename hardware_components/{dummy_controller.py => dummy_ctl.py} (54%) delete mode 100644 hw.py delete mode 100644 sw-test.py delete mode 100644 sw.py delete mode 100644 test_modif.py diff --git a/Proposition software architecture.odp b/Proposition software architecture.odp index b73ef69ade0d0f2ca80058e9fa60ffe56df09234..015445e49fc49b2d1db5a670465441101d07ccca 100644 GIT binary patch delta 112945 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ⅇ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%0A)$UH&sd&7W$3)-10qO``nI!yrf$NBP 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 delta 72609 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 diff --git a/config.py b/config.py index 44689512..6345fe83 100644 --- a/config.py +++ b/config.py @@ -18,7 +18,7 @@ OHMPI_CONFIG = { } HARDWARE_CONFIG = { - 'controller': {'model' : 'raspberry_pi' + 'ctl': {'model' : 'raspberry_pi' }, 'tx' : {'model' : 'ohmpi_card_3_15', 'mcp_board_address': 0x20, diff --git a/config_default.py b/config_default.py index f9682f20..5839429a 100644 --- a/config_default.py +++ b/config_default.py @@ -18,7 +18,7 @@ OHMPI_CONFIG = { } HARDWARE_CONFIG = { - 'controller': {'model' : 'dummy_controller' + 'ctl': {'model' : 'dummy_ctl' }, 'tx' : {'model' : 'dummy_tx', 'current_max': 4800 / 50 / 2, # Maximum current mA diff --git a/config_dummy.py b/config_dummy.py index 0a0bc06e..4d3be746 100644 --- a/config_dummy.py +++ b/config_dummy.py @@ -27,8 +27,9 @@ OHMPI_CONFIG = { } # TODO: add a dictionary with INA models and associated gain values HARDWARE_CONFIG = { - 'controller': {'model' : 'dummy_controller' + 'ctl': {'model' : 'dummy_ctl' }, + 'pwr' : {'model': 'dummy_pwr'}, 'tx' : {'model' : 'dummy_tx', 'current_max': 4800 / 50 / 2, # Maximum current 'R_shunt': 2 # Shunt resistance in Ohms diff --git a/config_mb_2023_mux_2024.py b/config_mb_2023_mux_2024.py index 688d2f3c..8bb281be 100644 --- a/config_mb_2023_mux_2024.py +++ b/config_mb_2023_mux_2024.py @@ -18,7 +18,7 @@ OHMPI_CONFIG = { } HARDWARE_CONFIG = { - 'controller': {'model' : 'raspberry_pi_i2c' + 'ctl': {'model' : 'raspberry_pi_i2c' }, 'pwr': {'model' : 'pwr_batt', 'voltage': 12.}, 'tx' : {'model' : 'ohmpi_card_3_15', diff --git a/config_mb_2024_rev_0_0.py b/config_mb_2024_rev_0_0.py index 26b8c7fb..61550a2d 100644 --- a/config_mb_2024_rev_0_0.py +++ b/config_mb_2024_rev_0_0.py @@ -18,8 +18,10 @@ OHMPI_CONFIG = { } HARDWARE_CONFIG = { - 'controller': {'model' : 'raspberry_pi' + 'ctl': {'model' : 'raspberry_pi_i2c' }, + 'pwr': {'model' : 'DPS_5005', + 'voltage_adjustable': True}, 'tx' : {'model' : 'mb_2024_rev_0_0', 'mcp_board_address': 0x20, 'current_max': 4800 / 50 / 2, # Maximum current diff --git a/hardware_components/__init__.py b/hardware_components/__init__.py index bdc78fd8..97566431 100644 --- a/hardware_components/__init__.py +++ b/hardware_components/__init__.py @@ -1 +1 @@ -from .abstract_hardware_components import TxAbstract, RxAbstract, MuxAbstract, ControllerAbstract \ No newline at end of file +from .abstract_hardware_components import TxAbstract, RxAbstract, MuxAbstract, CtlAbstract \ No newline at end of file diff --git a/hardware_components/abstract_hardware_components.py b/hardware_components/abstract_hardware_components.py index 4cfdb993..125cb188 100644 --- a/hardware_components/abstract_hardware_components.py +++ b/hardware_components/abstract_hardware_components.py @@ -5,9 +5,9 @@ from OhmPi.logging_setup import create_stdout_logger import time from threading import Barrier -class ControllerAbstract(ABC): +class CtlAbstract(ABC): def __init__(self, **kwargs): - self.board_name = kwargs.pop('board_name', 'unknown Controller hardware') + self.board_name = kwargs.pop('board_name', 'unknown CTL hardware') self.bus = None # TODO: allow for several buses self.exec_logger = kwargs.pop('exec_logger', None) if self.exec_logger is None: @@ -15,7 +15,7 @@ class ControllerAbstract(ABC): self.soh_logger = kwargs.pop('soh_logger', None) if self.soh_logger is None: self.soh_logger = create_stdout_logger('soh_ctl') - self.exec_logger.debug(f'{self.board_name} Controller initialization') + self.exec_logger.debug(f'{self.board_name} Ctl initialization') self._cpu_temp_available = False self.max_cpu_temp = np.inf @@ -37,7 +37,7 @@ class ControllerAbstract(ABC): class PwrAbstract(ABC): def __init__(self, **kwargs): - self.board_name = kwargs.pop('board_name', 'unknown Pwr hardware') + self.board_name = kwargs.pop('board_name', 'unknown PWR hardware') self.exec_logger = kwargs.pop('exec_logger', None) if self.exec_logger is None: self.exec_logger = create_stdout_logger('exec_mux') @@ -100,7 +100,7 @@ class MuxAbstract(ABC): if self.board_id is None: self.exec_logger.error(f'MUX {self.board_name} should have an id !') self.exec_logger.debug(f'MUX {self.board_id} ({self.board_name}) initialization') - self.controller = kwargs.pop('controller', None) + self.ctl = kwargs.pop('ctl', None) cabling = kwargs.pop('cabling', None) self.cabling = {} if cabling is not None: @@ -218,7 +218,7 @@ class TxAbstract(ABC): self.soh_logger = kwargs.pop('soh_logger', None) if self.soh_logger is None: self.soh_logger = create_stdout_logger('soh_tx') - self.controller = kwargs.pop('controller', None) + self.ctl = kwargs.pop('ctl', None) self.pwr = kwargs.pop('pwr', None) self._inj_time = None self._adc_gain = 1. @@ -297,7 +297,7 @@ class RxAbstract(ABC): self.soh_logger = kwargs.pop('soh_logger', None) if self.soh_logger is None: self.soh_logger = create_stdout_logger('soh_rx') - self.controller = kwargs.pop('controller', None) + self.ctl = kwargs.pop('ctl', None) self.board_name = kwargs.pop('board_name', 'unknown RX hardware') self._sampling_rate = kwargs.pop('sampling_rate', 1) self.exec_logger.debug(f'{self.board_name} RX initialization') diff --git a/hardware_components/dummy_controller.py b/hardware_components/dummy_ctl.py similarity index 54% rename from hardware_components/dummy_controller.py rename to hardware_components/dummy_ctl.py index 829881f3..0e977091 100644 --- a/hardware_components/dummy_controller.py +++ b/hardware_components/dummy_ctl.py @@ -1,10 +1,10 @@ from OhmPi.config import HARDWARE_CONFIG import os -from OhmPi.hardware_components import ControllerAbstract -CONTROLLER_CONFIG = HARDWARE_CONFIG['controller'] +from OhmPi.hardware_components import CtlAbstract +CTL_CONFIG = HARDWARE_CONFIG['ctl'] -class Controller(ControllerAbstract): +class Ctl(CtlAbstract): def __init__(self, **kwargs): kwargs.update({'board_name': os.path.basename(__file__).rstrip('.py')}) super().__init__(**kwargs) diff --git a/hardware_components/mb_2024_rev_0_0.py b/hardware_components/mb_2024_rev_0_0.py index 8b55db78..37b2f3ea 100644 --- a/hardware_components/mb_2024_rev_0_0.py +++ b/hardware_components/mb_2024_rev_0_0.py @@ -9,7 +9,7 @@ import time import numpy as np import os from OhmPi.hardware_components import TxAbstract, RxAbstract -controller_module = importlib.import_module(f'OhmPi.hardware_components.{HARDWARE_CONFIG["hardware"]["controller"]["model"]}') +ctl_module = importlib.import_module(f'OhmPi.hardware_components.{HARDWARE_CONFIG["hardware"]["ctl"]["model"]}') TX_CONFIG = HARDWARE_CONFIG['tx'] RX_CONFIG = HARDWARE_CONFIG['rx'] @@ -71,15 +71,15 @@ class Tx(TxAbstract): kwargs.update({'board_name': os.path.basename(__file__).rstrip('.py')}) super().__init__(**kwargs) self._voltage = kwargs.pop('voltage', TX_CONFIG['default_voltage']) - self.controller = kwargs.pop('controller', controller_module.Controller()) + self.ctl = kwargs.pop('controller', ctl_module.Ctl()) # I2C connexion to MCP23008, for current injection - self.mcp_board = MCP23008(self.controller.bus, address=TX_CONFIG['mcp_board_address']) + self.mcp_board = MCP23008(self.ctl.bus, address=TX_CONFIG['mcp_board_address']) # ADS1115 for current measurement (AB) self._adc_gain = 2/3 self._ads_current_address = 0x48 - self._ads_current = ads.ADS1115(self.controller.bus, gain=self.adc_gain, data_rate=860, + self._ads_current = ads.ADS1115(self.ctl.bus, gain=self.adc_gain, data_rate=860, address=self._ads_current_address) # Relays for pulse polarity @@ -122,7 +122,7 @@ class Tx(TxAbstract): def adc_gain(self, value): assert value in [2/3, 2, 4, 8, 16] self._adc_gain = value - self._ads_current = ads.ADS1115(self.controller.bus, gain=self.adc_gain, data_rate=860, + self._ads_current = ads.ADS1115(self.ctl.bus, gain=self.adc_gain, data_rate=860, address=self._ads_current_address) self.exec_logger.debug(f'Setting TX ADC gain to {value}') @@ -148,12 +148,13 @@ class Tx(TxAbstract): assert TX_CONFIG['current_min'] <= value <= TX_CONFIG['current_max'] self.exec_logger.warning(f'Current pulse is not implemented for the {TX_CONFIG["model"]} board') - def inject(self, state='on'): - TxAbstract.inject(self, state=state) - if state=='on': - self.DPS.write_register(0x09, 1) # DPS5005 on - else: - self.DPS.write_register(0x09, 0) # DPS5005 off + def inject(self, polarity=1, inj_time=None): + TxAbstract.inject(self, polarity=polarity, inj_time=inj_time) + # move this part in DPS5005 + # if state=='on': + # self.DPS.write_register(0x09, 1) # DPS5005 on + # else: + # self.DPS.write_register(0x09, 0) # DPS5005 off @property def polarity(self): @@ -234,12 +235,12 @@ class Rx(RxAbstract): def __init__(self, **kwargs): kwargs.update({'board_name': os.path.basename(__file__).rstrip('.py')}) super().__init__(**kwargs) - self.controller = kwargs.pop('controller', controller_module.Controller()) + self.ctl = kwargs.pop('controller', ctl_module.Ctl()) # ADS1115 for voltage measurement (MN) self._ads_voltage_address = 0x49 self._adc_gain = 2/3 - self._ads_voltage = ads.ADS1115(self.controller.bus, gain=self._adc_gain, data_rate=860, address=self._ads_voltage_address) + self._ads_voltage = ads.ADS1115(self.ctl.bus, gain=self._adc_gain, data_rate=860, address=self._ads_voltage_address) @property def adc_gain(self): @@ -249,7 +250,7 @@ class Rx(RxAbstract): def adc_gain(self, value): assert value in [2/3, 2, 4, 8, 16] self._adc_gain = value - self._ads_voltage = ads.ADS1115(self.controller.bus, gain=self.adc_gain, data_rate=860, + self._ads_voltage = ads.ADS1115(self.ctl.bus, gain=self.adc_gain, data_rate=860, address=self._ads_voltage_address) self.exec_logger.debug(f'Setting RX ADC gain to {value}') diff --git a/hardware_components/mux_2024_rev_0_0.py b/hardware_components/mux_2024_rev_0_0.py index 39538a94..7065ee8b 100644 --- a/hardware_components/mux_2024_rev_0_0.py +++ b/hardware_components/mux_2024_rev_0_0.py @@ -72,9 +72,9 @@ class Mux(MuxAbstract): self.exec_logger.error(f'Invalid role assignment for {self.board_name}: {self._roles} !') self._mode = '' if tca_address is None: - self._tca = self.controller.bus + self._tca = self.ctl.bus else: - self._tca = adafruit_tca9548a.TCA9548A(self.controller.bus, tca_address)[tca_channel] + self._tca = adafruit_tca9548a.TCA9548A(self.ctl.bus, tca_address)[tca_channel] self._mcp_addresses = (kwargs.pop('mcp_0', '0x22'), kwargs.pop('mcp_1', '0x23')) # TODO: add assert on valid addresses.. self._mcp = [None, None] self.reset() diff --git a/hardware_components/ohmpi_card_3_15.py b/hardware_components/ohmpi_card_3_15.py index 22c73247..8a95e6bb 100644 --- a/hardware_components/ohmpi_card_3_15.py +++ b/hardware_components/ohmpi_card_3_15.py @@ -10,8 +10,8 @@ import time import numpy as np import os from OhmPi.hardware_components import TxAbstract, RxAbstract -controller_name = HARDWARE_CONFIG['controller'].pop('board_name', 'raspberry_pi_i2c') -controller_module = importlib.import_module(f'OhmPi.hardware_components.{controller_name}') +ctl_name = HARDWARE_CONFIG['ctl'].pop('board_name', 'raspberry_pi_i2c') +ctl_module = importlib.import_module(f'OhmPi.hardware_components.{ctl_name}') TX_CONFIG = HARDWARE_CONFIG['tx'] RX_CONFIG = HARDWARE_CONFIG['rx'] @@ -32,16 +32,17 @@ current_adc_voltage_min = 10. # mV current_adc_voltage_max = 4500. # mV low_battery = 12. # V (conventional value as it is not measured on this board) tx_mcp_board_address = 0x20 # -dps_voltage_max = 12. # V -dps_default_voltage = 12. # V -dps_switch_on_warmup = 0. # seconds +# pwr_voltage_max = 12. # V +# pwr_default_voltage = 12. # V +# pwr_switch_on_warmup = 0. # seconds TX_CONFIG['current_min'] = np.min([current_adc_voltage_min / (TX_CONFIG['r_shunt'] * 50), TX_CONFIG.pop('current_min', np.inf)]) # mA TX_CONFIG['current_max'] = np.min([current_adc_voltage_max / (TX_CONFIG['r_shunt'] * 50), TX_CONFIG.pop('current_max', np.inf)]) # mA -TX_CONFIG['voltage_max'] = np.min([dps_voltage_max, TX_CONFIG.pop('voltage_max', np.inf)]) # V +# TX_CONFIG['voltage_max'] = np.min([pwr_voltage_max, TX_CONFIG.pop('voltage_max', np.inf)]) # V +TX_CONFIG['voltage_max'] = TX_CONFIG.pop('voltage_max', np.inf) # V TX_CONFIG['voltage_min'] = -TX_CONFIG['voltage_max'] # V -TX_CONFIG['default_voltage'] = np.min([TX_CONFIG.pop('default_voltage', dps_default_voltage), TX_CONFIG['voltage_max']]) # V -TX_CONFIG['dps_switch_on_warm_up'] = TX_CONFIG.pop('dps_switch_on_warmup', dps_switch_on_warmup) +# TX_CONFIG['default_voltage'] = np.min([TX_CONFIG.pop('default_voltage', pwr_default_voltage), TX_CONFIG['voltage_max']]) # V +# TX_CONFIG['pwr_switch_on_warm_up'] = TX_CONFIG.pop('pwr_switch_on_warmup', pwr_switch_on_warmup) TX_CONFIG['mcp_board_address'] = TX_CONFIG.pop('mcp_board_address', tx_mcp_board_address) TX_CONFIG['low_battery'] = TX_CONFIG.pop('low_battery', low_battery) @@ -77,15 +78,15 @@ class Tx(TxAbstract): self._voltage = kwargs.pop('voltage', TX_CONFIG['default_voltage']) self.voltage_adjustable = False self.current_adjustable = False - if self.controller is None: - self.controller = controller_module.Controller() + if self.ctl is None: + self.ctl = ctl_module.Ctl() # I2C connexion to MCP23008, for current injection - self.mcp_board = MCP23008(self.controller.bus, address=TX_CONFIG['mcp_board_address']) + self.mcp_board = MCP23008(self.ctl.bus, address=TX_CONFIG['mcp_board_address']) # ADS1115 for current measurement (AB) self._ads_current_address = 0x48 - self._ads_current = ads.ADS1115(self.controller.bus, gain=self.adc_gain, data_rate=860, + self._ads_current = ads.ADS1115(self.ctl.bus, gain=self.adc_gain, data_rate=860, address=self._ads_current_address) self._ads_current.mode = Mode.CONTINUOUS @@ -113,7 +114,7 @@ class Tx(TxAbstract): def adc_gain(self, value): assert value in [2/3, 2, 4, 8, 16] self._adc_gain = value - self._ads_current = ads.ADS1115(self.controller.bus, gain=self.adc_gain, data_rate=860, + self._ads_current = ads.ADS1115(self.ctl.bus, gain=self.adc_gain, data_rate=860, address=self._ads_current_address) self.exec_logger.debug(f'Setting TX ADC gain to {value}') @@ -192,13 +193,13 @@ class Rx(RxAbstract): def __init__(self, **kwargs): kwargs.update({'board_name': os.path.basename(__file__).rstrip('.py')}) super().__init__(**kwargs) - if self.controller is None: - self.controller = controller_module.Controller() + if self.ctl is None: + self.ctl = ctl_module.Ctl() # ADS1115 for voltage measurement (MN) self._ads_voltage_address = 0x49 self._adc_gain = 2/3 - self._ads_voltage = ads.ADS1115(self.controller.bus, gain=self._adc_gain, data_rate=860, address=self._ads_voltage_address) + self._ads_voltage = ads.ADS1115(self.ctl.bus, gain=self._adc_gain, data_rate=860, address=self._ads_voltage_address) self._ads_voltage.mode = Mode.CONTINUOUS self._sampling_rate = kwargs.pop('sampling_rate', sampling_rate) @@ -210,7 +211,7 @@ class Rx(RxAbstract): def adc_gain(self, value): assert value in [2/3, 2, 4, 8, 16] self._adc_gain = value - self._ads_voltage = ads.ADS1115(self.controller.bus, gain=self.adc_gain, data_rate=860, + self._ads_voltage = ads.ADS1115(self.ctl.bus, gain=self.adc_gain, data_rate=860, address=self._ads_voltage_address) self.exec_logger.debug(f'Setting RX ADC gain to {value}') diff --git a/hardware_components/raspberry_pi_i2c.py b/hardware_components/raspberry_pi_i2c.py index 1169a2e9..46d7156d 100644 --- a/hardware_components/raspberry_pi_i2c.py +++ b/hardware_components/raspberry_pi_i2c.py @@ -1,11 +1,11 @@ -from OhmPi.hardware_components import ControllerAbstract +from OhmPi.hardware_components import CtlAbstract import board # noqa import busio # noqa import os from OhmPi.utils import get_platform from gpiozero import CPUTemperature # noqa -class Controller(ControllerAbstract): +class Ctl(CtlAbstract): def __init__(self, **kwargs): kwargs.update({'board_name': os.path.basename(__file__).rstrip('.py')}) super().__init__(**kwargs) diff --git a/hardware_system.py b/hardware_system.py index e4eea7fa..009dd29b 100644 --- a/hardware_system.py +++ b/hardware_system.py @@ -11,7 +11,7 @@ from OhmPi.utils import update_dict from OhmPi.config import HARDWARE_CONFIG from threading import Thread, Event, Barrier -controller_module = importlib.import_module(f'OhmPi.hardware_components.{HARDWARE_CONFIG["controller"]["model"]}') +ctl_module = importlib.import_module(f'OhmPi.hardware_components.{HARDWARE_CONFIG["ctl"]["model"]}') pwr_module = importlib.import_module(f'OhmPi.hardware_components.{HARDWARE_CONFIG["pwr"]["model"]}') tx_module = importlib.import_module(f'OhmPi.hardware_components.{HARDWARE_CONFIG["tx"]["model"]}') rx_module = importlib.import_module(f'OhmPi.hardware_components.{HARDWARE_CONFIG["rx"]["model"]}') @@ -48,29 +48,28 @@ class OhmPiHardware: if self.soh_logger is None: self.soh_logger = create_stdout_logger('soh_hw') self.tx_sync = Event() - self.controller = kwargs.pop('controller', - controller_module.Controller(exec_logger=self.exec_logger, - data_logger=self.data_logger, - soh_logger=self.soh_logger)) + self.ctl = kwargs.pop('ctl', ctl_module.Ctl(exec_logger=self.exec_logger, + data_logger=self.data_logger, + soh_logger=self.soh_logger)) self.rx = kwargs.pop('rx', rx_module.Rx(exec_logger=self.exec_logger, - data_logger=self.data_logger, - soh_logger=self.soh_logger, - controller=self.controller)) + data_logger=self.data_logger, + soh_logger=self.soh_logger, + ctl=self.ctl)) self.pwr = kwargs.pop('pwr', pwr_module.Pwr(exec_logger=self.exec_logger, - data_logger=self.data_logger, - soh_logger=self.soh_logger, - controller=self.controller)) + data_logger=self.data_logger, + soh_logger=self.soh_logger, + ctl=self.ctl)) self.tx = kwargs.pop('tx', tx_module.Tx(exec_logger=self.exec_logger, - data_logger=self.data_logger, - soh_logger=self.soh_logger, - controller=self.controller)) + data_logger=self.data_logger, + soh_logger=self.soh_logger, + ctl=self.ctl)) self.tx.pwr = self.pwr self._cabling = kwargs.pop('cabling', {}) self.mux_boards = kwargs.pop('mux', {'mux_1': mux_module.Mux(id='mux_1', exec_logger=self.exec_logger, data_logger=self.data_logger, soh_logger=self.soh_logger, - controller=self.controller, + ctl=self.ctl, cabling = self._cabling)}) self.mux_barrier = Barrier(len(self.mux_boards) + 1) self._cabling={} diff --git a/hw.py b/hw.py deleted file mode 100644 index 2ad5fd8b..00000000 --- a/hw.py +++ /dev/null @@ -1,287 +0,0 @@ -# definition of hardware level functions -import numpy as np - -import board # noqa -import busio # noqa -import adafruit_tca9548a # noqa -import adafruit_ads1x15.ads1115 as ads # noqa -from adafruit_ads1x15.analog_in import AnalogIn # noqa -from adafruit_mcp230xx.mcp23008 import MCP23008 # noqa -from adafruit_mcp230xx.mcp23017 import MCP23017 # noqa -import digitalio # noqa -from digitalio import Direction # noqa -from gpiozero import CPUTemperature # noqa -import minimalmodbus # noqa -import time - -# global variable -i2c = busio.I2C(board.SCL, board.SDA) - -from config import OHMPI_CONFIG - - -class Alimentation(): - def __init__(self, address=0x20, tx_voltage=12): - self.mcp = MCP23017(i2c, address=address) - self.tx_voltage = tx_voltage - self.polarity = True - self.on = False - self.pinA = 0 - self.pinB = 1 - - # setup DPS - self.DPS = minimalmodbus.Instrument(port='/dev/ttyUSB0', slaveaddress=1) # port name, address (decimal) - self.DPS.serial.baudrate = 9600 # Baud rate 9600 as listed in doc - self.DPS.serial.bytesize = 8 # - self.DPS.serial.timeout = 1 # greater than 0.5 for it to work - self.DPS.debug = False # - self.DPS.serial.parity = 'N' # No parity - self.DPS.mode = minimalmodbus.MODE_RTU # RTU mode - self.DPS.write_register(0x0001, 40, 0) # max current allowed (36 mA for relays) - # (last number) 0 is for mA, 3 is for A - - def turn_on(self): - if self.on is False: - self.DPS.write_register(0x09, 1) # DPS5005 on - self.on = True - - def turn_off(self): - self.DPS.write_register(0x09, 0) # DPS5005 off - self.on = False - - def start_injection(self, polarity=True): - # injection courant and measure (TODO check if it works, otherwise back in run_measurement()) - self.polarity = polarity - if self.polarity: - self.pin0 = self.mcp.get_pin(self.pinA) - self.pin0.direction = Direction.OUTPUT - self.pin0.value = True - self.pin1 = self.mcp.get_pin(self.pinB) - self.pin1.direction = Direction.OUTPUT - self.pin1.value = False - else: - self.pin0 = self.mcp.get_pin(self.pinA) - self.pin0.direction = Direction.OUTPUT - self.pin0.value = False - self.pin1 = self.mcp.get_pin(self.pinB) - self.pin1.direction = Direction.OUTPUT - self.pin1.value = True - - def stop_injection(self): - self.pin0 = self.mcp.get_pin(self.pinA) - self.pin0.direction = Direction.OUTPUT - self.pin0.value = False - self.pin1 = self.mcp.get_pin(self.pinB) - self.pin1.direction = Direction.OUTPUT - self.pin1.value = False - - def set_polarity(self, polarity=True): - self.polarity = polarity - - def set_tx_voltage(self, tx_voltage=12): - if tx_voltage >= 0: - self.tx_voltage = tx_voltage - # set voltage for test - self.DPS.write_register(0x0000, tx_voltage, 2) - self.DPS.write_register(0x09, 1) # DPS5005 on - else: - raise ValueError('Voltage needs to be >= 0 V') - - -class ADS(): # analog to digital converter ADS1115 - def __init__(self, address=0x48, gain=2/3, data_rate=820, mode=1): - self.ads = ads.ADS1115(i2c, gain=gain, data_rate=data_rate, address=address, mode=mode) - self.gain = gain - self.data_rate = data_rate - self.mode = mode - self.pins = { - 0: self.ads.P0, - 1: self.ads.P1, - 2: self.ads.P2, - 3: self.ads.P3, - } - self.vmin = 0.01 # volts - self.vmax = 4.5 # volts - - def read_single(self, pin=0): - return AnalogIn(self.ads, self.pins[pin]).voltage - - def read_diff(self, pins='01'): - if pins == '01': - return AnalogIn(self.ads, self.ads.P0, self.ads.P1).voltage - elif pins == '23': - return AnalogIn(self.ads, self.ads.P2, self.ads.P3).voltage - - def set_gain(self, gain=2/3): - self.gain = gain - # TODO maybe there is already a set_gain() function in the library? check that - self.ads = ads.ADS1115( - i2c, gain=self.gain, data_rate=self.data_rate, - address=self.address, mode=self.mode) - - def get_best_gain(self, channel=0): - """Automatically sets the gain on a channel - - Parameters - ---------- - channel : ads.ADS1x15 - Instance of ADS where voltage is measured. - - Returns - ------- - gain : float - Gain to be applied on ADS1115. - """ - voltage = self.read_singl(channel) - gain = 2 / 3 - if (abs(voltage) < 2.040) and (abs(voltage) >= 1.023): - gain = 2 - elif (abs(voltage) < 1.023) and (abs(voltage) >= 0.508): - gain = 4 - elif (abs(voltage) < 0.508) and (abs(voltage) >= 0.250): - gain = 8 - elif abs(voltage) < 0.256: - gain = 16 - #self.exec_logger.debug(f'Setting gain to {gain}') - return gain - - def set_best_gain(self, channel=0): - gain = self.get_best_gain(channel) - self.set_gain(gain) - - -class Voltage(ADS): # for MN - def __init__(self): - super().__init__() - - def read(self, pin=0): - return self.read_single(self, pin=pin) - - def read_all(self, pins=[0, 2]): - return [self.read_single(pin) for pin in pins] - - -class Current(ADS): # for AB - def __init__(self, address=0x48, gain=2/3, data_rate=820, mode=1, r_shunt=OHMPI_CONFIG['R_shunt']): - super().__init__(address=address, gain=gain, data_rate=data_rate, mode=mode) - self.r_shunt = r_shunt - self.imin = self.vmin / (self.r_shunt * 50) - self.imax = self.vmax / (self.r_shunt * 50) - - def read(self): - U = self.read_single(pin=0) - return U / 50 / self.r_shunt - - -class Multiplexer(): - def __init__(self, addresses={ - 'A': 0x70, - 'B': 0x71, - 'M': 0x72, - 'N': 0x73 - }, - nelec=64): - #OHMPI_CONFIG['board_addresses'] - self.addresses = addresses - self.nelec = nelec # max number of electrodes per board - - def switch_one(self, elec, role, state='off'): - self.tca = adafruit_tca9548a.TCA9548A(i2c, self.addresses[role]) - # find I2C address of the electrode and corresponding relay - # considering that one MCP23017 can cover 16 electrodes - i2c_address = 7 - (elec - 1) // 16 # quotient without rest of the division - relay = (elec-1) - ((elec-1) // 16) * 16 - - if i2c_address is not None: - # select the MCP23017 of the selected MUX board - mcp = MCP23017(self.tca[i2c_address]) - mcp.get_pin(relay - 1).direction = digitalio.Direction.OUTPUT - if state == 'on': - mcp.get_pin(relay - 1).value = True - else: - mcp.get_pin(relay - 1).value = False - #exec_logger.debug(f'Switching relay {relay} ' - # f'({str(hex(self.addresses[role]))}) on:{on} for electrode {elec}') - else: - raise ValueError('No I2C address found for the electrode' - ' {:d} on board {:s}'.format(elec, self.addresses[role])) - #exec_logger.warning(f'Unable to address electrode nr {elec}') - - def switch(self, elecdic={}, state='on'): - """Switch a given list of electrodes with different roles. - Electrodes with a value of 0 will be ignored. - - Parameters - ---------- - elecdic : dictionary, optional - Dictionnary of the form: role: [list of electrodes]. - state : str, optional - Either 'on' or 'off'. - """ - # check to prevent A == B (SHORT-CIRCUIT) - if 'A' in elecdic and 'B' in elecdic: - out = np.in1d(elecdic['A'], elecdic['B']) - if out.any(): - raise ValueError('Some electrodes have A == B -> SHORT-CIRCUIT') - return - - # check none of M and N are the same A or B - # as to prevent burning the MN part which cannot take - # the full voltage of the DPS - if 'A' in elecdic and 'B' in elecdic and 'M' in elecdic and 'N' in elecdic: - if (np.in1d(elecdic['M'], elecdic['A']).any() - or np.in1d(elecdic['M'], elecdic['B']).any() - or np.in1d(elecdic['N'], elecdic['A']).any() - or np.in1d(elecdic['N'], elecdic['B']).any()): - raise ValueError('Some electrodes M and N are on A and B -> cannot be with DPS') - return - - # if all ok, then switch the electrodes - for role in elecdic: - for elec in elecdic[role]: - if elec > 0: - self.switch_one(elec, role, state) - - def reset(self): - for role in self.addresses: - for elec in range(self.nelec): - self.switch_one(elec, role, 'off') - - def test(self, role, activation_time=1): - """Interactive method to test the multiplexer. - - Parameters - ---------- - activation_time : float, optional - Time in seconds during which the relays are activated. - address : hex, optional - Address of the multiplexer board to test (e.g. 0x70, 0x71, ...). - """ - self.reset() - - # ask use some details on how to proceed - a = input('If you want try 1 channel choose 1, if you want try all channels choose 2!') - if a == '1': - print('run channel by channel test') - electrode = int(input('Choose your electrode number (integer):')) - electrodes = [electrode] - elif a == '2': - electrodes = range(1, 65) - else: - print('Wrong choice !') - return - - # run the test - for elec in electrodes: - self.switch_one(elec, role, 'on') - print('electrode:', elec, ' activated...', end='', flush=True) - time.sleep(activation_time) - self.switch_one(elec, role, 'off') - print(' deactivated') - time.sleep(activation_time) - print('Test finished.') - - - - - diff --git a/ohmpi.py b/ohmpi.py index cf8132f8..66f03a8f 100644 --- a/ohmpi.py +++ b/ohmpi.py @@ -464,7 +464,7 @@ class OhmPi(object): "Ps [mV]": self._hw.sp, "nbStack": nb_stack, "Tx [V]": tx_volt, - "CPU temp [degC]": self._hw.controller.cpu_temperature, + "CPU temp [degC]": self._hw.ctl.cpu_temperature, "Nb samples [-]": len(self._hw.readings), # TODO: use only samples after a delay in each pulse "fulldata": self._hw.readings[:, [0, -2, -1]], # "I_stack [mA]": i_stack_mean, diff --git a/sw-test.py b/sw-test.py deleted file mode 100644 index 1e63137f..00000000 --- a/sw-test.py +++ /dev/null @@ -1,7 +0,0 @@ -from sw import OhmPi -k = OhmPi(mqtt=False, onpi=True) -k.read_values() -k._compute_tx_volt() -k.load_sequence('ABMN.txt') -k.run_sequence() -k.run_multiple_sequences(nb_meas=2, sequence_delay=10) diff --git a/sw.py b/sw.py deleted file mode 100644 index a44c2190..00000000 --- a/sw.py +++ /dev/null @@ -1,1116 +0,0 @@ -from hwTest import Alimentation, Current, Voltage, Multiplexer - -# -*- coding: utf-8 -*- -""" -created on January 6, 2020. -Updates dec 2022. -Hardware: Licensed under CERN-OHL-S v2 or any later version -Software: Licensed under the GNU General Public License v3.0 -Ohmpi.py is a program to control a low-cost and open hardware resistivity meter OhmPi that has been developed by -Rémi CLEMENT (INRAE), Vivien DUBOIS (INRAE), Hélène GUYARD (IGE), Nicolas FORQUET (INRAE), Yannick FARGIER (IFSTTAR) -Olivier KAUFMANN (UMONS), Arnaud WATLET (UMONS) and Guillaume BLANCHY (FNRS/ULiege). -""" - -import os -from utils import get_platform -import json -import warnings -from copy import deepcopy -import numpy as np -import csv -import time -import shutil -from datetime import datetime -from termcolor import colored -import threading -from logging_setup import setup_loggers -from config import MQTT_CONTROL_CONFIG, OHMPI_CONFIG, EXEC_LOGGING_CONFIG -from logging import DEBUG - -# finish import (done only when class is instantiated as some libs are only available on arm64 platform) -try: - from gpiozero import CPUTemperature # noqa - - arm64_imports = True -except ImportError as error: - if EXEC_LOGGING_CONFIG['logging_level'] == DEBUG: - print(colored(f'Import error: {error}', 'yellow')) - arm64_imports = False -except Exception as error: - print(colored(f'Unexpected error: {error}', 'red')) - arm64_imports = None - -class OhmPi(object): - """ OhmPi class. - """ - - def __init__(self, settings=None, sequence=None, use_mux=False, mqtt=True, onpi=None, idps=False): - """Constructs the ohmpi object - - Parameters - ---------- - settings: - - sequence: - - use_mux: - if True use the multiplexor to select active electrodes - mqtt: bool, defaut: True - if True publish on mqtt topics while logging, otherwise use other loggers only - onpi: bool,None default: None - if None, the platform on which the class is instantiated is determined to set on_pi to either True or False. - if False the behaviour of an ohmpi will be partially emulated and return random data. - idps: - if true uses the DPS - """ - - if onpi is None: - _, onpi = get_platform() - - self._sequence = sequence - self.nb_samples = 0 - self.use_mux = use_mux - self.on_pi = onpi # True if run from the RaspberryPi with the hardware, otherwise False for random data - self.status = 'idle' # either running or idle - self.thread = None # contains the handle for the thread taking the measurement - - # set loggers - config_exec_logger, _, config_data_logger, _, _, msg = setup_loggers(mqtt=mqtt) # TODO: add SOH - self.data_logger = config_data_logger - self.exec_logger = config_exec_logger - self.soh_logger = None # TODO: Implement the SOH logger - print(msg) - - - # read in hardware parameters (config.py) - self._read_hardware_config() # TODO should go to hw.py - - # default acquisition settings - self.settings = { - 'injection_duration': 0.2, - 'nb_meas': 1, - 'sequence_delay': 1, - 'nb_stack': 1, - 'export_path': 'data/measurement.csv' - } - # read in acquisition settings - if settings is not None: - self.update_settings(settings) - - self.exec_logger.debug('Initialized with settings:' + str(self.settings)) - - # read quadrupole sequence - if sequence is not None: - self.load_sequence(sequence) - - self.idps = idps # flag to use dps for injection or not - - # connect to components on the OhmPi board - if self.on_pi: - # initialize hardware - self.alim = Alimentation() - self.voltage = Voltage() - self.current = Current() - self.mux = Multiplexer() - - # set controller - self.mqtt = mqtt - self.cmd_id = None - if self.mqtt: - import paho.mqtt.client as mqtt_client - - self.exec_logger.debug(f"Connecting to control topic {MQTT_CONTROL_CONFIG['ctrl_topic']}" - f" on {MQTT_CONTROL_CONFIG['hostname']} broker") - - def connect_mqtt() -> mqtt_client: - def on_connect(mqttclient, userdata, flags, rc): - if rc == 0: - self.exec_logger.debug(f"Successfully connected to control broker:" - f" {MQTT_CONTROL_CONFIG['hostname']}") - else: - self.exec_logger.warning(f'Failed to connect to control broker. Return code : {rc}') - - client = mqtt_client.Client(f"ohmpi_{OHMPI_CONFIG['id']}_listener", clean_session=False) - client.username_pw_set(MQTT_CONTROL_CONFIG['auth'].get('username'), - MQTT_CONTROL_CONFIG['auth']['password']) - client.on_connect = on_connect - client.connect(MQTT_CONTROL_CONFIG['hostname'], MQTT_CONTROL_CONFIG['port']) - return client - - try: - self.exec_logger.debug(f"Connecting to control broker: {MQTT_CONTROL_CONFIG['hostname']}") - self.controller = connect_mqtt() - except Exception as e: - self.exec_logger.debug(f'Unable to connect control broker: {e}') - self.controller = None - if self.controller is not None: - self.exec_logger.debug(f"Subscribing to control topic {MQTT_CONTROL_CONFIG['ctrl_topic']}") - try: - self.controller.subscribe(MQTT_CONTROL_CONFIG['ctrl_topic'], MQTT_CONTROL_CONFIG['qos']) - - msg = f"Subscribed to control topic {MQTT_CONTROL_CONFIG['ctrl_topic']}" \ - f" on {MQTT_CONTROL_CONFIG['hostname']} broker" - self.exec_logger.debug(msg) - print(colored(f'\u2611 {msg}', 'blue')) - except Exception as e: - self.exec_logger.warning(f'Unable to subscribe to control topic : {e}') - self.controller = None - publisher_config = MQTT_CONTROL_CONFIG.copy() - publisher_config['topic'] = MQTT_CONTROL_CONFIG['ctrl_topic'] - publisher_config.pop('ctrl_topic') - - def on_message(client, userdata, message): - command = message.payload.decode('utf-8') - self.exec_logger.debug(f'Received command {command}') - self._process_commands(command) - - self.controller.on_message = on_message - else: - self.controller = None - self.exec_logger.warning('No connection to control broker.' - ' Use python/ipython to interact with OhmPi object...') - - @staticmethod - def append_and_save(filename: str, last_measurement: dict, cmd_id=None): - """Appends and saves the last measurement dict. - - Parameters - ---------- - filename : str - filename to save the last measurement dataframe - last_measurement : dict - Last measurement taken in the form of a python dictionary - cmd_id : str, optional - Unique command identifier - """ - last_measurement = deepcopy(last_measurement) - if 'fulldata' in last_measurement: - d = last_measurement['fulldata'] - n = d.shape[0] - if n > 1: - idic = dict(zip(['i' + str(i) for i in range(n)], d[:, 0])) - udic = dict(zip(['u' + str(i) for i in range(n)], d[:, 1])) - tdic = dict(zip(['t' + str(i) for i in range(n)], d[:, 2])) - last_measurement.update(idic) - last_measurement.update(udic) - last_measurement.update(tdic) - last_measurement.pop('fulldata') - - if os.path.isfile(filename): - # Load data file and append data to it - with open(filename, 'a') as f: - w = csv.DictWriter(f, last_measurement.keys()) - w.writerow(last_measurement) - # last_measurement.to_csv(f, header=False) - else: - # create data file and add headers - with open(filename, 'a') as f: - w = csv.DictWriter(f, last_measurement.keys()) - w.writeheader() - w.writerow(last_measurement) - - def _compute_tx_volt(self, best_tx_injtime=0.1, strategy='vmax', tx_volt=5): - """Estimates best Tx voltage based on different strategies. - At first a half-cycle is made for a short duration with a fixed - known voltage. This gives us Iab and Rab. We also measure Vmn. - A constant c = vmn/iab is computed (only depends on geometric - factor and ground resistivity, that doesn't change during a - quadrupole). Then depending on the strategy, we compute which - vab to inject to reach the minimum/maximum Iab current or - min/max Vmn. - - Parameters - ---------- - best_tx_injtime : float, optional - Time in milliseconds for the half-cycle used to compute Rab. - strategy : str, optional - Either: - - vmin : compute Vab to reach a minimum Iab and Vmn - - vmax : compute Vab to reach a maximum Iab and Vmn - - constant : apply given Vab - tx_volt : float, optional - Voltage apply to try to guess the best voltage. 5 V applied - by default. If strategy "constant" is chosen, constant voltage - to applied is "tx_volt". - - Returns - ------- - vab : float - Proposed Vab according to the given strategy. - """ - - # hardware limits - voltage_min = self.voltage.vmin # V - voltage_max = self.voltage.vmax - current_min = self.current.imin # A - current_max = self.current.imax - tx_max = 40. # volt - - # check of V - volt = tx_volt - if volt > tx_max: - self.exec_logger.warning('Sorry, cannot inject more than 40 V, set it back to 5 V') - volt = 5. - - # make sure we are not injecting - self.alim.stop_injection() - - # select a polarity to start with - self.alim.set_polarity(True) - - # set voltage for test - self.alim.turn_on() - self.alim.set_tx_voltage(volt) - time.sleep(best_tx_injtime) # inject for given tx time - self.alim.start_injection() - - # autogain: set best gain - self.current.set_best_gain() - self.voltage.set_best_gain() - - # we measure the voltage on both A0 and A2 to guess the polarity - values = self.read_values(duration=0.1) - self.alim.stop_injection() - iab = values[-1, 1] - vmn = values[-1, 2] - - # compute constant - c = vmn / iab - Rab = (volt * 1000.) / iab # noqa - self.exec_logger.debug(f'Rab = {Rab:.2f} Ohms') - - # implement different strategies - if strategy == 'vmax': - vmn_max = c * current_max - if voltage_max > vmn_max > voltage_min: - vab = current_max * Rab - self.exec_logger.debug('target max current') - else: - iab = voltage_max / c - vab = iab * Rab - self.exec_logger.debug('target max voltage') - if vab > 25.: - vab = 25. - vab = vab * 0.9 - - elif strategy == 'vmin': - vmn_min = c * current_min - if voltage_min < vmn_min < voltage_max: - vab = current_min * Rab - self.exec_logger.debug('target min current') - else: - iab = voltage_min / c - vab = iab * Rab - self.exec_logger.debug('target min voltage') - if vab < 1.: - vab = 1. - vab = vab * 1.1 - - elif strategy == 'constant': - vab = volt - else: - vab = 5 - - return vab - - def get_data(self, survey_names=None, cmd_id=None): - """Get available data. - - Parameters - ---------- - survey_names : list of str, optional - List of filenames already available from the html interface. So - their content won't be returned again. Only files not in the list - will be read. - cmd_id : str, optional - Unique command identifier - """ - # get all .csv file in data folder - if survey_names is None: - survey_names = [] - fnames = [fname for fname in os.listdir('data/') if fname[-4:] == '.csv'] - ddic = {} - if cmd_id is None: - cmd_id = 'unknown' - for fname in fnames: - if ((fname != 'readme.txt') - and ('_rs' not in fname) - and (fname.replace('.csv', '') not in survey_names)): - try: - data = np.loadtxt('data/' + fname, delimiter=',', - skiprows=1, usecols=(1, 2, 3, 4, 8)) - data = data[None, :] if len(data.shape) == 1 else data - ddic[fname.replace('.csv', '')] = { - 'a': data[:, 0].astype(int).tolist(), - 'b': data[:, 1].astype(int).tolist(), - 'm': data[:, 2].astype(int).tolist(), - 'n': data[:, 3].astype(int).tolist(), - 'rho': data[:, 4].tolist(), - } - except Exception as e: - print(fname, ':', e) - rdic = {'cmd_id': cmd_id, 'data': ddic} - self.data_logger.info(json.dumps(rdic)) - return ddic - - def interrupt(self, cmd_id=None): - """Interrupts the acquisition when launched in async mode. - - Parameters - ---------- - cmd_id : str, optional - Unique command identifier - """ - self.status = 'stopping' - if self.thread is not None: - self.thread.join() - self.exec_logger.debug('Interrupted sequence acquisition...') - else: - self.exec_logger.debug('No sequence measurement thread to interrupt.') - self.exec_logger.debug(f'Status: {self.status}') - - def load_sequence(self, filename: str, cmd_id=None): - """Reads quadrupole sequence from file. - - Parameters - ---------- - filename : str - Path of the .csv or .txt file with A, B, M and N electrodes. - Electrode index start at 1. - cmd_id : str, optional - Unique command identifier - - Returns - ------- - sequence : numpy.array - Array of shape (number quadrupoles * 4). - """ - self.exec_logger.debug(f'Loading sequence {filename}') - try: - sequence = np.loadtxt(filename, delimiter=" ", dtype=np.uint32) # load quadrupole file - self.exec_logger.debug(f'Sequence of {sequence.shape[0]:d} quadrupoles read.') - self.set_sequence(sequence) - except Exception as e: - self.exec_logger.debug('ERROR in load_sequence(): ' + str(e)) - - if sequence is not None: - self.exec_logger.info(f'Sequence {filename} of {sequence.shape[0]:d} quadrupoles loaded.') - else: - self.exec_logger.warning(f'Unable to load sequence {filename}') - - def set_sequence(self, sequence): - """Set a sequence of quadrupoles. - - Parameters - ---------- - sequence : list of list or np.array - 2D array with 1 row per quadrupole. - """ - # locate lines where the electrode index exceeds the maximum number of electrodes - test_index_elec = np.array(np.where(sequence > self.max_elec)) - - # reshape in case we have a 1D array (=1 quadrupole) - if len(sequence.shape) == 1: - sequence = sequence[None, :] - - # test for elec A == B - test_same_elec = np.where(sequence[:, 0] == sequence[:, 1])[0] - ok = True - - # if statement with exit cases (TODO rajouter un else if pour le deuxième cas du ticket #2) - if test_index_elec.size != 0: - for i in range(len(test_index_elec[0, :])): - ok = False - self.exec_logger.error(f'An electrode index at line {str(test_index_elec[0, i] + 1)} ' - f'exceeds the maximum number of electrodes') - # sys.exit(1) - sequence = None - if len(test_same_elec) != 0: - for i in range(len(test_same_elec)): - ok = False - self.exec_logger.error(f'An electrode index A == B detected at line {str(test_same_elec[i] + 1)}') - # sys.exit(1) - sequence = None - - # set sequence attribute - if ok: - self.sequence = sequence - else: - self.exec_logger.error('Unable to set sequence. Fix sequence first.') - - - def _process_commands(self, message: str): - """Processes commands received from the controller(s) - - Parameters - ---------- - message : str - message containing a command and arguments or keywords and arguments - """ - status = False - cmd_id = '?' - try: - decoded_message = json.loads(message) - self.exec_logger.debug(f'Decoded message {decoded_message}') - cmd_id = decoded_message.pop('cmd_id', None) - cmd = decoded_message.pop('cmd', None) - kwargs = decoded_message.pop('kwargs', None) - self.exec_logger.debug(f"Calling method {cmd}({str(kwargs) if kwargs is not None else ''})") - if cmd_id is None: - self.exec_logger.warning('You should use a unique identifier for cmd_id') - if cmd is not None: - try: - if kwargs is None: - output = getattr(self, cmd)() - else: - output = getattr(self, cmd)(**kwargs) - status = True - except Exception as e: - self.exec_logger.error( - f"Unable to execute {cmd}({str(kwargs) if kwargs is not None else ''}): {e}") - status = False - except Exception as e: - self.exec_logger.warning(f'Unable to decode command {message}: {e}') - status = False - finally: - reply = {'cmd_id': cmd_id, 'status': status} - reply = json.dumps(reply) - self.exec_logger.debug(f'Execution report: {reply}') - - def quit(self, cmd_id=None): - """Quits OhmPi - - Parameters - ---------- - cmd_id : str, optional - Unique command identifier - """ - self.exec_logger.debug(f'Quitting ohmpi.py following command {cmd_id}') - exit() - - def _read_hardware_config(self): - """Reads hardware configuration from config.py - """ - self.exec_logger.debug('Getting hardware config') - self.id = OHMPI_CONFIG['id'] # ID of the OhmPi - self.Imax = OHMPI_CONFIG['Imax'] # maximum current - self.exec_logger.debug(f'The maximum current cannot be higher than {self.Imax} mA') - self.coef_p2 = OHMPI_CONFIG['coef_p2'] # slope for current conversion for ads.P2, measurement in V/V - self.nb_samples = OHMPI_CONFIG['nb_samples'] # number of samples measured for each stack - self.version = OHMPI_CONFIG['version'] # hardware version - self.max_elec = OHMPI_CONFIG['max_elec'] # maximum number of electrodes - self.board_version = OHMPI_CONFIG['board_version'] - self.exec_logger.debug(f'OHMPI_CONFIG = {str(OHMPI_CONFIG)}') - - def remove_data(self, cmd_id=None): - """Remove all data in the data folder - - Parameters - ---------- - cmd_id : str, optional - Unique command identifier - """ - self.exec_logger.debug(f'Removing all data following command {cmd_id}') - shutil.rmtree('data') - os.mkdir('data') - - def restart(self, cmd_id=None): - """Restarts the Raspberry Pi - - Parameters - ---------- - cmd_id : str, optional - Unique command identifier - """ - - if self.on_pi: - self.exec_logger.info(f'Restarting pi following command {cmd_id}...') - os.system('reboot') - else: - self.exec_logger.warning('Not on Raspberry Pi, skipping reboot...') - - def set_best_gain(self): - """Set best gain.""" - self.current.set_best_gain() - gain0 = self.voltage.get_best_gain(channel=0) - gain2 = self.voltage.get_best_gain(channel=2) - self.voltage.set_gain(np.min([gain0, gain2])) - - def read_values(self, duration=0.2, sampling=0.01): - """Read voltage during a given time for current and voltage ADS. - - Parameters - ---------- - duration : int, optional - Time in seconds to monitor the voltage. - sampling : int, optional - Time between two samples in seconds. - - Returns - ------- - meas : numpy.array - Array with first column time in ms from start, - second column, current in mA, then voltage in mV - from the different channels. - """ - # compute maximum number of samples possible - # we probably harvest less samples but like this - # we can already allocated the array and that makes - # the collection faster - nsamples = int((int(duration * 1000) // sampling) + 1) - - # measurement of current i and voltage u during injection - nchannel = len(self.voltage.read_all()) - meas = np.zeros((nsamples, 2 + nchannel)) * np.nan - start_time = time.time() # stating measurement time - elapsed = 0 - for i in range(0, nsamples): - # reading current value on ADS channels - elapsed = time.time() - start_time # real injection time (s) - if elapsed >= (duration): - break - meas[i, 0] = elapsed - meas[i, 1] = self.current.read() - meas[i, 2:] = self.voltage.read_all() - time.sleep(sampling) - - return meas[:i-1, :] - - - def run_measurement(self, quad=[0, 0, 0, 0], nb_stack=None, injection_duration=None, - autogain=True, strategy='constant', tx_volt=5, best_tx_injtime=0.1, - duty=1, cmd_id=None): - """Measures on a quadrupole and returns transfer resistance. - - Parameters - ---------- - quad : iterable (list of int) - Quadrupole to measure, just for labelling. Only switch_mux_on/off - really creates the route to the electrodes. - nb_stack : int, optional - Number of stacks. A stacl is considered two half-cycles (one - positive, one negative). - injection_duration : int, optional - Injection time in seconds. - autogain : bool, optional - If True, will adapt the gain of the ADS1115 to maximize the - resolution of the reading. - strategy : str, optional - (V3.0 only) If we search for best voltage (tx_volt == 0), we can choose - different strategy: - - vmin: find the lowest voltage that gives us a signal - - vmax: find the highest voltage that stays in the range - For a constant value, just set the tx_volt. - tx_volt : float, optional - (V3.0 only) If specified, voltage will be imposed. If 0, we will look - for the best voltage. If the best Tx cannot be found, no - measurement will be taken and values will be NaN. - best_tx_injtime : float, optional - (V3.0 only) Injection time in seconds used for finding the best voltage. - duty : float, optional - Proportion of time spent on injection vs no injection time. - cmd_id : str, optional - Command ID. - """ - self.exec_logger.debug('Starting measurement') - - if nb_stack is None: - nb_stack = self.settings['nb_stack'] - if injection_duration is None: - injection_duration = self.settings['injection_duration'] - tx_volt = float(tx_volt) - - # let's define the pin again as if we run through measure() - # as it's run in another thread, it doesn't consider these - # and this can lead to short circuit! - self.alim = Alimentation() # TODO carefully test that - self.alim.stop_injection() - - # get best voltage to inject AND polarity - if self.idps: - tx_volt, polarity = self._compute_tx_volt( - best_tx_injtime=best_tx_injtime, strategy=strategy, tx_volt=tx_volt) - self.exec_logger.debug(f'Best vab found is {tx_volt:.3f}V') - - # first reset the gain to 2/3 before trying to find best gain (mode 0 is continuous) - self.current.set_gain(2/3) - self.voltage.set_gain(2/3) - - # turn on the power supply - if self.alim.on == False: - self.alim.turn_on() - self.alim.set_tx_voltage(tx_volt) - time.sleep(0.05) # let it time to reach tx_volt - - if tx_volt > 0: # we found a Vab in the range so we measure - # find best gain during injection - if autogain: - self.alim.start_injection() - time.sleep(injection_duration) - self.set_best_gain() - self.alim.stop_injection() - - # make sure we are not injecting - self.alim.stop_injection() - - # full data for waveform - fulldata = [] - - # we sample every 10 ms (as using AnalogIn for both current - # and voltage takes about 7 ms). When we go over the injection - # duration, we break the loop and truncate the meas arrays - # only the last values in meas will be taken into account - start_delay = time.time() - injtimes = np.zeros(nb_stack * 2) - for n in range(0, nb_stack * 2): # for each half-cycles - # current injection polarity - if (n % 2) == 0: - self.alim.set_polarity(True) - else: - self.alim.set_polarity(False) - self.alim.start_injection() - - # reading voltages and currents - elapsed = time.time() - start_delay - values = self.read_values(duration=injection_duration) - injtimes[n] = values[-1, 0] - values[:, 0] += elapsed - fulldata.append(values) - - # stop current injection - self.alim.stop_injection() - - # waiting time (no injection) before next half-cycle - if duty < 1: - duration = injection_duration * (1 - duty) - elapsed = time.time() - start_delay - values = self.read_values(duration=duration) - values[:, 0] += elapsed - fulldata.append(values) - else: - fulldata.append(np.array([[], [], [], []]).T) - - # TODO get battery voltage and warn if battery is running low - # TODO send a message on SOH stating the battery level - - # let's do some calculation (out of the stacking loop) - stacks = np.zeros((len(fulldata) // 2, fulldata[0].shape[1]-1)) - - # define number of sample to average for the injection half-cycle - n2avg = int(fulldata[0].shape[0] // 3) - - # compute average for the injection half-cycle - for n, meas in enumerate(fulldata[::2]): - stacks[n, :] = np.mean(meas[-n2avg:, 1:], axis=0) - - # identify which of U0 or U2 is on top - a = 1 - b = 0 - if stacks[0, 1] > stacks[0, 2]: - a = 0 - b = 1 - - # compute average vmn and i - iab = np.mean(stacks[:, 1]) - vmn = np.mean(stacks[a::2, 1] + stacks[b::2, 2]) - - # self-potential estimated during on-time - spon = np.mean(stacks[a::2, 1] - stacks[b::2, 2]) - - # remove the average sp computed on injection half-cycle - vmn = vmn - spon - - # compute average self potential between injection half-cycle - if duty < 1: - spoff = 0 - n2avg = int(fulldata[0].shape[0] // 3) - for n, meas in enumerate(fulldata[1::2]): - spoff += np.mean(meas[-n2avg:, 2]) - spoff = spoff / len(fulldata) * 2 - else: - iab = np.nan - vmn = np.nan - spon = np.nan - fulldata = None - - # set a low voltage for safety - self.alim.set_tx_voltage(12) - - # reshape full data to an array of good size - # we need an array of regular size to save in the csv - if tx_volt > 0: # TODO what if have different array size? - for a in fulldata: - print(a.shape) - fulldata = np.vstack(fulldata) - # we create a big enough array given nb_samples, number of - # half-cycles (1 stack = 2 half-cycles), and twice as we - # measure decay as well - nsamples = int((int(injection_duration * 1000) / duty) // 0.01 + 1) - a = np.zeros((nb_stack * nsamples * 2, fulldata.shape[1])) * np.nan - a[:fulldata.shape[0], :] = fulldata - fulldata = a - - # create a dictionary and compute averaged values from all stacks - d = { - "time": datetime.now().isoformat(), - "A": quad[0], - "B": quad[1], - "M": quad[2], - "N": quad[3], - "injtime [ms]": np.mean(injtimes), - "Vmn [mV]": vmn, - "I [mA]": iab, - "R [ohm]": vmn/iab, - "Ps [mV]": spon, - "nbStack": nb_stack, - "tmp [degC]": CPUTemperature().temperature if arm64_imports else -10, - "Nb samples [-]": n2avg, - "stacks": stacks, - "fulldata": fulldata, - } - - # to the data logger - dd = d.copy() - dd.pop('fulldata') # too much for logger - dd.update({'A': str(dd['A'])}) - dd.update({'B': str(dd['B'])}) - dd.update({'M': str(dd['M'])}) - dd.update({'N': str(dd['N'])}) - - # round float to 2 decimal - for key in dd.keys(): - if isinstance(dd[key], float): - dd[key] = np.round(dd[key], 3) - - dd['cmd_id'] = str(cmd_id) - self.data_logger.info(dd) - - return d - - def run_sequence(self, cmd_id=None, **kwargs): - """Runs sequence synchronously (=blocking on main thread). - Additional arguments are passed to run_measurement(). - - Parameters - ---------- - cmd_id : str, optional - Unique command identifier. - kwargs : optional - Optional keyword arguments passed to run_measurement(). - See help(OhmPi.run_measurement). - """ - self.status = 'running' - self.exec_logger.debug(f'Status: {self.status}') - self.exec_logger.debug(f'Measuring sequence: {self.sequence}') - - # create filename with timestamp - filename = self.settings["export_path"].replace('.csv', - f'_{datetime.now().strftime("%Y%m%dT%H%M%S")}.csv') - self.exec_logger.debug(f'Saving to {filename}') - - # make sure all multiplexer are off - self.mux.reset() - - # measure all quadrupole of the sequence - if self.sequence is None: - seq = np.array([[0, 0, 0, 0]]) - else: - seq = self.sequence.copy() - for i in range(0, seq.shape[0]): - quad = seq[i, :] - if self.status == 'stopping': - break - - # call the switch_mux function to switch to the right electrodes - self.switch_mux_on(quad) - - # run a measurement - acquired_data = self.run_measurement(quad, **kwargs) - self.data_logger.info(acquired_data) - - # switch mux off - self.switch_mux_off(quad) - - # add command_id in dataset - acquired_data.update({'cmd_id': cmd_id}) - - # log data to the data logger - # self.data_logger.info(f'{acquired_data}') - # save data and print in a text file - self.append_and_save(filename, acquired_data) - self.exec_logger.debug(f'quadrupole {i + 1:d}/{seq.shape[0]:d}') - - self.status = 'idle' - - def run_sequence_async(self, cmd_id=None, **kwargs): - """Runs the sequence in a separate thread. Can be stopped by 'OhmPi.interrupt()'. - Additional arguments are passed to run_measurement(). - - Parameters - ---------- - cmd_id : str, optional - Unique command identifier - """ - def func(): - self.run_sequence(**kwargs) - - self.thread = threading.Thread(target=func) - self.thread.start() - self.status = 'idle' - - def run_multiple_sequences(self, sequence_delay=None, nb_meas=None, cmd_id=None, **kwargs): - """Runs multiple sequences in a separate thread for monitoring mode. - Can be stopped by 'OhmPi.interrupt()'. - Additional arguments are passed to run_measurement(). - - Parameters - ---------- - cmd_id : str, optional - Unique command identifier - sequence_delay : int, optional - Number of seconds at which the sequence must be started from each others. - nb_meas : int, optional - Number of time the sequence must be repeated. - kwargs : dict, optional - See help(k.run_measurement) for more info. - """ - # self.run = True - if sequence_delay is None: - sequence_delay = self.settings['sequence_delay'] - sequence_delay = int(sequence_delay) - if nb_meas is None: - nb_meas = self.settings['nb_meas'] - self.status = 'running' - self.exec_logger.debug(f'Status: {self.status}') - self.exec_logger.debug(f'Measuring sequence: {self.sequence}') - - def func(): - for g in range(0, nb_meas): # for time-lapse monitoring - if self.status == 'stopping': - self.exec_logger.warning('Data acquisition interrupted') - break - t0 = time.time() - self.run_sequence(**kwargs) - - # sleeping time between sequence - dt = sequence_delay - (time.time() - t0) - if dt < 0: - dt = 0 - if nb_meas > 1: - time.sleep(dt) # waiting for next measurement (time-lapse) - self.status = 'idle' - - self.thread = threading.Thread(target=func) - self.thread.start() - - def _quad2qdic(self, quad): - """Convert a quadrupole to a more flexible qdic - of format {'A': [1], 'B': [2], 'M': [3], 'N': [4]}. - This format enable to inject at several electrodes and - is more flexible for multichannelling (we can add M1, N1, ...). - - Parameters - ---------- - quad : list of int, - List of quadrupoles. Electrodes equal to 0 are ignored. - - Returns - ------- - Dictionnary in the form: {role: [list of electrodes]}. - """ - return dict(zip(['A', 'B', 'M', 'N'], [[a] for a in quad if a > 0])) - - def switch_mux_on(self, quad): - """"Switch quadrupoles on. - - Parameters - ---------- - quad : list of int, - List of quadrupoles. Electrodes equal to 0 are ignored. - """ - qdic = self._quad2qdic(quad) - self.mux.switch(qdic, 'on') - - def switch_mux_off(self, quad): - """Switch quadrupoles off. - - Parameters - ---------- - quad : list of int, - List of quadrupoles. Electrodes equal to 0 are ignored. - """ - qdic = self._quad2qdic(quad) - self.mux.switch(qdic, 'off') - - def reset_mux(self): - """Reset the mux, make sure all relays are off. - """ - self.mux.reset() - - def rs_check(self, tx_volt=12., cmd_id=None): - """Checks contact resistances. - - Parameters - ---------- - tx_volt : float, optional - Voltage of the injection. - cmd_id : str, optional - Unique command identifier. - """ - # create custom sequence where MN == AB - # we only check the electrodes which are in the sequence (not all might be connected) - if self.sequence is None: - quads = np.array([[1, 2, 0, 0]], dtype=np.uint32) - else: - elec = np.sort(np.unique(self.sequence.flatten())) # assumed order - quads = np.vstack([ - elec[:-1], - elec[1:], - np.zeros(len(elec)-1), - np.zeros(len(elec)-1) - ]).T - - # create filename to store RS - export_path_rs = self.settings['export_path'].replace('.csv', '') \ - + '_' + datetime.now().strftime('%Y%m%dT%H%M%S') + '_rs.csv' - - # perform RS check - self.status = 'running' - - # make sure all mux are off to start with - self.mux.reset() - - # turn on alim - self.alim.turn_on() - self.alim.set_tx_voltage(tx_volt) - - # measure all quad of the RS sequence - for i in range(0, quads.shape[0]): - quad = quads[i, :] # quadrupole - self.switch_mux_on(quad) # put before raising the pins (otherwise conflict i2c) - d = self.run_measurement( - quad=quad, nb_stack=1, injection_duration=0.2, - tx_volt=tx_volt, autogain=False) - self.switch_mux_off(quad) - - voltage = d['Tx [V]'] - current = d['I [mA]'] / 1000. - - # compute resistance measured (= contact resistance) - resist = abs(voltage / current) / 1000. - # print(str(quad) + '> I: {:>10.3f} mA, V: {:>10.3f} mV, R: {:>10.3f} kOhm'.format( - # current, voltage, resist)) - msg = f'Contact resistance {str(quad):s}: I: {current * 1000.:>10.3f} mA, ' \ - f'V: {voltage :>10.3f} mV, ' \ - f'R: {resist :>10.3f} kOhm' - - self.exec_logger.debug(msg) - - # if contact resistance = 0 -> we have a short circuit!! - if resist < 1e-5: - msg = f'!!!SHORT CIRCUIT!!! {str(quad):s}: {resist:.3f} kOhm' - self.exec_logger.warning(msg) - - # save data in a text file - self.append_and_save(export_path_rs, { - 'A': quad[0], - 'B': quad[1], - 'RS [kOhm]': resist, - }) - - self.alim.turn_off() - self.status = 'idle' - - def update_settings(self, settings: str, cmd_id=None): - """Updates acquisition settings from a json file or dictionary. - Parameters can be: - - nb_electrodes (number of electrode used, if 4, no MUX needed) - - injection_duration (in seconds) - - nb_meas (total number of times the sequence will be run) - - sequence_delay (delay in second between each sequence run) - - nb_stack (number of stack for each quadrupole measurement) - - export_path (path where to export the data, timestamp will be added to filename) - - Parameters - ---------- - settings : str, dict - Path to the .json settings file or dictionary of settings. - cmd_id : str, optional - Unique command identifier - """ - status = False - if settings is not None: - try: - if isinstance(settings, dict): - self.settings.update(settings) - else: - with open(settings) as json_file: - dic = json.load(json_file) - self.settings.update(dic) - self.exec_logger.debug('Acquisition parameters updated: ' + str(self.settings)) - status = True - except Exception as e: # noqa - self.exec_logger.warning('Unable to update settings.') - status = False - else: - self.exec_logger.warning('Settings are missing...') - return status - - def stop(self, **kwargs): - warnings.warn('This function is deprecated. Use interrupt instead.', DeprecationWarning) - self.interrupt(**kwargs) - - def _update_acquisition_settings(self, config): - warnings.warn('This function is deprecated, use update_settings() instead.', DeprecationWarning) - self.update_settings(settings=config) - - # Properties - @property - def sequence(self): - """Gets sequence""" - if self._sequence is not None: - assert isinstance(self._sequence, np.ndarray) - return self._sequence - - # TODO not sure if the below is still needed now we have a - # method set_sequence() - @sequence.setter - def sequence(self, sequence): - """Sets sequence""" - if sequence is not None: - assert isinstance(sequence, np.ndarray) - self.use_mux = True - else: - self.use_mux = False - self._sequence = sequence - - -VERSION = '3.0.0' - -print(colored(r' ________________________________' + '\n' + - r'| _ | | | || \/ || ___ \_ _|' + '\n' + - r'| | | | |_| || . . || |_/ / | |' + '\n' + - r'| | | | _ || |\/| || __/ | |' + '\n' + - r'\ \_/ / | | || | | || | _| |_' + '\n' + - r' \___/\_| |_/\_| |_/\_| \___/ ', 'red')) -print('Version:', VERSION) -platform, on_pi = get_platform() - -if on_pi: - print(colored(f'\u2611 Running on {platform} platform', 'green')) - # TODO: check model for compatible platforms (exclude Raspberry Pi versions that are not supported...) - # and emit a warning otherwise - if not arm64_imports: - print(colored(f'Warning: Required packages are missing.\n' - f'Please run ./env.sh at command prompt to update your virtual environment\n', 'yellow')) -else: - print(colored(f'\u26A0 Not running on the Raspberry Pi platform.\nFor simulation purposes only...', 'yellow')) - -current_time = datetime.now() -print(f'local date and time : {current_time.strftime("%Y-%m-%d %H:%M:%S")}') - -# for testing -if __name__ == "__main__": - ohmpi = OhmPi(settings=OHMPI_CONFIG['settings']) - if ohmpi.controller is not None: - ohmpi.controller.loop_forever() diff --git a/test_measure_with_ohmpi_card_3_15.py b/test_measure_with_ohmpi_card_3_15.py index e9251e5b..3c3b54b9 100644 --- a/test_measure_with_ohmpi_card_3_15.py +++ b/test_measure_with_ohmpi_card_3_15.py @@ -1,5 +1,3 @@ -import time - import numpy as np import logging import matplotlib.pyplot as plt diff --git a/test_modif.py b/test_modif.py deleted file mode 100644 index 78b2c719..00000000 --- a/test_modif.py +++ /dev/null @@ -1,110 +0,0 @@ -from ohmpi import OhmPi -import matplotlib.pyplot as plt -import numpy as np - -# a = np.arange(13) + 1 -# b = a + 3 -# m = a + 1 -# n = a + 2 -# seq = np.c_[a, b, m, n] - -k = OhmPi(idps=True) -k.settings['injection_duration'] = 1 -k.settings['nbr_meas'] = 1 -#k.sequence = seq -#k.reset_mux() -#k.switch_mux_on([1, 4, 2, 3]) -#k.switch_mux_on([12, 15, 13, 14]) -#k.measure(strategy='vmax') -#print('vab', k.compute_tx_volt(strategy='vmin')) -#k.rs_check() - -R1=11.5 #sol -R2=200 # contact - - - -out = k.run_measurement(quad=[1, 2, 3, 4], nb_stack=2, tx_volt=2, strategy='vmax', autogain=True) -print(k.sequence) - -data = out['fulldata'] -inan = ~np.isnan(data[:,0]) -print(['R1:',R1,' ','R2:',R2,' ', out['R [ohm]'],out['Vmn [mV]'],out['I [mA]'],out['Ps [mV]'],out['nbStack'],out['Tx [V]']]) -f=open(r'data_goog.txt','a+') -f.write("\n") -f.write('R1:'+';'+ str(R1)+';'+'R2:'+';'+str(R2)+';'+ str(out['R [ohm]'])+';' + str(out['Vmn [mV]'])+';' + str(out['I [mA]'])+';'+ str(out['Ps [mV]'])+';'+ str(out['nbStack'])+';'+ str(out['Tx [V]'])) -f.close() - -k.append_and_save('out_test_qualite.csv', out) - -# out = k.run_measurement(quad=[1, 2, 3, 4], nb_stack=2, tx_volt=2, strategy='vmin', autogain=True) -# -# data = out['fulldata'] -# inan = ~np.isnan(data[:,0]) -# print(out['R [ohm]']) -# k.append_and_save('out_test_qualite.csv', out) -# -# out = k.run_measurement(quad=[1, 2, 3, 4], nb_stack=2, tx_volt=5, strategy='constant', autogain=True) -# -# data = out['fulldata'] -# inan = ~np.isnan(data[:,0]) -# print(out['R [ohm]']) -# k.append_and_save('out_test_qualite.csv', out) - -if True: - fig, axs = plt.subplots(2, 1, sharex=True) - ax = axs[0] - ax.plot(data[inan,2], data[inan,0], 'r.-', label='current [mA]') - ax.set_ylabel('Current AB [mA]') - ax = axs[1] - ax.plot(data[inan,2], data[inan,1], '.-', label='voltage [mV]') - ax.set_ylabel('Voltage MN [mV]') - ax.set_xlabel('Time [s]') - plt.show() - -# fig,ax=plt.subplots() -# -# -# ax.plot(data[inan,2], data[inan,0], label='current [mA]', marker="o") -# ax2=ax.twinx() -# ax2.plot(data[inan,2], data[inan,1],'r.-' , label='current [mV]') -# ax2.set_ylabel('Voltage [mV]', color='r') -# ymin=-50 -# ymax=50 -# ymin1=-4500 -# ymax1= 4500 -# ax.set_ylim([ymin,ymax]) -# ax2.set_ylim([ymin1,ymax1]) -# -# plt.show() - - - -if False: - from numpy.fft import fft, ifft - - x = data[inan, 1][10:300] - t = np.linspace(0, len(x)*4, len(x)) - sr = 1/0.004 - - X = fft(x) - N = len(X) - n = np.arange(N) - T = N/sr - freq = n/T - - plt.figure(figsize = (12, 6)) - plt.subplot(121) - - plt.stem(freq, np.abs(X), 'b', \ - markerfmt=" ", basefmt="-b") - plt.xlabel('Freq (Hz)') - plt.ylabel('FFT Amplitude |X(freq)|') - #plt.xlim(0, 10) - - plt.subplot(122) - plt.plot(t, ifft(X), 'r') - plt.xlabel('Time (s)') - plt.ylabel('Amplitude') - plt.tight_layout() - plt.show() diff --git a/test_mux_2024.py b/test_mux_2024.py index 4d14cdb0..3a056013 100644 --- a/test_mux_2024.py +++ b/test_mux_2024.py @@ -3,14 +3,14 @@ from utils import change_config import logging change_config('config_mb_2023_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 controller_module +from OhmPi.hardware_components import raspberry_pi_i2c as ctl_module stand_alone_mux = False part_of_hardware_system = False within_ohmpi = True # Stand alone mux if stand_alone_mux: - MUX_CONFIG['controller'] = controller_module.Controller() + MUX_CONFIG['ctl'] = ctl_module.Ctl() MUX_CONFIG['id'] = 'mux_1' MUX_CONFIG['cabling'] = {(i+8, j) : ('mux_1', i) for j in ['A', 'B', 'M', 'N'] for i in range(1,9)} mux = Mux(**MUX_CONFIG) -- GitLab