Mercurial > ~darius > hgwebdir.cgi > pyinst
diff rsib.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 | 576f112e0aba |
children |
line wrap: on
line diff
--- a/rsib.py Fri Sep 27 16:50:42 2024 +0930 +++ b/rsib.py Fri Sep 27 16:53:43 2024 +0930 @@ -53,7 +53,7 @@ # 01 00 ? # 02 00 ? # 03 05 Length -# 04 90 MsgID +# 04 94 MsgID # 05 00 ? # 06 03 Seq number # 07 2a (*) Cmd byte 0 @@ -65,6 +65,9 @@ # Interactive program seems to cap length at 0x99 but perhaps the # first 4 bytes are length. # +# MsgID is 0x94 but 0x90 works but then we get "Query UNTERMINATED" +# from SYS:ERR? Could be EoM bit. +# # Reply to command: # <- 00 00 00 23 80 00 01 52 6f 68 ... # @@ -78,7 +81,6 @@ # 06 01 Seq number MSG_HELLO = 0x40 # We send this on connect -MSG_CMD = 0x90 # Command to the instrument MSG_SRQ = 0x91 # Query SRQ import socket @@ -122,7 +124,7 @@ # Pre-increment for easy comparison in read self.tag = (self.tag + 1) & 0xff - msg = b'\x00\x00\x00' + bytes([len(cmd)]) + b'\x90\x00' + bytes([self.tag]) + cmd.encode('ascii') + msg = b'\x00\x00\x00' + bytes([len(cmd)]) + b'\x94\x00' + bytes([self.tag]) + cmd.encode('ascii') self.s1.send(msg) def read(self, timeout = 0.5): @@ -177,7 +179,7 @@ self.write(s) return self.read(timeout = timeout) - def queryrsb(self): + def querystb(self): msg = b'\x00\x00\x00\x00\xd1\x18\x00' self.s2.send(msg) @@ -189,7 +191,7 @@ reply += rx # '\x00\x00\x00\x00\x80\x04\x01' => STB = 4 - if rx[4] != b'\x80': + if rx[4] != 0x80: raise IOError("Incorrect Msg ID in response to STB query") return rx[5]