Commit bd700e004882f7b62c67b008d454a854cf7c22da
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 |