import asyncio from LCD import LCD class display: def __init__(self, width=20, height=4, i2c_addr=0x27): self.width = width self.height = height self.device = LCD(2, i2c_addr, True) self.contents = [""] * self.height async def redraw(self, row = None): if row == None: for row, line in enumerate(self.contents): await self.device.async_message(row + 1, line) else: await self.device.async_message(row + 1, self.contents[row]) async def read(self, row): return self.contents[row] async def write(self, row, data, offset = 0): self.contents[row] = f'{self.contents[row][:offset]}{data}{self.contents[row][offset+len(data):]}' await self.redraw(row)