12
12
from micropython import const
13
13
from adafruit_bus_device import spi_device
14
14
15
+
16
+ try :
17
+ """Needed for type annotations"""
18
+ from typing import Any , List
19
+ from digitalio import DigitalInOut
20
+ from busio import SPI
21
+ except ImportError :
22
+ pass
23
+
15
24
__version__ = "0.0.0+auto.0"
16
25
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_EPD.git"
17
26
21
30
class Adafruit_MCP_SRAM_View :
22
31
"""An interface class that turns an SRAM chip into something like a memoryview"""
23
32
24
- def __init__ (self , sram , offset ) :
33
+ def __init__ (self , sram : int , offset : int ) -> None :
25
34
self ._sram = sram
26
35
self ._offset = offset
27
36
self ._buf = [0 ]
28
37
29
- def __getitem__ (self , i ) :
38
+ def __getitem__ (self , i : int ) -> Any :
30
39
return self ._sram .read (self ._offset + i , 1 )[0 ]
31
40
32
- def __setitem__ (self , i , val ) :
41
+ def __setitem__ (self , i : int , val : Any ) -> None :
33
42
self ._buf [0 ] = val
34
43
self ._sram .write (self ._offset + i , self ._buf )
35
44
@@ -43,7 +52,7 @@ class Adafruit_MCP_SRAM:
43
52
SRAM_RDSR = 0x05
44
53
SRAM_WRSR = 0x01
45
54
46
- def __init__ (self , cs_pin , spi ):
55
+ def __init__ (self , cs_pin : DigitalInOut , spi : SPI ):
47
56
# Handle hardware SPI
48
57
self ._spi = spi_device .SPIDevice (spi , cs_pin , baudrate = 8000000 )
49
58
self .spi_device = spi
@@ -54,11 +63,11 @@ def __init__(self, cs_pin, spi):
54
63
with self ._spi as spidev :
55
64
spidev .write (self ._buf , end = 2 ) # pylint: disable=no-member
56
65
57
- def get_view (self , offset ) :
66
+ def get_view (self , offset : int ) -> Adafruit_MCP_SRAM_View :
58
67
"""Create an object that can be used as a memoryview, with a given offset"""
59
68
return Adafruit_MCP_SRAM_View (self , offset )
60
69
61
- def write (self , addr , buf , reg = SRAM_WRITE ):
70
+ def write (self , addr : int , buf : List , reg = SRAM_WRITE ):
62
71
"""write the passed buffer to the passed address"""
63
72
self ._buf [0 ] = reg
64
73
self ._buf [1 ] = (addr >> 8 ) & 0xFF
@@ -68,7 +77,7 @@ def write(self, addr, buf, reg=SRAM_WRITE):
68
77
spi .write (self ._buf , end = 3 ) # pylint: disable=no-member
69
78
spi .write (bytearray (buf )) # pylint: disable=no-member
70
79
71
- def read (self , addr , length , reg = SRAM_READ ):
80
+ def read (self , addr : int , length : int , reg : int = SRAM_READ ):
72
81
"""read passed number of bytes at the passed address"""
73
82
self ._buf [0 ] = reg
74
83
self ._buf [1 ] = (addr >> 8 ) & 0xFF
@@ -80,24 +89,24 @@ def read(self, addr, length, reg=SRAM_READ):
80
89
spi .readinto (buf ) # pylint: disable=no-member
81
90
return buf
82
91
83
- def read8 (self , addr , reg = SRAM_READ ):
92
+ def read8 (self , addr : int , reg : int = SRAM_READ ):
84
93
"""read a single byte at the passed address"""
85
94
return self .read (addr , 1 , reg )[0 ]
86
95
87
- def read16 (self , addr , reg = SRAM_READ ):
96
+ def read16 (self , addr : int , reg : int = SRAM_READ ):
88
97
"""read 2 bytes at the passed address"""
89
98
buf = self .read (addr , 2 , reg )
90
99
return buf [0 ] << 8 | buf [1 ]
91
100
92
- def write8 (self , addr , value , reg = SRAM_WRITE ):
101
+ def write8 (self , addr : int , value : int , reg : int = SRAM_WRITE ):
93
102
"""write a single byte at the passed address"""
94
103
self .write (addr , [value ], reg )
95
104
96
- def write16 (self , addr , value , reg = SRAM_WRITE ):
105
+ def write16 (self , addr : int , value : int , reg : int = SRAM_WRITE ):
97
106
"""write 2 bytes at the passed address"""
98
107
self .write (addr , [value >> 8 , value ], reg )
99
108
100
- def erase (self , addr , length , value ):
109
+ def erase (self , addr : int , length : int , value : Any ):
101
110
"""erase the passed number of bytes starting at the passed address"""
102
111
self ._buf [0 ] = Adafruit_MCP_SRAM .SRAM_WRITE
103
112
self ._buf [1 ] = (addr >> 8 ) & 0xFF
0 commit comments