From 948454a33b267e47e064675211849f9526cbeaa9 Mon Sep 17 00:00:00 2001 From: Daniel Thompson Date: Fri, 6 Mar 2020 21:09:43 +0000 Subject: wasp: cst816s: Initial PoC driver diff --git a/wasp/drivers/cst816s.py b/wasp/drivers/cst816s.py new file mode 100644 index 0000000..5157650 --- /dev/null +++ b/wasp/drivers/cst816s.py @@ -0,0 +1,30 @@ +"""Hynitron CST816S touch contoller driver for MicroPython.""" + +import watch + +class CST816S: + """Hynitron CST816S I2C touch controller driver.""" + + def __init__(self): + self.dbuf = bytearray(6) + pass + + def get_event(self, queue): + """Receive a touch event. + + Check for a pending touch event and, if an event is pending, + prepare it ready to go in the event queue. + + :return: True if an event is received, False otherwise. + """ + dbuf = self.dbuf + + try: + watch.i2c.readfrom_mem_into(21, 1, dbuf) + except OSError: + return False + + queue[0] = dbuf[0] + queue[1] = ((dbuf[2] & 0xf) << 8) + dbuf[3] + queue[2] = ((dbuf[4] & 0xf) << 8) + dbuf[5] + return True -- cgit v0.10.2