Commit bd700e004882f7b62c67b008d454a854cf7c22da

Authored by bmarechal
1 parent b7ceca5e38
Exists in master

instruments/AG53230A.py: from S. Grop code

Showing 1 changed file with 13 additions and 6 deletions Inline Diff

instruments/AG53230A.py
from abstract_instrument import abstract_instrument 1 1 from abstract_instrument import abstract_instrument
import socket 2 2 import socket
3 3
#============================================================================== 4 4 #==============================================================================
5 5
ALL_VAL_TYPE = ['FREQ'] 6 6 ALL_VAL_TYPE = ['FREQ']
ALL_CHANNELS = ['1'] 7 7 ALL_CHANNELS = ['1']
8 8
ADDRESS = "192.168.0.74" 9 9 ADDRESS = "192.168.0.74"
CONF_VAL_TYPE = ['CONF:FREQ'] 10 10 CONF_VAL_TYPE = ['CONF:FREQ']
11 11
#============================================================================== 12 12 #==============================================================================
13 13
class AG53230A(abstract_instrument): 14 14 class AG53230A(abstract_instrument):
def __init__(self, channels, vtypes, address): 15 15 def __init__(self, channels, vtypes, address):
self.address = address 16 16 self.address = address
self.port = 5025 17 17 self.port = 5025
self.channels = channels 18 18 self.channels = channels
self.vtypes = vtypes 19 19 self.vtypes = vtypes
20 20
def model(self): 21 21 def model(self):
#self.send("*IDN?") 22 22 #self.send("*IDN?")
#return self.read() 23 23 #return self.read()
return "AG53230A" 24 24 return "AG53230A"
25 25
def connect(self): 26 26 def connect(self):
print('Connecting to device @%s:%s...' %(self.address, self.port)) 27 27 print('Connecting to device @%s:%s...' %(self.address, self.port))
self.sock = socket.socket(socket.AF_INET, 28 28 self.sock = socket.socket(socket.AF_INET,
socket.SOCK_STREAM, 29 29 socket.SOCK_STREAM,
socket.IPPROTO_TCP) 30 30 socket.IPPROTO_TCP)
self.sock.settimeout(10.0) # Don't hang around forever 31 31 self.sock.settimeout(10.0) # Don't hang around forever
self.sock.connect((self.address, self.port)) 32 32 self.sock.connect((self.address, self.port))
self.send("SYST:BEEP") 33 33 self.send("SYST:BEEP")
print(' --> Ok') 34 34 print(' --> Ok')
print(self.model()) 35 35 print(self.model())
self.configure() 36 36 self.configure()
37 37
def configure(self): 38 38 def configure(self):
39 self.send('*RST')
40 self.send('DISP:DIG:MASK:AUTO OFF')
41 self.send('INP1:IMP 50')
42 self.send('INP1:COUP AC')
43 self.send('SYST:TIM INF')
44 self.send('SENS:ROSC:SOUR EXT')
45 self.send('SENS:ROSC:EXT:FREQ 10E6')
for ch in self.channels: 39 46 for ch in self.channels:
self.send('INP:COUP AC') 40
self.send('INP:IMP 50') 41
self.send('SENS:FREQ:GATE:TIME 1') 42
self.send('SENS:ROSC:SOUR EXT') 43
self.send('SENS:ROSC:EXT:FREQ 10E6') 44
self.send(CONF_VAL_TYPE[ALL_VAL_TYPE.index(self.vtypes[self.channels.index(ch)])]) 45 47 self.send(CONF_VAL_TYPE[ALL_VAL_TYPE.index(self.vtypes[self.channels.index(ch)])])
48 self.send('SAMP:COUN 1E6')
49 self.send('SENS:FREQ:MODE CONT')
50 self.send('SENS:FREQ:GATE:SOUR TIME')
51 self.send('1')
52 self.send('TRIG:SOUR IMM')
46 53
def getValue(self): 47 54 def getValue(self):
mes = '' 48 55 mes = ''
for ch in self.channels: 49 56 for ch in self.channels:
self.send("READ?") 50 57 self.send("DATA:REM?")
mesTemp = self.read() 51 58 mesTemp = self.read()
mes = mes + '\t' + mesTemp 52 59 mes = mes + '\t' + mesTemp
return mes 53 60 return mes
54 61
def read(self): 55 62 def read(self):
ans = '' 56 63 ans = ''
nb_data_list = [] 57 64 nb_data_list = []
nb_data = '' 58 65 nb_data = ''
try: 59 66 try:
while ans != '\n': 60 67 while ans != '\n':
ans = self.sock.recv(1) 61 68 ans = self.sock.recv(1)
nb_data_list.append(ans) # Return the number of data 62 69 nb_data_list.append(ans) # Return the number of data
list_size = len(nb_data_list) 63 70 list_size = len(nb_data_list)
for j in range (0, list_size): 64 71 for j in range (0, list_size):
nb_data = nb_data+nb_data_list[j] 65 72 nb_data = nb_data+nb_data_list[j]
return nb_data 66 73 return nb_data