Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Интерпретируемые языки _ Асинхронная работа с com-портом

Автор: Тестовтест 9.8.2017, 12:44

Привет всем.
приспичило работать с com-портом в асинхронном режиме. Взял библиотеки asyncio, serial_asyncio и ничего не получается. В примере сказано:

class Output(asyncio.Protocol):
    def connection_made(self, transport):
        self.transport = transport
        print('port opened', transport)
        transport.serial.rts = False
        transport.write(b'hello world\n')

    def data_received(self, data):
        print('data received', repr(data))
        self.transport.close()

    def connection_lost(self, exc):
        print('port closed')
        asyncio.get_event_loop().stop()

loop = asyncio.get_event_loop()
coro = serial.aio.create_serial_connection(loop, Output, '/dev/ttyUSB0', baudrate=115200)
loop.run_until_complete(coro)
loop.run_forever()
loop.close()


я пока додумался, что connection_made вызывается волшебным образом сам, чуть голову не сломал.
Как это все перевести в функциональное программирование или как можно отправлять ему свои команды и считывать их выполнение?
Спасибо.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)