Added helmholtz cage angle analysis.

This commit is contained in:
2021-08-05 10:53:15 +02:00
parent 89ed805411
commit 3a526ec26d
2 changed files with 49 additions and 6 deletions
+22 -2
View File
@@ -554,6 +554,7 @@ class CalibrateAmbientField(Frame):
# Contains results for coil constant calibration
self.coil_constant_vars = [StringVar(), StringVar(), StringVar()]
self.coil_constant_dev_vars = [StringVar(), StringVar(), StringVar()]
self.coil_angle_vars = [StringVar(), StringVar(), StringVar()]
row_counter = 0
@@ -682,6 +683,21 @@ class CalibrateAmbientField(Frame):
axis_data.grid(row=2, column=i + 1, padx=5, pady=5, sticky="nw")
coil_constants_dev_results_unit = Label(coil_constants_results_frame, text="\u03BCT/A")
coil_constants_dev_results_unit.grid(row=2, column=4, padx=5, pady=5, sticky="nw")
# Inter-axis angle labels
for i, label in enumerate(['X-Y', 'Y-Z', 'X-Z']):
axis_label = Label(coil_constants_results_frame, text=label)
axis_label.grid(row=3, column=i + 1, padx=5, pady=5, sticky="nw")
# Inter-axis angles
coil_angles_label = Label(coil_constants_results_frame, text="Angles:")
coil_angles_label.grid(row=4, column=0, padx=5, pady=5, sticky="nw")
for i in range(3):
axis_data = Entry(coil_constants_results_frame,
textvariable=self.coil_angle_vars[i],
width=15,
state='readonly')
axis_data.grid(row=4, column=i + 1, padx=5, pady=5, sticky="nw")
coil_angles_unit = Label(coil_constants_results_frame, text="°")
coil_angles_unit.grid(row=4, column=4, padx=5, pady=5, sticky="nw")
# This starts an endless polling loop
self.update_view()
@@ -749,6 +765,10 @@ class CalibrateAmbientField(Frame):
# Remember to convert from T/A to microT/A
self.coil_constant_vars[i].set("{:.3f}".format(results['k'][i] * 1e6))
self.coil_constant_dev_vars[i].set("{:.3f}".format(results['k_dev'][i] * 1e6))
# Coil angles use dict access
self.coil_angle_vars[0].set("{:.2f}".format(results['angle']['xy']))
self.coil_angle_vars[1].set("{:.2f}".format(results['angle']['yz']))
self.coil_angle_vars[2].set("{:.2f}".format(results['angle']['xz']))
def calibration_procedure_ambient(self):
try:
@@ -757,7 +777,7 @@ class CalibrateAmbientField(Frame):
self.start_ambient_calibration_button.configure(text="Running")
self.deactivate_buttons()
except DeviceAccessError as e:
print("Error starting calibration procedure: {}".format(e))
messagebox.showwarning("Calibration failed", "Failed to start calibration:\n{}".format(e))
def calibration_procedure_coil_constants(self):
try:
@@ -766,7 +786,7 @@ class CalibrateAmbientField(Frame):
self.start_k_calibration_button.configure(text="Running")
self.deactivate_buttons()
except DeviceAccessError as e:
print("Error starting calibration procedure: {}".format(e))
messagebox.showwarning("Calibration failed", "Failed to start calibration:\n{}".format(e))
class HardwareConfiguration(Frame):