def dataReceived(self, data): """parse received data into packets.""" log.debug(hexdump(data)) self.resetTimeout() self.data += data try: packet = Packet.packetize(self.data) except Packet.NeedMoreData: return except Packet.UnknownPacketType as err: log.debug(str(err)) self.data = self.data[2:] else: self.handle_packet(packet) db.save_packet(packet) self.data = self.data[len(packet):]
def keyframeReceived(self, keyframe, key_frame_id): """parse received key frame into packets; a key frame represents the current state.""" db.save_key_frame(keyframe, key_frame_id) offset = 0 totlen = len(keyframe) while offset < totlen: try: packet = Packet.packetize(keyframe[offset:]) except Packet.UnknownPacketType as err: log.debug(str(err)) offset += 2 else: if type(packet) == Packet.SystemEvent: try: self.factory.create_firebase_ref( packet.get_event_type()) except Packet.UnknownEventType as err: log.info(str(err)) self.update_state(packet) db.save_packet(packet) offset += len(packet)