MCPcopy Create free account
hub / github.com/LabPy/lantz / recv

Method recv

lantz/drivers/legacy/usbtmc.py:180–208  ·  view source on GitHub ↗
(self, termination=None, encoding=None, recv_chunk=None)

Source from the content-addressed store, hash-verified

178 send.__doc__ = TextualMixin.send.__doc__
179
180 def recv(self, termination=None, encoding=None, recv_chunk=None):
181
182 termination = termination or self.RECV_TERMINATION
183 encoding = encoding or self.ENCODING
184 recv_chunk = recv_chunk or self.RECV_CHUNK
185
186 eom = False
187
188 received = self._received
189
190 while not (termination in received or eom):
191 self._btag = (self._btag % 255) + 1
192
193 req = BulkInMessage.build_array(self._btag, recv_chunk, None)
194
195 self.raw_send(req)
196
197 resp = self.raw_recv(recv_chunk)
198
199 response = BulkInMessage.from_bytes(resp)
200
201 received += str(response.data, encoding)
202 eom = response.transfer_attributes & 1
203
204 self.log_debug('Received {!r} (len={})', received, len(received))
205
206 received, self._received = received.split(termination, 1)
207
208 return received
209
210 recv.__doc__ = TextualMixin.recv.__doc__
211

Callers

nothing calls this directly

Calls 5

from_bytesMethod · 0.80
log_debugMethod · 0.80
build_arrayMethod · 0.45
raw_sendMethod · 0.45
raw_recvMethod · 0.45

Tested by

no test coverage detected