From c29d09ea0ab2fe26a6cd599b792bd41c4d19558e Mon Sep 17 00:00:00 2001
From: Arnaud Watlet <arnaud.watlet@umons.ac.be>
Date: Thu, 7 Dec 2023 13:11:14 +0100
Subject: [PATCH] Adds default values in pwr dps at init

---
 ohmpi/hardware_components/pwr_dps5005.py | 38 ++++++++++++++----------
 ohmpi/hardware_system.py                 |  5 ----
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/ohmpi/hardware_components/pwr_dps5005.py b/ohmpi/hardware_components/pwr_dps5005.py
index 59a320e3..df2802c5 100644
--- a/ohmpi/hardware_components/pwr_dps5005.py
+++ b/ohmpi/hardware_components/pwr_dps5005.py
@@ -39,6 +39,8 @@ class Pwr(PwrAbstract):
         self._current_max_tolerance = kwargs['current_max_tolerance']
         self.current_max = self._current_max
         self.voltage_max = self._voltage_max
+        self.voltage_defaut(self._voltage)
+        self.current_max_default(self._current_max)
         self.power_max(self._power_max)
         self.voltage_adjustable = True
         self.current_adjustable = False
@@ -72,15 +74,26 @@ class Pwr(PwrAbstract):
         self.connection.write_register(0x0000, np.round(value, 2), 2)
         self._voltage = value
 
+    def voltage_default(self, value):  # [A]
+        self.connection.write_register(0x0050, np.round(value, 2), 2)
+        self._current_max = value
+
+    @property
+    def voltage_max(self):
+        return self._voltage_max
+
+    @voltage_max.setter
+    def voltage_max(self, value):  # [V]
+        if value >= 51.:  # DPS 5005 maximum accepted value
+            value = 50.99
+        self.connection.write_register(0x0052, np.round(value, 2), 2)
+        self._voltage_max = value
+
+
     def battery_voltage(self):
         self._battery_voltage = self.connection.read_register(0x05, 2)
         return self._battery_voltage
 
-    # @current_max.setter
-    # def current_max(self, value):  # [mA]
-    #     new_value = value * (1 + self._current_max_tolerance / 100)  # To set DPS max current slightly above (20% by default) the limit to avoid regulation artefacts
-    #     self.connection.write_register(0x0001, np.round((new_value * 1000), 3), 0)
-    #     self._current_max = value
     @property
     def current(self):
         return self._current
@@ -102,16 +115,11 @@ class Pwr(PwrAbstract):
         self.connection.write_register(0x0053, np.round((new_value), 3), 3)
         self._current_max = value
 
-    @property
-    def voltage_max(self):
-        return self._voltage_max
-
-    @voltage_max.setter
-    def voltage_max(self, value):  # [V]
-        if value >= 51.:  # DPS 5005 maximum accepted value
-            value = 50.99
-        self.connection.write_register(0x0052, np.round(value, 2), 2)
-        self._voltage_max = value
+    def current_max_default(self, value):  # [A]
+        new_value = value * (
+                    1 + self._current_max_tolerance / 100)  # To set DPS max current slightly above (20% by default) the limit to avoid regulation artefacts
+        self.connection.write_register(0x0051, np.round((new_value), 3), 3)
+        self._current_max = value
 
     def power_max(self, value):  # [W]
         self.connection.write_register(0x0054, np.round(value,1), 1)
diff --git a/ohmpi/hardware_system.py b/ohmpi/hardware_system.py
index 56774903..33ef24e5 100644
--- a/ohmpi/hardware_system.py
+++ b/ohmpi/hardware_system.py
@@ -241,11 +241,6 @@ class OhmPiHardware:
         self.tx.voltage_pulse(length=injection_duration, polarity=polarity)
         self.exec_logger.event(f'OhmPiHardware\tinject\tend\t{datetime.datetime.utcnow()}')
 
-    def _inject_current(self, polarity=1, injection_duration=None):  # TODO: deal with voltage or current pulse
-        self.exec_logger.event(f'OhmPiHardware\tinject\tbegin\t{datetime.datetime.utcnow()}')
-        self.tx.current_pulse(length=injection_duration, polarity=polarity)
-        self.exec_logger.event(f'OhmPiHardware\tinject\tend\t{datetime.datetime.utcnow()}')
-
     def _set_mux_barrier(self):
         self.mux_barrier = Barrier(len(self.mux_boards) + 1)
         for mux in self.mux_boards:
-- 
GitLab