Blame view

instruments/AG34461A.py 2.23 KB
91efd0ebc   mer0m   Add files via upload
1
2
3
4
5
6
7
  from abstract_instrument import abstract_instrument
  import socket
  
  #==============================================================================
  
  ALL_VAL_TYPE = ['DCV', 'ACV', 'DCI', 'ACI', 'RES2W', 'RES4W', 'FREQ']
  ALL_CHANNELS = ['1']
9058343c5   bmarechal   some minor fixes
8
  ADDRESS = "192.168.0.61"
91efd0ebc   mer0m   Add files via upload
9
10
11
12
13
  CONF_VAL_TYPE = ['CONF:VOLT:DC', 'CONF:VOLT:AC', 'CONF:CURR:DC', 'CONF:CURR:AC', 'CONF:RES', 'CONF:FRES', 'CONF:FREQ']
  
  #==============================================================================
  
  class AG34461A(abstract_instrument):
9058343c5   bmarechal   some minor fixes
14
15
      def __init__(self, channels, vtypes, address):
          self.address = address
91efd0ebc   mer0m   Add files via upload
16
17
18
19
20
21
22
          self.port = 5025
          self.channels = channels
          self.vtypes = vtypes
  
      def model(self):
          #self.send("*IDN?")
          #return self.read()
a52533e35   bmarechal   -
23
          return "AG34461A"
91efd0ebc   mer0m   Add files via upload
24
25
  
      def connect(self):
9058343c5   bmarechal   some minor fixes
26
          print('Connecting to device @%s:%s...' %(self.address, self.port))
91efd0ebc   mer0m   Add files via upload
27
28
29
30
          self.sock = socket.socket(socket.AF_INET,
                               socket.SOCK_STREAM,
                               socket.IPPROTO_TCP)
          self.sock.settimeout(10.0)    # Don't hang around forever
9058343c5   bmarechal   some minor fixes
31
          self.sock.connect((self.address, self.port))
91efd0ebc   mer0m   Add files via upload
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
          self.send("SYST:BEEP")
          print('  --> Ok')
          print(self.model())
          self.configure()
  
      def configure(self):
          for ch in self.channels:
              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)