On 18.02.13 17:12, mikp...@gmail.com wrote:
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

     try:
         os.popen( msg )
     except:
         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).

def write_to_pipe(line):
    hexbytes = ''.join('\\x%02x' % ord(c) for c in line)
    with open('/tmp/mypipe', 'w') as f:
        f.write(hexbytes)


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to