36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
|
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()
|
||
|
self.power_status = False # 单次触发按键状态
|
||
|
|
||
|
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:
|
||
|
self.power_status = ~self.power_status
|
||
|
if self.power_status:
|
||
|
print("Chating mode.")
|
||
|
else:
|
||
|
print("Slience mode.")
|
||
|
print(f"pres time: {datetime.datetime.now()}")
|
||
|
last_status = self.shared_hd_status
|