Mercurial > ~darius > hgwebdir.cgi > pyinst
diff rsib.py @ 26:226ea06bc050
Use "new" style exceptions.
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Wed, 21 Sep 2011 14:54:34 +0930 |
parents | 6e7619f2dffd |
children | 91b476ebc0f2 |
line wrap: on
line diff
--- a/rsib.py Thu Aug 25 16:46:34 2011 +0930 +++ b/rsib.py Wed Sep 21 14:54:34 2011 +0930 @@ -76,13 +76,17 @@ MSG_CMDREP = 0x80 # Reply from the instrument to us MSG_CMD = 0x90 # Command to the instrument MSG_SRQ = 0x91 # Query SRQ + +import exceptions import socket class RSIBDevice(object): hello = '\x00\x00\x00\x40' docmd = '\x00\x00\x00\x05\x90\x00\x01' - def __init__(self, host, port = 2525): + def __init__(self, host, port = None): + if port == None: + port = 2525 self.host = host self.port = port @@ -94,7 +98,7 @@ while len(rx) < 8: rx = rx + s1.recv(8) if rx == '': - raise "EOF from device" + raise exceptions.IOError("EOF from device") s2 = socket.socket() s2.settimeout(5) @@ -110,7 +114,7 @@ self.s1.settimeout(timeout) if len(cmd) > 0x99: - raise "Command too long" + raise exceptions.ValueError("Command too long") # Pre-increment for easy comparison in read self.tag = (self.tag + 1) & 0xff @@ -127,15 +131,15 @@ while len(rx) < 7: rx = self.s1.recv(7) if rx == '': - raise "EOF from device" + raise exceptions.IOError("EOF from device") if self.tag != ord(rx[6]): - raise "Reply out of order, got 0x%02x expected 0x%02x" % (ord(rx[6]), self.tag) + raise exceptions.IOError("Reply out of order, got 0x%02x expected 0x%02x" % (ord(rx[6]), self.tag)) rxlen = ord(rx[0]) << 24 | ord(rx[1]) << 16 | ord(rx[2]) << 8 | ord(rx[3]) - print "Msg ID 0x%02x" % (ord(rx[4])) + #print "Msg ID 0x%02x" % (ord(rx[4])) if False and ord(rx[4]) != MSG_CMDREP: - raise "Unexpected Msg ID 0x%02x" % (ord(rx[4])) + raise exceptions.IOError("Unexpected Msg ID 0x%02x" % (ord(rx[4]))) if ord(rx[5]) != 0: print "Mystery byte %d != 0" % (ord(rx[5])) @@ -144,7 +148,7 @@ while len(reply) < rxlen: rx = self.s1.recv(rxlen) if rx == '': - raise "EOF from device" + raise exceptions.IOError("EOF from device") reply += rx return(reply) @@ -157,12 +161,12 @@ while len(reply) < 7: rx = self.s2.recv(7) if rx == '': - raise "EOF from device" + raise exceptions.IOError("EOF from device") reply += rx # '\x00\x00\x00\x00\x80\x04\x01' => STB = 4 if rx[4] != '\x80': - raise "Incorrect Msg ID in response to STB query" + raise exceptions.IOError("Incorrect Msg ID in response to STB query") return ord(rx[5]) @@ -176,7 +180,7 @@ while len(reply) < 7: rx = self.s2.recv(7) if rx == '': - raise "EOF from device" + raise exceptions.IOError("EOF from device") reply += rx # 00 00 00 00 80 14 08 - SRQ = 0 @@ -186,4 +190,4 @@ elif rx == '\x00\x00\x00\x00\xa0\x64\x07': return True else: - raise "Unknown SRQ byte sequence - " + str(map(ord, rx)) + raise exceptions.IOError("Unknown SRQ byte sequence - " + str(map(ord, rx)))