TakwayBoard/takway/board/keyboard.py

38 lines
1.2 KiB
Python
Raw Permalink Normal View History

2024-05-23 01:27:51 +08:00
import keyboard
import time
from takway.board.base_hd import BaseHardware
import datetime
#
class Keyboard(BaseHardware):
def __init__(self, hd_trigger='keyboard', keyboard_key='space', hd_detect_threshold=50):
super().__init__(hd_trigger, hd_detect_threshold)
self.keyboard_key = keyboard_key
self.init_hd_thread()
2024-05-23 16:07:23 +08:00
self.long_power_status = False # 单次触发按键状态
2024-05-23 01:27:51 +08:00
def hd_detection_loop(self):
keyboard_status = False
last_status = False
while True:
'''
keyboard_status = keyboard.is_pressed(self.keyboard_key)
with self.hd_lock:
self.shared_hd_status = keyboard_status
'''
self.shared_hd_status = keyboard.is_pressed(self.keyboard_key)
time.sleep(0.001)
if not self.shared_hd_status and last_status:
2024-05-23 16:07:23 +08:00
self.long_power_status = ~self.long_power_status
if self.long_power_status:
2024-05-23 01:27:51 +08:00
print("Chating mode.")
else:
print("Slience mode.")
print(f"pres time: {datetime.datetime.now()}")
2024-05-23 16:07:23 +08:00
last_status = self.shared_hd_status