diff --git a/plx_gpib_ethernet/plx_gpib_ethernet.py b/plx_gpib_ethernet/plx_gpib_ethernet.py index 669d285..9d0522c 100644 --- a/plx_gpib_ethernet/plx_gpib_ethernet.py +++ b/plx_gpib_ethernet/plx_gpib_ethernet.py @@ -40,6 +40,10 @@ def query(self, cmd, buffer_size=1024*1024): self.write(cmd) return self.read(buffer_size) + def query_controller(self, cmd, buffer_size=1024*1024): + self._send(cmd) + return self._recv(buffer_size) + def _send(self, value): encoded_value = ('%s\n' % value).encode('ascii') self.socket.send(encoded_value) diff --git a/tests/plx_gpib_ethernet_test.py b/tests/plx_gpib_ethernet_test.py index 01219d2..ef7cfb4 100644 --- a/tests/plx_gpib_ethernet_test.py +++ b/tests/plx_gpib_ethernet_test.py @@ -140,3 +140,26 @@ def test_it_reads_gpib_query_response(plx_with_mock_socket): result = plx.query('*IDN?') assert result == response + + +# .query_controller +def test_it_sends_controller_query(plx_with_mock_socket): + plx, mock_socket = plx_with_mock_socket + plx.connect() + + mock_socket.in_buffer.append('\n') + plx.query_controller('++addr') + + expected_commands = ['++addr\n'] + assert mock_socket.out_buffer[-1:] == expected_commands + + +def test_it_reads_controller_query_response(plx_with_mock_socket): + plx, mock_socket = plx_with_mock_socket + plx.connect() + + response = '2\n' + mock_socket.in_buffer.append(response) + result = plx.query_controller('++addr') + + assert result == response