Compare commits
No commits in common. "ca3ca91991a12c8434e8e47d97fdfa6b521a111e" and "541eded51e224a6362778f29c7c5e9ecaf25668f" have entirely different histories.
ca3ca91991
...
541eded51e
3 changed files with 1 additions and 113 deletions
|
|
@ -2,9 +2,6 @@
|
||||||
import sys, socket
|
import sys, socket
|
||||||
|
|
||||||
class pulser:
|
class pulser:
|
||||||
|
|
||||||
verbosity = 1
|
|
||||||
|
|
||||||
def __init__(self, host=("172.19.71.137", 5025)):
|
def __init__(self, host=("172.19.71.137", 5025)):
|
||||||
if isinstance(host, str):
|
if isinstance(host, str):
|
||||||
hh=host.split(":")
|
hh=host.split(":")
|
||||||
|
|
@ -28,8 +25,6 @@ class pulser:
|
||||||
self.resp()
|
self.resp()
|
||||||
self.write(cmd)
|
self.write(cmd)
|
||||||
return self.resp(cmd, timeout=timeout).strip()
|
return self.resp(cmd, timeout=timeout).strip()
|
||||||
if self.verbosity >= 1:
|
|
||||||
print(f"{self.prompt}: {cmd}", file=sys.stderr)
|
|
||||||
self.write(cmd)
|
self.write(cmd)
|
||||||
return self.status()
|
return self.status()
|
||||||
|
|
||||||
|
|
@ -52,8 +47,7 @@ class pulser:
|
||||||
d=repr(e)
|
d=repr(e)
|
||||||
if not d:
|
if not d:
|
||||||
return ""
|
return ""
|
||||||
if self.verbosity >= 2 or not "No error" in d and self.verbosity >= 1:
|
sys.stderr.write("\n%s: %s: %s\n" % (self.prompt, cmd, d.strip()))
|
||||||
print(f"{self.prompt}: {cmd}: {d.strip()}", file=sys.stderr)
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
def status(self):
|
def status(self):
|
||||||
|
|
@ -64,7 +58,3 @@ class pulser:
|
||||||
return self.cmd("VOLTAGE:HIGH?")
|
return self.cmd("VOLTAGE:HIGH?")
|
||||||
return self.cmd("VOLTAGE:HIGH %g" % v)
|
return self.cmd("VOLTAGE:HIGH %g" % v)
|
||||||
|
|
||||||
def set_freq(self, v=None):
|
|
||||||
if v is None:
|
|
||||||
return self.cmd("FREQ?")
|
|
||||||
return self.cmd(f"FREQ {v:g}")
|
|
||||||
|
|
|
||||||
66
cvphase.py
66
cvphase.py
|
|
@ -1,66 +0,0 @@
|
||||||
#! /usr/bin/python3
|
|
||||||
|
|
||||||
import sys, time, agilent3322A, tds3034c, getopt
|
|
||||||
|
|
||||||
fmin=400
|
|
||||||
fmax=1500
|
|
||||||
fres=1.0
|
|
||||||
|
|
||||||
i_phi = 3
|
|
||||||
t_phi = 45.0
|
|
||||||
t_settle = 10
|
|
||||||
units = False
|
|
||||||
|
|
||||||
verbosity = 1
|
|
||||||
|
|
||||||
def usage():
|
|
||||||
print(f"""{sys.argv[0]} <options>
|
|
||||||
-f min,max default: {fmin},{fmax} Hz
|
|
||||||
-r res default: {fres} Hz
|
|
||||||
""", file=sys.stderr)
|
|
||||||
|
|
||||||
options,files = getopt.getopt(sys.argv[1:], "f:r:qvhu:", ["help"])
|
|
||||||
if files:
|
|
||||||
raise ValueError("we do not use filenames")
|
|
||||||
|
|
||||||
for o, v in options:
|
|
||||||
if o=="-f":
|
|
||||||
fmin, fmax = map(float, v.split(","))
|
|
||||||
if o=="-r":
|
|
||||||
fres = float(v)
|
|
||||||
if o=="-q":
|
|
||||||
verbosity=0
|
|
||||||
if o=="-v":
|
|
||||||
verbosity += 1
|
|
||||||
if v == "-u":
|
|
||||||
units = True
|
|
||||||
if o=="-h" or o=="--help":
|
|
||||||
usage()
|
|
||||||
sys.exit()
|
|
||||||
|
|
||||||
pulser = agilent3322A.pulser()
|
|
||||||
tek = tds3034c.tek()
|
|
||||||
pulser.verbosity = verbosity
|
|
||||||
tek.verbosity = verbosity
|
|
||||||
|
|
||||||
while fmin + fres < fmax:
|
|
||||||
f = (fmin + fmax)/2
|
|
||||||
pulser.cmd(f"FREQ {f:.1f}")
|
|
||||||
tek.cmd("ACQ:NUMAVG 512")
|
|
||||||
t = time.time() + t_settle
|
|
||||||
phi = tek.cmd(f":MEASU:MEAS{i_phi}:VAL?")[1]
|
|
||||||
while (time.time() < t):
|
|
||||||
time.sleep(1)
|
|
||||||
phi = tek.cmd(f":MEASU:MEAS{i_phi}:VAL?")[1]
|
|
||||||
if phi > t_phi:
|
|
||||||
fmax = f
|
|
||||||
else:
|
|
||||||
fmin = f
|
|
||||||
|
|
||||||
r = []
|
|
||||||
for i in range(1,5):
|
|
||||||
r.append(tek.cmd(f":MEASU:MEAS{i}:VAL?")[1])
|
|
||||||
if units:
|
|
||||||
r.append(tek.cmd(f":MEASU:MEAS{i}:UNI?")[1])
|
|
||||||
|
|
||||||
print(f"{f:.1f}", *r)
|
|
||||||
36
tds3034c.py
36
tds3034c.py
|
|
@ -1,36 +0,0 @@
|
||||||
|
|
||||||
import sys, http.client
|
|
||||||
|
|
||||||
|
|
||||||
class tek(http.client.HTTPConnection):
|
|
||||||
|
|
||||||
verbosity = 1
|
|
||||||
|
|
||||||
def __init__(self, host="172.19.71.101"):
|
|
||||||
super().__init__(host)
|
|
||||||
self.cmd("*IDN?")
|
|
||||||
|
|
||||||
def cmd(self, c):
|
|
||||||
self.request(method="POST" , url="/Comm.html", body=f"COMMAND={c}")
|
|
||||||
r = self.getresponse()
|
|
||||||
try:
|
|
||||||
data = r.read()
|
|
||||||
except http.client.IncompleteRead as e:
|
|
||||||
data = e.args[0]
|
|
||||||
data = data.split(b'NAME="name">')[1].split(b'</TEXTAREA>')[0].split(b' ')
|
|
||||||
if self.verbosity >= 1:
|
|
||||||
print(f"tek.cmd('{c}') = {data}", file=sys.stderr)
|
|
||||||
s = None
|
|
||||||
if len(data) > 1:
|
|
||||||
s = data[1].strip(b'"')
|
|
||||||
if s == data[1]:
|
|
||||||
try:
|
|
||||||
s = int(s)
|
|
||||||
except:
|
|
||||||
try:
|
|
||||||
s = float(s)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
s = s.decode()
|
|
||||||
return data[0].decode(), s
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue