From 38045af68e676cdbc51fbc97c8b2c1c7d73f041d Mon Sep 17 00:00:00 2001 From: Cefn Hoile Date: Fri, 16 Feb 2018 21:27:32 +0000 Subject: [PATCH] Reimplementation of corresponding circuitpython version --- python/microcontroller/__init__.py | 3 +++ python/microcontroller/esp8266.py | 20 ++++++++++++++++++++ python/microcontroller/pin.py | 3 +++ python/testing/microcontroller.py | 15 +++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 python/microcontroller/__init__.py create mode 100644 python/microcontroller/esp8266.py create mode 100644 python/microcontroller/pin.py create mode 100644 python/testing/microcontroller.py diff --git a/python/microcontroller/__init__.py b/python/microcontroller/__init__.py new file mode 100644 index 0000000..66ce041 --- /dev/null +++ b/python/microcontroller/__init__.py @@ -0,0 +1,3 @@ +import agnostic +if agnostic.platform == "esp8266": + from microcontroller.esp8266 import * \ No newline at end of file diff --git a/python/microcontroller/esp8266.py b/python/microcontroller/esp8266.py new file mode 100644 index 0000000..ff0960f --- /dev/null +++ b/python/microcontroller/esp8266.py @@ -0,0 +1,20 @@ +from mcp import Enum +class Pin(Enum): + def __init__(self, num): + self.num = num + pass +Pin.GPIO0=Pin(0) +Pin.GPIO2=Pin(2) +Pin.GPIO4=Pin(4) +Pin.GPIO5=Pin(5) +Pin.GPIO12=Pin(12) +Pin.GPIO13=Pin(13) +Pin.GPIO14=Pin(14) +Pin.GPIO15=Pin(15) +Pin.GPIO16=Pin(16) + + +class cpu(): + def frequency(self): + from machine import freq + return freq() diff --git a/python/microcontroller/pin.py b/python/microcontroller/pin.py new file mode 100644 index 0000000..73cba87 --- /dev/null +++ b/python/microcontroller/pin.py @@ -0,0 +1,3 @@ +from microcontroller import Pin +for key,val in Pin.iteritems(): + globals()[key]=val \ No newline at end of file diff --git a/python/testing/microcontroller.py b/python/testing/microcontroller.py new file mode 100644 index 0000000..23e1347 --- /dev/null +++ b/python/testing/microcontroller.py @@ -0,0 +1,15 @@ +import unittest +import agnostic + + +class TestMicrocontrollerModule(unittest.TestCase): + + + def test_pins_exist(self): + import microcontroller + import microcontroller.pin as pin + entries = [getattr(pin, key) for key in dir(pin)] + # is this filter line needed? any other types valid in pin module? + entries = list(filter(lambda val: type(val) is microcontroller.Pin, entries)) + if agnostic.platform == "esp8266": + self.assertTrue(len(entries) == 10) \ No newline at end of file -- 2.49.0