84 lines
2.6 KiB
Python
84 lines
2.6 KiB
Python
|
|
import logging
|
||
|
|
from . import epdconfig as config
|
||
|
|
|
||
|
|
class GT_Development:
|
||
|
|
def __init__(self):
|
||
|
|
self.Touch = 0
|
||
|
|
self.TouchpointFlag = 0
|
||
|
|
self.TouchCount = 0
|
||
|
|
self.Touchkeytrackid = [0, 1, 2, 3, 4]
|
||
|
|
self.X = [0, 1, 2, 3, 4]
|
||
|
|
self.Y = [0, 1, 2, 3, 4]
|
||
|
|
self.S = [0, 1, 2, 3, 4]
|
||
|
|
|
||
|
|
class GT1151:
|
||
|
|
def __init__(self):
|
||
|
|
# e-Paper
|
||
|
|
self.ERST = config.EPD_RST_PIN
|
||
|
|
self.DC = config.EPD_DC_PIN
|
||
|
|
self.CS = config.EPD_CS_PIN
|
||
|
|
self.BUSY = config.EPD_BUSY_PIN
|
||
|
|
# TP
|
||
|
|
self.TRST = config.TRST
|
||
|
|
self.INT = config.INT
|
||
|
|
|
||
|
|
def digital_read(self, pin):
|
||
|
|
return config.digital_read(pin)
|
||
|
|
|
||
|
|
def GT_Reset(self):
|
||
|
|
config.digital_write(self.TRST, 1)
|
||
|
|
config.delay_ms(100)
|
||
|
|
config.digital_write(self.TRST, 0)
|
||
|
|
config.delay_ms(100)
|
||
|
|
config.digital_write(self.TRST, 1)
|
||
|
|
config.delay_ms(100)
|
||
|
|
|
||
|
|
def GT_Write(self, Reg, Data):
|
||
|
|
config.i2c_writebyte(Reg, Data)
|
||
|
|
|
||
|
|
def GT_Read(self, Reg, len):
|
||
|
|
return config.i2c_readbyte(Reg, len)
|
||
|
|
|
||
|
|
def GT_ReadVersion(self):
|
||
|
|
buf = self.GT_Read(0x8140, 4)
|
||
|
|
print(buf)
|
||
|
|
|
||
|
|
def GT_Init(self):
|
||
|
|
self.GT_Reset()
|
||
|
|
self.GT_ReadVersion()
|
||
|
|
|
||
|
|
def GT_Scan(self, GT_Dev, GT_Old):
|
||
|
|
buf = []
|
||
|
|
mask = 0x00
|
||
|
|
|
||
|
|
if(GT_Dev.Touch == 1):
|
||
|
|
GT_Dev.Touch = 0
|
||
|
|
buf = self.GT_Read(0x814E, 1)
|
||
|
|
|
||
|
|
if(buf[0]&0x80 == 0x00):
|
||
|
|
self.GT_Write(0x814E, mask)
|
||
|
|
config.delay_ms(10)
|
||
|
|
|
||
|
|
else:
|
||
|
|
GT_Dev.TouchpointFlag = buf[0]&0x80
|
||
|
|
GT_Dev.TouchCount = buf[0]&0x0f
|
||
|
|
|
||
|
|
if(GT_Dev.TouchCount > 5 or GT_Dev.TouchCount < 1):
|
||
|
|
self.GT_Write(0x814E, mask)
|
||
|
|
return
|
||
|
|
|
||
|
|
buf = self.GT_Read(0x814F, GT_Dev.TouchCount*8)
|
||
|
|
self.GT_Write(0x814E, mask)
|
||
|
|
|
||
|
|
GT_Old.X[0] = GT_Dev.X[0];
|
||
|
|
GT_Old.Y[0] = GT_Dev.Y[0];
|
||
|
|
GT_Old.S[0] = GT_Dev.S[0];
|
||
|
|
|
||
|
|
for i in range(0, GT_Dev.TouchCount, 1):
|
||
|
|
GT_Dev.Touchkeytrackid[i] = buf[0 + 8*i]
|
||
|
|
GT_Dev.X[i] = (buf[2 + 8*i] << 8) + buf[1 + 8*i]
|
||
|
|
GT_Dev.Y[i] = (buf[4 + 8*i] << 8) + buf[3 + 8*i]
|
||
|
|
GT_Dev.S[i] = (buf[6 + 8*i] << 8) + buf[5 + 8*i]
|
||
|
|
|
||
|
|
print(GT_Dev.X[0], GT_Dev.Y[0], GT_Dev.S[0])
|
||
|
|
|