From e44dd62dbea1f47c13f9883ba57c2485b84c3626 Mon Sep 17 00:00:00 2001 From: Ignacio Martinez Vazquez Date: Fri, 20 Sep 2013 14:16:36 -0300 Subject: [PATCH] Add GPIBVisaDriver.read_block Added a function to receive blocks of data in IEEE488.2 # format --- lantz/visa.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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