From 033b22c75f568b69ce980865b6e6f9eeaa20923f Mon Sep 17 00:00:00 2001
From: su530201 <olivier.kaufmann@umons.ac.be>
Date: Tue, 27 Jun 2023 09:35:19 +0200
Subject: [PATCH] Modifies sleep time computation

---
 ohmpi/hardware_components/ohmpi_card_3_15.py | 2 +-
 ohmpi/hardware_system.py                     | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/ohmpi/hardware_components/ohmpi_card_3_15.py b/ohmpi/hardware_components/ohmpi_card_3_15.py
index b12e26e1..6b973834 100644
--- a/ohmpi/hardware_components/ohmpi_card_3_15.py
+++ b/ohmpi/hardware_components/ohmpi_card_3_15.py
@@ -28,7 +28,7 @@ RX_CONFIG['voltage_min'] = np.min([voltage_adc_voltage_min, RX_CONFIG.pop('volta
 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)
 RX_CONFIG['data_rate'] = RX_CONFIG.pop('data_rate', data_rate)
-RX_CONFIG['coef_p2'] = 2.5
+RX_CONFIG['coef_p2'] = RX_CONFIG.pop('coef_p2', 2.5)
 
 # *** TX ***
 # ADC for current
diff --git a/ohmpi/hardware_system.py b/ohmpi/hardware_system.py
index e61738b9..44115216 100644
--- a/ohmpi/hardware_system.py
+++ b/ohmpi/hardware_system.py
@@ -192,9 +192,9 @@ class OhmPiHardware:
                 # for i in range(int(sampling_rate * np.abs(sleep_time.total_seconds()))):
                 #    _readings.append([elapsed_seconds(self._start_time), self._pulse, self.tx.polarity, np.nan, np.nan])
                 #    sample += 1
-                sample += int(sampling_rate * np.abs(sleep_time.total_seconds()))
-            else:
-                time.sleep(np.max([0., sleep_time.total_seconds()]))
+                sample += int(sampling_rate * np.abs(sleep_time.total_seconds())) + 1
+                sleep_time = self._start_time + datetime.timedelta(seconds=sample / sampling_rate) - lap
+            time.sleep(np.max([0., sleep_time.total_seconds()]))
 
         self.exec_logger.warning(f'pulse {self._pulse}: elapsed time {(lap-self._start_time).total_seconds()} s')  # TODO: Set to debug level
         self.exec_logger.warning(f'pulse {self._pulse}: total samples {len(_readings)}')  # TODO: Set to debug level
-- 
GitLab