Skip to content
Snippets Groups Projects
external_sensors.py 1.83 KiB
Newer Older
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()