From 18d35616c7152c96138ace8bc7026dd561180873 Mon Sep 17 00:00:00 2001
From: unknown <asoalexandros@gmail.com>
Date: Mon, 20 Jan 2025 12:57:36 +0100
Subject: [PATCH] open calibration for CV measurement

---
 hp4194/cv.py                | 78 +++++++++++++++++++++++++++++++++++++
 hp4194/test_interface.ipynb |  6 +--
 2 files changed, 81 insertions(+), 3 deletions(-)
 create mode 100644 hp4194/cv.py

diff --git a/hp4194/cv.py b/hp4194/cv.py
new file mode 100644
index 0000000..06260fb
--- /dev/null
+++ b/hp4194/cv.py
@@ -0,0 +1,78 @@
+from interface import *
+import control
+import matplotlib.pyplot as plt
+
+
+#connect to device
+device = control.hp4194()
+device.write('reset')
+
+#create interface
+messparameter,messparameter_dict = messparameter()
+sweep_parameter,sweep_parameter_dict = sweep_parameter()
+control_panel,measure,calibrate,clear_graphs,view=control_panel()
+
+
+out = widgets.Output()
+
+hbox1 = widgets.HBox([sample,control_panel])
+display(hbox1)
+hbox2=widgets.HBox([messparameter,sweep_parameter])
+display(hbox2)
+display(out)
+
+def add_widgets_to_list(source_dictionary,target_list):
+    for widget in source_dictionary.values():
+        target_list.append(widget)
+
+
+all_widgets = [measure,calibrate,clear_graphs]
+add_widgets_to_list(view,all_widgets)
+add_widgets_to_list(sweep_parameter_dict,all_widgets)
+add_widgets_to_list(messparameter_dict,all_widgets)
+
+def change_state(widgets_list):
+    for widget in widgets_list:
+        widget.disabled = not widget.disabled
+
+
+def on_calibrate_clicked(b):
+    with out:
+        change_state(all_widgets)
+        device.write('reset')
+
+    # perform an open calibration
+    device.inst.write("RQS255")
+
+    device.write('imp_G_B')
+    device.write('bias_off')
+
+    device.write('sweep_freq')
+    device.set_parameter('set_start',sweep_parameter_dict['start'].value)
+    device.set_parameter('set_stop',sweep_parameter_dict['stop'].value)
+    device.set_parameter('set_nop',sweep_parameter_dict['nop'].value)
+
+    if sweep_parameter['type']=='Linear':
+        device.write('sweep_lin')
+    else:# log
+        device.write('sweep_log')
+    if sweep_parameter['direction']=='Up':
+        device.write('sweep_up')
+    else:
+        device.write('sweep_down')
+
+    device.write('sweep_single')
+    device.write('imp_monitor_I')
+    device.set_parameter('set_osc',sweep_parameter_dict['osc'].value)
+    device.set_parameter('set_delay_time',sweep_parameter_dict['d_time'].value)
+    device.set_parameter('set_delay_apperture',sweep_parameter_dict['d_apperture'].value)
+    device.set_parameter('aver_num',sweep_parameter_dict['averaging'].value)
+
+    device.write('open_cal_on') #data saved in registers OG and OB
+    device.write('start_open_cal')
+    device.wait()
+    
+
+
+    change_state(all_widgets)
+    
\ No newline at end of file
diff --git a/hp4194/test_interface.ipynb b/hp4194/test_interface.ipynb
index 224a8fb..2da6bbc 100644
--- a/hp4194/test_interface.ipynb
+++ b/hp4194/test_interface.ipynb
@@ -71,7 +71,7 @@
     {
      "data": {
       "application/vnd.jupyter.widget-view+json": {
-       "model_id": "65fbeb88cf39431eb687d12f6b1ab62a",
+       "model_id": "9d5320c4d8714f21907d8a2845d1361b",
        "version_major": 2,
        "version_minor": 0
       },
@@ -85,7 +85,7 @@
     {
      "data": {
       "application/vnd.jupyter.widget-view+json": {
-       "model_id": "ef76aa4581d0423fb10586cd6ce61587",
+       "model_id": "0283052d535f40f3b9d71d12950bcf7f",
        "version_major": 2,
        "version_minor": 0
       },
@@ -99,7 +99,7 @@
     {
      "data": {
       "application/vnd.jupyter.widget-view+json": {
-       "model_id": "bc5a8b63c9054093ae38ece5ec8f77e3",
+       "model_id": "f9b54cce2db34bf0b214703d0e08d560",
        "version_major": 2,
        "version_minor": 0
       },
-- 
GitLab