Exemple #1
0
    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
Exemple #2
0
 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)