# HG changeset patch # User Daniel O'Connor # Date 1313063413 -34200 # Node ID 6fe43d62c73bf05cb6491e614ff4f8624fff0029 # Parent 876d951bbcc099454828b895ec97cf17234e73d5 Add a wrapper around vxi_11_connection so it acts like the other classes. diff -r 876d951bbcc0 -r 6fe43d62c73b vxi.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vxi.py Thu Aug 11 21:20:13 2011 +0930 @@ -0,0 +1,52 @@ +#!/usr/bin/env python + +# Copyright (c) 2011 +# Daniel O'Connor . All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# + +# A wrapper to make vxi_11 behave more like we expect + +import exceptions +import vxi_11 + +class VXIDevice(object): + def __init__(self, host, device): + self.v = vxi_11.vxi_11_connection(host, device = device) + + def flush(self, timeout = None): + pass + + def write(self, data): + err, base = self.v.write(data) + if err != 0: + raise exceptions.IOError("Error writing " + str(err)) + + def read(self, timeout = None): + if timeout != None: + timeout = int(timeout * 1000.0) # Convert to msec + + err, reason, result = self.v.read(timeout) + if err != 0: + raise exceptions.IOError("Error reading %d, reason %d" % (err, reason)) + return result