diff options
| author | Daniel Thompson <daniel@redfelineninja.org.uk> | 2020-01-31 19:36:55 (GMT) |
|---|---|---|
| committer | Daniel Thompson <daniel@redfelineninja.org.uk> | 2020-01-31 19:36:55 (GMT) |
| commit | 262d93c76cca638a832cf21cc44393df31bc7940 (patch) | |
| tree | 12f510ea19981330d452402c04be01d0023c8c16 /wasp/boards/simulator/machine.py | |
| parent | e36caf59975b9705aff4f15d6642043aec4f27c6 (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.py | 54 |
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)) |
