annotate vxi.py @ 79:84f96c5fe791

Use different message ID that does not result in "Query UNTERMINATE" messages in the error log. Fix testsrq. Rename queryrsb to querystb as that matches the operating manual.
author Daniel O'Connor <doconnor@gsoft.com.au>
date Fri, 27 Sep 2024 16:53:43 +0930
parents 12b6a3a0a481
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
1 #!/usr/bin/env python
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
2
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
3 # Copyright (c) 2011
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
4 # Daniel O'Connor <darius@dons.net.au>. All rights reserved.
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
5 #
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
6 # Redistribution and use in source and binary forms, with or without
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
7 # modification, are permitted provided that the following conditions
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
8 # are met:
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
9 # 1. Redistributions of source code must retain the above copyright
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
10 # notice, this list of conditions and the following disclaimer.
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
11 # 2. Redistributions in binary form must reproduce the above copyright
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
12 # notice, this list of conditions and the following disclaimer in the
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
13 # documentation and/or other materials provided with the distribution.
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
14 #
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
15 # THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
16 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
17 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
18 # ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
19 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
20 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
21 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
22 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
23 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
24 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
25 # SUCH DAMAGE.
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
26 #
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
27
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
28 # A wrapper to make vxi_11 behave more like we expect
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
29
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
30 import exceptions
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
31 import vxi_11
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
32
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
33 class VXIDevice(object):
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
34 def __init__(self, host, device):
29
12b6a3a0a481 Change timeout to 1500 - seems to help the Anritsu at Trondheim..
Daniel O'Connor <darius@dons.net.au>
parents: 24
diff changeset
35 self.v = vxi_11.vxi_11_connection(host, device = device, timeout = 1500)
24
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
36
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
37 def flush(self, timeout = None):
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
38 pass
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
39
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
40 def write(self, data):
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
41 err, base = self.v.write(data)
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
42 if err != 0:
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
43 raise exceptions.IOError("Error writing " + str(err))
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
44
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
45 def read(self, timeout = None):
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
46 if timeout != None:
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
47 timeout = int(timeout * 1000.0) # Convert to msec
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
48
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
49 err, reason, result = self.v.read(timeout)
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
50 if err != 0:
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
51 raise exceptions.IOError("Error reading %d, reason %d" % (err, reason))
6fe43d62c73b Add a wrapper around vxi_11_connection so it acts like the other classes.
Daniel O'Connor <darius@dons.net.au>
parents:
diff changeset
52 return result