Example #1
0
 def processFilePacket(self, packet):
     print packet.payloadSize
     if self.fileSize is None:
         self.fileBuf = list()
         print '========= RECEIVINT FILE =============='
         self.fileSize = packet.totalMsgSize
         self.tester = BandwidthTester()
     self.fileSize -= packet.payloadSize
     self.fileBuf.append(packet.payload)
     self.tester.bandwithCalc(packet.payloadSize)
     if self.fileSize == 0:
         self.fileSize = None
         self.tester = None
         for buf in self.fileBuf:
             print buf
         with open('./video/' + self.fileName, 'a') as f:
             for buf in self.fileBuf:
                 f.write(buf)
             self.fileBuf = list()
         self.fileBuf = None
         print '========= ALL FILE ACCEPTED =============='
Example #2
0
class AppClient(Protocol):
    def __init__(self):
        self.buf = ''
        self.fileBuf = None
        self.nameList = []
        self.fileSize = None
        self.fileName = ''
        self.streamSize= None
        self.streamStart= None
        self.inputPanel = InputPanel(self, None)
        self.tester = None

    def connectionMade(self):
        self.inputPanel.setCameraPort(self.transport)


    def processFilePacket(self, packet):
        print packet.payloadSize
        if self.fileSize is None:
            self.fileBuf = list()
            print '========= RECEIVINT FILE =============='
            self.fileSize = packet.totalMsgSize
            self.tester = BandwidthTester()
        self.fileSize -= packet.payloadSize
        self.fileBuf.append(packet.payload)
        self.tester.bandwithCalc(packet.payloadSize)
        if self.fileSize == 0:
            self.fileSize = None
            self.tester = None
            for buf in self.fileBuf:
                print buf
            with open('./video/' + self.fileName, 'a') as f:
                for buf in self.fileBuf:
                    f.write(buf)
                self.fileBuf = list()
            self.fileBuf = None
            print '========= ALL FILE ACCEPTED =============='

    def processListPacket(self, packet):
        if self.fileSize is None:
            self.nameList = list()
            self.fileBuf = ''
            print '========= RECEIVINT LIST =============='
            self.fileSize = packet.totalMsgSize
        self.fileSize -= packet.payloadSize
        self.fileBuf += packet.payload
        if self.fileSize == 0:
            self.fileSize = None
            for name in getFileListFromPayload(self.fileBuf):
                print name
                self.nameList.append(name)
            self.fileBuf = None
            self.inputPanel.setNameList(self.nameList)
            print '========= ALL LIST ACCEPTED =============='

    def processVideoStreamingPacket(self, packet):
        now = time.time()
        if self.streamStart is None:
            self.streamStart = now
            self.streamSize = 0
        self.streamSize += packet.payloadSize
        if now - self.streamStart > 1:
            print '====== Streaming Rate: %.4f MB/s =======' %((self.streamSize)/(now-self.streamStart)/float(1024* 1024))
            self.streamSize = 0
            self.streamStart = now



    def processPacket(self, packetList, cameraPort):
        for packet in packetList:
            if isinstance(packet, FilePacket):
                self.processFilePacket(packet)
            elif isinstance(packet, FileListPacket):
                self.processListPacket(packet)
            elif isinstance(packet, VideoStreamingPacket):
                self.processVideoStreamingPacket(packet)
            elif isinstance(packet, HelloAckPacket):
                print '===== ack recevied from server, connected with server ===='
            elif isinstance(packet, HelloErrPacket):
                print '===== target camera not online ===='
            elif isinstance(packet, FileListErrPacket):
                print '==== %s ====' %(packet.payload)


    def checkProcess(self):
        print '=============== receievd %d B ============' %(len(self.buf) )

    def dataReceived(self, data):
        #print '====== received: %s ======' %(data,)
        self.buf += data
        #print '=== in buf size: %s ===' %(len(self.buf))
        packets, self.buf = getAllPacketFromBuf(self.buf)
        time.sleep(0.01)
        if packets:
            self.processPacket(packets, self.transport)
        else:
            print data