Blame view

instruments/AG53230A.py 2.31 KB
c3e162c11   bmarechal   add AG53230A freq...
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
  from abstract_instrument import abstract_instrument
  import socket
  
  #==============================================================================
  
  ALL_VAL_TYPE = ['FREQ']
  ALL_CHANNELS = ['1']
  
  ADDRESS = "192.168.0.74"
  CONF_VAL_TYPE = ['CONF:FREQ']
  
  #==============================================================================
  
  class AG53230A(abstract_instrument):
      def __init__(self, channels, vtypes, address):
          self.address = address
          self.port = 5025
          self.channels = channels
          self.vtypes = vtypes
  
      def model(self):
          #self.send("*IDN?")
          #return self.read()
          return "AG53230A"
  
      def connect(self):
          print('Connecting to device @%s:%s...' %(self.address, self.port))
          self.sock = socket.socket(socket.AF_INET,
                               socket.SOCK_STREAM,
                               socket.IPPROTO_TCP)
          self.sock.settimeout(10.0)    # Don't hang around forever
          self.sock.connect((self.address, self.port))
          self.send("SYST:BEEP")
          print('  --> Ok')
          print(self.model())
          self.configure()
  
      def configure(self):
          for ch in self.channels:
be6742f9e   bmarechal   ugly config of AG...
40
41
42
              self.send('INP:COUP AC')
              self.send('INP:IMP 50')
              self.send('SENS:FREQ:GATE:TIME 1')
7db5c0779   bmarechal   instruments/AG532...
43
44
              self.send('SENS:ROSC:SOUR EXT')
              self.send('SENS:ROSC:EXT:FREQ 10E6')
c3e162c11   bmarechal   add AG53230A freq...
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
              self.send(CONF_VAL_TYPE[ALL_VAL_TYPE.index(self.vtypes[self.channels.index(ch)])])
  
      def getValue(self):
          mes = ''
          for ch in self.channels:
              self.send("READ?")
              mesTemp = self.read()
              mes = mes + '\t' + mesTemp
          return mes
  
      def read(self):
          ans = ''
          nb_data_list = []
          nb_data = ''
          try:
              while ans != '
  ':
                  ans = self.sock.recv(1)
                  nb_data_list.append(ans) # Return the number of data
              list_size = len(nb_data_list)
              for j in range (0, list_size):
                  nb_data = nb_data+nb_data_list[j]
              return nb_data
          except socket.timeout:
              print "Socket timeout error when reading."
              raise
  
      def disconnect(self):
          self.send('*RST')
          self.send("SYST:BEEP")
          self.sock.close()
  
      def send(self, command):
          self.sock.send("%s
  "%command)