File tree Expand file tree Collapse file tree 3 files changed +48
-0
lines changed Expand file tree Collapse file tree 3 files changed +48
-0
lines changed Original file line number Diff line number Diff line change 12
12
from .rfid import RFID
13
13
from .rotary import Rotary
14
14
from .keyboard import Keyboard
15
+ from .matrix_keyboard import MatrixKeyboard
Original file line number Diff line number Diff line change 6
6
"keyboard/asciimap.py" ,
7
7
"button.py" ,
8
8
"ir.py" ,
9
+ "matrix_keyboard.py" ,
9
10
"rfid.py" ,
10
11
"rgb.py" ,
11
12
"rotary.py" ,
Original file line number Diff line number Diff line change
1
+ from .keyboard import Keyboard
2
+ from micropython import schedule
3
+
4
+ class MatrixKeyboard (Keyboard ):
5
+ def __init__ (self ) -> None :
6
+ super ().__init__ ()
7
+ self ._keys = []
8
+ self ._handler = None
9
+
10
+ def get_key (self ) -> int :
11
+ if self ._keys :
12
+ return self ._keys .pop (0 )
13
+ else :
14
+ return None
15
+
16
+ def get_string (self ) -> str :
17
+ return chr (self .get_key ())
18
+
19
+ def is_pressed (self ) -> bool :
20
+ if self ._keys :
21
+ return True
22
+ else :
23
+ return False
24
+
25
+ def set_callback (self , handler ) -> None :
26
+ self ._handler = handler
27
+
28
+ def tick (self ) -> None :
29
+ self .updateKeyList ()
30
+ self .updateKeysState ()
31
+ if self .isChange ():
32
+ if self .isPressed ():
33
+ status = self .keysState ()
34
+ if status .tab :
35
+ self ._keys .append (0x09 )
36
+ elif status .enter :
37
+ self ._keys .append (0x0D )
38
+ elif status .delete :
39
+ self ._keys .append (0x08 )
40
+ elif status .space :
41
+ self ._keys .append (0x20 )
42
+ else :
43
+ for word in status .word :
44
+ self ._keys .append (word )
45
+ if self .is_pressed () and self ._handler :
46
+ schedule (self ._handler , self )
You can’t perform that action at this time.
0 commit comments