cc.scpi.generic_instrument

 1import socket
 2
 3from cc.serializer import SocketSerializer
 4
 5class GenericInstrument:
 6    """
 7    Generic instrument class.
 8    """
 9    
10    def __init__(self, ip_address, port=5025):
11        self._sock = None
12        self.ip_address = ip_address
13        self.port = port
14    
15    def connect(self):
16        """
17        Connect to the instrument.
18        """
19        self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
20        
21        addr = (self.ip_address, self.port)
22        try:
23            self._sock.connect(addr)
24        except socket.error as e:
25            print("failed to connect: ", addr)
26            print(e)
27        
28        return self._sock
29
30    def close(self):
31        """
32        Close the connection.
33        """
34        self._sock.close()
35    
36    def command(self, cmd: str):
37        """
38        Send a command to the instrument.
39        
40        Args:
41            cmd: the command to send
42        """
43        ser = SocketSerializer(self._sock, buffered_transmit=True)
44        ser.transmit(cmd.encode())
45    
46    def query(self, cmd: str):
47        """
48        Send a query to the instrument.
49
50        Args:
51            cmd: the command to send
52        
53        Returns:
54            the response from the instrument
55        """
56        ser = SocketSerializer(self._sock, buffered_transmit=True)
57        ser.transmit(cmd.encode())
58        data = ser.receive()
59        return data.decode()
60
61    def get_idn(self):
62        """
63        Get the instrument identification number
64
65        Returns:
66            the instrument identification
67        """
68        return self.query("*IDN?")
69
70    def get_instrument_identification(self):
71        """
72        Get the instrument identification number. This is an alias for `get_idn()`.
73
74        Returns:
75            the instrument identification
76        """
77        return self.get_idn()
78    
class GenericInstrument:
 6class GenericInstrument:
 7    """
 8    Generic instrument class.
 9    """
10    
11    def __init__(self, ip_address, port=5025):
12        self._sock = None
13        self.ip_address = ip_address
14        self.port = port
15    
16    def connect(self):
17        """
18        Connect to the instrument.
19        """
20        self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
21        
22        addr = (self.ip_address, self.port)
23        try:
24            self._sock.connect(addr)
25        except socket.error as e:
26            print("failed to connect: ", addr)
27            print(e)
28        
29        return self._sock
30
31    def close(self):
32        """
33        Close the connection.
34        """
35        self._sock.close()
36    
37    def command(self, cmd: str):
38        """
39        Send a command to the instrument.
40        
41        Args:
42            cmd: the command to send
43        """
44        ser = SocketSerializer(self._sock, buffered_transmit=True)
45        ser.transmit(cmd.encode())
46    
47    def query(self, cmd: str):
48        """
49        Send a query to the instrument.
50
51        Args:
52            cmd: the command to send
53        
54        Returns:
55            the response from the instrument
56        """
57        ser = SocketSerializer(self._sock, buffered_transmit=True)
58        ser.transmit(cmd.encode())
59        data = ser.receive()
60        return data.decode()
61
62    def get_idn(self):
63        """
64        Get the instrument identification number
65
66        Returns:
67            the instrument identification
68        """
69        return self.query("*IDN?")
70
71    def get_instrument_identification(self):
72        """
73        Get the instrument identification number. This is an alias for `get_idn()`.
74
75        Returns:
76            the instrument identification
77        """
78        return self.get_idn()

Generic instrument class.

GenericInstrument(ip_address, port=5025)
11    def __init__(self, ip_address, port=5025):
12        self._sock = None
13        self.ip_address = ip_address
14        self.port = port
ip_address
port
def connect(self):
16    def connect(self):
17        """
18        Connect to the instrument.
19        """
20        self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
21        
22        addr = (self.ip_address, self.port)
23        try:
24            self._sock.connect(addr)
25        except socket.error as e:
26            print("failed to connect: ", addr)
27            print(e)
28        
29        return self._sock

Connect to the instrument.

def close(self):
31    def close(self):
32        """
33        Close the connection.
34        """
35        self._sock.close()

Close the connection.

def command(self, cmd: str):
37    def command(self, cmd: str):
38        """
39        Send a command to the instrument.
40        
41        Args:
42            cmd: the command to send
43        """
44        ser = SocketSerializer(self._sock, buffered_transmit=True)
45        ser.transmit(cmd.encode())

Send a command to the instrument.

Arguments:
  • cmd: the command to send
def query(self, cmd: str):
47    def query(self, cmd: str):
48        """
49        Send a query to the instrument.
50
51        Args:
52            cmd: the command to send
53        
54        Returns:
55            the response from the instrument
56        """
57        ser = SocketSerializer(self._sock, buffered_transmit=True)
58        ser.transmit(cmd.encode())
59        data = ser.receive()
60        return data.decode()

Send a query to the instrument.

Arguments:
  • cmd: the command to send
Returns:

the response from the instrument

def get_idn(self):
62    def get_idn(self):
63        """
64        Get the instrument identification number
65
66        Returns:
67            the instrument identification
68        """
69        return self.query("*IDN?")

Get the instrument identification number

Returns:

the instrument identification

def get_instrument_identification(self):
71    def get_instrument_identification(self):
72        """
73        Get the instrument identification number. This is an alias for `get_idn()`.
74
75        Returns:
76            the instrument identification
77        """
78        return self.get_idn()

Get the instrument identification number. This is an alias for get_idn().

Returns:

the instrument identification