mirror of
https://github.com/nqrduck/nqrduck-autotm.git
synced 2024-11-09 11:40:02 +00:00
Fixed bug with voltage setting.
This commit is contained in:
parent
6fef828edc
commit
1b798cf8a2
2 changed files with 29 additions and 14 deletions
|
@ -49,8 +49,8 @@ class AutoTMController(ModuleController):
|
||||||
logger.error("Could not tune and match. No LUT available.")
|
logger.error("Could not tune and match. No LUT available.")
|
||||||
return
|
return
|
||||||
elif self.module.model.LUT.TYPE == "Electrical":
|
elif self.module.model.LUT.TYPE == "Electrical":
|
||||||
tunning_voltage, matching_voltage = self.module.model.LUT.get_voltages(frequency)
|
tuning_voltage, matching_voltage = self.module.model.LUT.get_voltages(frequency)
|
||||||
confirmation = self.set_voltages(str(tunning_voltage), str(matching_voltage))
|
confirmation = self.set_voltages(str(tuning_voltage), str(matching_voltage))
|
||||||
if confirmation:
|
if confirmation:
|
||||||
# We need to change the signal pathway to preamp to measure the reflection
|
# We need to change the signal pathway to preamp to measure the reflection
|
||||||
self.switch_to_atm()
|
self.switch_to_atm()
|
||||||
|
@ -120,6 +120,8 @@ class AutoTMController(ModuleController):
|
||||||
# On opening of the command we set the switch position to atm
|
# On opening of the command we set the switch position to atm
|
||||||
self.switch_to_atm()
|
self.switch_to_atm()
|
||||||
|
|
||||||
|
self.set_voltages("0", "0")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error("Could not connect to device %s: %s", device, e)
|
logger.error("Could not connect to device %s: %s", device, e)
|
||||||
|
|
||||||
|
@ -237,16 +239,17 @@ class AutoTMController(ModuleController):
|
||||||
"""
|
"""
|
||||||
if text.startswith("v"):
|
if text.startswith("v"):
|
||||||
text = text[1:].split("t")
|
text = text[1:].split("t")
|
||||||
matching_voltage, tuning_voltage = map(float, text)
|
tuning_voltage, matching_voltage = map(float, text)
|
||||||
LUT = self.module.model.el_lut
|
LUT = self.module.model.el_lut
|
||||||
if LUT is not None:
|
if LUT is not None:
|
||||||
if LUT.is_incomplete():
|
if LUT.is_incomplete():
|
||||||
logger.debug("Received voltage sweep result: %s %s", matching_voltage, tuning_voltage)
|
logger.debug("Received voltage sweep result: Tuning %s Matching %s", tuning_voltage, matching_voltage)
|
||||||
LUT.add_voltages(matching_voltage, tuning_voltage)
|
LUT.add_voltages(tuning_voltage, matching_voltage)
|
||||||
self.continue_or_finish_voltage_sweep(LUT)
|
self.continue_or_finish_voltage_sweep(LUT)
|
||||||
|
|
||||||
self.module.model.tuning_voltage = tuning_voltage
|
self.module.model.tuning_voltage = tuning_voltage
|
||||||
self.module.model.matching_voltage = matching_voltage
|
self.module.model.matching_voltage = matching_voltage
|
||||||
|
logger.debug("Updated voltages: Tuning %s Matching %s", self.module.model.tuning_voltage, self.module.model.matching_voltage)
|
||||||
|
|
||||||
def finish_frequency_sweep(self):
|
def finish_frequency_sweep(self):
|
||||||
"""This method is called when a frequency sweep is finished.
|
"""This method is called when a frequency sweep is finished.
|
||||||
|
@ -555,21 +558,24 @@ class AutoTMController(ModuleController):
|
||||||
logger.debug("Voltages already set")
|
logger.debug("Voltages already set")
|
||||||
return
|
return
|
||||||
|
|
||||||
command = "v%sv%s" % (matching_voltage, tuning_voltage)
|
command = "v%sv%s" % (tuning_voltage, matching_voltage)
|
||||||
|
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
|
|
||||||
confirmation = self.send_command(command)
|
confirmation = self.send_command(command)
|
||||||
if confirmation:
|
if confirmation:
|
||||||
while matching_voltage == self.module.model.matching_voltage and tuning_voltage == self.module.model.tuning_voltage:
|
while matching_voltage != self.module.model.matching_voltage and tuning_voltage != self.module.model.tuning_voltage:
|
||||||
QApplication.processEvents()
|
QApplication.processEvents()
|
||||||
# Check for timeout
|
# Check for timeout
|
||||||
if time.time() - start_time > timeout_duration:
|
if time.time() - start_time > timeout_duration:
|
||||||
logger.error("Voltage setting timed out")
|
logger.error("Voltage setting timed out")
|
||||||
break # or handle timeout differently
|
break
|
||||||
|
|
||||||
logger.debug("Voltages set successfully")
|
logger.debug("Voltages set successfully")
|
||||||
return confirmation
|
return confirmation
|
||||||
|
else:
|
||||||
|
logger.error("Could not set voltages")
|
||||||
|
return confirmation
|
||||||
|
|
||||||
### Electrical Lookup Table ###
|
### Electrical Lookup Table ###
|
||||||
|
|
||||||
|
@ -837,6 +843,10 @@ class AutoTMController(ModuleController):
|
||||||
|
|
||||||
stepper_position = stepper.position
|
stepper_position = stepper.position
|
||||||
future_position = stepper.position + int(steps)
|
future_position = stepper.position + int(steps)
|
||||||
|
if future_position == stepper_position:
|
||||||
|
logger.debug("Stepper already at position")
|
||||||
|
return
|
||||||
|
|
||||||
if self.validate_position(future_position, stepper):
|
if self.validate_position(future_position, stepper):
|
||||||
confirmation = self.send_stepper_command(int(steps), stepper) # Convert the steps string to an integer
|
confirmation = self.send_stepper_command(int(steps), stepper) # Convert the steps string to an integer
|
||||||
|
|
||||||
|
@ -859,6 +869,11 @@ class AutoTMController(ModuleController):
|
||||||
|
|
||||||
stepper_position = stepper.position
|
stepper_position = stepper.position
|
||||||
future_position = int(steps)
|
future_position = int(steps)
|
||||||
|
|
||||||
|
if future_position == stepper_position:
|
||||||
|
logger.debug("Stepper already at position")
|
||||||
|
return
|
||||||
|
|
||||||
if self.validate_position(future_position, stepper):
|
if self.validate_position(future_position, stepper):
|
||||||
actual_steps = self.calculate_steps_for_absolute_move(future_position, stepper)
|
actual_steps = self.calculate_steps_for_absolute_move(future_position, stepper)
|
||||||
confirmation = self.send_stepper_command(actual_steps, stepper)
|
confirmation = self.send_stepper_command(actual_steps, stepper)
|
||||||
|
|
|
@ -607,7 +607,7 @@ class AutoTMView(ModuleView):
|
||||||
)
|
)
|
||||||
elif LUT.TYPE == "Electrical":
|
elif LUT.TYPE == "Electrical":
|
||||||
self.table_widget.setHorizontalHeaderLabels(
|
self.table_widget.setHorizontalHeaderLabels(
|
||||||
["Frequency (MHz)", "Matching Voltage", "Tuning Voltage"]
|
["Frequency (MHz)", "Tuning Voltage", "Matching Voltage"]
|
||||||
)
|
)
|
||||||
|
|
||||||
for row, frequency in enumerate(LUT.data.keys()):
|
for row, frequency in enumerate(LUT.data.keys()):
|
||||||
|
@ -624,8 +624,8 @@ class AutoTMView(ModuleView):
|
||||||
test_button = QPushButton("Test")
|
test_button = QPushButton("Test")
|
||||||
# For electrical probe coils the matching voltage is the first entry in the LUT
|
# For electrical probe coils the matching voltage is the first entry in the LUT
|
||||||
if LUT.TYPE == "Electrical":
|
if LUT.TYPE == "Electrical":
|
||||||
tuning_voltage = str(LUT.data[frequency][1])
|
tuning_voltage = str(LUT.data[frequency][0])
|
||||||
matching_voltage = str(LUT.data[frequency][0])
|
matching_voltage = str(LUT.data[frequency][1])
|
||||||
test_button.clicked.connect(
|
test_button.clicked.connect(
|
||||||
lambda _, tuning_voltage=tuning_voltage, matching_voltage=matching_voltage: self.module.controller.set_voltages(
|
lambda _, tuning_voltage=tuning_voltage, matching_voltage=matching_voltage: self.module.controller.set_voltages(
|
||||||
tuning_voltage, matching_voltage
|
tuning_voltage, matching_voltage
|
||||||
|
|
Loading…
Reference in a new issue