1
0
Fork 0

wasp: simulator: Use Tab to replicate the physical button

This commit is contained in:
Daniel Thompson 2020-04-11 20:15:20 +01:00
parent f68eb610c5
commit af1379806c
2 changed files with 17 additions and 6 deletions

View file

@ -77,8 +77,8 @@ class CST816SSim():
def __init__(self): def __init__(self):
self.regs = bytearray(64) self.regs = bytearray(64)
def readfrom_mem_into(self, addr, reg, dbuf): def readfrom_mem_into(self, addr, reg, dbuf, pins):
tick() tick(pins)
if not self.regs[1]: if not self.regs[1]:
raise OSError raise OSError
@ -127,7 +127,7 @@ sdl2.ext.fill(windowsurface, (0, 0, 0))
spi_st7789_sim = ST7789Sim() spi_st7789_sim = ST7789Sim()
i2c_cst816s_sim = CST816SSim() i2c_cst816s_sim = CST816SSim()
def tick(): def tick(pins):
events = sdl2.ext.get_events() events = sdl2.ext.get_events()
for event in events: for event in events:
if event.type == sdl2.SDL_QUIT: if event.type == sdl2.SDL_QUIT:
@ -136,7 +136,13 @@ def tick():
elif event.type == sdl2.SDL_MOUSEBUTTONDOWN: elif event.type == sdl2.SDL_MOUSEBUTTONDOWN:
i2c_cst816s_sim.handle_mousebutton(event.button) i2c_cst816s_sim.handle_mousebutton(event.button)
elif event.type == sdl2.SDL_KEYDOWN: elif event.type == sdl2.SDL_KEYDOWN:
i2c_cst816s_sim.handle_key(event.key) if event.key.keysym.sym == sdl2.SDLK_TAB:
pins['BUTTON'].value(0)
else:
i2c_cst816s_sim.handle_key(event.key)
elif event.type == sdl2.SDL_KEYUP:
if event.key.keysym.sym == sdl2.SDLK_TAB:
pins['BUTTON'].value(1)
else: else:
#print(event) #print(event)
pass pass

View file

@ -20,11 +20,16 @@ class Pin(object):
IN = 'IN' IN = 'IN'
OUT = 'OUT' OUT = 'OUT'
pins = {}
def __init__(self, id, direction, value=1, quiet=False): def __init__(self, id, direction, value=1, quiet=False):
self._id = id self._id = id
self._value = 0 self._value = 0
self._quiet = quiet self._quiet = quiet
# Update the pin registry
self.pins[id] = self
def init(self, d, value): def init(self, d, value):
self.value(value) self.value(value)
@ -81,7 +86,7 @@ class I2C():
def readfrom_mem_into(self, addr, reg, dbuf): def readfrom_mem_into(self, addr, reg, dbuf):
if self.sim: if self.sim:
self.sim.readfrom_mem_into(addr, reg, dbuf) self.sim.readfrom_mem_into(addr, reg, dbuf, Pin.pins)
else: else:
raise OSError raise OSError
@ -107,7 +112,7 @@ class Timer():
self.time() self.time()
def lightsleep(ms=10): def lightsleep(ms=10):
display.tick() display.tick(Pin.pins)
time.sleep(ms / 1000) time.sleep(ms / 1000)
def deepsleep(ms=10): def deepsleep(ms=10):