-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathdmm.py
50 lines (38 loc) · 1.29 KB
/
dmm.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/python3
import Gpib
import sys
import time
class DMM34401A:
def __init__(self,gpib_address,gpib_interface=0):
self.device = Gpib.Gpib(gpib_interface,gpib_address)
self.modes = {
"VOLTDC" : "VOLT",
"VOLTAC" : "VOLT:AC",
"CURRDC" : "CURR",
"CURRAC" : "CURR:AC",
"RES" : "RES",
"FRES" : "FRES",
"FREQ" : "FREQ",
"CONT" : "CONT",
"DIOD" : "DIOD"
}
def getMode(self):
self.device.write("CONF?")
return str(self.device.read(100))
def readVoltDC(self):
if not self.getMode().startswith(self.modes["VOLTDC"]):
return -1
return self.read()
def readCurrDC(self):
if not self.getMode().startswith(self.modes["CURRDC"]):
return -1
return self.read()
def setVolt(self, max_range, resolution):
self.device.write("CONF:VOLT:DC "+str(max_range)+","+str(resolution))
def setCurrent(self, max_range, resolution):
self.device.write("CONF:CURR:DC "+str(max_range)+","+str(resolution))
def read(self):
self.device.write("READ?")
return float(self.device.read(100))
def beep(self):
self.device.write("SYST:BEEP")