From 219f7e45a44e1dab3be725a4ea6abd64276e59af Mon Sep 17 00:00:00 2001
From: su530201 <olivier.kaufmann@umons.ac.be>
Date: Tue, 27 Jun 2023 17:51:35 +0200
Subject: [PATCH] Computes last_rho and last dev on strictly positive or
 negative pulses

---
 dev/test_2_mux_2024.py   | 4 ++--
 ohmpi/hardware_system.py | 8 +++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/dev/test_2_mux_2024.py b/dev/test_2_mux_2024.py
index c51a7ca7..48e3f289 100644
--- a/dev/test_2_mux_2024.py
+++ b/dev/test_2_mux_2024.py
@@ -49,8 +49,8 @@ if within_ohmpi:
     k._hw.vab_square_wave(3.,1)
     k._hw.switch_mux([1, 4, 2, 3], state='off')
     k._hw.calibrate_rx_bias()  # electrodes 1 4 2 3 should be connected to a reference circuit
-    print(f'Resistance: {k._hw.last_rho :.2f} ohm, dev. {k._hw.last_dev:.2f} %, rx bias: {k._hw.rx._bias:.2f} mV')
-    k._hw._plot_readings()
+    # print(f'Resistance: {k._hw.last_rho :.2f} ohm, dev. {k._hw.last_dev:.2f} %, rx bias: {k._hw.rx._bias:.2f} mV')
+    # k._hw._plot_readings()
     k._hw.switch_mux([1, 4, 2, 3], state='on')
     k._hw.vab_square_wave(3.,1)
     k._hw.switch_mux([1, 4, 2, 3], state='off')
diff --git a/ohmpi/hardware_system.py b/ohmpi/hardware_system.py
index f9baa285..335e56cd 100644
--- a/ohmpi/hardware_system.py
+++ b/ohmpi/hardware_system.py
@@ -204,15 +204,17 @@ class OhmPiHardware:
 
     @property
     def last_rho(self):
-        if len(self.readings) > 1:
-            return np.mean(np.abs(self.readings[:, 4] - self.sp) / self.readings[:, 3])
+        v = self.readings[:, 2] != 0
+        if len(v) > 1:
+            return np.mean(np.abs(self.readings[v, 4] - self.sp) / self.readings[v, 3])
         else:
             return np.nan
 
     @property
     def last_dev(self):
         if len(self.readings) > 1:
-            return 100. * np.std(self.readings[:, 2] * (self.readings[:, 4] - self.sp) / self.readings[:, 3])/self.last_rho
+            v = self.readings[:,2] != 0
+            return 100. * np.std(self.readings[v, 2] * (self.readings[v, 4] - self.sp) / self.readings[v, 3])/self.last_rho
         else:
             return np.nan
 
-- 
GitLab