diff --git a/lantz/visa.py b/lantz/visa.py index bdd380d..7a37ea7 100644 --- a/lantz/visa.py +++ b/lantz/visa.py @@ -207,6 +207,23 @@ def raw_recv(self, size): return data + def read_block(self): + """Read a block of data in IEEE488.2 # format + + Read a block of data with the format + # + : number of digits in (ASCII digit) + : number of bytes in (ASCII digits) + """ + header = self.raw_recv(1) + if header != b'#': + raise Exception('Unexpected block header: {}'.format( + str(header[0]))) + nlength = int(self.raw_recv(1)) + length = int(self.raw_recv(nlength)) + return self.raw_recv(length) + + class TCPVisaDriver(MessageVisaDriver): pass