Skip to content

Commit 6b7899a

Browse files
committed
update code
1 parent 562ce24 commit 6b7899a

File tree

1 file changed

+18
-11
lines changed
  • CircuitPython_KeyPad_Calculator/code

1 file changed

+18
-11
lines changed

CircuitPython_KeyPad_Calculator/code/code.py

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ def lookup(layer, key_number):
5959
HEIGHT = 64
6060

6161
display = adafruit_displayio_sh1107.SH1107(display_bus, width=WIDTH, height=HEIGHT, rotation=180)
62+
display.auto_refresh = False
6263

6364
font = bitmap_font.load_font("/digit-16px.pcf")
6465
text_area = label.Label(font, text=" ", line_spacing=0.95)
@@ -82,31 +83,31 @@ class Calculator:
8283
def __init__(self):
8384
self._number1 = N("0")
8485
self._number2 = None
85-
self.trail = []
86+
self.trail = ["Ready."]
8687
self.entry = ""
8788
self.op = None
8889
self.keyboard = None
8990
self.keyboard_layout = None
9091

91-
def paste(text):
92+
def paste(self, text):
9293
if self.keyboard is None:
9394
if usb_hid:
9495
self.keyboard = Keyboard(usb_hid.devices)
95-
self.keyboard_layout = KeyboardLayoutUS(keyboard)
96+
self.keyboard_layout = KeyboardLayoutUS(self.keyboard)
9697
else:
9798
return
9899

99100
if self.keyboard_layout is None:
100101
self.add_trail(f"No USB")
101102
else:
102103
text = str(text)
103-
keyboard_layout.write(text)
104+
self.keyboard_layout.write(text)
104105

105106
self.add_trail(f"Pasted {text}")
106107

107108

108109
def add_trail(self, msg):
109-
self.trail = self.trail[:3] + [str(msg)]
110+
self.trail = self.trail[-3:] + [str(msg).upper()]
110111

111112
@property
112113
def number1(self):
@@ -140,9 +141,13 @@ def key_pressed(self, k):
140141
if k == K_CL:
141142
if self.entry:
142143
self.entry = self.entry[:-1]
144+
elif self.op:
145+
print("clear op")
146+
self.op = None
143147
elif self.number2 is None:
144148
self.clear()
145149
else:
150+
print("clear entry - op = ", self.op)
146151
self.clear_entry()
147152

148153
if len(k) == 1 and k in "0123456789":
@@ -154,9 +159,9 @@ def key_pressed(self, k):
154159

155160
if k == K_PA:
156161
if self.number2 is not None:
157-
paste(self.number2)
162+
self.paste(self.number2)
158163
else:
159-
paste(self.number1)
164+
self.paste(self.number1)
160165

161166
if k == "=":
162167
self.do_binary_op(0)
@@ -190,8 +195,6 @@ def do_binary_op(self, i):
190195
self.clear_entry()
191196

192197
def show(self):
193-
display.auto_refresh = False
194-
195198
rows = [""] * 4
196199
trail = self.trail
197200
if len(trail) > 0:
@@ -203,10 +206,11 @@ def show(self):
203206

204207
entry_or_number = self.entry or self.number2
205208
cursor = ' :' if (self.number2 is None or self.entry != "") else ""
206-
rows[-1] = f"{self.op or ''}{entry_or_number or ''}{cursor}"
209+
op = self.op or ''
210+
op = 'd' if op == '/' else op
211+
rows[-1] = f"{op}{entry_or_number or ''}{cursor}"
207212
for r in rows: print(r)
208213
text_area.text = "\n".join(rows)
209-
display.auto_refresh = True
210214

211215
km=keypad.KeyMatrix(row_pins=(board.A2, board.A1, board.A3, board.A0, board.D0), column_pins=(board.D25, board.D11, board.D12, board.D24))
212216

@@ -229,3 +233,6 @@ def show(self):
229233
elif ev.released:
230234
if key == K_FN:
231235
layer = 0
236+
237+
else:
238+
display.refresh()

0 commit comments

Comments
 (0)