using serial port in python3 asyncio

后端 未结 8 2197
长情又很酷
长情又很酷 2021-02-08 09:39

i\'m trying and, so far, failing to use python asyncio to access a serial port.

i\'d really appreciate any tips on using the new python async framework on a simple fd.

8条回答
  •  半阙折子戏
    2021-02-08 10:19

    It's other way using FD

    import asyncio
    import serial
    
    s = serial.Serial('/dev/pts/13', 9600)
    
    
    def test_serial():
        '''
        read a line and print.
        '''
        text = ""
        msg = s.read().decode()
        while (msg != '\n'):
            text += msg
            msg = s.read().decode()
        print(text)
        loop.call_soon(s.write, "ok\n".encode())
    
    loop = asyncio.get_event_loop()
    loop.add_reader(s, test_serial)
    try:
        loop.run_forever()
    except KeyboardInterrupt:
        pass
    finally:
        loop.close()
    

提交回复
热议问题