summaryrefslogtreecommitdiff
path: root/wasp/boards/simulator/machine.py
diff options
context:
space:
mode:
authorDaniel Thompson <daniel@redfelineninja.org.uk>2020-01-31 19:36:55 (GMT)
committerDaniel Thompson <daniel@redfelineninja.org.uk>2020-01-31 19:36:55 (GMT)
commit262d93c76cca638a832cf21cc44393df31bc7940 (patch)
tree12f510ea19981330d452402c04be01d0023c8c16 /wasp/boards/simulator/machine.py
parente36caf59975b9705aff4f15d6642043aec4f27c6 (diff)
wasp: simulator: First steps towards a simulator
Currently this just traces SPI activity from the ST7789 driver but its a good baseline to start building up test functions from.
Diffstat (limited to 'wasp/boards/simulator/machine.py')
-rw-r--r--wasp/boards/simulator/machine.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/wasp/boards/simulator/machine.py b/wasp/boards/simulator/machine.py
new file mode 100644
index 0000000..2c93770
--- /dev/null
+++ b/wasp/boards/simulator/machine.py
@@ -0,0 +1,54 @@
+class Tracer(object):
+ def __init__(self, *args, **kwargs):
+ print(f'{self.__class__.__name__}.__init__{args} {kwargs}')
+
+ def __getattr__(self, name):
+ if name.upper() == name:
+ return name
+ return lambda *args, **kwargs: print(f'{self.__class__.__name__}.{name}{args} {kwargs}')
+
+class ADC(Tracer):
+ pass
+
+class Pin(object):
+ IN = 'IN'
+ OUT = 'OUT'
+
+ def __init__(self, id, direction, value=1):
+ self._id = id
+ self._value = 0
+
+ def init(self, d, value):
+ self.value(value)
+
+ def on(self):
+ self.value(1)
+
+ def off(self):
+ self.value(0)
+
+ def value(self, v=None):
+ if v is None:
+ return self._value
+ if v:
+ print(self._id + ": on")
+ self._value = False
+ else:
+ print(self._id + ": off")
+ self._value = True
+
+ def __call__(self, v=None):
+ self.value(v)
+
+class PWM(Tracer):
+ FREQ_16MHZ = 'FREQ_16MHZ'
+
+class SPI(object):
+ def __init__(self, id):
+ self._id = id
+
+ def init(self, baudrate=1000000, polarity=0, phase=0, bits=8, sck=None, mosi=None, miso=None):
+ pass
+
+ def write(self, buf):
+ print("Sending data: " + str(buf))