Commit f8e3b5e4 authored by Olivier Kaufmann's avatar Olivier Kaufmann
Browse files

Changes sign in run_measurement; fixes config for logging

Showing with 23 additions and 22 deletions
+23 -22
...@@ -24,7 +24,7 @@ CONTROL_CONFIG = { ...@@ -24,7 +24,7 @@ CONTROL_CONFIG = {
# Execution logging configuration # Execution logging configuration
EXEC_LOGGING_CONFIG = { EXEC_LOGGING_CONFIG = {
'logging_level': logging.DEBUG, 'logging_level': logging.DEBUG,
'logging_to_console': True, 'logging_to_console': False,
'file_name': 'ohmpi_log', 'file_name': 'ohmpi_log',
'max_bytes': 262144, 'max_bytes': 262144,
'backup_count': 30, 'backup_count': 30,
......
...@@ -40,11 +40,11 @@ def setup_loggers(mqtt=True): ...@@ -40,11 +40,11 @@ def setup_loggers(mqtt=True):
exec_formatter.datefmt = '%Y/%m/%d %H:%M:%S UTC' exec_formatter.datefmt = '%Y/%m/%d %H:%M:%S UTC'
exec_handler.setFormatter(exec_formatter) exec_handler.setFormatter(exec_formatter)
exec_logger.addHandler(exec_handler) 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: if logging_to_console:
console_exec_handler = logging.StreamHandler(sys.stdout) 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) console_exec_handler.setFormatter(exec_formatter)
exec_logger.addHandler(console_exec_handler) exec_logger.addHandler(console_exec_handler)
...@@ -52,10 +52,10 @@ def setup_loggers(mqtt=True): ...@@ -52,10 +52,10 @@ def setup_loggers(mqtt=True):
mqtt_settings = MQTT_LOGGING_CONFIG.copy() mqtt_settings = MQTT_LOGGING_CONFIG.copy()
[mqtt_settings.pop(i) for i in ['client_id', 'exec_topic', 'data_topic', 'soh_topic']] [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_settings.update({'topic':MQTT_LOGGING_CONFIG['exec_topic']})
mqtt_msg_handler = MQTTHandler(**mqtt_settings) mqtt_exec_handler = MQTTHandler(**mqtt_settings)
mqtt_msg_handler.setLevel(logging_level) mqtt_exec_handler.setLevel(EXEC_LOGGING_CONFIG['logging_level'])
mqtt_msg_handler.setFormatter(exec_formatter) mqtt_exec_handler.setFormatter(exec_formatter)
exec_logger.addHandler(mqtt_msg_handler) exec_logger.addHandler(mqtt_exec_handler)
# Set data logging format and level # Set data logging format and level
log_format = '%(asctime)-15s | %(process)d | %(levelname)s: %(message)s' log_format = '%(asctime)-15s | %(process)d | %(levelname)s: %(message)s'
...@@ -71,28 +71,32 @@ def setup_loggers(mqtt=True): ...@@ -71,28 +71,32 @@ def setup_loggers(mqtt=True):
data_formatter.datefmt = '%Y/%m/%d %H:%M:%S UTC' data_formatter.datefmt = '%Y/%m/%d %H:%M:%S UTC'
data_handler.setFormatter(exec_formatter) data_handler.setFormatter(exec_formatter)
data_logger.addHandler(data_handler) data_logger.addHandler(data_handler)
data_logger.setLevel(logging_level) data_logger.setLevel(DATA_LOGGING_CONFIG['logging_level'])
if logging_to_console: 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: if mqtt:
mqtt_settings = MQTT_LOGGING_CONFIG.copy() mqtt_settings = MQTT_LOGGING_CONFIG.copy()
[mqtt_settings.pop(i) for i in ['client_id', 'exec_topic', 'data_topic', 'soh_topic']] [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_settings.update({'topic': MQTT_LOGGING_CONFIG['data_topic']})
mqtt_data_handler = MQTTHandler(**mqtt_settings) 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) mqtt_data_handler.setFormatter(data_formatter)
data_logger.addHandler(mqtt_data_handler) data_logger.addHandler(mqtt_data_handler)
try: 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: except Exception as err:
print(f'ERROR: Could not initialize logging!\n{err}') print(f'ERROR: Could not initialize logging!\n{err}')
finally: 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 """ """ This is the init sequence for the logging system """
init_logging_status = True init_logging_status = True
...@@ -101,7 +105,7 @@ def init_logging(exec_logger, data_logger, logging_level, log_path, data_log_fil ...@@ -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('*** NEW SESSION STARTING ***')
exec_logger.info('****************************') exec_logger.info('****************************')
exec_logger.info('') exec_logger.info('')
exec_logger.info('Logging level: %s' % logging_level) exec_logger.info('Logging level: %s' % exec_logging_level)
try: try:
st = statvfs('.') st = statvfs('.')
available_space = st.f_bavail * st.f_frsize / 1024 / 1024 available_space = st.f_bavail * st.f_frsize / 1024 / 1024
......
...@@ -446,10 +446,9 @@ class OhmPi(object): ...@@ -446,10 +446,9 @@ class OhmPi(object):
meas = np.zeros((self.nb_samples, 3)) meas = np.zeros((self.nb_samples, 3))
for k in range(0, self.nb_samples): for k in range(0, self.nb_samples):
# reading current value on ADS channel A0 # reading current value on ADS channel A0
meas[k, 0] = (AnalogIn(self.ads_current, ads.P0).voltage * 1000) / (50 * self.r_shunt) 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
meas[k, 1] = AnalogIn(self.ads_voltage, ads.P0, ads.P1).voltage * self.coef_p2 * 1000
# reading voltage value on ADS channel A2 # 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 # stop current injection
pin1.value = False pin1.value = False
...@@ -547,8 +546,7 @@ class OhmPi(object): ...@@ -547,8 +546,7 @@ class OhmPi(object):
# switch mux off # switch mux off
# self.switch_mux_off(quad) # self.switch_mux_off(quad)
# save data and print in a text file self.switch_mux_on(quad)
# self.append_and_save(export_path_rs, current_measurement)
# current injection # current injection
pin0 = self.mcp.get_pin(0) pin0 = self.mcp.get_pin(0)
...@@ -559,7 +557,6 @@ class OhmPi(object): ...@@ -559,7 +557,6 @@ class OhmPi(object):
pin1.value = False pin1.value = False
# call the switch_mux function to switch to the right electrodes # 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) self.ads_current = ads.ADS1115(self.i2c, gain=2 / 3, data_rate=860, address=0x48)
# ADS1115 for voltage measurement (MN) # ADS1115 for voltage measurement (MN)
self.ads_voltage = ads.ADS1115(self.i2c, gain=2 / 3, data_rate=860, address=0x49) self.ads_voltage = ads.ADS1115(self.i2c, gain=2 / 3, data_rate=860, address=0x49)
...@@ -602,7 +599,7 @@ class OhmPi(object): ...@@ -602,7 +599,7 @@ class OhmPi(object):
# #
# # TODO if interrupted, we would need to restore the values # # 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 @staticmethod
def append_and_save(filename, last_measurement): def append_and_save(filename, last_measurement):
...@@ -648,7 +645,7 @@ class OhmPi(object): ...@@ -648,7 +645,7 @@ class OhmPi(object):
cmd_id = decoded_message.pop('cmd_id', None) cmd_id = decoded_message.pop('cmd_id', None)
cmd = decoded_message.pop('cmd', None) cmd = decoded_message.pop('cmd', None)
args = decoded_message.pop('args', None) args = decoded_message.pop('args', None)
status=False status = False
e = None e = None
if cmd is not None and cmd_id is not None: if cmd is not None and cmd_id is not None:
if cmd == 'update_settings' and args is not None: if cmd == 'update_settings' and args is not None:
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment