From 955f17403673201de377a2a30c8fc238b7689228 Mon Sep 17 00:00:00 2001
From: Clement Remi <remi.clement@irstea.fr>
Date: Wed, 16 Nov 2022 21:56:52 +0100
Subject: [PATCH] correction autogain fonction for measurement board 22.10

---
 ohmpi.py | 41 +++++++++++++++++++++++++----------------
 1 file changed, 25 insertions(+), 16 deletions(-)

diff --git a/ohmpi.py b/ohmpi.py
index d7d5c3fe..6c008c9e 100644
--- a/ohmpi.py
+++ b/ohmpi.py
@@ -759,22 +759,31 @@ class OhmPi(object):
 
             if not out_of_range:  # we found a Vab in the range so we measure
                 if autogain:
-                    # compute autogain
-                    self.pin0.value = True
-                    self.pin1.value = False
-                    time.sleep(injection_duration)
-                    gain_current = self._gain_auto(AnalogIn(self.ads_current, ads.P0))
-                    if polarity > 0:
-                        gain_voltage = self._gain_auto(AnalogIn(self.ads_voltage, ads.P0))
-                    else:
-                        gain_voltage = self._gain_auto(AnalogIn(self.ads_voltage, ads.P2))
-                    self.pin0.value = False
-                    self.pin1.value = False
-                    self.exec_logger.debug(f'Gain current: {gain_current:.3f}, gain voltage: {gain_voltage:.3f}')
-                    self.ads_current = ads.ADS1115(self.i2c, gain=gain_current, data_rate=860,
-                                                   address=self.ads_current_address, mode=0)
-                    self.ads_voltage = ads.ADS1115(self.i2c, gain=gain_voltage, data_rate=860,
-                                                   address=self.ads_voltage_address, mode=0)
+                    if self.board_version == '22.11':
+                        # compute autogain
+                        self.pin0.value = True
+                        self.pin1.value = False
+                        time.sleep(injection_duration)
+                        gain_current = self._gain_auto(AnalogIn(self.ads_current, ads.P0))
+                        if polarity > 0:
+                            gain_voltage = self._gain_auto(AnalogIn(self.ads_voltage, ads.P0))
+                        else:
+                            gain_voltage = self._gain_auto(AnalogIn(self.ads_voltage, ads.P2))
+                        self.pin0.value = False
+                        self.pin1.value = False
+                        self.exec_logger.debug(f'Gain current: {gain_current:.3f}, gain voltage: {gain_voltage:.3f}')
+                        self.ads_current = ads.ADS1115(self.i2c, gain=gain_current, data_rate=860,
+                                                    address=self.ads_current_address, mode=0)
+                        self.ads_voltage = ads.ADS1115(self.i2c, gain=gain_voltage, data_rate=860,
+                                                    address=self.ads_voltage_address, mode=0)
+                    elif self.board_version == '22.10':
+                        gain_current = 2 / 3
+                        gain_voltage = 2 / 3
+                        self.ads_current = ads.ADS1115(self.i2c, gain=gain_current, data_rate=860,
+                                                    address=self.ads_current_address, mode=0)
+                        self.ads_voltage = ads.ADS1115(self.i2c, gain=gain_voltage, data_rate=860,
+                                                    address=self.ads_voltage_address, mode=0)                       
+
 
                 self.pin0.value = False
                 self.pin1.value = False
-- 
GitLab