From f8e3b5e48463de62265b20c3a8855c3d86329a11 Mon Sep 17 00:00:00 2001
From: su530201 <olivier.kaufmann@umons.ac.be>
Date: Tue, 10 May 2022 15:32:44 +0200
Subject: [PATCH] Changes sign in run_measurement; fixes config for logging

---
 config.py        |  2 +-
 logging_setup.py | 30 +++++++++++++++++-------------
 ohmpi.py         | 13 +++++--------
 3 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/config.py b/config.py
index 5b0febb2..00589d3e 100644
--- a/config.py
+++ b/config.py
@@ -24,7 +24,7 @@ CONTROL_CONFIG = {
 # Execution logging configuration
 EXEC_LOGGING_CONFIG = {
     'logging_level': logging.DEBUG,
-    'logging_to_console': True,
+    'logging_to_console': False,
     'file_name': 'ohmpi_log',
     'max_bytes': 262144,
     'backup_count': 30,
diff --git a/logging_setup.py b/logging_setup.py
index 0aa20ccf..05963f27 100644
--- a/logging_setup.py
+++ b/logging_setup.py
@@ -40,11 +40,11 @@ def setup_loggers(mqtt=True):
     exec_formatter.datefmt = '%Y/%m/%d %H:%M:%S UTC'
     exec_handler.setFormatter(exec_formatter)
     exec_logger.addHandler(exec_handler)
-    exec_logger.setLevel(MQTT_LOGGING_CONFIG['logging_level'])
+    exec_logger.setLevel(EXEC_LOGGING_CONFIG['logging_level'])
 
     if logging_to_console:
         console_exec_handler = logging.StreamHandler(sys.stdout)
-        console_exec_handler.setLevel(MQTT_LOGGING_CONFIG['logging_level'])
+        console_exec_handler.setLevel(EXEC_LOGGING_CONFIG['logging_level'])
         console_exec_handler.setFormatter(exec_formatter)
         exec_logger.addHandler(console_exec_handler)
 
@@ -52,10 +52,10 @@ def setup_loggers(mqtt=True):
         mqtt_settings = MQTT_LOGGING_CONFIG.copy()
         [mqtt_settings.pop(i) for i in ['client_id', 'exec_topic', 'data_topic', 'soh_topic']]
         mqtt_settings.update({'topic':MQTT_LOGGING_CONFIG['exec_topic']})
-        mqtt_msg_handler = MQTTHandler(**mqtt_settings)
-        mqtt_msg_handler.setLevel(logging_level)
-        mqtt_msg_handler.setFormatter(exec_formatter)
-        exec_logger.addHandler(mqtt_msg_handler)
+        mqtt_exec_handler = MQTTHandler(**mqtt_settings)
+        mqtt_exec_handler.setLevel(EXEC_LOGGING_CONFIG['logging_level'])
+        mqtt_exec_handler.setFormatter(exec_formatter)
+        exec_logger.addHandler(mqtt_exec_handler)
 
     # Set data logging format and level
     log_format = '%(asctime)-15s | %(process)d | %(levelname)s: %(message)s'
@@ -71,28 +71,32 @@ def setup_loggers(mqtt=True):
     data_formatter.datefmt = '%Y/%m/%d %H:%M:%S UTC'
     data_handler.setFormatter(exec_formatter)
     data_logger.addHandler(data_handler)
-    data_logger.setLevel(logging_level)
+    data_logger.setLevel(DATA_LOGGING_CONFIG['logging_level'])
 
     if logging_to_console:
-        data_logger.addHandler(logging.StreamHandler())
+        console_data_handler = logging.StreamHandler(sys.stdout)
+        console_data_handler.setLevel(DATA_LOGGING_CONFIG['logging_level'])
+        console_data_handler.setFormatter(exec_formatter)
+        data_logger.addHandler(console_data_handler)
+
     if mqtt:
         mqtt_settings = MQTT_LOGGING_CONFIG.copy()
         [mqtt_settings.pop(i) for i in ['client_id', 'exec_topic', 'data_topic', 'soh_topic']]
         mqtt_settings.update({'topic': MQTT_LOGGING_CONFIG['data_topic']})
         mqtt_data_handler = MQTTHandler(**mqtt_settings)
-        mqtt_data_handler.setLevel(logging_level)
+        mqtt_data_handler.setLevel(DATA_LOGGING_CONFIG['logging_level'])
         mqtt_data_handler.setFormatter(data_formatter)
         data_logger.addHandler(mqtt_data_handler)
 
     try:
-        init_logging(exec_logger, data_logger, logging_level, log_path, data_log_filename)
+        init_logging(exec_logger, data_logger, EXEC_LOGGING_CONFIG['logging_level'], log_path, data_log_filename)
     except Exception as err:
         print(f'ERROR: Could not initialize logging!\n{err}')
     finally:
-        return exec_logger, exec_log_filename, data_logger, data_log_filename, logging_level
+        return exec_logger, exec_log_filename, data_logger, data_log_filename, EXEC_LOGGING_CONFIG['logging_level']
 
 
-def init_logging(exec_logger, data_logger, logging_level, log_path, data_log_filename):
+def init_logging(exec_logger, data_logger, exec_logging_level, log_path, data_log_filename):
     """ This is the init sequence for the logging system """
 
     init_logging_status = True
@@ -101,7 +105,7 @@ def init_logging(exec_logger, data_logger, logging_level, log_path, data_log_fil
     exec_logger.info('*** NEW SESSION STARTING ***')
     exec_logger.info('****************************')
     exec_logger.info('')
-    exec_logger.info('Logging level: %s' % logging_level)
+    exec_logger.info('Logging level: %s' % exec_logging_level)
     try:
         st = statvfs('.')
         available_space = st.f_bavail * st.f_frsize / 1024 / 1024
diff --git a/ohmpi.py b/ohmpi.py
index 152e12fa..83c28abc 100644
--- a/ohmpi.py
+++ b/ohmpi.py
@@ -446,10 +446,9 @@ class OhmPi(object):
             meas = np.zeros((self.nb_samples, 3))
             for k in range(0, self.nb_samples):
                 # reading current value on ADS channel A0
-                meas[k, 0] = (AnalogIn(self.ads_current, ads.P0).voltage * 1000) / (50 * self.r_shunt)
-                meas[k, 1] = AnalogIn(self.ads_voltage, ads.P0, ads.P1).voltage * self.coef_p2 * 1000
+                meas[k, 0] = (AnalogIn(self.ads_current, ads.P0).voltage * 1000) / (50 * self.r_shunt)  # TODO: replace 50 by factor depending on INA model specifed in config.py
                 # reading voltage value on ADS channel A2
-                # meas[k, 2] = AnalogIn(self.ads_voltage, ads.P1).voltage * self.coef_p3 * 1000
+                meas[k, 1] = -AnalogIn(self.ads_voltage, ads.P0, ads.P1).voltage * self.coef_p2 * 1000  # NOTE: Changed sign
 
             # stop current injection
             pin1.value = False
@@ -547,8 +546,7 @@ class OhmPi(object):
             # switch mux off
             # self.switch_mux_off(quad)
 
-            # save data and print in a text file
-            # self.append_and_save(export_path_rs, current_measurement)
+            self.switch_mux_on(quad)
 
             # current injection
             pin0 = self.mcp.get_pin(0)
@@ -559,7 +557,6 @@ class OhmPi(object):
             pin1.value = False
 
             # call the switch_mux function to switch to the right electrodes
-            self.switch_mux_on(quad)
             self.ads_current = ads.ADS1115(self.i2c, gain=2 / 3, data_rate=860, address=0x48)
             # ADS1115 for voltage measurement (MN)
             self.ads_voltage = ads.ADS1115(self.i2c, gain=2 / 3, data_rate=860, address=0x49)
@@ -602,7 +599,7 @@ class OhmPi(object):
 
     #
     #         # TODO if interrupted, we would need to restore the values
-    #         # TODO or we offer the possiblity in 'run_measurement' to have rs_check each time?
+    #         # TODO or we offer the possibility in 'run_measurement' to have rs_check each time?
 
     @staticmethod
     def append_and_save(filename, last_measurement):
@@ -648,7 +645,7 @@ class OhmPi(object):
                 cmd_id = decoded_message.pop('cmd_id', None)
                 cmd = decoded_message.pop('cmd', None)
                 args = decoded_message.pop('args', None)
-                status=False
+                status = False
                 e = None
                 if cmd is not None and cmd_id is not None:
                     if cmd == 'update_settings' and args is not None:
-- 
GitLab