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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
import gpib
RQS = (1<<11)
SRQ = (1<<12)
TIMO = (1<<14)
class Gpib(object):
'''Three ways to create a Gpib object:
Gpib("name")
returns a board or device object, from a name in the config file
Gpib(board_index)
returns a board object, with the given board number
Gpib(board_index, pad[, sad[, timeout[, send_eoi[, eos_mode]]]])
returns a device object, like ibdev()'''
def __init__(self, name = 'gpib0', pad = None, sad = 0, timeout = 13, send_eoi = 1, eos_mode = 0):
self._own = False
if isinstance(name, str):
self.id = gpib.find(name)
self._own = True
elif pad is None:
self.id = name
else:
self.id = gpib.dev(name, pad, sad, timeout, send_eoi, eos_mode)
self._own = True
# automatically close descriptor when instance is deleted
def __del__(self):
self.close()
def __repr__(self):
return "%s(%d)" % (self.__class__.__name__, self.id)
def close(self):
if self._own:
gpib.close(self.id)
self._own = False
def command(self,str):
gpib.command(self.id, str)
def config(self,option,value):
self.res = gpib.config(self.id,option,value)
return self.res
def interface_clear(self):
gpib.interface_clear(self.id)
def write(self,str):
gpib.write(self.id, str)
def write_async(self,str):
gpib.write_async(self.id, str)
def read(self,len=512):
self.res = gpib.read(self.id,len)
return self.res
def listener(self,pad,sad=0):
self.res = gpib.listener(self.id,pad,sad)
return self.res
def lines(self):
self.res = gpib.lines(self.id)
return self.res
def ask(self,option):
self.res = gpib.ask(self.id,option)
return self.res
def clear(self):
gpib.clear(self.id)
def wait(self,mask):
gpib.wait(self.id,mask)
def serial_poll(self):
self.spb = gpib.serial_poll(self.id)
return self.spb
def trigger(self):
gpib.trigger(self.id)
def remote_enable(self,val):
gpib.remote_enable(self.id,val)
def ibloc(self):
self.res = gpib.ibloc(self.id)
return self.res
def ibsta(self):
self.res = gpib.ibsta()
return self.res
def ibcnt(self):
self.res = gpib.ibcnt()
return self.res
def timeout(self,value):
return gpib.timeout(self.id,value)
|