improving performance of writing into a pipe

mikprog at mikprog at
Mon Feb 18 16:12:07 CET 2013

Hi guys,

on an embedded linux system (BeagleBoard) I am writing data coming from bluetooth dongle into a pipe.
The function is the following one:

def write_to_pipe(line):

    # next line ensures that bytes like '0x09' are not translated into '\t' for 
    #example, and they are sent as such
    hexbytes = "\\x" + "\\x".join([hex(ord(c))[2:].zfill(2) for c in line])
    wrap = ["echo -en '", "' > /tmp/mypipe"]
    msg = hexbytes.join(wrap) 
    print "DBG: sending: ", msg
        os.popen( msg )
        print "Error: write_to_pipe has failed!"

Now I typically receive 4 bytes from the bluetooth dongle and that is fine.
However when I receive many more than that it seems that the writing into the pipe is too slow.

Is there any clever/obvious way to improve the code above?
(I am quite sure there is to be honest).

Thanks for any suggestion!

More information about the Python-list mailing list