summaryrefslogtreecommitdiff
path: root/wasp
diff options
context:
space:
mode:
authorDaniel Thompson <daniel@redfelineninja.org.uk>2020-04-11 19:15:20 (GMT)
committerDaniel Thompson <daniel@redfelineninja.org.uk>2020-04-11 19:15:20 (GMT)
commitaf1379806c5ccd938b8f310b949ef265a6d8def0 (patch)
treeff909ec0e7162e29a642ad226cef3b99d4c7c019 /wasp
parentf68eb610c5d77bb71d3952e0dc9ca70a472ebfae (diff)
wasp: simulator: Use Tab to replicate the physical button
Diffstat (limited to 'wasp')
-rw-r--r--wasp/boards/simulator/display.py14
-rw-r--r--wasp/boards/simulator/machine.py9
2 files changed, 17 insertions, 6 deletions
diff --git a/wasp/boards/simulator/display.py b/wasp/boards/simulator/display.py
index c226050..bafb632 100644
--- a/wasp/boards/simulator/display.py
+++ b/wasp/boards/simulator/display.py
@@ -77,8 +77,8 @@ class CST816SSim():
def __init__(self):
self.regs = bytearray(64)
- def readfrom_mem_into(self, addr, reg, dbuf):
- tick()
+ def readfrom_mem_into(self, addr, reg, dbuf, pins):
+ tick(pins)
if not self.regs[1]:
raise OSError
@@ -127,7 +127,7 @@ sdl2.ext.fill(windowsurface, (0, 0, 0))
spi_st7789_sim = ST7789Sim()
i2c_cst816s_sim = CST816SSim()
-def tick():
+def tick(pins):
events = sdl2.ext.get_events()
for event in events:
if event.type == sdl2.SDL_QUIT:
@@ -136,7 +136,13 @@ def tick():
elif event.type == sdl2.SDL_MOUSEBUTTONDOWN:
i2c_cst816s_sim.handle_mousebutton(event.button)
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:
#print(event)
pass
diff --git a/wasp/boards/simulator/machine.py b/wasp/boards/simulator/machine.py
index 2fc9754..1a5cf46 100644
--- a/wasp/boards/simulator/machine.py
+++ b/wasp/boards/simulator/machine.py
@@ -20,11 +20,16 @@ class Pin(object):
IN = 'IN'
OUT = 'OUT'
+ pins = {}
+
def __init__(self, id, direction, value=1, quiet=False):
self._id = id
self._value = 0
self._quiet = quiet
+ # Update the pin registry
+ self.pins[id] = self
+
def init(self, d, value):
self.value(value)
@@ -81,7 +86,7 @@ class I2C():
def readfrom_mem_into(self, addr, reg, dbuf):
if self.sim:
- self.sim.readfrom_mem_into(addr, reg, dbuf)
+ self.sim.readfrom_mem_into(addr, reg, dbuf, Pin.pins)
else:
raise OSError
@@ -107,7 +112,7 @@ class Timer():
self.time()
def lightsleep(ms=10):
- display.tick()
+ display.tick(Pin.pins)
time.sleep(ms / 1000)
def deepsleep(ms=10):