# HG changeset patch # User Daniel O'Connor # Date 1727421823 -34200 # Node ID 84f96c5fe79101a1d09a420b203941af75e13ebf # Parent 47da95b31dcb955eab4b098c79feeb91c33d997c 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. diff -r 47da95b31dcb -r 84f96c5fe791 rsib.py --- 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]