From 41bdee2c3e2c8d3c13f8db9f586c5d0443cd2174 Mon Sep 17 00:00:00 2001
From: Nicolas Roisin <nicolas.roisin@uclouvain.be>
Date: Wed, 26 Feb 2025 15:29:45 +0100
Subject: [PATCH] example of script

---
 .../__pycache__/equipment.cpython-311.pyc     | Bin 3747 -> 4445 bytes
 .../__pycache__/hp4145.cpython-311.pyc        | Bin 0 -> 6238 bytes
 equipment_control/cm110.py                    |   4 +-
 equipment_control/dmm.py                      |   5 +-
 equipment_control/equipment.py                |  20 +++---
 .../example/single_equipment/hp4145_script.py |  59 ++++++++++++++++++
 equipment_control/hp4145.py                   |   4 +-
 equipment_control/k24xx.py                    |   2 +-
 equipment_control/k4200.py                    |   4 +-
 equipment_control/sh242.py                    |   6 +-
 10 files changed, 86 insertions(+), 18 deletions(-)
 create mode 100644 equipment_control/__pycache__/hp4145.cpython-311.pyc
 create mode 100644 equipment_control/example/single_equipment/hp4145_script.py

diff --git a/equipment_control/__pycache__/equipment.cpython-311.pyc b/equipment_control/__pycache__/equipment.cpython-311.pyc
index e5b530873ffb7280253d0bac3cf39f99c15f31b5..656e109941a4e89daec1764462b956ead1dce9bd 100644
GIT binary patch
delta 1958
zcmaJ?Z)g-p6rb5Yx4XBuF=zgGr%CQk6XV9H)rdwK6Af)eEGbqBCACe%%|=d>OPt-a
zQ8rCl@*zm6iSxlImR>2?i2We66u<Nz?UxpcIXURD5D-c!(tj!TQz+Osdv`HW+sDpt
z-n^N4^X4~iW<RW7*x3A$VFVG#>y2NYcu_;>C*CNFR8sCgH`CnkN`MHHxK|?LB<hs~
zbO;e?5)t{DfY1#nMd=L?d<>b&J>Kj|;*yzHe2fU?{&9dy$VCL5^5@a2nOPTKXEpe>
z%{uf2px9dhCQw1qrgpzQIx)InROO9LIio3WG))O?8aD=){k6`pZR5uf<>8tFm7${C
z2UP)V9zvY*O?s8ovWGJ?Y4r{Dr~6M>lvaS5FKO2ROrQmAO<s%Tv_xJ@Omr7?W8yFk
zK~ECOvXu9F{{WaSAq(|lg4lPssyRetU`QbWU`Qnjphi@{ATfvzJvtGAn+o;-x9sZq
z#dkRM&4FZ@W^UlRPtq(XK$5VMq$W{tg_*Bv<1W4i+q$vLu8aEkBwt*VmDr3{vje;0
z>a)SXIIJ)9c#4x6vW7E`DL-V3O$u=~F0J2eN}gm}g9Dz@PY5t(Q^*TMs{w2tUL1r5
z*|$Ps<2r6T0stqa8&l5t_Nn%T@Vb1sITtqbVRNdREef>_1vT`e+H^;4%BF5AIki2n
zw$GP88e$dVAF}VB$<qGrT5#vLXdTz;IW%yH0hl6<K;?<2th1hcrhhPF*?i}INPG~F
zh+UQ%aXtG&dJl&_IW9+WH@AB72u-COQ!09>P7bHjR?<lgr~5|wY5$PrKt9B|j|9Mq
zo$|SL>@6w6ZU<U%3;QSV1`aVtd38Mx)svHh!?tB&-)%YD*ssb?+{WtF&5b;NmT;>l
zI-^dK=Vn<rtNu~fiR_?I$7%wV9YlzhyAcsf*FzxEnCL7YFhVYV^xBQdt_+D$NdgYf
z{F0m$*=@CfeJ)oBS()bqR@k5FCc`KXK<K2xVp?=>zzILJxq;Q$MbuItd!4G4qlm_K
z1~<s@F~wgzK!UE|D(rMHwl9(X;D0^pC6Dhu$z#>%nDU5S<tv4cjH#|lw9?#!zp6??
zd{tLv!@-1T`nIQt;fh7;zzRYKgmXa7>b+s~&h!492&s6i=d3GdgY4^|S-qxb32(pm
z0K^lM_8Hm=Jh0z_TdL0mn(U_Sdj^(p(9}KI9vMtIEUI^^Eil5=XoU6YHEkNP22(>R
z$S_Z{Mjb0{L)v+GfbNG;9!`1qq|MU-(zqyazb@!ockBV1oq=mUf$r+n7rM@O&9>$A
zSYD51g}lBg`_dh~WnOP7)JCTc{~W4h-|L@^2aJYA1Tc*kq7Ac|?9r>Emt$9Bi%1F|
zz(t%sSXdXCO<Z)QokAq~zH&v$2Ii!>qjRU{j(x1<;=6K@wtS>*-v92FMyPY<&1Y_f
zZ|%HQ_37bxvoja(%tgBLk*<0FD^!LrDHoMl_Cshxgy%fGGjy$A`)tu|ptIjY&+c9i
zihob(7OwG!o*n|Yj{LXQf2wIEw{lnm#eS0w7>(7Eybt1E1tE6X*fw4xuU$m{0Y#s_
zJN|f?O7X?p2f8PxGeaY1X$R<({{{TtL2>C9c$06#4`)g37#b#-L93G<1si{N?NNY5
m5o26nPglfV7BNt~8iE3@SVYU9c3=qearled{(eG-zy80jh@P<k

delta 1464
zcmaKsU1%It6vywKubr9AbT`SS&F6k3OVX*tZT+B4Z3}AC5Fge`g+f5rWoIgzCcDd>
z+1kJ^-G@F@@gemhtq>ui#7JHWqL22mB7$96Xc)+oPrk@X^ra|x&g{-gZSd~SZ|*(k
z%=w@D!QGqud}8KH!_Wz|3;W-_`*DbnUvLmKx!c))?e<JOE8HYYl0X)SCEg^KWRvB<
zPqsutcHrr>CB>qbh$;Vy!)&2z^<M%I<MuD|pXluE@86^*pP+9~U=0d9&Lp5g_OwV#
zOEk4qOG`Cg;h)j8PQig~{|v7P@hK=_DP&1N)slglr2us+1Pog$$ZPx?;n;AYR~3AV
zeP8`F;Xi2OyroAk*GMi%O)PSWFbRT8!86JgyOd+LQ?9at?L{hU*NRTQXD~%ia_p5W
zOoebSl(#GhbsWr|OeUGe2c?ub2qPyBXpr4R>QN%|b0Tvu)J&XeB~IOvTI%>i|Ifnw
z1L-%-3%SKryIgg7T|RrcA3kG;5l0Zih!Mmnz!cd4ygc!$z2?c+@+(#QUukp<JGPrE
zluISM;1<iJTqV!)tF~)1{+FDlM|ev4l!m{)uZ+;M6BsX7Sh3`qQYUTfpfA}N1hR2}
zgG&Un#Ayzxi!{x1>U%WIAE|GRV%eTtSSdTUN&RdNE-!{=wG(ufH?-;VVX!>0F}R5S
z#@vDfa)-FR9U-JfExHBP9XvXItBW;plk%n(8?^)%Yw5P-UdX11Zk`Ms;_v8(1xw@`
z`jmmPL8!ui)JINAZX~dPlC%Z7J3Vbny6PunCtaLXx78#|=J&#5p=4bS>QF4DCe&np
ztS>Q_Dqa8Iq@iw7`=F$Quh-@O*d<?VvaSSTs->b>P2orTQu0(_9=5b6%ctbSi{R9P
zmC&evzD+&L|L!{~Kc>2=^Eu<3It?>3Lu`QGFowqH74|%gJzDhWvI7@_ztNq&eqcNk
zJq{Kp4QtdOe=5Z2=cz;A&WlF8O#th3ZzO)Vy7|V&^-mHTi8i7A$9=57yc-+3v+&Wv
z-3y!NxBItGY!801*c^Yh8OyX{nTP(LXCqTGZc&!MADMq420eynlcf<eh?f9g5r#ob
zLl^<j<hWdjrXy6I1I+*`KOLRD5tRqp<Y{y=VG@`>US=!<@Z?f;wX(*ZLjzt+3~#26
z)~nd-=|5J_td_0nihYjFg9A^FQv|d{O6e{!8vbvW@OE@)QJ}COJ?Jk|DCudeE3N4C
M@96mB0Ix6o4`5I%Jpcdz

diff --git a/equipment_control/__pycache__/hp4145.cpython-311.pyc b/equipment_control/__pycache__/hp4145.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..7427a598aa61f7d6a06b6b5568801b2db1caeeb2
GIT binary patch
literal 6238
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

literal 0
HcmV?d00001

diff --git a/equipment_control/cm110.py b/equipment_control/cm110.py
index cef2892..8658953 100644
--- a/equipment_control/cm110.py
+++ b/equipment_control/cm110.py
@@ -1,7 +1,5 @@
-import equipment
-import pyvisa
+import equipment_control.equipment as equipment
 import time
-import numpy as np
 import serial
 
 class cm110(equipment.equipment):
diff --git a/equipment_control/dmm.py b/equipment_control/dmm.py
index f4600f1..7444a6e 100644
--- a/equipment_control/dmm.py
+++ b/equipment_control/dmm.py
@@ -1,4 +1,4 @@
-import equipment
+import equipment_control.equipment as equipment
 
 class dmm(equipment.equipment):
     
@@ -7,7 +7,7 @@ class dmm(equipment.equipment):
     company="Keithley"
     url="https://www.tek.com/en/products/keithley/benchtop-digital-multimeter"
 
-    def initialize(self, mode, autozero=True, offset_compensation=True, nplc=1):
+    def initialize(self, mode, autozero=True, offset_compensation=True, nplc=1,timeout=10e3):
         """
         mode:
             - "voltage": voltage measurement
@@ -16,6 +16,7 @@ class dmm(equipment.equipment):
             - "4 wires": 4 wires measurement
         """
         self.pyvisa_resource.write("*RST")
+        # self.set_connection_parameter_dic({"write_termination":'\r\n',"read_termination":'\r\n',"send_end":True})
 
         if mode=="voltage":
             self.pyvisa_resource.write(":SENS:FUNC 'VOLT'")           
diff --git a/equipment_control/equipment.py b/equipment_control/equipment.py
index b4f3c45..739c566 100644
--- a/equipment_control/equipment.py
+++ b/equipment_control/equipment.py
@@ -3,15 +3,16 @@ import datetime
 import numpy as np
 
 
-def available_connections():
-    rm = pyvisa.ResourceManager()
+def available_connections(rm=None):
+    if rm==None:
+        rm = pyvisa.ResourceManager()    
     return rm.list_resources()
 
 def resource_manager():
     rm = pyvisa.ResourceManager()
     return rm
 
-class equipment(pyvisa.ResourceManager):
+class equipment():
 
     """Base for Equipment classes."""
     
@@ -19,11 +20,11 @@ class equipment(pyvisa.ResourceManager):
     company = ""
     url = ""
         
-    def __init__(self,address,rm=None):
+    def __init__(self,address,rm=None,timeout=10e3):
         if rm==None:
             rm = pyvisa.ResourceManager()
         self.pyvisa_resource = rm.open_resource(address)
-        
+        self.set_connection_parameter("timeout",timeout)
         
     def set_connection_parameter(self,key,value):
         if key=="timeout":
@@ -50,8 +51,10 @@ class equipment(pyvisa.ResourceManager):
     def close_connection(self):
         self.pyvisa_resource.close()
 
-    def write_in_file(self,file_path,data):
+    def write_in_file(self,file_path,data,delimiter=",",extension="txt"):
         
+        if file_path.split(".")[-1]=="csv":
+            delimiter=","
         # Create file and header
         f = open(file_path, "a")
         f.write("%s\n"%(datetime.datetime.now().strftime("%c")))
@@ -64,6 +67,9 @@ class equipment(pyvisa.ResourceManager):
         elif len(shape)==2:
             for i in range(shape[0]):
                 for j in range(shape[1]):
-                    f.write("%.6f"%(data[i,j]))
+                    if j==0:
+                        f.write("%.6f"%(data[i,j]))
+                    else:
+                        f.write("%s%.6f"%(delimiter,data[i,j]))
                 f.write("\n")                
         f.close()
diff --git a/equipment_control/example/single_equipment/hp4145_script.py b/equipment_control/example/single_equipment/hp4145_script.py
new file mode 100644
index 0000000..93848b6
--- /dev/null
+++ b/equipment_control/example/single_equipment/hp4145_script.py
@@ -0,0 +1,59 @@
+# =============================================================================
+# 1. Import classes and modules
+# =============================================================================
+
+import sys
+#sys.path.insert(1, '/path/to/application/app/folder')
+sys.path.insert(1, 'D:/Roisin/Documents/chopes')
+
+import equipment_control.equipment as eq
+import equipment_control.hp4145 as hp4145
+
+
+# =============================================================================
+# 2. List  available connections (chopes use pyvisa package for communicate with most equipments)
+# =============================================================================
+rm=eq.resource_manager()
+list_connections= eq.available_connections()
+print("Available connections: %s"%str(list_connections))
+
+# =============================================================================
+# 3. Connection to the equipments
+# =============================================================================
+myHP4145=hp4145.hp4145("GPIB0::1::INSTR")
+
+# =============================================================================
+# 4. Measurement parameters
+# =============================================================================
+file_path='temp.txt'
+
+mode="voltage sweep"
+number_channel=4
+smu_bias={"SMU2":0,"SMU3":0,"SMU4":0}
+smu_compliance={"SMU1":1e-6,"SMU2":1e-6,"SMU3":1e-6,"SMU4":1e-6}
+sweep_param={"start":0,"stop":1,"step":0.1}
+integration_mode="IT1"
+delay_time=0
+hold_time=0
+
+# =============================================================================
+# 5. Initialization of the equipments
+# =============================================================================
+myHP4145.initialize(mode=mode,number_channel=number_channel,smu_bias=smu_bias,
+              smu_compliance=smu_compliance,sweep_param=sweep_param,
+              integration_mode=integration_mode,delay_time=delay_time,hold_time=hold_time)
+
+# =============================================================================
+# 6. Measurement script
+# =============================================================================
+data=myHP4145.launch_measurements()
+
+# =============================================================================
+# 7. Close connection
+# =============================================================================
+myHP4145.close_connection()
+
+# =============================================================================
+# 8. Save data
+# =============================================================================
+myHP4145.write_in_file(file_path,data)
diff --git a/equipment_control/hp4145.py b/equipment_control/hp4145.py
index 66229aa..baab7d6 100644
--- a/equipment_control/hp4145.py
+++ b/equipment_control/hp4145.py
@@ -1,4 +1,4 @@
-import equipment
+import equipment_control.equipment as equipment
 import pyvisa
 import time
 import numpy as np
@@ -28,7 +28,7 @@ class hp4145(equipment.equipment):
         self.delay_time=delay_time
         self.hold_time=hold_time
         
-        self.set_connection_parameter_dic({"timeout":10e3,"write_termination":'\r\n',"read_termination":'\r\n',"send_end":True})
+        # self.set_connection_parameter_dic({write_termination":'\r\n',"read_termination":'\r\n',"send_end":True})
     
         try:
             self.pyvisa_resource.write("BC") # clear all buffer.
diff --git a/equipment_control/k24xx.py b/equipment_control/k24xx.py
index 6ee66c0..ce91ad4 100644
--- a/equipment_control/k24xx.py
+++ b/equipment_control/k24xx.py
@@ -1,4 +1,4 @@
-import equipment
+import equipment_control.equipment as equipment
 
 class k24XX(equipment.equipment):
     
diff --git a/equipment_control/k4200.py b/equipment_control/k4200.py
index 351a51c..72aaf7a 100644
--- a/equipment_control/k4200.py
+++ b/equipment_control/k4200.py
@@ -1,4 +1,4 @@
-import equipment
+import equipment_control.equipment as equipment
 import pyvisa
 import time
 import numpy as np
@@ -28,7 +28,7 @@ class k4200(equipment.equipment):
         self.delay_time=delay_time
         self.hold_time=hold_time
         
-        self.set_connection_parameter_dic({"timeout":10e3,"write_termination":'\r\n',"read_termination":'\r\n',"send_end":True})
+        self.set_connection_parameter_dic({"write_termination":'\r\n',"read_termination":'\r\n',"send_end":True})
     
         try:
             self.pyvisa_resource.write("BC") # clear all buffer.
diff --git a/equipment_control/sh242.py b/equipment_control/sh242.py
index 71df436..7b31140 100644
--- a/equipment_control/sh242.py
+++ b/equipment_control/sh242.py
@@ -1,4 +1,4 @@
-import equipment
+import equipment_control.equipment as equipment
 import time
 import numpy as np
 
@@ -9,6 +9,7 @@ class sh242(equipment.equipment):
     company="ESPEC"
     url="https://espec.com/na/products/model/sh_242"
 
+
 # =============================================================================
 #         mysh242.read_termination = ';'
 #         mysh242.write_termination = ';'
@@ -18,6 +19,9 @@ class sh242(equipment.equipment):
 
 
     def initialize(self,temperature=True, humidity=False,temperature_dic={"upper":125,"lower":-45,"set":20},humidity_dic={"upper":100,"lower":0,"set":55}):
+        
+        self.set_connection_parameter_dic({"write_termination":';',"read_termination":';',"send_end":True})
+
         self.pyvisa_resource.write('POWER, ON')
         time.sleep(1)
         self.pyvisa_resource.read()
-- 
GitLab