From 3987d0f4074c5e7a698001ca6567da81e1b9d4e0 Mon Sep 17 00:00:00 2001
From: su530201 <olivier.kaufmann@umons.ac.be>
Date: Wed, 3 May 2023 13:43:51 +0200
Subject: [PATCH] Adds a _plot_readings method in hardware_system

---
 hardware_system.py | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/hardware_system.py b/hardware_system.py
index cc24729f..7e034be4 100644
--- a/hardware_system.py
+++ b/hardware_system.py
@@ -2,6 +2,10 @@ import importlib
 import datetime
 import time
 import numpy as np
+try:
+    import matplotlib.pyplot as plt
+except Exception:
+    pass
 from OhmPi.logging_setup import create_stdout_logger
 from OhmPi.utils import update_dict
 from OhmPi.config import HARDWARE_CONFIG
@@ -117,7 +121,7 @@ class OhmPiHardware:
         self._pulse += 1
 
     @property
-    def sp(self):
+    def sp(self):  # TODO: use a time window within pulses
         if self.readings.shape == (0,) or len(self.readings[self.readings[:,2]==1, :]) < 1 or len(self.readings[self.readings[:,2]==-1, :]) < 1:
             self.exec_logger.warning('Unable to compute sp: readings should at least contain one positive and one negative pulse')
             return 0.
@@ -211,6 +215,17 @@ class OhmPiHardware:
             polarity = 1
         return vab, polarity, rab
 
+    def _plot_readings(self):
+        # Plot graphs
+        fig, ax = plt.subplots()
+        ax.plot(self.readings[:, 0], self.readings[:, 3], '-r', marker='.', label='iab')
+        ax.set_ylabel('Iab [mA]')
+        ax2 = ax.twinx()
+        ax2.plot(self.readings[:, 0], self.readings[:, 2] * self.readings[:, 4], '-b', marker='.', label='vmn')
+        ax2.set_ylabel('Vmn [mV]')
+        fig.legend()
+        plt.show()
+
     def vab_square_wave(self, vab, cycle_length, sampling_rate=None, cycles=3, polarity=1, append=False):
         self.tx.polarity = polarity
         lengths = [cycle_length/2]*2*cycles
-- 
GitLab