1
0
Fork 0
wasp-os/wasp/drivers/cst816s.py
2020-03-06 21:09:43 +00:00

30 lines
782 B
Python

"""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