From: azao <821478748@qq.com> Date: Fri, 27 Feb 2026 03:45:01 +0000 (+0800) Subject: 修改bug X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=d37c573e79cc5af6d8f09c748644c65607220a97;p=mirrors%2FASR1603_G5.git 修改bug --- diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py index c5ea7e0f..7fe1bfe2 100644 --- a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py +++ b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py @@ -1003,6 +1003,7 @@ class AI_dev(Abstract): self.KeyAI_long_press = 0 self.KeySos_long_press = 0 self.KeyAI_press = 0 + self.last_ai_key_time = 0#让ai按键不要频繁调用 if self.is_wdt == 1: self.wdt = WDT(30) #开启看门狗 # self.wdt_timer = osTimer() @@ -1322,20 +1323,20 @@ class AI_dev(Abstract): interval = 0 try: - # 1. 按键电平判断(硬件低电平按下,根据实际调整) + #按键电平判断 press_level = 0 current_level = self.pwk_key.read_level() if current_level != press_level: return # 非按下状态,直接返回 - # 2. 消抖处理 + #消抖处理 current_time = utime.ticks_ms() if utime.ticks_diff(current_time, self.last_key_time) < self.key_debounce_interval: return self.last_key_time = current_time # 更新最后按键时间 print("pwk 按键按下") - # 3. 仅处理"按下瞬间"事件(避免重复触发) + #仅处理"按下瞬间"事件(避免重复触发) if len(args) < 2: print("args参数不足,跳过") return @@ -1343,7 +1344,7 @@ class AI_dev(Abstract): if self.pwk_key_status != 1: return - # 4. 双击计数逻辑 + #双击计数逻辑 self.pwk_press_count += 1 current_time = utime.ticks_ms() @@ -1364,7 +1365,7 @@ class AI_dev(Abstract): # 计算两次按下间隔 interval = utime.ticks_diff(current_time, self.pwk_first_press_time) - # 2.1 符合双击阈值:执行双击逻辑 + #符合双击阈值:执行双击逻辑 if interval <= self.double_click_threshold: self.pwk_key_timer.stop() # 停止长按定时器(关键:避免触发长按) self.pwk_key_double_press() # 执行双击业务 @@ -1374,7 +1375,7 @@ class AI_dev(Abstract): self.pwk_key_press = 0 self.pwk_key_timer_count = 0 - # 2.2 间隔过长:视为新的第一次按下 + #间隔过长:视为新的第一次按下 else: self.pwk_first_press_time = current_time # 更新首次按下时间 self.pwk_press_count = 1 # 重置为第一次按下 @@ -1449,6 +1450,17 @@ class AI_dev(Abstract): def keyAI_extint_cb(self,args):#call 2 try: #print("AI_btn:keyAI_extint_cb{}".format(args[1])) + #定义最短触发间隔 + MIN_TRIGGER_INTERVAL = 100 # 可根据需求调整,单位ms + #记录上次按键触发时间(初始化放类的__init__里:self.last_ai_key_time = 0) + current_time = utime.ticks_ms() # 获取当前毫秒时间 + #重复按下,直接返回 + if utime.ticks_diff(current_time, self.last_ai_key_time) < MIN_TRIGGER_INTERVAL: + print("AI按键触发过频,忽略本次操作") + return + #更新上次触发时间 + self.last_ai_key_time = current_time + self.KeyAI_status = int(args[1]) if self.KeyAI_status == 0: self.KeyAI_status = 1 @@ -3536,7 +3548,7 @@ class AI_VC(Abstract): if self.VC_mode == 1: #长按对话模式 接收到蓝牙耳机按键事件 - tts_str = "请您按住中间的按钮开始讲话,讲完松开即可 " + tts_str = "请您按住圆形的按钮开始讲话,讲完松开即可 " EventMesh.publish("play_tts",[tts_str,1]) return # if dev_type == "7PIN": @@ -3617,7 +3629,7 @@ class AI_VC(Abstract): if dev_type == "7PIN_BK_EU": self.AI_TTS_str = "Please press and hold the button to speak. " else: - self.AI_TTS_str = "请您按住中间的按钮开始讲话,讲完松开即可 " + self.AI_TTS_str = "请您按住圆形的按钮开始讲话,讲完松开即可 " EventMesh.publish("publish_AI_btnInfo",{"func":self.AI_VC_start}) pass @@ -5830,7 +5842,7 @@ class AI_VC(Abstract): return print("kws_even_cb") if self.VC_mode == 1: - tts_str = "请您按住中间的按钮开始讲话,讲完松开即可 " + tts_str = "请您按住圆形的按钮开始讲话,讲完松开即可 " EventMesh.publish("play_tts",[tts_str,1]) return if self.VC_mode == 0: