Skip to content
Snippets Groups Projects
Commit 2341bc2c authored by Martin Killenberg's avatar Martin Killenberg
Browse files

chore: refactoring: introduce ExternalSensors class

- Move direct handling of data loggers into ExternalSensors
parent 99846dd1
No related branches found
No related tags found
1 merge request!4chore: code cleanup
from almemo710 import almemo710
from almemo2490 import almemo2490
import pandas as pd
class ExternalSensors:
def __init__(self, logger_model, logger_address, ext_sensor_channels):
if logger_model == '710':
self.logger = almemo710(ip=logger_address, timeout=10)
elif logger_model == '2490':
self.logger = almemo2490(ip=logger_address, timeout=10)
else:
raise Exception('Unknown logger type: '+logger_model)
self.logger_model = logger_model
self.ext_sensor_channels = ext_sensor_channels
# initialise the logger
self.logger.request_sens_channel_list()
def get_sensor_values(self):
"""
Returns: (temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr, air_press_room)
"""
sens_vals_dict = dict()
self.logger.request_meas_vals_all_channels()
for key, value in self.ext_sensor_channels.items():
sens_vals_dict[key] = self.logger.fetch_channel_param_from_meas_buffer(pattern=value)[0].meas_val
# set values from series to variables
sens_vals_series = pd.Series(sens_vals_dict)
# set series items for sensor value to matching variable
temp_dut = sens_vals_series.temp_dut
temp_room = sens_vals_series.temp_room
hum_dut = sens_vals_series.hum_dut
hum_room = sens_vals_series.hum_room
air_press_room = sens_vals_series.air_press_room
if self.logger_model == '710':
temp_meas_instr = sens_vals_series.temp_meas_instr
hum_meas_instr = sens_vals_series.hum_meas_instr
else:
temp_meas_instr = -30
hum_meas_instr = 0
return temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr, air_press_room
def close(self):
self.logger.close()
...@@ -14,12 +14,10 @@ import json ...@@ -14,12 +14,10 @@ import json
import MeasurementPlot import MeasurementPlot
import sys import sys
import analysis import analysis
from almemo710 import almemo710 import external_sensors
from almemo2490 import almemo2490
import PostPlot import PostPlot
import os import os
import pyvisa import pyvisa
import socket
TEMPERATURE_STABLE = 0x1 TEMPERATURE_STABLE = 0x1
...@@ -77,10 +75,8 @@ class Measurements: ...@@ -77,10 +75,8 @@ class Measurements:
self.vna = VNA.create_vna(vna_address, target_accuracy) self.vna = VNA.create_vna(vna_address, target_accuracy)
# data logger for external sensors # data logger for external sensors
if self.logger_model == '710': self.ext_sensors = external_sensors.ExternalSensors(config_data['logger_model'], logger_address,
self.ext_sensors = almemo710(ip=logger_address, timeout=10) ext_sensor_channels)
else:
self.ext_sensors = almemo2490(ip=logger_address, timeout=10)
self.standby = standby self.standby = standby
self.output_basename = output_basename self.output_basename = output_basename
...@@ -97,8 +93,6 @@ class Measurements: ...@@ -97,8 +93,6 @@ class Measurements:
self.vna.create_new_trace("Trace4", "S22") self.vna.create_new_trace("Trace4", "S22")
self.postplot_obj = None self.postplot_obj = None
self.ext_sensors.request_sens_channel_list()
self.measurement_plot = MeasurementPlot.MeasurementPlot(trace_subplot5=config_data['trace_subplot5']) self.measurement_plot = MeasurementPlot.MeasurementPlot(trace_subplot5=config_data['trace_subplot5'])
self.data_collection = [] self.data_collection = []
...@@ -327,7 +321,7 @@ class Measurements: ...@@ -327,7 +321,7 @@ class Measurements:
iteration += 1 iteration += 1
temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr, air_press_room = \ temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr, air_press_room = \
self.get_ext_sensor_values() self.ext_sensors.get_sensor_values()
[temp_chamber_meas_instr, hum_chamber_meas_instr, mode_meas_instr, alarms_meas_instr] = \ [temp_chamber_meas_instr, hum_chamber_meas_instr, mode_meas_instr, alarms_meas_instr] = \
self.instr_chamber.read_monitor().split(',') self.instr_chamber.read_monitor().split(',')
...@@ -376,35 +370,7 @@ class Measurements: ...@@ -376,35 +370,7 @@ class Measurements:
def get_trace_data(self, trace): def get_trace_data(self, trace):
return self.vna.get_list_of_measurement_values(trace, "SDAT") return self.vna.get_list_of_measurement_values(trace, "SDAT")
def get_ext_sensor_values(self):
sens_vals_dict = dict()
self.ext_sensors.request_meas_vals_all_channels()
for key, value in self.ext_sensor_channels.items():
sens_vals_dict[key] = self.ext_sensors.fetch_channel_param_from_meas_buffer(pattern=value)[0].meas_val
# set values from series to variables
sens_vals_series = pd.Series(sens_vals_dict)
# set series items for sensor value to matching variable
temp_dut = sens_vals_series.temp_dut
temp_room = sens_vals_series.temp_room
hum_dut = sens_vals_series.hum_dut
hum_room = sens_vals_series.hum_room
air_press_room = sens_vals_series.air_press_room
if self.logger_model == '710':
temp_meas_instr = sens_vals_series.temp_meas_instr
hum_meas_instr = sens_vals_series.hum_meas_instr
else:
temp_meas_instr = -30
hum_meas_instr = 0
return temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr, air_press_room
def calculate_complex_numbers(self, values_list): def calculate_complex_numbers(self, values_list):
real_num = values_list[::2] real_num = values_list[::2]
imaginary_num = values_list[1::2] imaginary_num = values_list[1::2]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment