From e29497f2d4342765a533c448f052e64681055a1b Mon Sep 17 00:00:00 2001 From: su530201 <olivier.kaufmann@umons.ac.be> Date: Sat, 15 Apr 2023 18:08:46 +0200 Subject: [PATCH] Adds a sampling_rate key in RX_CONFIG and use it in _vab_pulse --- config_ohmpi_card_3_15.py | 1 + hardware/ohmpi_card_3_15.py | 2 ++ measure.py | 8 ++++++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/config_ohmpi_card_3_15.py b/config_ohmpi_card_3_15.py index 8ce65319..b11d7d75 100644 --- a/config_ohmpi_card_3_15.py +++ b/config_ohmpi_card_3_15.py @@ -27,6 +27,7 @@ HARDWARE_CONFIG = { }, 'rx' : {'model': 'ohmpi_card_3_15', 'coef_p2': 2.50, # slope for current conversion for ADS.P2, measurement in V/V + 'sampling_rate': 10., # ms 'nb_samples': 20, # Max value 10 # was named integer before... }, 'mux': {'model' : 'dummy_mux', # 'ohmpi_i2c_mux64_v1.01', diff --git a/hardware/ohmpi_card_3_15.py b/hardware/ohmpi_card_3_15.py index d7798d52..e5175c1b 100644 --- a/hardware/ohmpi_card_3_15.py +++ b/hardware/ohmpi_card_3_15.py @@ -19,8 +19,10 @@ RX_CONFIG = HARDWARE_CONFIG['rx'] # ADC for voltage voltage_adc_voltage_min = 10. # mV voltage_adc_voltage_max = 4500. # mV +sampling_rate = 10. # ms RX_CONFIG['voltage_min'] = np.min([voltage_adc_voltage_min, RX_CONFIG.pop('voltage_min', np.inf)]) # mV RX_CONFIG['voltage_max'] = np.min([voltage_adc_voltage_max, RX_CONFIG.pop('voltage_max', np.inf)]) # mV +RX_CONFIG['sampling_rate'] = RX_CONFIG.pop('sampling_rate', sampling_rate) # *** TX *** # ADC for current diff --git a/measure.py b/measure.py index bc3ef817..2c1e5f62 100644 --- a/measure.py +++ b/measure.py @@ -45,7 +45,7 @@ class OhmPiHardware: soh_logger=self.soh_logger)) - def _vab_pulse(self, vab, length, polarity=None): + def _vab_pulse(self, vab, length, sampling_rate=10., polarity=None): """ Gets VMN and IAB from a single voltage pulse """ def inject(duration): @@ -53,14 +53,18 @@ class OhmPiHardware: self.tx.voltage_pulse(length=duration) self.tx_sync.clear() - def read_values(): + def read_values(sampling_rate): _readings = [] self.tx_sync.wait() start_time = time.gmtime() while self.tx_sync.is_set(): + cur_time=start_time _readings.append([time.gmtime() - start_time, self.tx.current, self.rx.voltage]) + time.sleep(cur_time+sampling_rate-time.gmtime()) return np.array(_readings) + if sampling_rate is None: + sampling_rate = RX_CONFIG['sampling_rate'] if polarity is not None and polarity != self.tx.polarity: self.tx.polarity = polarity self.tx.voltage = vab -- GitLab