Skip to content

Commit 515a113

Browse files
committed
more logs
1 parent dbcaf07 commit 515a113

File tree

1 file changed

+75
-45
lines changed

1 file changed

+75
-45
lines changed

keyboard/__init__.py

Lines changed: 75 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -64,19 +64,16 @@
6464
___, ___, ___, ___, ___, ___, ___, ___
6565
),
6666
)
67-
# fmt: on
6867

6968
KEY_NAME = (
70-
'ESC', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', 'BACKSPACE',
71-
'TAB', 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '[', ']', '|',
72-
'CAPS', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ';', '"', 'ENTER',
73-
'LSHIFT','Z', 'X', 'C', 'V', 'B', 'N', 'M', ',', '.', '/', 'RSHIFT',
74-
'LCTRL', 'LGUI', 'LALT', 'SPACE', 'RALT', 'MENU', 'FN', 'RCTRL'
69+
'ESC', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', 'BACKSPACE',
70+
'|', ']', '[', 'P', 'O', 'I', 'U', 'Y', 'T', 'R', 'E', 'W', 'Q', 'TAB', 'CAPS',
71+
'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ';', '"', 'ENTER',
72+
'RSHIFT', '/', '.', ',', 'M', 'N', 'B', 'V', 'C', 'X', 'Z', 'LSHIFT',
73+
'LCTRL', 'LGUI', 'LALT', 'SPACE', 'RALT', 'MENU', 'FN', 'RCTRL'
7574
)
75+
# fmt: on
7676

77-
def get_name(key):
78-
key = COORDS[key]
79-
return KEY_NAME[key]
8077

8178
@micropython.asm_thumb
8279
def mem(r0):
@@ -258,6 +255,36 @@ def stop_advertising(self):
258255
except Exception as e:
259256
print(e)
260257

258+
def get_key_sequence_info(self, start, end):
259+
"""Get the info from a sequence of key events"""
260+
matrix = self.matrix
261+
event = matrix.view(start - 1)
262+
key = event & 0x7F
263+
desc = KEY_NAME[key]
264+
if event < 0x80:
265+
desc += ' \\ '
266+
t0 = matrix.get_keydown_time(key)
267+
else:
268+
desc += ' / '
269+
t0 = matrix.get_keyup_time(key)
270+
271+
t = []
272+
for i in range(start, end):
273+
event = matrix.view(i)
274+
key = event & 0x7F
275+
desc += KEY_NAME[key]
276+
if event < 0x80:
277+
desc += ' \\ '
278+
t1 = matrix.get_keydown_time(key)
279+
else:
280+
desc += ' / '
281+
t1 = matrix.get_keyup_time(key)
282+
dt = matrix.ms(t1 - t0)
283+
t0 = t1
284+
t.append(dt)
285+
286+
return desc, t
287+
261288
def is_tapping_key(self, key):
262289
"""Check if the key is tapped (press & release quickly)"""
263290
matrix = self.matrix
@@ -277,44 +304,36 @@ def is_tapping_key(self, key):
277304
# --+-------+-------+-------+------> t
278305
# | dt1 |
279306
# dt1 < tap_delay
280-
new_key &= 0x7F
281-
new_key_name = get_name(new_key)
282-
key_name = get_name(key)
283-
print('Tap - {} \\ {} \\ {} /'.format(new_key_name, key_name, new_key_name))
284-
dt0 = matrix.get_keydown_time(key) - matrix.get_keydown_time(new_key)
285-
dt1 = matrix.get_keyup_time(new_key) - matrix.get_keydown_time(key)
286-
print(' dt0 = {}, dt1 = {}'.format(dt0, dt1))
307+
if self.verbose:
308+
desc, t = self.get_key_sequence_info(-1, n)
309+
print(desc)
310+
print(t)
287311
return True
288312

289313
if n == 1:
290314
n = matrix.wait(
291315
self.fast_type_thresh
292316
- matrix.ms(matrix.time() - matrix.get_keydown_time(new_key))
293317
)
294-
if n >= 2:
295-
if target == matrix.view(1):
296-
# Fast Typing - B is a tap-key
297-
# B↓ C↓ B↑ C↑
298-
# --+-------+-------+-------+------> t
299-
# | dt1 | dt2 |
300-
# dt1 < tap_delay && dt2 < fast_type_thresh
301-
new_key = matrix.view(0) & 0x7F
302-
new_key_name = get_name(new_key)
303-
key_name = get_name(key)
304-
self.log('Tap - {} \\ {} \\ {} /'.format(key_name, new_key_name, key_name))
305-
dt1 = matrix.get_keydown_time(new_key) - matrix.get_keydown_time(key)
306-
dt2 = matrix.get_keyup_time(key) - matrix.get_keydown_time(new_key)
307-
self.log(' dt1 = {}, dt2 = {}'.format(dt1, dt2))
308-
return True
318+
if n < 2:
319+
return False
320+
321+
if target == matrix.view(1):
322+
# Fast Typing - B is a tap-key
323+
# B↓ C↓ B↑ C↑
324+
# --+-------+-------+-------+------> t
325+
# | dt1 | dt2 |
326+
# dt1 < tap_delay && dt2 < fast_type_thresh
327+
if self.verbose:
328+
desc, t = self.get_key_sequence_info(-1, n)
329+
print(desc)
330+
print(t)
331+
return True
309332

310-
new_key = matrix.view(0) & 0x7F
311-
if new_key == (matrix.view(1) & 0x7F):
312-
new_key_name = get_name(new_key)
313-
key_name = get_name(key)
314-
self.log('Hold - {} \\ {} \\ {} /'.format(key_name, new_key_name, new_key_name))
315-
dt1 = matrix.get_keydown_time(new_key) - matrix.get_keydown_time(key)
316-
dt2 = matrix.get_keyup_time(new_key) - matrix.get_keydown_time(new_key)
317-
self.log(' dt1 = {}, dt2 = {}'.format(dt1, dt2))
333+
if self.verbose:
334+
desc, t = self.get_key_sequence_info(-1, n)
335+
print(desc)
336+
print(t)
318337

319338
return False
320339

@@ -439,6 +458,7 @@ def run(self):
439458
dev = Device(self)
440459
keys = [0] * matrix.keys
441460
ms = matrix.ms
461+
last_time = 0
442462
while True:
443463
n = matrix.wait()
444464
self.check()
@@ -481,8 +501,11 @@ def run(self):
481501
if action_code < 0xFF:
482502
self.press(action_code)
483503
if self.verbose:
484-
dt = ms(matrix.time() - matrix.get_keydown_time(key))
485-
log("{} {} \\ {} latency {}".format(key, get_name(key), hex(action_code), dt))
504+
keydown_time = matrix.get_keydown_time(key)
505+
dt = ms(matrix.time() - keydown_time)
506+
dt2 = ms(keydown_time - last_time)
507+
last_time = keydown_time
508+
print("{} {} \\ {} latency {} | {}".format(key, KEY_NAME[key], hex(action_code), dt, dt2))
486509
else:
487510
kind = action_code >> 12
488511
if kind < ACT_MODS_TAP:
@@ -562,8 +585,12 @@ def run(self):
562585
log("switch to bt {}".format(i))
563586
self.change_bt(i)
564587

565-
dt = ms(matrix.time() - matrix.get_keydown_time(key))
566-
log("{} \\ {} latency {}".format(key, hex(keys[key]), dt))
588+
if self.verbose:
589+
keydown_time = matrix.get_keydown_time(key)
590+
dt = ms(matrix.time() - keydown_time)
591+
dt2 = ms(keydown_time - last_time)
592+
last_time = keydown_time
593+
print("{} {} \\ {} latency {} | {}".format(key, KEY_NAME[key], hex(action_code), dt, dt2))
567594
else:
568595
action_code = keys[key]
569596
if action_code < 0xFF:
@@ -605,5 +632,8 @@ def run(self):
605632
print(e)
606633

607634
if self.verbose:
608-
dt = ms(matrix.time() - matrix.get_keyup_time(key))
609-
log("{} {} / {} latency {}".format(key, get_name(key), hex(action_code), dt))
635+
keyup_time = matrix.get_keyup_time(key)
636+
dt = ms(matrix.time() - keyup_time)
637+
dt2 = ms(keyup_time - last_time)
638+
last_time = keyup_time
639+
print("{} {} / {} latency {} | {}".format(key, KEY_NAME[key], hex(action_code), dt, dt2))

0 commit comments

Comments
 (0)