Mercurial > ~darius > hgwebdir.cgi > pyinst
diff specan.py @ 44:c93d6d4cb04b
Use *OPC where supported, otherwise poll.
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Wed, 28 Sep 2011 17:15:23 +0930 |
parents | 182c42e7bf03 |
children | 23c96322cfb6 |
line wrap: on
line diff
--- a/specan.py Wed Sep 28 17:14:30 2011 +0930 +++ b/specan.py Wed Sep 28 17:15:23 2011 +0930 @@ -43,7 +43,18 @@ self.con.write("INIT;*WAI") # Wait for it to be done - if False: + self.wait(timeout) + + # Grab trace data + self.con.write(self.tracequery) + dat = self.con.read(10) + + # Parse into array + ary = scpi.bindecode(dat, dtype = self.tracedtype) + return ary + + def wait(self, timeout): + if self.hasopc: self.con.write("*OPC?") opc = scpi.getdata(self.con.read(timeout), int) if opc != 1: @@ -55,15 +66,7 @@ if i & 256: break - - # Grab trace data - self.con.write(self.tracequery) - dat = self.con.read(10) - - # Parse into array - ary = scpi.bindecode(dat, dtype = self.tracedtype) - return ary - + def dumpconf(self): rtn = {} for k in self.attrs: @@ -89,15 +92,16 @@ 'detector' : ['SENSE1:DETECTOR1:FUNCTION', str, None] , # Page 552 } + hasopc = True tracetypename = 'REAL,32' tracedtype = numpy.float32 tracequery = 'TRAC1? TRACE1' swptslist = [125, 251, 501, 1001, 2001, 4001, 8001] - + # def sweepptscheck(npts): # if x not in RSSPA.swptslist: # raise exceptions.ValueError("Sweep value not supported, must be one of " + str(RSSPA.swptslist)) - + class AnSPA(Traceinst): '''Anritsu Spectrum Analyzer''' @@ -113,6 +117,7 @@ 'detector' : [':SENSe:DETector:FUNCtion', str, None], # Page 24 } + hasopc = False tracetypename = 'REAL,32' tracedtype = numpy.float32 tracequery = 'TRACE:DATA?'