From 16667fa6087f5f8f14c9e65cffd0bfd881e45b29 Mon Sep 17 00:00:00 2001 From: Bastien Voirin Date: Fri, 6 Oct 2023 14:50:57 +0200 Subject: [PATCH 1/4] WIP: fix Keysight ENASweepTask --- .../instruments/drivers/visa/keysight_ena.py | 31 ++++++++++--------- .../tasks/tasks/instr/ena_tasks.py | 31 ++++++++++--------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/exopy_qcircuits/instruments/drivers/visa/keysight_ena.py b/exopy_qcircuits/instruments/drivers/visa/keysight_ena.py index 9ff0c7f..755cd13 100644 --- a/exopy_qcircuits/instruments/drivers/visa/keysight_ena.py +++ b/exopy_qcircuits/instruments/drivers/visa/keysight_ena.py @@ -548,7 +548,7 @@ def sweep_mode(self, value): """ """ self._pna.write('SENSe{}:SWEep:MODE {}'.format(self._channel, value)) - result = self._pna.query('SENSe{}:SWEep:MODE?'.format(self._channel)) + result = self._pna.query('SENSe{}:SWEep:MODE?'.format(self._channel)).rstrip('\n') if result.lower() != value.lower()[:len(result)]: raise InstrIOError(cleandoc('''PNA did not set correctly the @@ -572,7 +572,7 @@ def sweep_type(self, value): """ """ self._pna.write('SENSe{}:SWEep:TYPE {}'.format(self._channel, value)) - result = self._pna.query('SENSe{}:SWEep:TYPE?'.format(self._channel)) + result = self._pna.query('SENSe{}:SWEep:TYPE?'.format(self._channel)).rstrip('\n') if result.lower() != value.lower()[:len(result)]: raise InstrIOError(cleandoc('''PNA did not set correctly the @@ -703,7 +703,7 @@ def average_mode(self, value): """ """ self._pna.write('SENSe{}:AVERage:MODE {}'.format(self._channel, value)) - result = self._pna.query('SENSe{}:AVERage:MODE?'.format(self._channel)) + result = self._pna.query('SENSe{}:AVERage:MODE?'.format(self._channel)).rstrip('\n') if result.lower() != value.lower()[:len(result)]: raise InstrIOError(cleandoc('''PNA did not set correctly the @@ -790,16 +790,17 @@ def check_operation_completion(self): def set_all_chanel_to_hold(self): """ """ - for channel in self.defined_channels: - self.write('SENSe{}:SWEep:MODE HOLD'.format(channel)) - - for channel in self.defined_channels: - result = self.query('SENSe{}:SWEep:MODE?'.format(channel)) - - if result != 'HOLD': - raise InstrIOError(cleandoc('''PNA did not set correctly the - channel {} sweep mode while setting all defined channels - to HOLD'''.format(channel))) + self.write('ABORt') + #for channel in self.defined_channels: + # self.write('SENSe{}:SWEep:MODE HOLD'.format(channel)) + # + #for channel in self.defined_channels: + # result = self.query('SENSe{}:SWEep:MODE?'.format(channel)) + # + # if result != 'HOLD': + # raise InstrIOError(cleandoc('''PNA did not set correctly the + # channel {} sweep mode while setting all defined channels + # to HOLD'''.format(channel))) @secure_communication() def clear_averaging(self): @@ -853,7 +854,7 @@ def trigger_scope(self, value): """ """ self.write('TRIGger:SEQuence:SCOPe {}'.format(value)) - result = self.query('TRIGger:SEQuence:SCOPe?') + result = self.query('TRIGger:SEQuence:SCOPe?').rstrip('\n') if result.lower() != value.lower()[:len(result)]: raise InstrIOError(cleandoc('''PNA did not set correctly the @@ -877,7 +878,7 @@ def trigger_source(self, value): """ """ self.write('TRIGger:SEQuence:SOURce {}'.format(value)) - result = self.query('TRIGger:SEQuence:SOURce?') + result = self.query('TRIGger:SEQuence:SOURce?').rstrip('\n') if result.lower() != value.lower()[:len(result)]: raise InstrIOError(cleandoc('''PNA did not set correctly the diff --git a/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py b/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py index 1bcb73b..6af38db 100644 --- a/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py +++ b/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py @@ -189,13 +189,14 @@ def perform(self): """ if not self.driver: self.start_driver() - self.channel_driver = self.driver.get_channel(self.channel) + + if not self.channel_driver: self.channel_driver = self.driver.get_channel(self.channel) if self.driver.owner != self.name: self.driver.owner = self.name self.driver.set_all_chanel_to_hold() - self.driver.trigger_scope = 'CURRent' + self.driver.trigger_scope = 'ACTive' self.driver.trigger_source = 'MANual' meas_names = ['Ch{}:'.format(self.channel) + ':'.join(measure) @@ -206,19 +207,19 @@ def perform(self): if self.if_bandwidth>0: self.channel_driver.if_bandwidth = self.if_bandwidth - # Check whether or not we are doing the same measures as the ones - # already defined (avoid losing display optimisation) - measures = self.channel_driver.list_existing_measures() - existing_meas = [meas['name'] for meas in measures] - - if not (all([meas in existing_meas for meas in meas_names]) - and all([meas in meas_names for meas in existing_meas])): - clear = True - self.channel_driver.delete_all_meas() - for i, meas_name in enumerate(meas_names): - self.channel_driver.prepare_measure(meas_name, self.window, - i+1, clear) - clear = False + ## Check whether or not we are doing the same measures as the ones + ## already defined (avoid losing display optimisation) + #measures = self.channel_driver.list_existing_measures() + #existing_meas = [meas['name'] for meas in measures] + # + #if not (all([meas in existing_meas for meas in meas_names]) + # and all([meas in meas_names for meas in existing_meas])): + # clear = True + # self.channel_driver.delete_all_meas() + # for i, meas_name in enumerate(meas_names): + # self.channel_driver.prepare_measure(meas_name, self.window, + # i+1, clear) + # clear = False current_Xaxis = self.channel_driver.sweep_x_axis if self.start: start = self.format_and_eval_string(self.start) From 679883d11b7eec10658f6051da2b61fc02695ba1 Mon Sep 17 00:00:00 2001 From: Bastien Voirin Date: Fri, 6 Oct 2023 15:45:56 +0200 Subject: [PATCH 2/4] Fix Keysight ENASweepTask in POWER LIN mode --- exopy_qcircuits/instruments/drivers/visa/keysight_ena.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exopy_qcircuits/instruments/drivers/visa/keysight_ena.py b/exopy_qcircuits/instruments/drivers/visa/keysight_ena.py index 755cd13..cf60c5b 100644 --- a/exopy_qcircuits/instruments/drivers/visa/keysight_ena.py +++ b/exopy_qcircuits/instruments/drivers/visa/keysight_ena.py @@ -334,7 +334,7 @@ def prepare_sweep(self, sweep_type, start, stop, sweep_points): self._pna.write('SENSe{}:FREQuency:STOP {}'.format(self._channel, stop)) elif sweep_type == 'POWER': - self.sweep_type = 'POW' + self.sweep_type = 'LIN' self.sweep_points = sweep_points self._pna.write('SOURce{}:POWer:STARt {}'.format(self._channel, start)) From 1fb367c7d16ad77d306b75fc208e2f4e1693e622 Mon Sep 17 00:00:00 2001 From: Bastien Voirin Date: Fri, 13 Oct 2023 10:59:07 +0200 Subject: [PATCH 3/4] WIP: fix Keysight ENASweepTask --- exopy_qcircuits/tasks/tasks/instr/ena_tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py b/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py index 6af38db..79a496c 100644 --- a/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py +++ b/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py @@ -219,7 +219,7 @@ def perform(self): # for i, meas_name in enumerate(meas_names): # self.channel_driver.prepare_measure(meas_name, self.window, # i+1, clear) - # clear = False + # clear = False current_Xaxis = self.channel_driver.sweep_x_axis if self.start: start = self.format_and_eval_string(self.start) From 2d425270f284f76bea22767f071918819f92ab4c Mon Sep 17 00:00:00 2001 From: Bastien Voirin Date: Wed, 18 Oct 2023 11:44:54 +0200 Subject: [PATCH 4/4] Fix SetRFENAPower task --- exopy_qcircuits/tasks/tasks/instr/ena_tasks.py | 1 + 1 file changed, 1 insertion(+) diff --git a/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py b/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py index 79a496c..0ab1d04 100644 --- a/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py +++ b/exopy_qcircuits/tasks/tasks/instr/ena_tasks.py @@ -108,6 +108,7 @@ def perform(self, power=None): task = self.task if not task.driver: task.start_driver() + if not self.channel_driver: self.channel_driver = task.driver.get_channel(self.channel) task.driver.owner = task.name