Skip to content
Snippets Groups Projects
Commit ed2b02db authored by Michael Pawelzik's avatar Michael Pawelzik
Browse files

- external sensors added

- 4-Port Parameter added
parent 4d4655c8
No related tags found
No related merge requests found
......@@ -86,10 +86,13 @@ class MeasurementPlot:
# Third plot: parameter of external sensors DUT temperature, DUT humidity
self.path_collection_temp_dut = self.ax1[2].scatter([], [], c='red', marker='p', label='DUT temperature')
self.path_collection_temp_dut2 = self.ax1[2].scatter([],[], c= 'green', marker = '.', label = 'DUT2 temeprature')
self.ext_sens_hum_axis = self.ax1[2].twinx()
self.path_collection_hum_dut = self.ext_sens_hum_axis.scatter([], [], c='purple', marker='*',
label='DUT humidity')
self.path_collection_hum_dut2 = self.ext_sens_hum_axis.scatter([],[], c='grey', marker='4',
label ='DUT2 humidity')
self.ax1[2].set_xlabel("TIMESTAMP")
......@@ -97,7 +100,8 @@ class MeasurementPlot:
self.ext_sens_hum_axis.set_ylabel("HUMIDITY [%RH]", color = 'purple')
self.ax1[2].grid(True, linestyle=":")
all_path_collections = [self.path_collection_temp_dut, self.path_collection_hum_dut]
all_path_collections = [self.path_collection_temp_dut, self.path_collection_hum_dut,
self.path_collection_temp_dut2, self.path_collection_hum_dut2]
labels = [pc.get_label() for pc in all_path_collections]
self.ax1[2].legend(all_path_collections, labels, loc=self.legend_loc, bbox_to_anchor=self.legend_bbox_to_anchor)
......@@ -229,6 +233,7 @@ class MeasurementPlot:
# refresh temperatures for used external sensors in subplots
temp_dut = data_frame.TEMP_DUT
temp_room = data_frame.TEMP_ROOM
temp_dut2 = data_frame.TEMP_DUT2
minimum, maximum = self.get_extended_min_max(temp_dut)
self.ax1[2].set_ylim(minimum, maximum)
......
{"temp_dut": "0.0", "hum_dut": "0.1", "temp_room": "1.0" , "hum_room": "1.1", "air_press_room": "1.3", "temp_meas_instr": "2.0", "hum_meas_instr": "2.1"}
{"temp_dut": "0.0", "hum_dut": "0.1", "temp_room": "1.0" , "hum_room": "1.1", "air_press_room": "1.3", "temp_meas_instr": "2.0", "hum_meas_instr": "2.1", "temp_dut2": "3.0", "hum_dut2": "3.1"}
......@@ -46,7 +46,8 @@ class ExternalSensors:
def get_sensor_values(self):
"""
Returns: (temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr, air_press_room)
Returns: (temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr,
air_press_room, temp_dut2, hum_dut2)
"""
sens_vals_dict = dict()
self.logger.request_meas_vals_all_channels()
......@@ -63,6 +64,8 @@ class ExternalSensors:
hum_dut = sens_vals_series.hum_dut
hum_room = sens_vals_series.hum_room
air_press_room = sens_vals_series.air_press_room
temp_dut2 = sens_vals_series.temp_dut2
hum_dut2 = sens_vals_series.hum_dut2
if self.logger_model == '710':
temp_meas_instr = sens_vals_series.temp_meas_instr
......@@ -72,7 +75,8 @@ class ExternalSensors:
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
return temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr, \
air_press_room, temp_dut2, hum_dut2
def close(self):
self.logger.close()
......
......@@ -32,7 +32,8 @@ class MeasurementData:
def __init__(self, timestamp, temp, hum, dut_data, percent_temp_heater,
percent_hum_heater, temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room,
hum_meas_instr, air_press_room, temp_chamber_meas_instr, hum_chamber_meas_instr):
hum_meas_instr, air_press_room, temp_chamber_meas_instr, hum_chamber_meas_instr,
temp_dut2, hum_dut2):
self.timestamp = timestamp
self.temp = temp
self.hum = hum
......@@ -49,6 +50,8 @@ class MeasurementData:
self.air_press_room = air_press_room
self.hum_meas_instr = hum_meas_instr
self.hum_chamber_meas_instr = hum_chamber_meas_instr
self.temp_dut2 = temp_dut2
self.hum_dut2 = hum_dut2
class Measurements:
......@@ -190,7 +193,7 @@ class Measurements:
fieldnames = ['TIMESTAMP', 'TARGET_TEMPERATURE', 'READBACK_TEMPERATURE', 'TARGET_HUMIDITY',
'READBACK_HUMIDITY', 'DUT_IDENTIFIER', 'RUN_ID', 'EQUILIBRIUM_INDICATOR', 'TEMP_HEATER',
'HUM_HEATER', 'TEMP_DUT', 'TEMP_ROOM', 'TEMP_MEAS_INSTR', 'HUM_DUT', 'HUM_ROOM',
'HUM_MEAS_INSTR', 'AIR_PRESS_ROOM', 'READBACK_TEMP_MEAS_INSTR', 'READBACK_HUM_MEAS_INSTR']
'HUM_MEAS_INSTR', 'AIR_PRESS_ROOM', 'READBACK_TEMP_MEAS_INSTR', 'READBACK_HUM_MEAS_INSTR', 'TEMP_DUT2', 'HUM_DUT2']
fieldnames.extend(self.dut.get_dut_signal_names())
# csv.dict writer add adda row wise
......@@ -376,6 +379,8 @@ class Measurements:
'AIR_PRESS_ROOM': data.air_press_room,
'READBACK_TEMP_MEAS_INSTR': float(data.temp_chamber_meas_instr),
'READBACK_HUM_MEAS_INSTR': float(data.hum_chamber_meas_instr),
'TEMP_DUT2': data.temp_dut2,
'HUM_DUT2': data.hum_dut2
}
measurement.update(data.dut_data)
return measurement
......
......@@ -5,7 +5,7 @@
"type": "VNA",
"delta_mag": 0.13,
"delta_phase": 0.25,
"reference_signals" : ["S21_PHASE", "S21_MAGNITUDE"],
"reference_signals" : ["S21_PHASE", "S21_MAGNITUDE", "S43_PHASE","S43_MAGNITUDE"],
"frequencies": [1300000000, 108000000, 216666666, 499664300, 3000000000, 3900000000],
"vna_ip": "mskzna43-lab",
"vna_config_file": "CALSetup4000_3.znxml"
......
......@@ -21,6 +21,11 @@ class VnaMeasurement(dut_measurement.DutMeasurement):
self.vna.create_new_trace("Trace2", "S12")
self.vna.create_new_trace("Trace3", "S21")
self.vna.create_new_trace("Trace4", "S22")
self.vna.create_new_trace("Trace5", "S33")
self.vna.create_new_trace("Trace6", "S34")
self.vna.create_new_trace("Trace7", "S43")
self.vna.create_new_trace("Trace8", "S44")
self.frequencies = {}
for f in config_data['frequencies']:
......@@ -41,6 +46,11 @@ class VnaMeasurement(dut_measurement.DutMeasurement):
s12 = self._get_trace_data("Trace2")
s21 = self._get_trace_data("Trace3")
s22 = self._get_trace_data("Trace4")
s33 = self._get_trace_data("Trace5")
s34 = self._get_trace_data("Trace6")
s43 = self._get_trace_data("Trace7")
s44 = self._get_trace_data("Trace8")
return {'RF_POWER': power, 'RF_FREQUENCY': frequency,
'S11_MAGNITUDE': self.calculate_mean_magnitude_db(s11),
......@@ -50,7 +60,15 @@ class VnaMeasurement(dut_measurement.DutMeasurement):
'S21_MAGNITUDE': self.calculate_mean_magnitude_db(s21),
'S21_PHASE': self.calculate_mean_phase(s21),
'S22_MAGNITUDE': self.calculate_mean_magnitude_db(s22),
'S22_PHASE': self.calculate_mean_phase(s21),
'S22_PHASE': self.calculate_mean_phase(s22),
'S33_MAGNITUDE': self.calculate_mean_magnitude_db(s33),
'S33_PHASE': self.calculate_mean_phase(s33),
'S34_MAGNITUDE': self.calculate_mean_magnitude_db(s34),
'S34_PHASE': self.calculate_mean_phase(s34),
'S43_MAGNITUDE': self.calculate_mean_magnitude_db(s43),
'S43_PHASE': self.calculate_mean_phase(s43),
'S44_MAGNITUDE': self.calculate_mean_magnitude_db(s44),
'S44_PHASE': self.calculate_mean_phase(s44),
'SET_NAME': set_name}
# exception for pyvisa error or timeout
......@@ -66,7 +84,9 @@ class VnaMeasurement(dut_measurement.DutMeasurement):
def get_dut_signal_names(self):
return ['RF_POWER', 'RF_FREQUENCY', 'S11_MAGNITUDE', 'S11_PHASE', 'S12_MAGNITUDE',
'S12_PHASE', 'S21_MAGNITUDE', 'S21_PHASE', 'S22_MAGNITUDE', 'S22_PHASE', 'SET_NAME']
'S12_PHASE', 'S21_MAGNITUDE', 'S21_PHASE', 'S22_MAGNITUDE', 'S22_PHASE',
'S33_MAGNITUDE', 'S33_PHASE', 'S34_MAGNITUDE', 'S34_PHASE', 'S43_MAGNITUDE',
'S43_PHASE', 'S44_MAGNITUDE', 'S44_PHASE','SET_NAME']
def get_dut_reference_signal_names(self):
return self.reference_signal_names
......
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