From f6fd795ab06f76729aebdaf52e63bca1801106ee Mon Sep 17 00:00:00 2001 From: su530201 <olivier.kaufmann@umons.ac.be> Date: Fri, 16 Jun 2023 16:44:09 +0200 Subject: [PATCH] Implements new events for time line plotting --- ohmpi/hardware_components/ohmpi_card_3_15.py | 4 ++-- ohmpi/hardware_system.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ohmpi/hardware_components/ohmpi_card_3_15.py b/ohmpi/hardware_components/ohmpi_card_3_15.py index a89c5704..c8f866cc 100644 --- a/ohmpi/hardware_components/ohmpi_card_3_15.py +++ b/ohmpi/hardware_components/ohmpi_card_3_15.py @@ -245,10 +245,10 @@ class Rx(RxAbstract): def voltage(self): """ Gets the voltage VMN in Volts """ - self.exec_logger.event(f'{self.board_name}\Measure_Voltage_RX\tbegin\t{datetime.datetime.utcnow()}') + self.exec_logger.event(f'{self.board_name}\tMeasure_Voltage_RX\tbegin\t{datetime.datetime.utcnow()}') u0 = AnalogIn(self._ads_voltage, ads.P0).voltage * 1000. u2 = AnalogIn(self._ads_voltage, ads.P2).voltage * 1000. u = np.max([u0, u2]) * (np.heaviside(u0-u2, 1.) * 2 - 1.) # gets the max between u0 & u2 and set the sign self.exec_logger.debug(f'Reading voltages {u0} mV and {u2} mV on RX. Returning {u} mV') - self.exec_logger.event(f'{self.board_name}\Measure_Voltage_RX\tend\t{datetime.datetime.utcnow()}') + self.exec_logger.event(f'{self.board_name}\tMeasure_Voltage_RX\tend\t{datetime.datetime.utcnow()}') return u \ No newline at end of file diff --git a/ohmpi/hardware_system.py b/ohmpi/hardware_system.py index df4c9a8c..1ba827a4 100644 --- a/ohmpi/hardware_system.py +++ b/ohmpi/hardware_system.py @@ -44,6 +44,7 @@ def elapsed_seconds(start_time): class OhmPiHardware: def __init__(self, **kwargs): self.exec_logger = kwargs.pop('exec_logger', None) + self.exec_logger.event(f'OhmPiHardware\tInit_OhmPi\tbegin\t{datetime.datetime.utcnow()}') if self.exec_logger is None: self.exec_logger = create_stdout_logger('exec_hw') self.data_logger = kwargs.pop('exec_logger', None) @@ -124,6 +125,7 @@ class OhmPiHardware: self.readings = np.array([]) # time series of acquired data self._start_time = None # time of the beginning of a readings acquisition self._pulse = 0 # pulse number + self.exec_logger.event(f'OhmPiHardware\tInit_OhmPi\tend\t{datetime.datetime.utcnow()}') def _clear_values(self): self.readings = np.array([]) @@ -131,14 +133,18 @@ class OhmPiHardware: self._pulse = 0 def _gain_auto(self): # TODO: improve _gain_auto + self.exec_logger.event(f'OhmPiHardware\tGAin_Auto\tbegin\t{datetime.datetime.utcnow()}') self.tx_sync.wait() self.tx.adc_gain_auto() self.rx.adc_gain_auto() + self.exec_logger.event(f'OhmPiHardware\tGAin_Auto\tend\t{datetime.datetime.utcnow()}') def _inject(self, polarity=1, inj_time=None): # TODO: deal with voltage or current pulse + self.exec_logger.event(f'OhmPiHardware\tInject\tbegin\t{datetime.datetime.utcnow()}') self.tx_sync.set() self.tx.voltage_pulse(length=inj_time, polarity=polarity) self.tx_sync.clear() + self.exec_logger.event(f'OhmPiHardware\tInject\tend\t{datetime.datetime.utcnow()}') def _set_mux_barrier(self): self.mux_barrier = Barrier(len(self.mux_boards) + 1) @@ -156,6 +162,7 @@ class OhmPiHardware: return pulses def _read_values(self, sampling_rate=None, append=False): # noqa + self.exec_logger.event(f'OhmPiHardware\tRead_Values\tbegin\t{datetime.datetime.utcnow()}') if not append: self._clear_values() _readings = [] @@ -187,6 +194,7 @@ class OhmPiHardware: self.exec_logger.warning(f'pulse {self._pulse}: total samples {len(_readings)}') # TODO: Set to debug level self.readings = np.array(_readings) self._pulse += 1 + self.exec_logger.event(f'OhmPiHardware\tRead_Values\tbegin\t{datetime.datetime.utcnow()}') @property def sp(self): # TODO: use a time window within pulses @@ -296,6 +304,7 @@ class OhmPiHardware: plt.show() def vab_square_wave(self, vab, cycle_length, sampling_rate=None, cycles=3, polarity=1, append=False): + self.exec_logger.event(f'OhmPiHardware\tVab_Square_Wave\tbegin\t{datetime.datetime.utcnow()}') self.tx.polarity = polarity lengths = [cycle_length/2]*2*cycles # set gains automatically @@ -306,6 +315,7 @@ class OhmPiHardware: gain_auto.join() injection.join() self._vab_pulses(vab, lengths, sampling_rate, append=append) + self.exec_logger.event(f'OhmPiHardware\tVab_Square_Wave\tend\t{datetime.datetime.utcnow()}') def _vab_pulse(self, vab, length, sampling_rate=None, polarity=1, append=False): """ Gets VMN and IAB from a single voltage pulse -- GitLab