def read(self): """return a Message object, None if invalid message is received""" if (not self._msg_buffer.is_empty()): return self._msg_buffer.dequeue() if (not self._connection): raise Exception("connection not ready, cannot read") data = None try: data = self._connection.recv(self._recv_size) except Exception as e: debug("Read exception: {}".format(e), DEBUG_INTERFACE) if (hasattr(e, 'errno') and getattr(e, 'errno') == 10054): self.reconnect() return None if (data): debug("Received data from {} : {}".format(self._name, data), DEBUG_INTERFACE) try: pmsgs = PMessage.load_messages_from_json(json_str=data) if (pmsgs): for msg in pmsgs: self._msg_buffer.enqueue(msg) return self._msg_buffer.dequeue() except ValidationException as e: debug("Validation exception: {}".format(e.message), DEBUG_VALIDATION) return None
def read(self): if (not self._msg_buffer.is_empty()): return self._msg_buffer.dequeue() try: msg = self.client_sock.recv(2048) debug("BT--Read from Android: %s" % str(msg), DEBUG_INTERFACE) pmsgs = PMessage.load_messages_from_json(json_str=msg) if (pmsgs): for msg in pmsgs: self._msg_buffer.enqueue(msg) return self._msg_buffer.dequeue() except ValidationException as e: debug("Validation exception: {}".format(e.message), DEBUG_VALIDATION) except Exception, e: debug("BT--read exception: %s" % str(e), DEBUG_INTERFACE)