Fungerende polling av mtr
This commit is contained in:
parent
06dae8b35b
commit
46a1fb90d4
@ -1,41 +0,0 @@
|
||||
import asyncio
|
||||
import serial_asyncio
|
||||
from rich.console import Console
|
||||
from rich import inspect
|
||||
from datetime import datetime
|
||||
|
||||
import mtrreader
|
||||
import mtrlog
|
||||
|
||||
class OutputProtocol(asyncio.Protocol):
|
||||
def connection_made(self, transport):
|
||||
self.transport = transport
|
||||
print('port opened', transport)
|
||||
transport.serial.rts = False # You can manipulate Serial object via transport
|
||||
transport.write(b'Hello, World!\n') # Write serial data via transport
|
||||
|
||||
def data_received(self, data):
|
||||
print('data received', repr(data))
|
||||
msg = mtrreader.MtrDataMessage(data)
|
||||
inspect(msg)
|
||||
print(mtrlog.MtrLogFormatter.format(self, msg, datetime.now()))
|
||||
if b'\n' in data:
|
||||
self.transport.close()
|
||||
|
||||
def connection_lost(self, exc):
|
||||
print('port closed')
|
||||
self.transport.loop.stop()
|
||||
|
||||
def pause_writing(self):
|
||||
print('pause writing')
|
||||
print(self.transport.get_write_buffer_size())
|
||||
|
||||
def resume_writing(self):
|
||||
print(self.transport.get_write_buffer_size())
|
||||
print('resume writing')
|
||||
|
||||
loop = asyncio.get_event_loop()
|
||||
coro = serial_asyncio.create_serial_connection(loop, OutputProtocol, '/dev/ttyUSB0', baudrate=9600)
|
||||
transport, protocol = loop.run_until_complete(coro)
|
||||
loop.run_forever()
|
||||
loop.close()
|
19
serial_test.py
Normal file
19
serial_test.py
Normal file
@ -0,0 +1,19 @@
|
||||
import serial
|
||||
import mtrreader
|
||||
from rich import inspect
|
||||
import mtrlog
|
||||
from datetime import datetime
|
||||
|
||||
mtr = serial.Serial(port='/dev/ttyUSB0', baudrate=9600, timeout=40)
|
||||
|
||||
def main():
|
||||
data = mtr.read_until(expected='FFFFFFFFFF', size=230)
|
||||
print('START')
|
||||
msg = mtrreader.MtrDataMessage(data)
|
||||
f = mtrlog.MtrLogFormatter
|
||||
print(f.format(f, msg, datetime.now()))
|
||||
print('END')
|
||||
main()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in New Issue
Block a user