diff options
Diffstat (limited to 'wasp')
| -rw-r--r-- | wasp/boards/simulator/display.py | 14 | ||||
| -rw-r--r-- | wasp/boards/simulator/machine.py | 9 |
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): |
