Mercurial > ~darius > hgwebdir.cgi > pyinst
diff vxi.py @ 24:6fe43d62c73b
Add a wrapper around vxi_11_connection so it acts like the other classes.
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Thu, 11 Aug 2011 21:20:13 +0930 |
parents | |
children | 12b6a3a0a481 |
line wrap: on
line diff
--- /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 <darius@dons.net.au>. 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