From 9951c789d45d60c4208a9ff01562adf8997c9009 Mon Sep 17 00:00:00 2001
From: su530201 <olivier.kaufmann@umons.ac.be>
Date: Tue, 27 Jun 2023 15:22:06 +0200
Subject: [PATCH] Does not store last sample if tx is not still set

---
 ohmpi/hardware_system.py | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/ohmpi/hardware_system.py b/ohmpi/hardware_system.py
index 3dfed2f6..c787a0c3 100644
--- a/ohmpi/hardware_system.py
+++ b/ohmpi/hardware_system.py
@@ -186,15 +186,16 @@ class OhmPiHardware:
         time.sleep(np.max([self.rx._latency, self.tx._latency]))
         while self.tx_sync.is_set():
             lap = datetime.datetime.utcnow()
-            _readings.append([elapsed_seconds(self._start_time), self._pulse, self.tx.polarity, self.tx.current,
-                              self.rx.voltage])
-            sample += 1
-            sleep_time = self._start_time + datetime.timedelta(seconds=sample / sampling_rate) - lap
-            if sleep_time.total_seconds() < 0.:
-                # TODO: count how many samples were skipped to make a stat that could be used to qualify pulses
-                sample += int(sampling_rate * np.abs(sleep_time.total_seconds())) + 1
+            r = [elapsed_seconds(self._start_time), self._pulse, self.tx.polarity, self.tx.current, self.rx.voltage]
+            if self.tx_sync.is_set():
+                sample += 1
+                _readings.append(r)
                 sleep_time = self._start_time + datetime.timedelta(seconds=sample / sampling_rate) - lap
-            time.sleep(np.max([0., sleep_time.total_seconds()]))
+                if sleep_time.total_seconds() < 0.:
+                    # TODO: count how many samples were skipped to make a stat that could be used to qualify pulses
+                    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