Esempio n. 1
0
audioData = b""
bytesSent = 0
lastBytesSent = 0
f = wave.open("/home/pi/Documents/wav.wav", "w")
#hardcoded file format
n_channels = 1
sample_width = 2
framerate = 44100
n_frames = 204800
comp_type = "NONE"
comp_name = "not compressed"
params = (n_channels, sample_width, framerate, n_frames, comp_type, comp_name)
f.setparams(params)


x = com.receiveAudio()
timeFlag = time.time()
while byteNumber < fileSize:
    #valid data
    if x != b"":
        timeFlag = time.time()
        byteNumber = byteNumber + 1
        #valid data
        #append to data
        audioData = audioData + x
        bytesSent = bytesSent + 1
        if bytesSent >= lastBytesSent + 1024:
           lastBytesSent = lastBytesSent + 1024
           print(lastBytesSent)
                
    x = com.receiveAudio()
Esempio n. 2
0
def main():
    # Setup logging
    logger = logging.getLogger('control')
    logger.setLevel(logging.DEBUG)
    filehandler = logging.FileHandler('main.log')
    filehandler.setLevel(logging.DEBUG)
    console = logging.StreamHandler()
    console.setLevel(logging.DEBUG)
    formatter = logging.Formatter(
        '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    filehandler.setFormatter(formatter)
    console.setFormatter(formatter)
    logger.addHandler(filehandler)
    logger.addHandler(console)

    # Connect to xBee
    com = Communication(COM_CONNECTION_STRING, 0.1)
    logger.debug("Connected to wireless communication transceiver")

    #Wait to receive file
    logger.debug("Waiting to receive file")
    f = wave.open("receivedWavFile.wav", "w")

    #hardcoded file format
    n_channels = 1
    sample_width = 2
    framerate = 44100
    n_frames = 204800
    comp_type = "NONE"
    comp_name = "not compressed"

    params = (n_channels, sample_width, framerate, n_frames, comp_type,
              comp_name)
    f.setparams(params)

    audioData = b""
    x = com.receiveAudio()
    #iterate over file size
    #100 frames
    bytesSent = 0
    lastBytesSent = 0
    byteNumber = 0
    fileSize = n_frames * sample_width * n_channels
    timeout = 20

    timeFlag = time.time()
    while byteNumber < fileSize:
        #valid data
        if x != b"":
            timeFlag = time.time()
            byteNumber = byteNumber + 1
            #valid data
            #append to data
            audioData = audioData + x
            bytesSent = bytesSent + 1
            if bytesSent >= lastBytesSent + 1024:
                lastBytesSent = lastBytesSent + 1024
                logger.debug(bytesSent)

        x = com.receiveAudio()
        if (timeFlag + timeout < time.time()):
            logger.debug("Timeout")
            break

    #transmission finished, write to file
    f.writeframesraw(audioData)
    f.close()

    # Program end
    logger.debug("Finished program.")
    sys.exit(0)